Codex において僅かな揺れで指摘をくり返す挙動を抑制する最小の修正

This commit is contained in:
nrslib 2026-02-09 15:02:38 +09:00
parent 7d02d939e0
commit 3537a9f481
10 changed files with 92 additions and 24 deletions

View File

@ -9,8 +9,14 @@ Do not review AI-specific issues (already covered by the ai_review movement).
- Dead code - Dead code
- Call chain verification - Call chain verification
**Previous finding tracking (required):**
- First, extract open findings from "Previous Response"
- Assign `finding_id` to each finding and classify current status as `new / persists / resolved`
- If status is `persists`, provide concrete unresolved evidence (file/line)
## Judgment Procedure ## Judgment Procedure
1. Review the change diff and detect issues based on the architecture and design criteria above 1. First, extract previous open findings and preliminarily classify as `new / persists / resolved`
2. For each detected issue, classify as blocking/non-blocking based on Policy's scope determination table and judgment rules 2. Review the change diff and detect issues based on the architecture and design criteria above
3. If there is even one blocking issue, judge as REJECT 3. For each detected issue, classify as blocking/non-blocking based on Policy's scope determination table and judgment rules
4. If there is even one blocking issue (`new` or `persists`), judge as REJECT

View File

@ -7,8 +7,14 @@ Review the changes from a quality assurance perspective.
- Logging and monitoring - Logging and monitoring
- Maintainability - Maintainability
**Previous finding tracking (required):**
- First, extract open findings from "Previous Response"
- Assign `finding_id` to each finding and classify current status as `new / persists / resolved`
- If status is `persists`, provide concrete unresolved evidence (file/line)
## Judgment Procedure ## Judgment Procedure
1. Review the change diff and detect issues based on the quality assurance criteria above 1. First, extract previous open findings and preliminarily classify as `new / persists / resolved`
2. For each detected issue, classify as blocking/non-blocking based on Policy's scope determination table and judgment rules 2. Review the change diff and detect issues based on the quality assurance criteria above
3. If there is even one blocking issue, judge as REJECT 3. For each detected issue, classify as blocking/non-blocking based on Policy's scope determination table and judgment rules
4. If there is even one blocking issue (`new` or `persists`), judge as REJECT

View File

@ -14,10 +14,15 @@
- [x] Dead code - [x] Dead code
- [x] Call chain verification - [x] Call chain verification
## Previous Open Findings
| finding_id | Previous Status | Current Status (new/persists/resolved) | Evidence |
|------------|-----------------|-----------------------------------------|----------|
| ARCH-EXAMPLE-src-file-L42 | open | persists | `src/file.ts:42` |
## Issues (if REJECT) ## Issues (if REJECT)
| # | Scope | Location | Issue | Fix Suggestion | | # | finding_id | Status (new/persists) | Scope | Location | Issue | Fix Suggestion |
|---|-------|----------|-------|----------------| |---|------------|-----------------------|-------|----------|-------|----------------|
| 1 | In-scope | `src/file.ts:42` | Issue description | Fix approach | | 1 | ARCH-EXAMPLE-src-file-L42 | new | In-scope | `src/file.ts:42` | Issue description | Fix approach |
Scope: "In-scope" (fixable in this change) / "Out-of-scope" (existing issue, non-blocking) Scope: "In-scope" (fixable in this change) / "Out-of-scope" (existing issue, non-blocking)

View File

@ -15,8 +15,13 @@
| Documentation | ✅ | - | | Documentation | ✅ | - |
| Maintainability | ✅ | - | | Maintainability | ✅ | - |
## Previous Open Findings
| finding_id | Previous Status | Current Status (new/persists/resolved) | Evidence |
|------------|-----------------|-----------------------------------------|----------|
| QA-EXAMPLE-src-file-L42 | open | persists | `src/file.ts:42` |
## Issues (if REJECT) ## Issues (if REJECT)
| # | Category | Issue | Fix Suggestion | | # | finding_id | Status (new/persists) | Category | Issue | Fix Suggestion |
|---|----------|-------|----------------| |---|------------|-----------------------|----------|-------|----------------|
| 1 | Testing | Issue description | Fix approach | | 1 | QA-EXAMPLE-src-file-L42 | new | Testing | Issue description | Fix approach |
``` ```

View File

@ -86,6 +86,18 @@ Every issue raised must include the following.
Extract into a shared function." Extract into a shared function."
``` ```
## Finding ID Tracking (`finding_id`)
To prevent circular rejections, track findings by ID.
- Every issue raised in a REJECT must include a `finding_id`
- If the same issue is raised again, reuse the same `finding_id`
- For repeated issues, set status to `persists` and include concrete evidence (file/line) that it remains unresolved
- New issues must use status `new`
- Resolved issues must be listed with status `resolved`
- Issues without `finding_id` are invalid (cannot be used as rejection grounds)
- REJECT is allowed only when there is at least one `new` or `persists` issue
## Boy Scout Rule ## Boy Scout Rule
Leave it better than you found it. Leave it better than you found it.

View File

