Skip to content

cross-review: 実行検証の無い指摘が insufficient_evidence になり、未解決の指摘を残したまま approved になる #706

Description

@takemi-ohama

何を見つけたか

cross-review で、未解決の major が残っているのに、指摘が数えない区分 insufficient_evidence へ落ち、新規性の母集合から外れて「新しい指摘 0 件」と判定される。 結果は approved になる。

ideabase の PR #45 のラウンド 2 で、3 件の指摘がいずれも suggested_check を実行できず insufficient_evidence になり、judge が NEW_FINDINGS=0 を返した。指摘のうち 2 件は別の担当が support を付けており、こちらでもコードを読んで再現を確かめられた(文書が実装と食い違っていた)。final を戻して修正のラウンドへ回した。

同じ形は PR #44 でも起きている(ラウンド 1 と 4 で 0 件の approved が返り、担当の輪番の都合で最新の head を見ていない担当がいた)。

落ちる条件は、実行検証の有無だけでは決まらない

区分を決める関数(plugins/ndf/skills/cross-review/scripts/state.py:3443_classify_finding)は上から順に見る。実行検証が再現せず(not_run を含む)、棄却(refute)も無い指摘は、根拠を持ち、major 以上で、support が 1 件以上または提案した担当が 2 者以上のときだけ needs_human_judgment(数える区分、:3431COUNTED_CLASSIFICATIONS)になる。根拠は evidencefalsification の両方が空でないこと(:2532_has_evidence)である。規約は docs/06-evidence.md:180-181 の区分の表にある。

最小の入力で関数を呼んだ結果:

major + support + 根拠あり、実行検証 not_run  -> needs_human_judgment   # 数える
major + support、根拠なし                     -> insufficient_evidence
minor + support + 根拠あり                    -> insufficient_evidence
major + 根拠あり、反証の担当が insufficient_evidence を返した -> insufficient_evidence
major + 根拠あり、反証なし(担当 1 者)       -> insufficient_evidence

--verify-command を渡していなくても、support の付いた根拠のある major は数える。 数えない区分へ落ちるのは、次のいずれかに当たる指摘である。

  • 反証の担当が support を返さなかった(insufficient_evidence を返した、または反証が無い)
  • 根拠の 2 項目(evidence / falsification)のどちらかが欠けている
  • 重要度が minor 以下である

PR #45support が付いていた 2 件が落ちた理由は、根拠の 2 項目の欠落か minor のどちらかになる。どちらだったかは未確認である。その実行の状態ファイル(cross-review-pr45-state.json)は手元に無い(find / -xdev -name 'cross-review-pr45-state.json' の出力なし)。

どこで見つけたか

なぜこの変更の範囲外なのか

ideabase の M1 の受け入れ条件は personal/worktime/ の振る舞いで、収束の判定そのものは配布元の cross-review が持つ。

直さないと何が起きるか

未解決の指摘を残したまま収束し、レビューを通ったことになる。 検証コマンドを持たない変更(文書だけの Pull Request、実行できる再現手順の無い指摘)では、実行検証で再現を示せないため、反証の担当が support を返さない major と、根拠の 2 項目を欠く指摘がこの経路へ入る。担当が support を付けた指摘でも、根拠の 2 項目が欠けていれば新規性から外れるため、「2 人が見て同じことを言っている」情報が判定に効かないことがある。

対処の候補: 実行検証ができない指摘は insufficient_evidence ではなく別の区分(未検証)として新規性に数える、または他の担当の support が付いた指摘は区分によらず数える。

由来

ideabase の M1(PR takemi-ohama/ideabase#45、PR takemi-ohama/ideabase#44)

進行

モード: standard / 作業ツリー: .worktrees/feat/issue-732-uncounted-classification / 計画: issues/issue-732-624-706-plan.md

  • 要求と受け入れ条件 — 2026-09-19 03:08
  • 作業場所の用意 — 2026-09-19 03:11
  • 設計 — 2026-09-19 03:12
  • 素材の収集と出典の確定
  • ドキュメント再構成 — 2026-09-19 03:20
  • ドキュメントレビュー — 2026-09-19 03:21
  • 計画 — 2026-09-19 11:01
  • 実装 — 2026-09-19 11:04
  • 構造改善 — 2026-09-19 19:35
  • 実装レビュー — 2026-09-19 21:41
  • 完了判定 — 2026-09-19 21:52
  • Pull Request — 2026-09-19 11:23
  • 確定仕様化 — 2026-09-21 20:53
  • 後片付け — 2026-09-19 10:56
  • 配布 — 2026-09-22 14:17
  • 体裁レビュー
  • リリース後テスト — 2026-09-22 15:06
  • 振り返り — 2026-09-22 15:38

閉じた理由

PR #790 で直り、ndf 10.16.0(2026-09-22、main / タグ ndf--v10.16.0、PR #810)で配布した。リリース後テスト(#810 (comment) )でこの課題の受け入れ条件はすべて合格した。

振り返り: #810 (comment)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: ndf-skillNDF の Skill 本体bugSomething isn't workingpriority: high実害・安全機構の欠落など、優先して対応する

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions