Skip to content

検査の記録の集計で閾値を見直せない: トリガーの評価が 0 回・落ちた工程が「不明」・流出不具合の記録が 0 行 #2300

Open

Description

@takemi-ohama

何を見つけたか

検査のトリガーの閾値(.ndf/pace.json の triggers: score 10・common_weight 2・lines 3000・escapes 1・hours 24)を見直すかを、検査の記録の集計で決められない。2026-10-31 に打った python3 plugins/ndf/scripts/check-trigger.py stats --root /work/ai-plugins の結果:

数 値
トリガーの評価(eval) 0 回(立った 0)
検査 26 回(すべて PR を指す検査 scope: pr。前回からの差分の検査 scope: since は 0)
落ちた検査 18 回(構造改善の工程 refactor 13 回・工程が「不明」5 回)
検査の後に逃げた不具合 0 件(記録そのものが 0 行)
  1. 閾値を見直す材料が溜まらない。 閾値が効くのは pace: fast のトリガーの評価だけで、このリポジトリのスプリントは pace: auto の PR ごとの検査(--target-pr)で回っている。pace.md の「検査を 5 回回した後に閾値を見直す」は、PR を指す検査を数えても満たせない
  2. 落ちた工程が「不明」の行がある。 PR スプリント m26-1 #2268 の 3 回・PR スプリント m2171 #2209 の 1 回・PR スプリント m2087 #2152 の 1 回は failed_at: "不明" で、record --target-pr --failed が計画の状態から工程を読めなかった(plugins/ndf/scripts/check-trigger.py の record_target)
  3. 流出不具合の記録が 0 行である。 記録を書くのは new fix --escape-of / new impl --escape-of で組んだプランだけで、ほかの経路(例: スプリント l20261031-1 の PR Docs: #2206 の要求の写しを本文の見出しの形に合わせる #2245)で直した不具合は残らない

どこで見つけたか

スプリント l20261031-3 の振り返り(/ndf:retrospective)。起点 #2216 、スプリントの PR #2283 、本番の PR #2298 。記録は ~/.local/state/ndf/checks/devbasex__ai-plugins.jsonl

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

このスプリントは factory/ の進捗の受け口の照合と起票の代行(#2216)を作った。検査の記録の書き方と集計(check-trigger.py・pace.md)は変えていない

直さないと何が起きるか

閾値を測らずに据え置くか、測らずに変えるしかなくなる(Value 3 に反する)。落ちた理由の 3 割弱(5/18)を数えられず、流出不具合 0 件が「逃げていない」のか「数えていない」のかを区別できない

受け入れ条件

  • stats が、閾値を見直す材料が足りるかと、足りないときは何が足りないかを出す
  • 落ちた検査の行が、落ちた工程を「不明」にしない(読めないときはその理由を残す)
  • マージ済みの変更の不具合を --escape-of を使わずに直したとき、流出不具合として数えるか、数えていないことが stats に出る

起票者の推定

  • 受け入れ条件 3 つは起票者(振り返りの AI)の推定で、利用者の指示ではない。振り返りの依頼(2026-10-31)は「閾値の見直しが要るかを書く」だけである
  • 根拠: Value 3(測って決める)・Value 4(決まった手順はスクリプトに)

由来

PR #2298(スプリント l20261031-3 の本番の配布)の振り返り

追記: スプリント m26-2 の振り返り(2026-11-01)の材料

2026-11-01 に打った check-trigger.py stats --root /work/ai-plugins は、評価 0 回(立った 0)・検査 33 回(すべて PR を指す)・落ちた検査 23 回(refactor 15・「不明」8)・逃げた不具合 0 件だった。前回(26 回・18 回・不明 5)から、3 つの点がそのまま続いている。

追記: スプリント m26-3 の振り返り(2026-11-01)の材料

2026-11-01 に打った check-trigger.py stats --root /work/ai-plugins(10.27.5)は、評価 0 回(立った 0)・検査 34 回(すべて PR を指す)・落ちた検査 23 回・逃げた不具合 0 件だった。m26-2 の時点(33 回・23 回)から、スプリントの PR #2348 の検査が 1 回増えただけである。

  • この 1 回は 1 度で通り(落ちた行 0)、findings に review の件数(rounds 2・findings 1・fixed 1)と構造改善の件数(applied 11・reverted 0)がそろって載った。m26-2 で見た「件数が載らない」穴は、キューを強制終了しなかった今回は出なかった
  • 評価が 0 回のまま 4 本目のスプリントを終えた。このリポジトリのスプリントは pace: auto の PR を指す検査だけで回り、.ndf/pace.json の triggers は一度も使われていない。閾値を見直す材料は依然として無い
  • リリース後テストは 24 件すべて合格で、逃げた不具合は 0 件。ただし --escape-of 以外の経路で直した不具合は数えない(3 つ目の点)ため、0 件は「逃げていない」の根拠にならない

追加の実測(2026-11-02、スプリント lroot-2 の振り返り)

check-trigger.py stats --root /work/ai-plugins(ndf 10.27.6): トリガーの評価 0 回(立った 0)・検査 37 回(すべて scope: pr)・落ちた 25 回・逃げた不具合 0 件(記録 0 行)。前回の 26 回から 11 回増えたが、閾値の材料(eval)は 0 回のままである。PR #2363 の 1 回目の落ちは、また failed_at: "不明" だった(cross-review が max_rounds で終わった回)

追記: スプリント lroot2-2 の振り返り(2026-11-02)の材料

2026-11-02 に打った check-trigger.py stats --root /work/ai-plugins(10.27.7)は、評価 0 回(立った 0)・検査 39 回(すべて PR を指す)・落ちた検査 25 回・逃げた不具合 0 件だった。m26-3 の時点(34 回・23 回)から、検査が 5 回増えた。このスプリントの検査(スプリントの PR #2392 )で、4 つ目の穴の原因を確かめた。

  • 件数が載らない原因は、関門で止まった後の再開である(m26-2 で「未確認」とした推定を確かめた)。 検査のプランは merge-gate で終了コード 10(手動確認の行が未確認)で止まり、再開してから merge と record を通った。再開後の計画の state.json の log には record の 1 行しか残らず、findings_of が読む refactor と review の counts が無い。この検査の構造改善は案 A を通せずに全部取り消し、cross-review は 1 ラウンド・指摘 0 件だったが、記録の findings は applied・reverted が null で review の件数のキーを持たない。記録は .ndf/loop/lroot2/lap-2/sprint/4-check-state/(ai-plugins の主ディレクトリ)
  • 同じ検査が 2 行記録された。 pr-2392 の merged の行が 05:53:36Z と 05:53:55Z の 2 行ある(01-record.out と 03-record.out。再開で record が 2 回流れた)。stats は検査を 2 回と数える
  • 逃げた不具合が 0 件のままである。 このスプリントのリリース後テストは、配布した 10.27.10 の退行(Agent の ndf:worker の経路で document-style が届かない。Agent の ndf:supervisor が worker の起動指示に「読む Skill」を置かず、設計の工程の ndf:worker に document-style が届かない #2399)を見つけた。--escape-of の経路で直していないため、記録に載らない(3 つ目の点)
  • 評価は 0 回のまま 5 本目のスプリントを終えた。このスプリントも pace: auto で、.ndf/pace.json の triggers は使われていない

追記: スプリント lflow-1 の振り返り(2026-11-04)の材料

2026-11-04 に check-trigger.py stats --root /work/ai-plugins(10.27.7)を実行した結果は、評価 0 回(立った 0)・検査 53 回(すべて Pull Request が対象)・落ちた検査 35 回・逃げた不具合 0 件だった。lroot2-2 の時点の 39 回・25 回から、検査が 14 回増えた。スプリントの PR #2414 の検査は 5 回記録され、うち 4 回が落ちた。

振り返り: #2426 (comment)

実測の追加(2026-11-06。スプリント lflow2-11 の振り返り)

check-trigger.py stats: トリガーの評価 0 回・検査 72 回(すべて scope: pr)・完走しなかった記録 40 回(構造改善 22・工程が「不明」16・レビュー 1・マージ 1)・逃げた不具合 0 件。

  • 工程が「不明」の行は 5 行から 16 行になった
  • マージの行のうち 11 行は採用と指摘のどちらの値も持たない
  • 手で続行した検査の実績がマージの行に載らない。PR スプリント lflow2-11 #2625 の採用 3 件は applied: null で、失敗の行に unconfirmed: 3 が残る
  • 同じ期間に題に Fix を含む develop 宛の PR が 12 本マージされている。流出不具合に当たるものの件数は未確認

記録: #2604 (comment)

実測の追加(2026-11-06。スプリント lroot3-18 の振り返り)

check-trigger.py stats: トリガーの評価 0 回・検査 72 回(すべて scope: pr)・完走しなかった記録 40 回・逃げた不具合 0 件で、スプリント lflow2-11 の振り返りの時点と同じ値である。

記録: #2631 (comment)

Activity

  1. takemi-ohama commented on Nov 5, 2026

    @takemi-ohama
    ContributorAuthor

    同じ事象を PR #2561 の作業中に確認した。

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions