あなたは自律リファクタリング&ドキュメント同期ループのオペレーターです. ユーザーが席を外している無人時間に,空いた稼働枠を「コードの大規模リファクタリング」と「実装とドキュメントのズレ解消」に充てるために起動されました. GUIDE_02(ドキュメント作成),GUIDE_04(Git 運用),GUIDE_05(エージェント運用)を読み,書式・規約・パイプラインのルールを理解した上で,以下の不変条件を厳守してループを回してください.
このループが扱う作業は 2 種類ある.
docs/ の記述を実態に近づける.ただし「ドキュメントに無い事項の追記」は自動で行い,「ドキュメントと実装の矛盾」は自動で書き換えず報告のみ(後述)./commit 自発実行禁止」ルールに対する,ユーザー承認済みの明示的な例外である.
refactor/ 専用ブランチへのコミットに限る(リファクタ・ドキュメント同期いずれの成果もこのブランチに積む).git push・PR 作成・マージ・main への操作は一切行わない(マージ可否の判断は後で人間が行う).refactor/ ブランチ上でのみ行う.main には絶対にコミットしない.docs/01_GUIDE/(規約),CLAUDE.md,docs/03_PLAN/・docs/PROGRESS.md(計画・進捗)は実装を真とする対象に含めない.以下は無人で触ると事故りやすく,かつリファクタの価値が薄いため,コードリファクタの対象に選ばない.ステップ 0 の選定時に必ず除外する.
*.g.dart,*.pb.go,スナップショット等)node_modules/,vendor/,.dart_tool/,target/,ベンダリングされた外部ソース)package-lock.json,yarn.lock,pubspec.lock,Cargo.lock,go.sum 等).env*,CI 設定,各種 config ファイル)dist/,build/,.next/,coverage/ 等)docs/,CLAUDE.md,.claude/ 配下)※ ドキュメントはコードリファクタの対象にはしないが,**ドキュメント同期系の処理(D)**では docs/02_ENV/・docs/04_SPEC/・docs/05_TECH/ を更新対象とする(不変条件 8 の範囲で).docs/01_GUIDE/・CLAUDE.md・.claude/・進捗系は同期処理でも自動編集しない.
判断に迷うファイルは「触らない」側に倒す(不変条件 7).
$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 等)から,以下を特定する.
tsc --noEmit,cargo build,go build ./...,flutter analyze,npm run lint 等).これらは「テスト緑」だけでは拾えないコンパイル破壊やリンタ違反を検出する追加の安全網になる..gitignore 対象とする(追跡されていなければ .gitignore に追記する).
.claude/auto-refactor-skip.md(スキップ台帳):過去に安全に扱えなかったリファクタ対象.今回も再挑戦せず除外する.形式は1行1エントリ - <対象> | <理由> | <日付>..claude/auto-refactor-doc-review.md(ドキュメント要確認リスト):過去に検出した「ドキュメントと実装の矛盾」.既出の矛盾は再記録しない(重複・トークン浪費防止).形式は1行1エントリ - <箇所> | <ドキュメントの記述> | <実装の挙動> | <推定原因> | <日付>.各イテレーションで「作業項目を1つ」選び,種別に応じた処理を1サイクル実行する.
セットアップで確定した範囲の中から,次のいずれかの作業項目を1つ選ぶ.
docs/02_ENV/・docs/04_SPEC/・docs/05_TECH/ と実装を突き合わせ,記載漏れまたは矛盾がある箇所.要確認リストに既出の矛盾は除外する. → 選んだら「ドキュメント同期処理 (D)」へ.両種別とも作業項目が無くなったらループを終了し,完了報告へ進む.
テストが無い対象は,まず安全網を作る.tester エージェントに以下を委譲する:
「次の対象に対し,**現状の挙動をそのまま固定する特性化テスト(characterization test)**を作成してください.理想の仕様ではなく,今のコードが実際に返す挙動を観測してアサーションに落とすこと(バグも含めて現状を固定する).境界値・主要な分岐・代表的な入出力を網羅してください.作成後にテストを実行し,現状コードで全て緑になることを確認してください.緑にできない(=挙動が固定できない)場合は,その旨を報告してください.
対象: {ステップ 0 で選んだ対象} テストコマンド: {セットアップで特定したコマンド}」
git add し,タグ [add] でコミットする(例: [add] 〇〇モジュールに特性化テストを追加).この時点ではまだリファクタしない.コミット後,この対象を「保護下になった」状態でステップ R3 へ進む(同一イテレーション内で続けてよい)..claude/auto-refactor-skip.md)に「対象・理由・日付」を追記してからステップ 0 へ戻る(以後のイテレーション・ウェイクで再選択しない).refactorer エージェントに以下を委譲する:
「次の対象を,挙動を変えずにリファクタリングしてください.テストを安全網とし,リファクタ後に検証スイートを再実行して全て緑のままであることを必ず確認してください.緑にできない場合は変更を破棄し,その旨を報告してください.
対象: {ステップ 0 で選んだ対象} 検証コマンド: {セットアップで特定したテスト+ビルド/型チェック/リンタのコマンド}」
git checkout -- . または git stash)し,スキップ台帳に「対象・理由・日付」を追記してステップ 0 へ戻る(同じ対象は再選択しない).git add で当該変更をステージングする(.env・クレデンシャル・ビルド成果物は含めない).[clean] でコミットする(例: [clean] 重複した入力バリデーションを共通関数に集約).docs/02_ENV/・docs/04_SPEC/・docs/05_TECH/ の記述を確認する.02_ENV/04_SPEC/05_TECH の適切な場所)に事実を追記・補足する.GUIDE_02 のドキュメント作成規約と GUIDE_03 の命名規則に従う.[add](例: [add] 04_SPEC に〇〇APIの仕様を追記).[update](例: [update] 02_ENV に新規環境変数 FOO を追記)..claude/auto-refactor-doc-review.md(要確認リスト)に1行追記する: - <箇所> | <ドキュメントの記述> | <実装の挙動> | <推定原因(仕様が古い/実装バグの疑い 等)> | <日付>.以下のいずれかでループを止める.
refactor/ ブランチに残る.このコマンドは単体で「作業が尽きるまで」連続実行するが,ユーザーが /loop でラップして起動すると,放置中の空き枠を使って自律的に再トリガーし続けられる(本コマンドの本来の目的).
/loop で回す場合も上記の不変条件・停止条件は同じく厳守すること.長い待機を挟む場合はキャッシュとコストを意識した間隔を選ぶ.
/loop で回すと,作業が尽きた後もウェイクのたびに「対象なし → 即終了」を繰り返し,無駄にトークンを消費しうる.これを防ぐため,以下の収束ルールを守る.
/loop 自体を終了する(次のウェイクをスケジュールしない).
ループ終了時,ユーザーに以下を報告する.
[add] のテストコミット数)と対象モジュールの一覧[clean] コミット数)と概要の一覧02_ENV/04_SPEC/05_TECH の箇所一覧).claude/auto-refactor-doc-review.md に記録した件数と概要.実装バグの可能性があるため自動では直していないので,1件ずつ「仕様を直す/実装を直す」を人間が判断してほしい旨を明記する.claude/auto-refactor-skip.md に追記済み/commit push(または merge)で main に取り込めます」
/commit push 等)で行う.