From 28392b113a98dc8395e72499ab302c61dc973170 Mon Sep 17 00:00:00 2001 From: nrslib <38722970+nrslib@users.noreply.github.com> Date: Tue, 10 Feb 2026 05:46:33 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=AB=E3=83=BC=E3=83=97=E9=98=B2=E6=AD=A2?= =?UTF-8?q?=E3=81=AE=E3=81=9F=E3=82=81=E3=81=AB=E3=83=9D=E3=83=AA=E3=82=B7?= =?UTF-8?q?=E3=83=BC=E5=BC=B7=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- builtins/en/policies/review.md | 30 ++++++++++++++++++++++++++++++ builtins/ja/policies/review.md | 30 ++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) diff --git a/builtins/en/policies/review.md b/builtins/en/policies/review.md index 3d36f1f..4908fec 100644 --- a/builtins/en/policies/review.md +++ b/builtins/en/policies/review.md @@ -98,6 +98,36 @@ To prevent circular rejections, track findings by ID. - 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 +## Reopen Conditions (`resolved` -> open) + +Reopening a resolved finding requires reproducible evidence. + +- To reopen a previously `resolved` finding, all of the following are required + 1. Reproduction steps (command/input) + 2. Expected result vs. actual result + 3. Failing file/line evidence +- If any of the three is missing, the reopen attempt is invalid (cannot be used as REJECT grounds) +- If reproduction conditions changed, treat it as a different problem and issue a new `finding_id` + +## Immutable Meaning of `finding_id` + +Do not mix different problems under the same ID. + +- A `finding_id` must refer to one and only one problem +- If problem meaning, evidence files, or reproduction conditions change, issue a new `finding_id` +- Rewriting an existing `finding_id` to represent a different problem is prohibited + +## Handling Test File Size and Duplication + +Test file length and duplication are warning-level maintainability concerns by default. + +- Excessive test file length and duplicated test setup are `Warning` by default +- They may be `REJECT` only when reproducible harm is shown + - flaky behavior + - false positives/false negatives + - inability to detect regressions +- "Too long" or "duplicated" alone is not sufficient for `REJECT` + ## Boy Scout Rule Leave it better than you found it. diff --git a/builtins/ja/policies/review.md b/builtins/ja/policies/review.md index 77d91b8..1abdfdb 100644 --- a/builtins/ja/policies/review.md +++ b/builtins/ja/policies/review.md @@ -98,6 +98,36 @@ - `finding_id` のない指摘は無効(判定根拠として扱わない) - REJECTは `new` または `persists` の問題が1件以上ある場合のみ許可する +## 再オープン条件(resolved → open) + +解消済み指摘を再オープンする場合は、再現可能な根拠を必須とする。 + +- 前回 `resolved` の指摘を再オープンする場合、以下3点を必須で提示する + 1. 再現手順(コマンド/入力) + 2. 期待結果と実結果 + 3. 失敗箇所のファイル/行 +- 上記3点が欠ける再オープンは無効(REJECT根拠に使わない) +- 再現手順が変わる場合は別問題として新規 `finding_id` を発行する + +## finding_id の意味固定 + +同じ ID に別問題を混在させない。 + +- 同一 `finding_id` は同一問題にのみ使用する +- 問題の意味・根拠ファイル・再現条件が変わる場合は新規 `finding_id` を発行する +- 同一 `finding_id` の説明を後から別問題に差し替えることを禁止する + +## テストファイルの扱い + +テストファイルの長さや重複は、原則として保守性の警告として扱う。 + +- テストファイルの行数超過・重複コードは原則 `Warning` +- 以下の実害が再現できる場合のみ `REJECT` 可能 + - テスト不安定化(フレーク) + - 誤検知/検知漏れ + - 回帰検出不能 +- 「長すぎる」「重複がある」だけでは `REJECT` しない + ## ボーイスカウトルール 来たときよりも美しく。