graph-mode について
graph-mode は、チャットの回答に継続的な証拠要件を適用するスキルです。監査や計画、複数ファイルにまたがる不具合調査など、重要な結論に適し、推論を6種類の確認可能な証拠のいずれかに結び付けます。既定では無効です。
主な機能
- 01継続的な証拠モードの有効化
- 02確認可能な証拠を推論の終点に要求
- 03定義済みの6種類の証拠に対応
- 04文書の検証機構を独立して維持
- 05指示に応じてモードを無効化
活用シーン
- 01監査で用いる結論の根拠を示す
- 02アーキテクチャ決定や計画を裏付ける
- 03複数ファイルにまたがる不具合を調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ rheinmir/ setup --skill graph-modeインストール後、Claude Code で/graph-modeを入力して読み込まれたか確認します。
詳細
スキル:graph-mode
R19(evidence-terminal)の証拠ルールは、CHAT 部分に適用されるようになりました。llmwiki/CLAUDE.md/llmwiki/AGENT.md から切り離されています(以前はすべてのセッションに自動で注入されていたため、回答ごとにより多くの引用やファイルを開くことが必須となり、トークンを多く消費していました)。ドキュメント内の ```evidence-chain ブロックを対象とするマシンバリデーター(evidence_terminal.py)は、このスキルに依存しません。graph-mode がオンでもオフでも、harness/policy.yaml を通じて常に実行されます。このスキルがオン/オフを切り替えるのは、CHAT の規律(バリデーターでは対処できない部分)だけです。自動的にゲートできない部分なので、オンにする前にコストを考慮してください。
WHAT
目的とコンテキスト
- 目的: CHAT の規律を有効にし(オフにするまで維持します)、回答内のすべての推論の連鎖が、閲覧可能な6種類の証拠のいずれかに行き着くようにします。
- トリガー(使用するタイミング):
- ユーザーが「graph-mode」「graph mode をオン」「evidence mode」「証拠モード」と言うか、
/graph-modeと入力したとき。 - 結果を意思決定に使うため、高い信頼性が必要な作業(監査、受け入れ、ADR/PLAN の作成、複数ファイルにまたがる広範なバグの診断など)。誤った結論によるコストが、追加のツール呼び出しを数回行うコストより高い場合です。
- ユーザーが「graph-mode」「graph mode をオン」「evidence mode」「証拠モード」と言うか、
- 対象外: 日常的な作業(1ファイルの修正、簡単な質問への回答、取り消し可能な作業)には使用しません。むやみに有効にすると、回答がすべて不必要に長くなり、コストも増えます。ドキュメント用のR19マシンバリデーター(
evidence_terminal.py)を置き換えたり、上書きしたりするものではありません。また、一般的な推論の規律でもありません(それはfable5の役割です)。
メンタルモデル
結論 A → 理由 B → … → 最終地点 ∈ {observed, tool-record, graph-edge, web, parametric, absence}。状態:オフ(デフォルト)→ 呼び出し時にオン → すべてのターンで維持 → ユーザーの指示でオフ。
入力と出力の契約
| フィールド | 必須? | 意味 | |
|---|---|---|---|
| In | 有効化コマンド | はい | 「graph-mode」//graph-mode/「evidence mode」など |
| In | 無効化コマンド | いいえ | 「graph mode をオフ」/「graph-mode off」/「normal mode」 |
| Out | 有効時のすべての CHAT 回答 | はい | すべての推論の連鎖に6種類のいずれかの最終地点を設け、その種類の必須属性をすべて明示する |
ルールと機能
- RULE-01 (MUST):これは、どのバリデーターでも検出できない CHAT の規律です。オフの場合は誰も止めません。オンの場合は、救済してくれるゲートがないため、厳密に遵守してください。
- RULE-02 (MUST):ドキュメントの
evidence-chainに対するR19のマシンゲートルール(harness/policy.yamlのapplies_to: [write])を上書きしないでください。このルールは独立しており、このスキルのオン/オフにかかわらず、常に実行されます。 - RULE-03 (MUST):タスクに必要なものだけに触れてください。便乗した変更はしないでください。
- RULE-04 (MUST):
parametricを意思決定に使う結論の唯一の最終地点にしてはいけません。 - RULE-05 (MUST):「明らかに」「誰もが知っている」といった表現や、同じ回答内の別の推論項目を指し戻す形で結論を出さないでください。
- 機能:証拠の取得にファイルの読み取り/コマンドの実行/ログ台帳の検索/wiki グラフの検索/ウェブ検索を使用できます。このスキル自体による書き込みはありません。
失敗時の境界
- 推論の一段階に必要な証拠が見つからない場合は、
absence(実行したコマンドと空の出力)を明示するか、結論を未証明として扱ってください。推論で補ってはいけません。 - 意思決定に使う結論の根拠が
parametricだけの場合は partial です。未検証であることを明示し、web/observedに格上げすることを提案してください。 - 日常的な作業でもユーザーがオンのままにしている場合は、ユーザーの判断に従ってください。トークンコストについては一度だけ伝えてもかまいません。
HOW
メインワークフロー
| Step | Type | Inputs | Action | Outputs/exit | Failure/next |
|---|---|---|---|---|---|
| W01 | deterministic | 有効化コマンド | モードをオンにし、すべての回答で ACTIVE にする | 状態 = オン | — |
| W02 | judgment | 各質問 | 推論の連鎖を組み立て、6種類の証拠のいずれかにたどり着くまで掘り下げる | 最終地点を含む回答 | 推論にすぎない段階がある場合 → 続けて掘り下げる |
| W03 | deterministic | 無効化コマンド | オフにし、通常の回答に戻す | 状態 = オフ | 無効化コマンドがない場合 → W02 を繰り返す |
各ステップの詳細(W01~W03 の情報源):
有効化(永続化)
呼び出した時点から無効化するまで、すべての回答で有効です。何ターンも経過した後に、根拠のない回答へ自然に戻ることはありません。無効化するには:「tắt graph mode」/「graph-mode off」/「normal mode」。 デフォルト:無効(セッション開始時に自動で有効にはなりません)。
有効時は、CHAT 内のすべての論理の連鎖を、さらに別の論理ではなく、確認して開ける証拠で終わらせる必要があります。A vì B vì chứng cứ C の連鎖は完了です。A vì B vì C という連鎖で、C が推論である場合は未完了です。C が何に基づいているかを、根拠にたどり着くまでさらに開示する必要があります。
次の 6 種類を終端として認めます。
observed— 開いて確認できるfile:lineパス、または再実行可能なコマンドとその出力。tool-record— provenance-log/events.jsonl/ledger 内の項目の ID。graph-edge— wiki graph 内のエッジの eid。web— ウェブで検索したデータ:該当箇所への直接リンク(ホームページではなく)、アクセス日、根拠とした箇所の原文引用を付ける必要があります。parametric— モデルのトレーニング由来の知識:この種類であることを正しく明記し、出典(正式名称、資料、著者)を明示して、未検証であることを明確に述べる必要があります。判断に使う結論の唯一の終端にしてはいけません。web/observedに格上げするか、別の種類と併用する必要があります。absence— 検索に実行したコマンド/クエリと、その空の出力。
「明らかに」「誰もが知っている」などを結論にしたり、同じ回答内の別の論理項目を指し示して結論にしたりしてはいけません。仕組みの詳細:[[evidence-terminal-chain]]。
分岐
このバージョンにはサブブランチはありません。
検証と停止
CHAT(RULE-01)を検証する機械的なバリデーターはありません。遵守は自己確認で行います。送信前に、すべての結論に 6 種類のいずれかの終端があるか確認してください。このモードは、ユーザーが無効化コマンドを入力した場合にのみ停止します。
例
- 良い例: graph-mode を有効にして、「hook stop は Origin のないコミットをブロックするか?」と質問する →
observedのllmwiki/.claude/hooks/stop.py:<line>、または再実行可能なコマンドとその出力を添えて回答し、「たぶんそうです」で終わらせない。 - 境界/失敗例: 「OWASP の spec によると(parametric)」だけに基づく判断の結論 → 不十分です。
parametricと出典を明記し、未検証であると述べ、判断に使う前にweb(該当箇所への直接リンク+アクセス日+原文引用)に格上げする必要があります。