Skip to content

docs(CLAUDE.md): 検出ルール追加時の必須手順を明文化 - #58

Merged
TTMK7777 merged 1 commit into
mainfrom
docs/claude-md-corpus-rule
Jul 31, 2026
Merged

docs(CLAUDE.md): 検出ルール追加時の必須手順を明文化#58
TTMK7777 merged 1 commit into
mainfrom
docs/claude-md-corpus-rule

Conversation

@TTMK7777

Copy link
Copy Markdown
Owner

背景

合成フィクスチャで「誤検知ゼロ」だったルール群が、実コード 10リポ 1,015ファイルでは 121件中の真の指摘が約2件(誤検知率98%) だった。ミューテーションテストに合格していても、ルールが実世界で妥当かは一切示さない

この失敗を、次に同じことをする人(含む将来の自分・エージェント)が踏まないよう proof として固定する。

追記内容

CLAUDE.md に「検出ルールを追加・変更するときの必須手順(proof)」節を新設。

  1. 単体テスト — 発火例と非発火例の両方。内部関数ではなく公開経路(scan_file / check_file)を通す(過去に配線漏れ2件、内部関数テストでは検出不能だった)
  2. 実コーパス計測 — 誤検知率を数値で出す。NET-NEW を全件目視。件数だけ見ない。「0件」は「見ていない」を疑う
  3. 既存ゲートとの重複確認 — CodeQL / Dependabot / シークレットスキャナが出していない指摘が実際に出るかを先に測る。出ないなら足す価値はない

あわせて誤検知を生みやすい既知の型5つを列挙(SQLキーワードは英単語 / 危険な関数名は同名メソッドを持つ / 定数実行は注入経路でない / 語の出現≠使用 / モジュール横断は行単位スキャナでは判定不能)。

検証

pytest 153件パス(ドキュメントのみの変更でコード影響なし)。

このリポジトリ固有の最重要ルールとして「自作の合成フィクスチャだけで
動くと判断しない」を proof として明記する。

背景:
合成フィクスチャで誤検知ゼロだったルール群が、実コード 10 リポ 1015
ファイルでは 121 件中の真の指摘が約 2 件(誤検知率 98%)だった。
ミューテーションテストに合格していても、ルールが実世界で妥当かは
一切示さない。この失敗を手順として固定する。

追記内容:
- 単体テストは発火例と非発火例の両方 + 公開経路を通す(配線漏れ検出)
- 実コーパス計測で誤検知率を数値化し、NET-NEW を全件目視する
- 既存ゲート(CodeQL/Dependabot/シークレットスキャナ)との重複を先に測る
- 誤検知を生みやすい既知の型 5 つ(SQLキーワードは英単語 / 同名メソッド /
  定数実行 / 語の出現≠使用 / モジュール横断は判定不能)
- 意図的に脆弱なテストには ignore-file を置く

検証: pytest 153 件パス(ドキュメントのみの変更でコード影響なし)
@github-actions

Copy link
Copy Markdown

Code Validation Results

  • Critical: 0
  • High: 0
  • Medium: 0
  • Low: 0
  • Info: 0

No critical issues found.

@TTMK7777
TTMK7777 merged commit e4ac362 into main Jul 31, 2026
4 checks passed
@TTMK7777
TTMK7777 deleted the docs/claude-md-corpus-rule branch July 31, 2026 09:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant