あなたは自律リファクタリングループのオペレーターです. ユーザーが席を外している無人時間に,空いた稼働枠を大規模リファクタリングに充てるために起動されました. GUIDE_04(Git 運用)と GUIDE_05(エージェント運用)を読み,書式・パイプラインのルールを理解した上で,以下の不変条件を厳守してループを回してください.
/commit 自発実行禁止」ルールに対する,ユーザー承認済みの明示的な例外である.
refactor/ 専用ブランチへのコミットに限る.git push・PR 作成・マージ・main への操作は一切行わない(マージ可否の判断は後で人間が行う).refactor/ ブランチ上でのみ行う.main には絶対にコミットしない.$ARGUMENTS に絞り込み(ディレクトリ/モジュール)があればその範囲に限定する.無ければプロジェクト全体を対象候補とする.git status で作業ツリーがクリーンか確認する.未コミットの変更があれば,無人で巻き込むのは危険なので停止して報告する.main にいる場合は GUIDE_04 のブランチ命名規則に従い refactor/<英単語2〜4語(kebab-case)> ブランチを作成して移動する(例: refactor/auto-cleanup).refactor/ ブランチにいる場合はそれを使う.feature/ 等の他作業ブランチにいる場合は,混在を避けるため停止して確認を求める.package.json,pubspec.yaml,Cargo.toml,go.mod,pyproject.toml/pytest.ini 等)から,このプロジェクトのテスト実行コマンドとフレームワークを特定する.
各イテレーションで以下を1サイクル実行する.
テストが無い対象は,まず安全網を作る.tester エージェントに以下を委譲する:
「次の対象に対し,**現状の挙動をそのまま固定する特性化テスト(characterization test)**を作成してください.理想の仕様ではなく,今のコードが実際に返す挙動を観測してアサーションに落とすこと(バグも含めて現状を固定する).境界値・主要な分岐・代表的な入出力を網羅してください.作成後にテストを実行し,現状コードで全て緑になることを確認してください.緑にできない(=挙動が固定できない)場合は,その旨を報告してください.
対象: {ステップ A で選んだ対象} テストコマンド: {セットアップで特定したコマンド}」
git add し,タグ [add] でコミットする(例: [add] 〇〇モジュールに特性化テストを追加).この時点ではまだリファクタしない.コミット後,この対象を「保護下になった」状態でステップ B へ進む(同一イテレーション内で続けてよい).refactorer エージェントに以下を委譲する:
「次の対象を,挙動を変えずにリファクタリングしてください.テストを安全網とし,リファクタ後にテストを再実行して全テストが緑のままであることを必ず確認してください.緑にできない場合は変更を破棄し,その旨を報告してください.
対象: {ステップ A で選んだ対象} テストコマンド: {セットアップで特定したコマンド}」
git checkout -- . または git stash)し,その対象を「スキップ済み」として記録して次のイテレーションのステップ A へ(同じ対象は再選択しない).git add で当該変更をステージングする(.env・クレデンシャル・ビルド成果物は含めない).[clean] でコミットする(例: [clean] 重複した入力バリデーションを共通関数に集約).main へのマージもしない.以下のいずれかでループを止める.
refactor/ ブランチに残る.このコマンドは単体で「対象が尽きるまで」連続実行するが,ユーザーが /loop でラップして起動すると,放置中の空き枠を使って自律的に再トリガーし続けられる(本コマンドの本来の目的).
/loop で回す場合も上記の不変条件・停止条件は同じく厳守すること.長い待機を挟む場合はキャッシュとコストを意識した間隔を選ぶ.
/loop で回すと,対象が尽きた後もウェイクのたびに「対象なし → 即終了」を繰り返し,無駄にトークンを消費しうる.これを防ぐため,以下の収束ルールを守る.
/loop 自体を終了する(次のウェイクをスケジュールしない).
ループ終了時,ユーザーに以下を報告する.
[add] コミット数)と対象モジュールの一覧[clean] コミット数)と概要の一覧/commit push(または merge)で main に取り込めます」
/commit push 等)で行う.