本文へスキップ
Pathrule

ドキュメント

User Intelligence

User Intelligenceは、あなたがコマンドラインからPathruleに教える好みとして、あなたの仕事の進め方を保持します。何を保持し何を拒否するか、好みがどこに適用されるか、エージェントにどう届くか、何を制御できるか、そしてそれでもプロジェクトの要件が優先される理由を説明します。

このページの内容

Workspace Intelligenceはプロジェクトを保持します。User Intelligenceは、その仕事をする人を保持します。

同じリポジトリで働く2人のエンジニアでも、エージェントに求めるものは同じではありません。そしてその違いは見た目の問題ではありません。エージェントがどこまで自分で判断してよいか、いつ実装を止めて選択肢を提示すべきか、どの程度の検証で十分とするか、どちらの設計にも筋が通るときにどちらを選ぶか、といった違いです。

これは立派なナレッジの集まりですが、置き場所がなければ、新しいセッションのたびに打ち直す訂正の中にしか存在しません。

モデル化するもの

実行に関する好み

段階的なリファクタリングを望むのか、書き直しも受け入れるのか。実装の前に選択肢を見たいのか、ある種の変更についてはエージェントにそのまま進めてほしいのか。どの程度の抽象化を妥当と考えるのか。どのような種類の変更について、実行前に確認してほしいのか。

意思決定の傾向

どのようなトレードオフを選びがちか。パフォーマンスか保守性か。自作するか既存のものを採用するか。後方互換性をどれだけ厳格に守るか。プロダクト上の判断が技術的な判断とぶつかったとき、何を最初に重視するか。

品質への期待

どの程度のテストを期待するか。議論よりもベンチマークを求めるのはどんなときか。どこまでの調査で十分とし、どこからが出荷の代わりになってしまっているとみなすか。何をもって完了とし、それにどの程度の検証が伴うべきか。

協働のスタイル

エージェントにどこまで自律的に動いてほしいか。いつ質問を期待するか。いつ選択肢を期待するか。作業結果をどのように報告してほしいか、説明はどの程度の密度がよいか。

モデル化しないもの

あなたが誰であるかはモデル化しません。属性情報も、性格も、あなたという人について推測されるものは何も扱いません。単位はソフトウェアの仕事をどう進めるべきかについての作業上の好みであり、そのどれもが、あなたが口に出して言えた内容です。

次の3種類の文は、保存されることなく、その場で拒否されます。

  • 個人的な情報。 健康、宗教、政治、性的指向、民族、経済状況、私的な人間関係は、文が何について書かれていたかにかかわらず、Pathruleが保持する対象外です。
  • 好みを装ったルール。 好みはエージェントへの助言です。禁止として書かれた文(「絶対に〜しない」「〜してはならない」「禁止」)は、本来その権限を持たないプロジェクトの要件のように読めてしまうため、保存されません。プロジェクトで本当に起きてはならないことがあるなら、それはそのプロジェクトにルールとして置くべきものです。
  • プロジェクトに関する事実。 「このリポジトリでは共通の設定ヘルパーを使う」は、あるコードベースについては正しくても、あなたについての事実ではありません。あなたの好みとして保存すると、それが誤りとなるクライアントのリポジトリにまでついて回ります。これはワークスペースのナレッジであり、ワークスペースにとどまります。

学習の仕組み

教えるのはあなたです。新しいセッションのたびに打ち込んでいた文を添えてpathrule me teachを実行します。

pathrule me teach "Show me options before implementing anything that changes a public API"

オプションのローカルモデルがあなた自身のマシン上でその文を読み、構造化された作業上の好みに変換します。導き出した内容は、必ずあなた自身の言葉の中に根拠がなければなりません。あなたが表明していない好みへと言い換えることは許されず、あなたが書いた内容を根拠として示せない場合は何も保存されず、CLIがその理由を伝えます。

What you teach
      |
Checked against your own words
      |
Refused, or stored as a preference
      |
