Files
TheTree_mock/docs/plans/original-completion-2026-10-02/execution/p28-02/REGISTRATION_PROPOSAL.json
T

149 lines
6.9 KiB
JSON

{
"status": "candidate r02; not registered, dispatched or run. Root commits execution/p28-02/SPEC.md and TASK_INSTRUCTIONS.md to main and fills base_commit with that actual SHA.",
"assignment": {
"P28-02-DIAG": {
"worker": "codex",
"model": "gpt-6-astra",
"route": "complex",
"reason": "Passive phase/sub-part attribution probe reusing the collector's owned/guard machinery across GDScript and Python; Astra wrote collector and RESTART and knows the import closure and native pitfalls (parse/type, key ordering) already found."
},
"P28-02-OPT": {
"worker": "codex",
"model": "gpt-6-astra",
"route": "complex",
"note": "Registered only after DIAG results select the targets; its own spec and instructions will be drafted then."
},
"independent_review": {
"model": "claude-opus-5-5",
"context": "fresh",
"transport": "separate Desktop session, async delivery per REVIEW_DELIVERY_PLAN.md"
},
"native_execution": "Root only, after worker submits exact frozen S and local unit PASS, before formal unit + native-verify and independent review; isolated stage import/parse/3 DIAG PIDs, raw join/bundle; normal candidate source/settings/engine/input qualification afterward. Never relabel S measurement as Q execution."
},
"register_project": {
"project": "the-tree-p28-02-diag",
"repo": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部",
"worktrees": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p28-02-diag",
"baseline": [
{
"id": "P28-02-D1",
"requirement_id": "P28-02",
"text": "現在の source 1407 で、代表入力 R の tick を、tick ID で結びつけた inclusive の wall 区間 I0〜I11 として、受動的な観測だけで別 PID の3回で測る(observer の費用は別に記録し、差し引かない)。",
"validation_ids": [
"p28-02-diag-unit",
"p28-02-diag-native-verify"
]
},
{
"id": "P28-02-D2",
"requirement_id": "P28-02",
"text": "tick の外で、snapshot の変換を独立の inclusive 計測(N=5、合算しない)で、restore・save・load・validator を使い捨ての scratch でだけ測り、live の全状態の一致と参照の漏れの無さを確かめる。測れない粒度は理由つきの未測定にする。",
"validation_ids": [
"p28-02-diag-unit",
"p28-02-diag-native-verify"
]
},
{
"id": "P28-02-D3",
"requirement_id": "P28-02",
"text": "経路は path_query_measured の件数と時間だけを区間に結びつけ、connector の費用とは呼ばない。machine・build・seed・RNG state・入力・区間・平均・P95・最大・標本数を記録し、欠損を 0 で補わない。",
"validation_ids": [
"p28-02-diag-unit",
"p28-02-diag-native-verify"
]
},
{
"id": "P28-02-D4",
"requirement_id": "P28",
"text": "worker の提出した S を Root が隔離した stage で native 実行し(import・parse・3 PID)、owned PID・private profile・guard・cleanup・source map 1407・全 raw と SHA を結合する。最終候補 Q で測ったとは表記しない。",
"validation_ids": [
"p28-02-diag-unit",
"p28-02-diag-native-verify"
]
}
],
"validations": {
"p28-02-diag-unit": {
"argv": [
"{python}",
"docs/plans/original-completion-2026-10-02/execution/p28-02/diag/test_diag.py"
]
},
"p28-02-diag-native-verify": {
"argv": [
"{python}",
"docs/plans/original-completion-2026-10-02/execution/p28-02/diag/verify_diag.py",
"--project-root",
"."
]
}
},
"validation_note": "native-verify reads the Root-built bundle at $BUILD_OUTPUT_DIR/p28-02-diag-evidence (3 DIAG PIDs on the exact submitted S) and fails when it is absent; unit PASS alone never accepts."
},
"register_task_contract": {
"id": "P28-02-DIAG",
"title": "意味を保つ軽量化:実測上位の特定(受動的な診断)",
"requirement_ids": [
"P28-02",
"P28"
],
"acceptance_ids": [
"P28-02-D1",
"P28-02-D2",
"P28-02-D3",
"P28-02-D4"
],
"spec_ref": "docs/plans/original-completion-2026-10-02/execution/p28-02/SPEC.md",
"base_commit": "TBD: actual main SHA that adds execution/p28-02/SPEC.md and TASK_INSTRUCTIONS.md",
"worker": "codex",
"allowed_paths": [
"docs/plans/original-completion-2026-10-02/execution/p28-02/diag/**"
],
"depends_on": [],
"resource_locks": [
"p28-02-diag"
],
"validation_ids": [
"p28-02-diag-unit",
"p28-02-diag-native-verify"
],
"max_repair_attempts": null
},
"opt_contract_outline": {
"id": "P28-02-OPT",
"baseline": [
"P28-02 原 work と原 acceptance",
"P28 の横断条件1〜6(原文)",
"U1 未達と、実施していない分岐の開示(補助)",
"U2 証拠の範囲の適用(補助)"
],
"required_validations": [
"E1 (var_to_bytes, then the complete typed comparator from RESTART repair 8 only for dict-order-only differences) to E5 unit tests",
"E2 via DomainEventStream.subscribe('*') unbounded full event record",
"(a) phase comparison in the DIAG interval, 3 PIDs before/after",
"(b) frame budget comparison via the accepted collector P1/P2 on process_real_delta, 3 PIDs before/after",
"one RESTART native pair",
"one formal full roster on the final candidate"
],
"allowed_paths": "段階A で特定した製品の file と、その試験。具体的な path は段階A の後に決める"
},
"credit": "DIAG adds 0. P28-02 moves 23->24 only after OPT final, the whole-unit independent review and the ledger. P28 package stays in progress (P27, P28-03 pending).",
"policy_note": "New project: align max_llm_runs to null under the existing owner delegation with the same owner script protocol, recorded honestly.",
"unchanged": [
"original 30/88",
"budgets",
"cross-cutting text",
"Runner/permissions/auth/billing"
],
"sequence": [
"worker submits S (local unit PASS)",
"Root runs native on frozen S in an isolated stage: import, parse, 3 DIAG PIDs",
"Root joins raw and builds the bundle",
"registered validation: unit + native-verify",
"fresh independent Opus reviews all 4 conditions and all raw (async delivery)",
"prepare -> qualify that candidate source/settings/engine/input equal the measured S -> Root delegated approval -> integration -> final",
"DIAG adds 0; P28-02 credit only after OPT and its whole-unit review"
],
"p27_note": "P27 remains in_progress; it is a package-level prerequisite for P28 final completion, not a stop reason for P28-02 diagnosis or work (existing human order-change permission kept)."
}