@ -9,8 +9,14 @@ AI特有の問題はレビューしないでくださいai_reviewムーブメ
- デッドコード - デッドコード
- 呼び出しチェーン検証 - 呼び出しチェーン検証
**前回指摘の追跡(必須):**
- まず「Previous Response」から前回の open findings を抽出する
- 各 finding に `finding_id` を付け、今回の状態を `new / persists / resolved` で判定する
- `persists` と判定する場合は、未解決である根拠(ファイル/行)を必ず示す
## 判定手順 ## 判定手順
1. 変更差分を確認し、構造・設計の観点に基づいて問題を検出する 1. まず前回open findingsを抽出し、`new / persists / resolved` を仮判定する
2. 検出した問題ごとに、Policyのスコープ判定表と判定ルールに基づいてブロッキング/非ブロッキングを分類する 2. 変更差分を確認し、構造・設計の観点に基づいて問題を検出する
3. ブロッキング問題が1件でもあればREJECTと判定する 3. 検出した問題ごとに、Policyのスコープ判定表と判定ルールに基づいてブロッキング/非ブロッキングを分類する
4. ブロッキング問題(`new` または `persists`が1件でもあればREJECTと判定する

View File

@ -7,8 +7,14 @@
- ログとモニタリング - ログとモニタリング
- 保守性 - 保守性
**前回指摘の追跡(必須):**
- まず「Previous Response」から前回の open findings を抽出する
- 各 finding に `finding_id` を付け、今回の状態を `new / persists / resolved` で判定する
- `persists` と判定する場合は、未解決である根拠(ファイル/行)を必ず示す
## 判定手順 ## 判定手順
1. 変更差分を確認し、品質保証の観点に基づいて問題を検出する 1. まず前回open findingsを抽出し、`new / persists / resolved` を仮判定する
2. 検出した問題ごとに、Policyのスコープ判定表と判定ルールに基づいてブロッキング/非ブロッキングを分類する 2. 変更差分を確認し、品質保証の観点に基づいて問題を検出する
3. ブロッキング問題が1件でもあればREJECTと判定する 3. 検出した問題ごとに、Policyのスコープ判定表と判定ルールに基づいてブロッキング/非ブロッキングを分類する
4. ブロッキング問題(`new` または `persists`が1件でもあればREJECTと判定する

View File

@ -14,10 +14,15 @@
- [x] デッドコード - [x] デッドコード
- [x] 呼び出しチェーン検証 - [x] 呼び出しチェーン検証
## 前回Open Findings
| finding_id | 前回状態 | 今回状態(new/persists/resolved) | 根拠 |
|------------|----------|----------------------------------|------|
| ARCH-EXAMPLE-src-file-L42 | open | persists | `src/file.ts:42` |
## 問題点REJECTの場合 ## 問題点REJECTの場合
| # | スコープ | 場所 | 問題 | 修正案 | | # | finding_id | 状態(new/persists) | スコープ | 場所 | 問題 | 修正案 |
|---|---------|------|------|--------| |---|------------|--------------------|---------|------|------|--------|
| 1 | スコープ内 | `src/file.ts:42` | 問題の説明 | 修正方法 | | 1 | ARCH-EXAMPLE-src-file-L42 | new | スコープ内 | `src/file.ts:42` | 問題の説明 | 修正方法 |
スコープ: 「スコープ内」(今回修正可能)/ 「スコープ外」(既存問題・非ブロッキング) スコープ: 「スコープ内」(今回修正可能)/ 「スコープ外」(既存問題・非ブロッキング)

View File

@ -15,8 +15,13 @@
| ドキュメント | ✅ | - | | ドキュメント | ✅ | - |
| 保守性 | ✅ | - | | 保守性 | ✅ | - |
## 前回Open Findings
| finding_id | 前回状態 | 今回状態(new/persists/resolved) | 根拠 |
|------------|----------|----------------------------------|------|
| QA-EXAMPLE-src-file-L42 | open | persists | `src/file.ts:42` |
## 問題点REJECTの場合 ## 問題点REJECTの場合
| # | カテゴリ | 問題 | 修正案 | | # | finding_id | 状態(new/persists) | カテゴリ | 問題 | 修正案 |
|---|---------|------|--------| |---|------------|--------------------|---------|------|--------|
| 1 | テスト | 問題の説明 | 修正方法 | | 1 | QA-EXAMPLE-src-file-L42 | new | テスト | 問題の説明 | 修正方法 |
``` ```

View File

@ -86,6 +86,18 @@
共通関数に抽出してください」 共通関数に抽出してください」
``` ```
## 指摘ID管理finding_id
同じ指摘の堂々巡りを防ぐため、指摘をIDで追跡する。
- REJECT時に挙げる各問題には `finding_id` を必須で付ける
- 同じ問題を再指摘する場合は、同じ `finding_id` を再利用する
- 再指摘時は状態を `persists` とし、未解決である根拠(ファイル/行)を必ず示す
- 新規指摘は状態 `new` とする
- 解消済みは状態 `resolved` として一覧化する
- `finding_id` のない指摘は無効(判定根拠として扱わない)
- REJECTは `new` または `persists` の問題が1件以上ある場合のみ許可する
## ボーイスカウトルール ## ボーイスカウトルール
来たときよりも美しく。 来たときよりも美しく。