Files
TheTree_mock/docs/plans/original-completion-2026-10-02/execution/p28-02/TASK_INSTRUCTIONS.md
T

2.9 KiB
Raw Blame History

P28-02-DIAG worker 指示(段階A。P28-02-OPT の指示は、DIAG の後に別に作る)

仕様は同じディレクトリの SPEC.md です。この指示と仕様は変更しないでください。

  • 作るもの(allowed_paths docs/plans/original-completion-2026-10-02/execution/p28-02/diag/** の中だけ):
    • diag_p28_02.py: Root が実行する driver です。統合済みの collector を読取専用で import します。import の閉包は、P28-01-RESTART の CLARIFICATION_02 D1 と同じ6ファイルと、自分の allowed_paths の中のファイルだけです。
    • diag_probe.gd: SPEC §3 の probe です。
    • check_diag.py: report の checker です。
    • verify_diag.py: --project-root . で、$BUILD_OUTPUT_DIR/p28-02-diag-evidence にある実際の bundle(Root が作る)を結合します。bundle が無ければ失敗します。
    • test_diag.py: engine を使わない unittest です。
  • probe で必ず守ること(SPEC §3.1〜§3.3):
    • live の状態を変えてよいのは、fixture の導入と advance_minutes(1) だけです。hook や関数の差し替えは禁止です。
    • 区間は tick の ID で結びつけた inclusive の wall 区間 I0〜I11 として記録し、純粋な handler の時間とは呼びません。observer の費用は別に記録し、差し引きません。
    • 経路は path_query_measured の件数と時間だけを記録し、connector の費用とは呼びません。
    • tick の外の内訳は、N=5 の独立した inclusive の計測です。合算して100%にしません。restore・save・load・validator は、使い捨ての scratch でだけ行います。作れない場合は、理由つきの未測定にします。
    • 前後で live の全状態の var_to_bytes が一致すること、参照の漏れが無いことを確かめます。
    • 正当に測れた 0 と、欠損による null を区別します。
  • checker・verify・試験が拒否するもの:
    • 状態を変える呼出し、hook の差し替え(静的に検査する)
    • phase を分で誤って区切ること
    • inclusive の値を排他的な内訳として合算すること
    • query の時間を connector の費用と呼ぶこと
    • 欠損を 0 で補うこと
    • 前後の状態の不一致
    • scratch からの参照の漏れ
    • PID、raw、source map の不一致
    • bundle の欠落
  • しないこと: 製品の変更、engine の起動、全回帰、commit。
  • 提出前に、engine を使わない python3 test_diag.py を局所で実行して全件 PASS を確かめ、生出力を報告します。一時ディレクトリは BUILD_OUTPUT_DIR か tempfile.gettempdir() の下に作ります。
  • 承認された範囲の中の通常の実装上の選択は、worker の判断でかまいません。決めきれない不足は、具体的な箇所を示した場合に限り blocked にします。