Skip to content

test: N1P-04/05のfake launcherが優先順位逆転を決定論的に検出しない #447

Description

@kappaseijin4claude

背景

Issue #444(N1投入前提実装、PR #446)のformal review(agmsg_reviewer_claude)で、
変異試験N1P-04/05(阻害画面判定の優先順位検証)の検出力が不完全であることが判明した。

何が問題か

PR #446本文は「準備完了の判定を阻害画面の判定より先にする → KILLED(N1P-04/05)」と
主張していたが、reviewerが独立に同じ変異を当てて10回連続実行したところ、
N1P-04は5/10でSURVIVED、N1P-05は6/10でSURVIVEDした。

原因(reviewer調査)

fake launcherは阻害画面のテキストを出力した後sleep 1し、その後? for shortcuts
出力する。command_wait_n1_readyは0.2秒間隔でポーリングし、その時点までに蓄積された
ログ全文を評価する。優先順位を反転する変異を当てても、「阻害画面のテキストだけが
見えている(readyテキストがまだ出ていない)」タイミングでポーリングが命中すれば、
変異の有無に関わらず正しく阻害画面を検出できてしまう。

development.rule.md「対照は、疑っている失敗モードを再現できる条件で選ぶ」原則に
照らすと、この対照は阻害画面とreadyテキストが同時に存在する状態を保証しておらず、
疑っている失敗モード(優先順位の逆転)を確実には再現できていない。

実装自体への影響

実装自体は正しく機能している(変異なしでは常にPASS)。問題はテストの検出力のみ。
CI環境のタイミング変動次第で、この特定の回帰(優先順位の逆転)が将来CIをすり抜ける
可能性がある、という潜在リスク。

修正案(reviewer提案)

fake launcherを、阻害画面のテキストと? for shortcuts同時に(1回の書き込みで)
出力するよう変更すれば、優先順位ロジックの検証が完全に決定論的になる。

対象

  • tests/test_pilot_gate_runner.bats(N1P-04/05に対応するfake launcher fixture)

担当

実装: programmer
formal review: reviewer

README への影響

無。

Refs #444

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions