--- name: process-wi description: > 対象リポジトリのAWIを取得・検討・適用するときに起動する。 「AWIがあった」「改善提案を反映」「振り返り結果を反映」などのキーワードで起動する。 # 設計意図: docs/development/design.md の「終端工程」を参照。 # 自動起動元: atk wi process-loopが本スキルの起動を目的文へ設定する。実装は agent-toolkit/scripts/_atk/wi/process_loop.py の_build_process_loop_prompt。 --- # AWI処理 本スキルは、AWI処理を3段階で完遂する入口を提供する。 AWIとUWIの共通概念、由来、状態及び投入は`../wi-standards/SKILL.md`を正本とし、本スキルへ複製しない。 ユーザーが手動起動する投入だけは`../add-awi/SKILL.md`を入口とする。 本スキルの起動中は自律モードとする。ユーザー判断が必要な事項は `agent-toolkit/rules/01-agent.md`「協調と自律」節に従う。 本スキルを起動したセッションの追加指示は、`agent-toolkit/rules/01-agent.md`「指摘発生時の扱い」が定める照合と採否を終えた差分だけを、同一主題の処理条件へ反映する。 本スキルは介入内容の正しさを独自に判定せず、採否が確定していない介入を処理条件として扱わない。 直接実装を求める表現も、同一主題である間は本スキルの処理を継続する追加条件として扱う。 完了報告後も同一主題が続く限りこの扱いを維持する。 主題が続くか、直接実装との境界が不明な場合は変更前にユーザーへ確認する。 ## 不変条件 本スキルの全工程で次を成立させる。個別の手順が定める条件は、この不変条件を実現する手段とする。 手順どうしが両立しない場合と手順の前提が実在しない場合も、本節の条件を外さずに次の1工程を選ぶ。 - 1つの作業ツリーへ書き込む主体を同時に1つだけ置く - キュー項目の終端は、当該操作の公開契約が定める終了状態を直接観測して確定する。完全OIDを要する操作では実測して得た完全OIDを用い、記憶又は推測から組み立てない - 人間由来の要求を全部又は一部不採用にする場合は、ユーザーの確認を得るまで当該項目のキュー終端へ進まない - 1回の処理回で扱う対象は①で固定した集合とし、②と③で再取得しない - 全ての実装要求は計画工程へ送る(③のCI失敗処理が作成するCI修正レーンだけを例外とする) - 要求の採否と既存の変更による充足は計画担当が確定し、pickerとメインはこれを確定しない - 停止又は差し戻しで終える工程は、再開位置と再開に必要な前提をキュー項目へ残す 差し戻しと停止の事由別の扱いは`${CLAUDE_PLUGIN_ROOT}/share/review-loop-coordination.md`の`## エスカレーションの事由別の扱い`を正本とする。 ## 実行順 本スキルは具体的な一連の手順を提供するが、それらは目安に過ぎない。 目的を正しく(品質最優先かつ時間効率・コスト考慮)実現するためにエージェントは臨機応変な対応をすべき。 1. ①選定、レーン分け及び選定済み項目の処理開始 - ①を開始するときだけ`references/start-pick.md`を全文読む。 2. ②レーンの計画から後始末 - ①の出力を確定した後、②を開始するときだけ`references/run-lanes.md`を全文読む。 - 各レーンの計画ファイルは、`references/run-lanes.md`がレーン種別ごとに定める最終化契機まで`~/.claude/plans`で更新し、当該契機でprivate-notesへ移動する。 3. ③push、CI及び終了 - ②の全レーンが完了した後、③を開始するときだけ`references/finish-session.md`を全文読む。 ## レーン レーンとは、本スキルで扱う仮想的な処理単位である。それぞれに専用のgit worktreeを割り当て、並列で実行する。 レーン内では、「計画・計画レビュー・実行・実行レビュー・ベースブランチへのrebase/マージ・AWIの終端処理(atk wi adopt)・worktreeや一時領域などの削除」などの一連の作業を実施する。 ベースブランチへのrebaseとマージは複数レーンが同時に実施すると衝突するため、メインが1レーンずつ実施を指示する。 ## メインの役割集中 本スキルの実行中、メインは全レーンの状態把握、レーン間の調停及びユーザー判断への応答へ専念する。 自身のコンテキストを消費する作業は、次の場面で委譲を優先する。 - 所在の特定、該当箇所の列挙、横断検索など、結論だけで後続の判断が成立する調査は、読み取り専用の探索委譲で行う - AWI本文とレビュー指摘管理表は、メイン自身が判断を確定する契機に限って読む。 レーンの進行に必要な範囲は各レーンの担当が読み、メインは返却された判断材料で扱う。 レビュー指摘又は委譲先の返却に含まれる事実主張を前提として確認経路へ送る場合は当該契機に当たり、 メインが`agent-toolkit/share/rules-main.md`「確認を要する事項」節に従って当該主張を現物で実測してから発行する。 本項の読込抑制は、実測していない主張をそのままユーザーへ渡す根拠にならない - ユーザーの割り込みで生じた調査・是正のうち、稼働中のレーンと対象が独立するものは、当該作業へ適した委譲先へ渡す。 是正の委譲は`agent-toolkit/rules/01-agent.md`「指摘発生時の扱い」が定める照合と採否を終えてから行う。 当該照合のための調査の委譲は本制限の対象にしない (「即時対応」に当たる実装の委譲先は同節が定める) - ③のpush、CI、CI失敗時の修正、固有の終端工程及び延期`adopt`は必ず終端担当へ委譲する。 メインは`agent-toolkit:session-review`、自動コードレビュー監査、`agent-toolkit:completion-report`と`agent-toolkit:exit-session`を保持する ③の終端担当以外の委譲の要否は`agent-toolkit/rules/01-agent.md`「委譲の要否判定」節に従って判定し、 対象が特定済みで読む範囲が少量の場合はメインが自ら実施してよい。 ## 即時対応 作業中に、作業品質・効率などに大きく影響する問題(規範・手順の矛盾など)が見つかった場合、メインが以下の手順で対応することを認める。 (サブエージェントはこれを実施してはならない。その場合はメインへエスカレーションすること) 1. `agent-toolkit/rules/01-agent.md`「指摘発生時の扱い」が定める現物との照合を経て、修正内容を確定する 2. 正式な修正(計画ファイル作成からの一連の正式なプロセス)の実施時機を、委譲より前に判定する - ①のレーン分けより前に生じた事象は、当該セッションの計画へ主題の近いレーンの対象として組み込む。 - ①のレーン分け以降に生じた事象は、次セッションで正式に修正するためのAWIを`source: process-wi`で登録する。 ユーザーの指示により生じた事象を含め、レーンを新設せず、既存レーンの対象へも渡さない。 3. メインが自ら実施せず、サブエージェントに問題の解決からコミットまでを移譲する - `agents_server.start`へ`model_type="execute"`を渡して委譲先を起動し、engine、model及びeffortの解決をサーバーへ委ねる。 - 起動時は作業ディレクトリの絶対パス、適用する規範、`agent-toolkit/`配下の規範文書を改訂する許可を渡す。 - 手順2でAWIを登録した事象では、確定した修正内容を委譲文へ書き起こさず、当該AWIの正本ファイル名と、 `atk wi show --target-repo=<対象リポジトリの絶対パス> --skip-pull`で本文を取得する指示を渡す。 手順2で当該セッションの計画へ組み込んだ事象では、確定した修正内容を委譲文へ書く。 - 受領後に成果物とコミットを実測して検収する。以降そのセッションでは修正後の規範に従う。 - メインが対象の読解と修正でコンテキストを消費すると、①で固定したready集合の処理へ残るコンテキストが減るため。 4. 手順2でAWIを登録した事象は、即時対応の差分と根拠を当該項目へ`atk wi edit --append <本文>`で記録する。根拠には対応commitの完全OIDと変更ファイルのリポジトリ相対パスを書く。 この記録を持つ項目は、次のセッションの計画担当が`references/run-lanes.md`の充足済みの検証を経て、当該範囲を`充足済み`と確定できる。記録を持たない項目は新しい実装変更として計画レーンへ送る。 いずれの場合もpickerとメインは充足を理由に終端せず、充足の成否は計画担当が確定する。 このルールはユーザーが作業手順の不備を指摘した場合なども適用してよいものとする。 また、`agent-toolkit:session-review`で見つかった改善案は必ずこの手順で対応する。 (次のセッションでの同じ問題の再発を回避するため)