ai_fixステップの改善: 具体的な修正手順とstep_iteration表示

- ai_fixのinstruction_templateを強化
  - {step_iteration}を使って何回目のレビューか明示
  - 具体的な修正手順を明記(Read→grep→Edit→Test→Report)
  - 報告フォーマットを明示(「修正済み」ではなく具体的に報告)
  - 禁止事項を明示(ファイルを開かずに報告することを禁止)

- coderエージェントに「レビュワーの指摘は絶対」を追加
  - レビュワーが「未修正」と指摘したら事実確認を優先
  - 「修正済みのはず」という思い込みを捨てる
  - 反論せず、まず従う

これにより、9回連続未修正のような問題が発生しにくくなる。
This commit is contained in:
nrslib 2026-02-01 22:46:42 +09:00
parent 3bc0251aa9
commit 1ee73c525c
8 changed files with 164 additions and 35 deletions

View File

@ -12,10 +12,17 @@ You are the implementer. **Focus on implementation, not design decisions.**
- Don't swallow errors; fail fast (Fail Fast)
- Don't guess; report unclear points
**Reviewer's feedback is absolute. Your understanding is wrong.**
- If reviewer says "not fixed", first open the file and verify the facts
- Drop the assumption "I should have fixed it"
- Fix all flagged issues with Edit tool
- Don't argue; just comply
**Be aware of AI's bad habits:**
- Hiding uncertainty with fallbacks → Prohibited (will be flagged in review)
- Writing unused code "just in case" → Prohibited (will be flagged in review)
- Making design decisions arbitrarily → Report and ask for guidance
- Dismissing reviewer feedback → Prohibited (your understanding is wrong)
## Most Important Rule

View File

@ -209,12 +209,31 @@ steps:
- condition: Cannot proceed, insufficient info
next: plan
instruction_template: |
Address the AI Reviewer's feedback.
Focus on:
- Correcting incorrect assumptions
- Fixing plausible-but-wrong implementations
- Aligning with existing codebase patterns
- Removing scope creep
**This is AI Review iteration {step_iteration}.**
If this is iteration 2 or later, it means your previous fixes were not actually applied.
**Your belief that you "already fixed it" is wrong.**
**First, acknowledge:**
- Files you thought were "fixed" are actually not fixed
- Your understanding of previous work is incorrect
- You need to start from zero
**Required actions:**
1. Open all flagged files with Read tool (drop assumptions, verify facts)
2. Search for problem code with grep to confirm it exists
3. Fix confirmed problems with Edit tool
4. Run tests to verify (`./gradlew :backend:test` etc.)
5. Report specifically "what you checked and what you fixed"
**Report format:**
- ❌ "Already fixed"
- ✅ "Checked file X at L123, found problem Y, fixed to Z"
**Absolutely prohibited:**
- Reporting "fixed" without opening files
- Judging based on assumptions
- Leaving problems that AI Reviewer REJECTED
pass_previous_response: true
- name: reviewers

View File

@ -204,12 +204,31 @@ steps:
- WebSearch
- WebFetch
instruction_template: |
Address the AI Reviewer's feedback.
Focus on:
- Correcting incorrect assumptions
- Fixing plausible-but-wrong implementations
- Aligning with existing codebase patterns
- Removing scope creep
**This is AI Review iteration {step_iteration}.**
If this is iteration 2 or later, it means your previous fixes were not actually applied.
**Your belief that you "already fixed it" is wrong.**
**First, acknowledge:**
- Files you thought were "fixed" are actually not fixed
- Your understanding of previous work is incorrect
- You need to start from zero
**Required actions:**
1. Open all flagged files with Read tool (drop assumptions, verify facts)
2. Search for problem code with grep to confirm it exists
3. Fix confirmed problems with Edit tool
4. Run tests to verify (`./gradlew :backend:test` etc.)
5. Report specifically "what you checked and what you fixed"
**Report format:**
- ❌ "Already fixed"
- ✅ "Checked file X at L123, found problem Y, fixed to Z"
**Absolutely prohibited:**
- Reporting "fixed" without opening files
- Judging based on assumptions
- Leaving problems that AI Reviewer REJECTED
pass_previous_response: true
rules:
- condition: AI Reviewer's issues have been fixed

View File

@ -216,11 +216,31 @@ steps:
- WebSearch
- WebFetch
instruction_template: |
Address the AI Reviewer's feedback.
Focus on:
- Correcting incorrect assumptions
- Fixing plausible-but-wrong implementations
- Aligning with existing codebase patterns
**This is AI Review iteration {step_iteration}.**
If this is iteration 2 or later, it means your previous fixes were not actually applied.
**Your belief that you "already fixed it" is wrong.**
**First, acknowledge:**
- Files you thought were "fixed" are actually not fixed
- Your understanding of previous work is incorrect
- You need to start from zero
**Required actions:**
1. Open all flagged files with Read tool (drop assumptions, verify facts)
2. Search for problem code with grep to confirm it exists
3. Fix confirmed problems with Edit tool
4. Run tests to verify (`./gradlew :backend:test` etc.)
5. Report specifically "what you checked and what you fixed"
**Report format:**
- ❌ "Already fixed"
- ✅ "Checked file X at L123, found problem Y, fixed to Z"
**Absolutely prohibited:**
- Reporting "fixed" without opening files
- Judging based on assumptions
- Leaving problems that AI Reviewer REJECTED
- Removing scope creep
pass_previous_response: true
rules:

View File

@ -12,10 +12,17 @@
- エラーは握りつぶさず、早期に失敗させるFail Fast
- 推測で実装せず、不明点は報告する
**レビュワーの指摘は絶対。あなたの認識が間違っている。**
- レビュワーが「未修正」と指摘したら、まずファイルを開いて事実確認
- 「修正済みのはず」という思い込みを捨てる
- 指摘された問題を全て Edit tool で修正する
- 反論せず、まず従う
**AIの悪い癖を自覚する:**
- 不確実なときにフォールバックで隠す → 禁止(レビューで指摘される)
- 「念のため」で未使用コードを書く → 禁止(レビューで指摘される)
- 設計判断を勝手にする → 報告して判断を仰ぐ
- レビュワーの指摘を軽視する → 禁止(あなたの認識が間違っている)
## 最重要ルール

View File

@ -205,12 +205,31 @@ steps:
- condition: 判断できない、情報不足
next: plan
instruction_template: |
AI Reviewerのフィードバックに対応してください。
以下に集中してください:
- 間違った仮定の修正
- もっともらしいが間違っている実装の修正
- 既存コードベースのパターンとの整合
- スコープクリープの除去
**これは {step_iteration} 回目の AI Review です。**
2回目以降は、前回の修正が実際には行われていなかったということです。
**あなたの「修正済み」という認識が間違っています。**
**まず認めること:**
- 「修正済み」と思っていたファイルは実際には修正されていない
- 前回の作業内容の認識が間違っている
- ゼロベースで考え直す必要がある
**必須アクション:**
1. 指摘された全ファイルを Read tool で開く(思い込みを捨てて事実確認)
2. 問題箇所を grep で検索して実在を確認する
3. 確認した問題を Edit tool で修正する
4. テストを実行して検証する(`./gradlew :backend:test` 等)
5. 「何を確認して、何を修正したか」を具体的に報告する
**報告フォーマット:**
- ❌ 「既に修正されています」
- ✅ 「ファイルXのL123を確認した結果、問題Yが存在したため、Zに修正しました」
**絶対に禁止:**
- ファイルを開かずに「修正済み」と報告
- 思い込みで判断
- AI Reviewer が REJECT した問題の放置
pass_previous_response: true
- name: reviewers

View File

@ -213,12 +213,31 @@ steps:
- WebSearch
- WebFetch
instruction_template: |
AI Reviewerのフィードバックに対応してください。
以下に集中してください:
- 間違った仮定の修正
- もっともらしいが間違っている実装の修正
- 既存コードベースのパターンとの整合
- スコープクリープの除去
**これは {step_iteration} 回目の AI Review です。**
2回目以降は、前回の修正が実際には行われていなかったということです。
**あなたの「修正済み」という認識が間違っています。**
**まず認めること:**
- 「修正済み」と思っていたファイルは実際には修正されていない
- 前回の作業内容の認識が間違っている
- ゼロベースで考え直す必要がある
**必須アクション:**
1. 指摘された全ファイルを Read tool で開く(思い込みを捨てて事実確認)
2. 問題箇所を grep で検索して実在を確認する
3. 確認した問題を Edit tool で修正する
4. テストを実行して検証する(`./gradlew :backend:test` 等)
5. 「何を確認して、何を修正したか」を具体的に報告する
**報告フォーマット:**
- ❌ 「既に修正されています」
- ✅ 「ファイルXのL123を確認した結果、問題Yが存在したため、Zに修正しました」
**絶対に禁止:**
- ファイルを開かずに「修正済み」と報告
- 思い込みで判断
- AI Reviewer が REJECT した問題の放置
pass_previous_response: true
rules:
- condition: AI Reviewerの指摘に対する修正が完了した

View File

@ -204,12 +204,31 @@ steps:
- WebSearch
- WebFetch
instruction_template: |
AI Reviewerのフィードバックに対応してください。
以下に集中してください:
- 間違った仮定の修正
- もっともらしいが間違っている実装の修正
- 既存コードベースのパターンとの整合
- スコープクリープの除去
**これは {step_iteration} 回目の AI Review です。**
2回目以降は、前回の修正が実際には行われていなかったということです。
**あなたの「修正済み」という認識が間違っています。**
**まず認めること:**
- 「修正済み」と思っていたファイルは実際には修正されていない
- 前回の作業内容の認識が間違っている
- ゼロベースで考え直す必要がある
**必須アクション:**
1. 指摘された全ファイルを Read tool で開く(思い込みを捨てて事実確認)
2. 問題箇所を grep で検索して実在を確認する
3. 確認した問題を Edit tool で修正する
4. テストを実行して検証する(`./gradlew :backend:test` 等)
5. 「何を確認して、何を修正したか」を具体的に報告する
**報告フォーマット:**
- ❌ 「既に修正されています」
- ✅ 「ファイルXのL123を確認した結果、問題Yが存在したため、Zに修正しました」
**絶対に禁止:**
- ファイルを開かずに「修正済み」と報告
- 思い込みで判断
- AI Reviewer が REJECT した問題の放置
pass_previous_response: true
rules:
- condition: AI Reviewerの指摘に対する修正が完了した