8 lines
4.7 KiB
JSON
8 lines
4.7 KiB
JSON
{
|
|
"action": "run",
|
|
"task_id": "P08-02",
|
|
"reason": "P08-02 can go ahead as an ordinary run. It is ready, depends on nothing, and is on base e196578c1a4ad2fdf84642565bd102e524be386f with 0 of 2 repairs used. The spec (sha 19f02bb7…) and the inputs under docs/spec/inputs/p08-02 are frozen, and nothing outside the repo is needed. The blocked metadata from P22 does not apply to this new unit and should not affect the decision. Limits stay as they are: 900s, 2 repairs, the acceptance denominator (1 unit out of 30/88; the 6 facets are not new units), the allowed_paths, and one implementer. The 7 historical proofs had 29 source differences and ran with Operations OFF only, so their hashes or matching function bodies cannot count as current acceptance.\n\nImplementation priorities, in order:\n(1) Under tests/fixtures/p08-02, build one composable writer and reader that put all 6 facets in the same world: several old-size construction jobs in progress (with progress, payment and reservations) plus completed facilities, cell occupancy changes with matching support and ownership, a guest and staff member mid-route (with movement credit, route and money), and a real rescue patient, carrier and destination, a food cargo item with its reservation and request, and EV passengers, queue and itinerary. Use only existing Runtime and domain methods, and label fixture values and seeds as diagnostic inputs.\n(2) Add the standalone suite tests/s1/test_p08_combined_migration.gd and its .uid. It covers a positive migration with Operations ON and OFF, and a late refusal in a later batch. The refusal must apply nothing from earlier candidates, leave the live state, the original save members and the existing backup members unchanged, and let a separate PID continue the original behaviour. Compare all typed state and all events (uncapped), allowing differences only for approved geometry or route changes listed explicitly.\n(3) Write tools/run_p08_mixed_migration.py. It takes --project-root and --output as absolute paths and reuses the execute_phase, profile guard, owned_outer and strict-marker protocol from run_all_tests.py without editing that file. It must not use fixed outside paths or the 1299 admission constant.\n(4) Write tools/check_p08_migration_evidence.py. With --verify-only it reads BUILD_OUTPUT_DIR/p08-evidence/index.json and checks the source map, inputs, phase receipts, distinct native PIDs that ended and their exit codes, strict logs, state and formal-member hashes, a mapping for each of the 6 conditions, the OS proof and the final regression receipt. It must never trust self-reported PASS booleans. On any gap it lists the deficits and exits non-zero, and passing integrity checks must never mean the original unit is accepted.\n(5) Write tools/test_p08_migration_evidence.py. The positive case must actually reach check() through an isolated temporary proof fixture. Negative cases mutate the real index: duplicate actor, orphan occupancy, lost patient, cargo or EV, partial batch, overwritten original or backup, state that differs across PIDs, missing ON run, wrong or stale source, and fake OS signals. Do not write an all-true reducer or a check that always fails.\n(6) Add exactly one entry, test_p08_combined_migration, to completion_marker_contracts.json and keep every existing entry. Document the index schema and a machine-readable example in CONDITION_MATRIX.md and implementation.json.\n\nNo production core or UI edits. If a real defect turns up, submit a minimal patch proposal with the failing evidence. The worker runs only python -B, ast.parse and the local checker tests, with no Godot runs, full regression or packet measurement. Return a real \"submitted\" status with every original condition marked pending. Root collection, OS proof, full regression, independent review and integration stay with Root and the owner.",
|
|
"codex_model": "gpt-6-astra",
|
|
"codex_model_reason": "I chose Astra based on this frozen contract, not on the earlier P22 advice. Several invariants have to hold together in one world: 6 facets, ON/OFF runs, continuation in separate writer and reader processes, a late refusal that applies nothing earlier and keeps the save and backup intact, and full typed-state and event comparison. On top of that, the checker has to reach a real positive result while blocking false acceptance across about 10 kinds of corruption, and this must fit the existing run_all_tests protocol without editing it. Mistakes here would quickly use up the 2 repairs and the 900s runs, so a correct first pass matters more than the extra time and usage. There is only one implementer and no redundant full regression, so the extra usage stays limited. Picking this model does not authorize any change to caps, timeouts or acceptance."
|
|
}
|