Local Autofix PR
入力
[自由文] [--pr 番号] [--ci-only] [--reviews-only] [--no-push]
未指定なら現在ブランチのPRを対象にする。
--ci-onlyはCI失敗だけを収集・修正対象とし、レビュー指摘を取得しない。
--reviews-onlyはレビュー指摘だけを収集・修正対象とし、CI checks・失敗ログを取得しない。
どちらも未指定なら両方を対象とする。
no-pushではcommitまで行う。
ci-onlyとreviews-onlyが併記され、対象が決まらない場合は確認する。
境界
merge、close、approve、レビュー投稿、conversationのresolve、PR本文更新は行わない。 継続監視は行わず、呼出し時点の状態を扱う。 push前の具体的なdiff確認を保持する。
対象確認
git状態、認証、PRのstate、head repository・branch・SHA、baseを確認する。 dirty working treeを自動stash・resetしない。 作業前に既存の変更とindexの状態を確認する。既存の作業内容・ステージ状態・部分ステージを保持し、今回の変更だけをcommitできる作業環境で進める。必要に応じて独立したworktree等で隔離する。 ファイルが別であることだけを分離の保証にしない。既存indexを含めずにcommitできない場合や、重なる変更の扱いが決まらない場合だけ確認する。 別PRではheadとローカル対象を一致させる。対象を取り違えたまま編集・pushしない。 closed・mergedのPRは、追補修正の指示がなければ状況報告に留める。
指摘収集
指定フラグで情報源を絞り、両方が対象で独立して取得できる場合は並列に調べる。 対象の情報源からchecks・失敗ログ、またはレビューサマリ・未解決threadを取得し、取得範囲と不足を記録する。 大量threadやコメントはページの続きを確認し、先頭ページだけで全件取得と扱わない。 自分のコメントは原則対象外とする。
CIはエラー箇所の前後と終了理由を照合し、不足時に全文を分割して読む。 ログ末尾だけで原因を確定しない。 レビュー指摘は要件・コード・テストと照合し、そのまま正しいと扱わない。
早期終了
フラグや自由文の指定で絞り込んだ対象にCI失敗も未解決指摘もなければ変更せず終了する。 CIが対象で実行中だけなら結果未確定と報告する。 コンフリクトだけの場合は、このスキルでは解消せず報告する。 取得不能を「問題なし」と扱わない。
修正と検証
- 指摘の妥当性、原因、最小修正、検証方法を整理して共有する。
- 既に依頼された範囲の明確な修正は実行する。仕様判断が必要な項目だけ保留し、独立作業は進める。
- 対象コードを読み、必要な修正と回帰検証を行う。
- 利用可能な関連テスト・lint・型検査を実行し、対象内の失敗を直して再検証する。
- 行数だけで再承認を求めず、範囲や仕様が変わった場合に判断を求める。
情報源の限定にかかわらず、修正に必要な回帰検証は行う。 検証の委譲は必要な規模で選ぶ。 要件外のフォールバックや便乗リファクタリングを追加しない。
Commit・push前
差分、対象ファイル、検証結果、Conventional Commits形式のメッセージ、push先を準備して提示する。 未承認ならここで一度、commitと必要なpushの確認を得る。 承認後にメッセージを初めて生成する順序にはしない。 必要な検証が失敗した状態ではpushしない。
確認後、今回の変更だけをcommit対象にする。commit直前に、使用するindexのcached diff全体など、実際にcommitされる差分全体を確認済み差分と照合する。ファイル一覧の一致だけで済ませず、無関係な変更や未確認の変更がないことを確認してからcommitする。 commit後も実際のコミット差分が確認済み差分と一致し、元の作業環境の既存変更・ステージ状態・部分ステージが保持されていることを確認する。不一致があればpushせず原因を確認する。 no-pushでなければ、確認済みのPR headへ通常のpushを行う。 force pushや送信先の自動変更は行わない。
報告
PR、commit、pushの成否、修正した指摘、未対応の指摘と理由、未検証事項を報告する。 push後のCIは、実際に確認していなければ成功と扱わない。 返信・resolve・継続監視は実施していないことを必要に応じて示す。