2.9 KiB
2.9 KiB
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 を区別します。
- live の状態を変えてよいのは、fixture の導入と
- 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 にします。