Active, and delivered where it applies

具体的には、「実装のたびに調査プロジェクトにしないでほしい」といった趣旨のことを繰り返し言っているなら、役に立つのは発言をそのまま保存したものではありません。作業上の好みとして表現したものです。

Prefer implementation once the primary correctness
questions are resolved.

Source:     you told Pathrule
Applies:    across workspaces

教えるには、ローカルモデルをインストールしたApple Silicon Macが必要です。このページのそれ以外の内容は、エージェントへの配信も含めて、ローカルモデルがなくても動作します。

考えが変わったとき

同じ種類の作業について、以前の好みと矛盾する新しい好みを教えると、新しいものが以前のものに置き換わります。古い好みは削除されずにretiredとなり、置き換えた好みへの参照を保持するため、「なぜ変わったのか」には常に答えられます。異なる種類の作業についての2つの好みは、単に両方とも有効になります。

「ユーザー」とは誰か

好みはあなたについて書かれるものなので、あなたが作ったものを使う人々について話すと、その言い回しのせいで、いつの間にかその人々があなた自身にすり替わってしまうおそれがあります。「ユーザーにエラーを見せずに解決する」は、エージェントには「自分にエラーを見せるな」と読めてしまい、意図とは正反対になります。あなたの言葉がユーザーについてのものだった場合、好みは「エンドユーザー」という表現を保ちます。

好みが適用される場所

User Intelligenceはリポジトリではなく、あなたに属します。それぞれの好みがどこに適用されるかは、また別の問題です。

  • 教えた好みはどこにでも適用されます。 プロジェクトから学んだものではないので、特定のプロジェクトに保持されることはありません。
  • 1つのワークスペースに限定することもできます。 リポジトリ内でpathrule me scope <id>を実行すると、その好みは実行したワークスペースに限定されます。pathrule me scope <id> --everywhereで、再びすべてのワークスペースに適用されるようになります。

好みがエージェントに届く仕組み

各ターンの前に、Pathruleはこれから行う作業に当てはまる好みを選びます。

  • activeな好みのみ。 まだ使用されていない好みはpathrule me listに表示されますが、エージェントには届きません。retiredやrejectedの好みも使われません。
  • 適用範囲に含まれるもののみ。 上で説明したワークスペースの範囲です。
  • このタスクに関するもののみ。 あなたとの協働の仕方についての好みは、どのタスクにも当てはまります。アーキテクチャやマイグレーションなど、特定の種類の作業についての好みは、タスクがその作業に関するものであるときだけエージェントに届きます。
  • 1ターンにつき少数、強いものから順に。 当てはまる好みがそれより多い場合は、弱いものが外されます。
  • それぞれに出どころが示されます。 そのため、エージェントは「あなたがそう言った」という根拠を、それに見合った重みで扱えます。

好みはプロンプトフックを通じて、セッションごとに各1回、ワークスペースのルールと必須チェックが優先されることをエージェントに伝える見出しの下に届けられます。現時点では、対象はClaude CodeとCodexのセッションです。CursorとGitHub Copilotにはセッションフックとツールフックはありますがプロンプトフックがなく、Windsurfにはフックがないため、これらには好みが届きません。詳しくはフックの仕組みを参照してください。

権威:あなたとプロジェクトの意見が食い違うとき

ユーザーの好みは、プロジェクトの真実を上書きしません。

User Intelligence
Prefer minimal testing.

Workspace Intelligence
Rule: run migration verification before completion.

この場合、ルールが適用されます。ルールはワークスペースの要件であり、検証を減らしたいという好みは、それを省く理由になりません。

一般的な原則として、はっきり書いておく価値があります。

  • Workspace Intelligenceは、プロジェクトの真実とプロジェクトの要件を表します。そのルールと必須チェックは厳格な要件です。
  • User Intelligenceは協働のあり方を形づくります。作業へのアプローチ、どこまで自律的に進めるか、どう報告するかです。何が正しいかを定義し直すものではありません。

両者が単にスタイルの問題であれば、あなたの好みが適用されます。ワークスペースが安全性や正しさの要件を定めている場合は、その要件が優先されます。

ワークスペースにルールがない場合も同じです。検証を減らす方向に働きうる好みは、作業が認証、決済、データマイグレーション、暗号、セキュリティに関わるときには常に適用が保留されます。こうした領域でのミスは表に出にくく、代償も大きいうえ、日常的なコードで形成された好みは、そこでも安全かどうかについて何も保証しません。

あなたが制御できること

すべてです。User Intelligenceは暗黙のものではなく、確認できるものです。各好みについて、次の情報を確認できます。

  • ステータス: candidate、active、retired、rejectedのいずれか。
  • 出どころと確信度。
  • 適用される場所: すべてのワークスペースか、1つのワークスペースのみか。
  • 理由: 根拠となった言葉と、その日付。

さらに、次の操作ができます。

  • 好みを直接教える。
  • 好みを忘れさせる。使用は停止されますが、同じ文ですぐに復活しないようrejectedとして保持されます。完全に削除するには--deleteを付けます。
  • このワークスペースに限定する、またはすべてのワークスペースに適用する。
  • タスクを始める前に、そのタスクでエージェントが何を受け取るかを確認する。

目に見えない推論には異を唱えることもできません。だからこそ、どの好みもコマンド1つで確認できるようになっています。

コマンドラインから

pathrule me list                    # what is in use, and what is not yet
pathrule me teach "I prefer incremental refactors"
pathrule me explain <id>            # the evidence behind one preference
pathrule me scope <id>              # keep it to the workspace you run this in
pathrule me scope <id> --everywhere # let it apply in every workspace
pathrule me forget <id>             # stop using it
pathrule me forget <id> --delete    # remove it entirely
pathrule me context "add a payments webhook"

pathrule me contextは、そのタスクでエージェントが受け取る内容を正確に表示し、適用が保留された好みとその理由も示します。好みが意図した作業に、そしてその作業だけに届いているかを確かめる最も手早い方法です。すべてのサブコマンドで--jsonを指定できます。

プロジェクト間の移動

別のリポジトリを開くと、周囲のプロジェクトのナレッジはすっかり入れ替わります。教えた好みは、1つのワークスペースに限定したものを除き、そのままついてきます。

ここで、1つのターンの中で両者が合流します。ワークスペースは「ここで何が正しく、何が求められるか」を、あなたは「作業をどう進めるべきか」を提供し、配信の際にはプロジェクトの要件があなたの好みより上に置かれます。詳しくはAgent IRを参照してください。

知っておきたい制限

  • 照合は意味ではなく語句で行われます。 好みは、語句を共有するタスクに届きます。タスクとまったく異なる言い回しで書かれた好みは、届かないことがあります。
  • 教えるにはローカルモデルが必要です。 ローカルモデルはApple Silicon Macでのみ動作します。
  • 好みが届くのはプロンプトフックを持つクライアントだけです: Claude CodeとCodexです。
  • 推測するよりも判断を控えます。 あなた自身の言葉に根拠を見出せない文は保存されません。好みを取りこぼしても、あなたが文を1つ書き足せば済みます。好みをでっち上げれば、一緒に働くすべてのエージェントにあなたを誤って伝えることになります。

プライバシー

教えた内容を構造化された好みに変換する推論はあなた自身のデバイス上で動作し、好みはあなたのマシン上のプライベートなストアに保存されます。

チームでワークスペースを共有している場合、同期されるのはワークスペースのナレッジであり、あなた個人の作業上の好みではありません。また、Claude Code、Codex、その他のエージェントを実行するときは、そのエージェントに届く内容には、そのエージェントの提供元の境界が適用されます。セキュリティのページでは、これらの境界を区別して説明しています。ひとまとめに一文で語ってしまうと、その主張は正しくなくなるからです。