外部因果ワークスペーススキル
目的
このスキルは、ターミナルエージェントを外部の検査可能なワークスペースを持つ推論システムに変えます。
タスクが複雑な場合、エージェントは単純なテキスト生成器として振る舞ってはなりません。結論、計画、パッチ、推奨事項を生成する前に、問題のローカルモデルを構築し操作しなければなりません。
目標は、ツールの使用と明示的な状態を通じて、オブジェクト、関係、制約、因果関係、不変条件、競合仮説、テスト、検証証拠、決定、残留不確実性から構成される一時的な外部世界モデルを近似することです。
これはニューラル潜在空間ではありません。読み取り、更新、チェック、共有、監査が可能な実用的なディスクベースの代替手段、つまり外部認知ワークスペースです。
このスキルを使用するタイミング
複雑または影響の大きいタスク、特に以下にこのスキルを使用してください:
- アーキテクチャ分析;
- デバッグ;
- 根本原因分析;
- リファクタリング;
- 複数ファイルの変更;
- 不明確または不安定な要件;
- 戦略的な技術的判断;
- 因果分析;
- パフォーマンス重視の作業;
- セキュリティ重視の作業;
- 複数のもっともらしい説明があるタスク;
- 誤った回答が将来の技術的負債を生む可能性があるタスク;
- 検証、トレーサビリティ、または反証可能性が重要なタスク。
以下ではこのスキルを多用しないでください:
- 些細な質問;
- 小さな孤立した編集;
- 単純な書式設定;
- ローカルプロジェクトの現実に依存しない直接的な事実の回答;
- 完全なワークスペースが価値よりもノイズを増やすタスク。
タスクが単純な場合は、直接回答し、スキルが不要であったことを簡単に説明してください。
ターゲットワークスペース
アクティブなワークスペースは、エージェントが起動されたディレクトリ、またはユーザーが明示的に特定したプロジェクトルートです。
因果ワークスペースは、スキルディレクトリではなく、ターゲットプロジェクトに属します。
以下を使用してください:
<project-root>/.agent/current/
スキルディレクトリにはプロトコルが含まれます。プロジェクトディレクトリにはタスク状態が含まれます。
エージェントはタスク固有の推論状態をスキルパッケージ自体に書き込んではなりません。
現在のワークスペースの検査
リポジトリ固有または環境固有のタスクに行動する前に、必要な範囲でのみ現在のワークスペースを検査してください。
該当する場合は以下を特定します:
- プロジェクト構造;
- 関連するファイルとフォルダ;
- 利用可能なドキュメント;
- ビルド、テスト、検証コマンド;
- 既存のアーキテクチャによって課された制約;
- 既存の
AGENTS.md、オーバーライドファイル、ローカル指示ファイル、タスク固有のガイダンス; .agent/current/がすでに存在するかどうか。
タスクがローカルプロジェクトの現実に依存する場合、エージェントはメモリからアーキテクチャを推測してはなりません。
新規実行セマンティクス
このスキルを使用する新しいタスクの開始時に、ターゲットプロジェクト内の .agent/current/ をリセットします。
ルール:
.agent/が存在しない場合は作成します。.agent/current/が存在しない場合は作成します。.agent/current/が前のタスクからすでに存在する場合は、新しいタスクを開始する前に以前の内容を削除または上書きします。- ユーザーが明示的に要求しない限り、
.agent/notes/、.agent/reports/、.agent/tmp/、.agent/archive/を削除しないでください。 - デフォルトで過去の状態を保持しないでください。
- ユーザーが明示的に履歴の保持を要求した場合は、リセットする前に以前の
.agent/current/を.agent/archive/<timestamp-or-task-name>/にコピーします。
.agent/current/ の目的は、現在のタスクのみを表現することです。以前のプロンプトから古い推論を静かに蓄積してはなりません。
ワークスペース所有権
特定のタスクに対して、.agent/current/ は単一の書き込み者を持つ必要があります。
以下を作成または上書きします:
.agent/current/owner.md
owner.md には以下を明記する必要があります:
- タスク名または短い目的;
- 所有エージェントまたは役割(既知の場合);
- 利用可能な場合は開始時間;
- ステータス: active、completed、partial、blocked、または abandoned;
- ワークスペースが新たにリセットされたかどうか。
別のアクティブな所有者が検出され、ユーザーが明示的に新しいタスクを開始していない場合は、静かに上書きしないでください。ワークスペースを読み取り専用として扱うか、新しい実行には .agent/current/ のリセットが必要であると述べてください。
必要なディスクバックアップファイル
複雑、曖昧、アーキテクチャ、デバッグ、リファクタリング、戦略的、因果、または影響の大きいタスクごとに、少なくとも以下を作成または更新します:
.agent/current/owner.md
.agent/current/task.md
.agent/current/world.md
.agent/current/hypotheses.md
.agent/current/claims.md
.agent/current/verification.md
.agent/current/decision.md
これらのファイルは飾りではありません。エージェントの外部作業記憶です。
エージェントはタスク中にこれらを読み取り、更新する必要があります。最終的な応答は .agent/current/decision.md および .agent/current/claims.md に保持されている請求ステータスと一致している必要があります。
最終応答の前に、.agent/current/owner.md が active であってはなりません。
必須ファイルの役割
owner.md
現在の実行を識別し、別のタスクやエージェントによる偶発的な上書きを防ぎます。
以下を含める必要があります:
- 現在のタスク;
- 所有者;
- モード: direct、delegated、exploratory、diagnostic、または implementation-support;
- ステータス;
- リセットの判断。
task.md
タスクの境界を定義します。
以下を含める必要があります:
- ユーザーの目的;
- 解釈された目的;
- スコープ;
- スコープ外;
- 制約;
- 成功基準;
- 明示的なユーザーの禁止事項;
- まだ検証が必要な前提。
world.md
問題のローカルモデルを構築します。
以下を含める必要があります:
- オブジェクト: コンポーネント、ファイル、サービス、アクター、概念、データ構造;
- 関係: 依存関係、所有権、データフロー、コールフロー、ライフサイクル、時間的順序;
- 制約: 技術的、機能的、セキュリティ、アーキテクチャ、パフォーマンス、互換性;
- 因果関係: 何が何を生み出すか、何が何を壊すか、何が何に依存するか;
- 不変条件: 介入後も真であり続けなければならないもの;
- 不確実性ゾーン: まだ検証されていない事実。
hypotheses.md
単一仮説推論を防ぎます。
競合する説明や解決パスを含める必要があります:
| 仮説 | 支持 | 矛盾 | 反証テスト | ステータス |
|---|---|---|---|---|
| H1 | ... | ... | ... | retained/rejected/suspended |
| H2 | ... | ... | ... | retained/rejected/suspended |
仮説は明示的に拒否、保持、または保留される必要があります。
claims.md
真実体制の混乱を防ぎます。
重要な主張を、型とステータスとともにリストする必要があります:
| ID | 主張 | 型 | ソース/証拠 | ステータス | 影響 | 注記 |
|---|---|---|---|---|---|---|
| C-001 | ... | fact / inference / hypothesis / constraint / invariant / risk / value / decision | file、command、user statement、tool result、reasoning | verified / inferred / plausible / suspended / rejected / not-checked | low / medium / high / critical | ... |
ルール:
factには証拠アンカーが必要です。inferenceは依存する事実を指定する必要があります。hypothesisは、反証または保持されるまで事実と区別可能である必要があります。valueは判断の指針にはなりますが、経験的証拠を装ってはなりません。decisionは保持されている主張によってサポートされ、静かに拒否された主張に依存してはなりません。
実質的に重要な主張のみを使用してください。ワークスペースを冗長な主張ダンプにしないでください。
verification.md
誤った検証を防ぎます。
以下を含める必要があります:
- 実際に実行されたコマンド;
- 実際に検査されたファイル;
- 重要な出力または観察;
- 合格、不合格、スキップ、または未実行のチェック;
- 検証の限界;
- より強力な検証が不可能または意図的にスキップされた理由。
検証請求は、証拠アンカー(コマンド、検査されたファイル、観察された出力、ツール結果、または検証を実行できなかった明示的な理由)がある場合にのみ有効です。
decision.md
最終応答の前に結論を安定化します。
以下を含める必要があります:
- 保持されたモデル;
- 拒否されたパス;
- 推奨されるアクション;
- 最小限の安全な次のステップ;
- リスク;
- 検証ステータス;
- 残っている不確実性;
- 実装が許可されているか、待つべきか。
中核動作原理
複雑なタスクごとに、最初に問題のローカルモデルを構築します。
モデルには以下を含める必要があります:
- オブジェクト;
- 関係;
- 制約;
- 因果関係;
- 不変条件;
- 競合仮説;
- 不確実性ゾーン;
- 検証の機会;
- 重要な主張のための請求型とステータス。
次に、以下によって仮説をテストします:
- 反転;
- 矛盾;
- エッジケース;
- 不条理チェック;
- 因果メカニズムチェック;
- 可能かつ安全な場合は実行可能な検証。
この安定化の後にのみ、エージェントは回答、計画、パッチ、または推奨事項を生成できます。
必須参照
このスキルが使用される場合、関連する場合にスキルパッケージから以下のプロトコルファイルに従ってください:
references/world-model-workspace.md: 外部ローカルモデルの構築と維持方法。references/structural-reasoning-protocol.md: 不変条件ベースの推論、反転、矛盾、不条理テスト、エントロピー削減。references/tool-verification-protocol.md: ツール、テスト、スクリプト、ターミナルコマンドを外部認知として使用する方法。references/claims-ledger-protocol.md: 事実、仮説、推論、価値、リスク、決定を分離する方法。references/state-and-memory-protocol.md: プロジェクトを汚染せずに作業状態を永続化する方法。references/final-response-contract.md: 結論、変更、限界、残留不確実性を報告する方法。
プロトコルファイルはスキルの一部です。.agent/current/ ファイルはターゲットプロジェクトワークスペースの一部です。
デフォルト実行ループ
複雑なタスクには、このループを使用します:
- 実際の目的とこのスキルが必要かどうかを特定します。
- 必要な範囲でのみワークスペースを検査します。
- 新しいタスクのために
.agent/current/をリセットまたは作成します。 owner.md、task.md、world.md、hypotheses.md、claims.md、verification.md、decision.mdを作成します。- 問題のローカルモデルを構築します。
- 不変条件と制約を特定します。
- 実質的に重要な事実、制約、不変条件、仮説、リスク、価値、決定を
claims.mdに記録します。 - 競合する仮説または解決パスを生成します。
- それらを論理的に、可能な場合はツールでテストします。
- 証拠とスキップされた検証を
verification.mdに記録し、影響を受ける請求ステータスをclaims.mdで更新します。 - 不安定な仮説を排除します。
- 保持された結論を、保持された請求のみから
decision.mdにドラフトします。 - アクションが許可されている場合、検証されたスコープ内でのみ行動します。
- 変更が行われた場合、結果を検証します。
decision.mdを最終化します。owner.mdのステータスをcompleted、partial、blocked、またはabandonedに更新します。- 最終ワークスペース整合性ゲートを実行します。
- その後にのみ最終応答を生成します。
動作ルール
- 即興よりも構造を優先します。
- 流暢な仮定よりも検証された事実を優先します。
- 広範な推測的な編集よりも、最小限で可逆的な変更を優先します。
- 無関係なファイルを変更しないでください。
- 不確実性を隠さないでください。
- 実際に実行されない限り、テストに合格したと主張しないでください。
- 証拠アンカーに結び付けられていない限り、verified、validated、confirmed、tested、passed、failed、inspected、checked などの単語を使用しないでください。
- 静的な読み取りに基づく場合は、「推測元:」と言い、検査したファイルを指定します。
- 検査できる場合、プロジェクトの慣習を推測しないでください。
- リセット後、古い
.agent/current/の内容が新しいタスクに影響を与えないようにしてください。 - 型付けされていない仮定が結論に実質的に影響する場合、それらを最終応答に入れないでください。
- タスクが単純な場合は、推論プロセスを過剰に設計しないでください。
ツールの使用と検証
概念的な議論には言語のみの回答で十分です。
実装、デバッグ、アーキテクチャ検証、リポジトリ固有の主張、環境固有の主張には、以下を優先します:
- ファイルの読み取り;
- シンボルの検索;
- 設定の検査;
- テストの実行;
- 型チェックの実行;
- リンターの実行;
- 差分の生成;
- 小さなスクリプトの使用;
- 再現可能なチェックの作成。
ユーザー制約に違反せずに、利用可能な最も強力な合理的な検証を使用します。
コマンドが破壊的、本番環境に影響を与える、高価、または明示的に禁止されている場合は、実行しないでください。スキップされた検証とその理由を verification.md に記録します。
最終ワークスペース整合性ゲート
最終応答を書く前に、エージェントは最終ワークスペース整合性ゲートを実行する必要があります。
このゲートは .agent/current/ が作成された場合に必須です。
エージェントは以下を再開または再チェックする必要があります:
.agent/current/owner.md.agent/current/task.md.agent/current/world.md.agent/current/hypotheses.md.agent/current/claims.md.agent/current/verification.md.agent/current/decision.md
最終応答は以下が完了するまで許可されません:
- 必要なファイルがすべて存在すること;
.agent/current/owner.mdにstatus: activeが含まれていないこと;- ステータスが以下のいずれかであること:
completedpartialblockedabandoned
.agent/current/decision.mdに保持された結論が含まれていること;.agent/current/verification.mdに検証モードが記載されていること;- 最終ワークスペーストレースが実際に存在するファイルのみを言及していること。
タスクが使用可能な結論に達した場合は、次を使用します:
status: completed
タスクが有用な分析を生成したが、検証が不完全な場合は、次を使用します:
status: partial
必要な情報が不足している場合は、次を使用します:
status: blocked
エージェントは、最終応答の前の最後のワークスペース書き込みとして owner.md を更新する必要があります。
最終応答を生成した後、owner.md を status: active のままにしないでください。
出力の期待
最終応答は簡潔でありながら完全である必要があります。.agent/current/decision.md から導出される必要があります。
該当する場合、以下を含める必要があります:
- 理解された内容;
- 検査された内容;
- 構築されたモデルまたは保持された結論;
- 検証済み、推測、未チェック、または不確実なもの;
- 行われた変更(もしあれば);
- リスク、限界、トレードオフ;
- 未解決の不確実性または保留中の仮説;
- 推奨される次のステップ;
- タスクステータス;
.agent/current/への参照。