{ "revision": "repair29", "status": "SOURCE-READY / NOTRUN; Root measurements separately recorded", "task_id": "P04-01", "current_table": true, "scope": { "conditions": 15, "additional_EV_obligation": true, "domains": 7, "safety_outcomes": [ "no stopped charging", "no double midnight settlement", "no orphan reservations" ], "packages": 30, "deliveries": 88, "original_credit": "13/88 unchanged; P04 receives zero credit", "CurrentAlphaScope": "unchanged", "main_9b": "frozen; nothing integrated" }, "domains": [ { "domain": "閉店", "normative_rule": "D-034: direct closure releases waiting requests and continues started service. Approved dependency closure holds progress/payment and preserves reservation/service ID until one completion.", "current_source": [ "Runtime _process_tick_commands:5743", "FacilityService _prepare_service_for_tick:853", "Runtime _release_closed_business_queues:12624" ], "evidence": "I native_bundle C; R/s2a.json; R/s3.json B1", "approved_authority": [ "D-034", "D05-P04-DEPENDENCY" ], "pending_D05": [ "D05(a) simultaneous reason selection" ], "phase": "APPLY_COMMANDS / FACILITY_COMPLETION / FACILITY_QUEUES", "relative_priority": "Command closure before completion; dependency hold during preparation; closed queue release after completion.", "status": "approved", "observation_status": "observed-current" }, { "domain": "停電", "normative_rule": "BASELINE:183 mana depletion stops facilities. A legitimately power-stopped service must not progress/charge; retain reservation identity and complete once after recovery. This does not approve a simultaneous-cause priority.", "current_source": [ "Runtime _advance_mana:10694", "FacilityService _prepare_service_for_tick:853" ], "evidence": "R/s4.json; B/p04-s4-native-r28; R/s3.json B1 combined diagnostic", "approved_authority": [ "BASELINE:183", "P04-01 safety acceptance" ], "pending_D05": [ "D05(a)" ], "phase": "MANA → FACILITY_COMPLETION", "relative_priority": "Projection before completion; RELATED chosen before NO_POWER.", "status": "observed-current", "observation_status": "observed-current", "evidence_scope": "S4 probe calls disconnect_nodes directly: isolated NO_POWER, not global depletion. Global depletion appears only in S3 B1 combined diagnostic. S1 covers separate staff/EV safety." }, { "domain": "破壊", "normative_rule": "No charge while legitimately failed/stopped and no orphan reservation. Distinguish command destruction before facility processing from late INCIDENTS event destruction after completion; observation is not normative priority approval.", "current_source": [ "Runtime _process_tick_commands:5743", "_advance_defense:8577", "_apply_defense_outcome_boundary:9804", "FacilityService _prepare_service_for_tick:853" ], "evidence": "R/s3.json B4a/B4b", "approved_authority": [ "P04-01 safety acceptance (original); explicit destruction rule pending D05" ], "pending_D05": [ "D05(b); BASELINE:183 is mana depletion, not destruction authority; destruction_stop registry correction only after approval" ], "phase": "APPLY_COMMANDS vs INCIDENTS_AND_EVENTS", "relative_priority": "Command destruction before completion; incident destruction after completion: B4a charges25G then destroys in same tick; B4b next-tick failure/release.", "status": "pending D05", "observation_status": "observed-current" }, { "domain": "退出", "normative_rule": "Leave/abandon releases the owned reservation once; no orphan or duplicate charge. Preserve D-034. Completion, queue release and later normal despawn are distinct observations.", "current_source": [ "Runtime _execute_leave_facility_queue:7553", "_advance_guest_ai_decisions:8738" ], "evidence": "R/s3.json B2a/B2b/B3 and B1 departure history", "approved_authority": [ "D-034", "P04-01 safety acceptance" ], "pending_D05": [ "D05(c)" ], "phase": "APPLY_COMMANDS vs AI_DECISIONS", "relative_priority": "Command exit before completion/charging; AI PLANNED_EXIT after them; despawn later.", "status": "pending D05", "observation_status": "observed-current" }, { "domain": "課金", "normative_rule": "No stopped charge; one sale per completed service and idempotent resend. Reservation consumption, actual sale and payment key must join by service ID and original priceSnapshot.", "current_source": [ "Runtime _advance_facility_upkeep:1855", "_complete_service_transaction:11769", "_apply_service_transaction:11785", "coordinator _process_daily_close:1125" ], "evidence": "I native_bundle C; R/s2a.json; R/s4.json", "approved_authority": [ "P04-01 safety acceptance", "D05-P04-DEPENDENCY", "D05-P04-SHIFT-1800" ], "pending_D05": [ "D05(d), beyond approved A01 and18:00; timing/attribution mandatory P04, numeric math D04/P05 separate" ], "phase": "TIME_BOUNDARIES → FACILITY_COMPLETION", "relative_priority": "Upkeep/daily close before sale; post-increment sale timestamp, exclusive close period_end;00:00 sale belongs to new day.", "status": "pending D05", "observation_status": "observed-current" }, { "domain": "シフト交代", "normative_rule": "Approved [17:59,18:00) work belongs to day staff: complete/pay once at18:00 then switch; night work starts [18:00,18:01).", "current_source": [ "Runtime _advance_facilities:8482", "_advance_staff_ai:8658", "StaffService advance_one_minute:700" ], "evidence": "I C first1080 sale joins; R/s2b.json no-night1081/overtime", "approved_authority": [ "BASELINE:64", "BASELINE:67", "D05-P04-SHIFT-1800" ], "pending_D05": [ "Already approved; do not re-ask" ], "phase": "FACILITY_COMPLETION → AI_DECISIONS", "relative_priority": "18:00 completion/payment before shift handover; day staff [17:59,18:00), night [18:00,18:01).", "status": "approved", "observation_status": "observed-current" }, { "domain": "00:00決算", "normative_rule": "A01 approved ownership-prorated upkeep at midnight is retained. One daily close/payroll/upkeep, no duplicate replay/reload; distinguish prior [0,1440) accounting and sale at1440.", "current_source": [ "Kernel _handle_time_boundaries:254", "Runtime _advance_operations_time:1898", "coordinator _process_minute_boundaries:882", "_process_daily_close:1125" ], "evidence": "I C paused/formal; R/s2a.json nonzero payroll/upkeep, replay and typed restore", "approved_authority": [ "BASELINE:71", "BASELINE:72", "A01", "D05-P04-DEPENDENCY" ], "pending_D05": [ "A01 approved ownership-based midnight upkeep not reopened; extra attribution D05(d)" ], "phase": "pre-TIME_BOUNDARIES signals → TIME_BOUNDARIES → FACILITY_COMPLETION", "relative_priority": "Midnight signals, then upkeep/close, then completion.", "status": "approved", "observation_status": "observed-current" } ], "source_facts": "REPAIR29_STATIC_SOURCE.json", "authority": "D05_OWNER_APPROVAL.json approves dependency and shift only; original BASELINE/D-034/A01 retain their scope", "historical_superseded": [ "REPAIR17_STATUS.md", "REPAIR18_STATUS.md", "REPAIR19_CORRIGENDUM.md", "REPAIR19_STATUS.md", "REPAIR20_CORRIGENDUM.md", "REPAIR20_STATUS.md", "REPAIR21_STATUS.md", "REPAIR22–28 creation-time status and runbooks" ], "history_policy": "Creation-time NOT RUN in REPAIR22–28 and runbooks is historical; CURRENT_STATUS.md canonical table overrides execution status. Historical files unchanged.", "evidence_policy": "Root-measured S4r28 4/4 PASS, controls, local8, r22 collection, schema2 index, registered validation PASS28s; worker SOURCE-READY / NOTRUN.", "pending": [ "Owner D05 a–d approval or explicit non-mandatory ruling; unknown mandatory rules stay pending", "Post-approval normal checker/registry repair (a61 unchanged here)", "support53cb normal registered rebind", "final full1339 against final checker; none exists against a61", "independent review and integration: P04 first, support on main9b afterward", "nativeWindows obligations individually if required" ], "priority_candidates_if_required": "D05_REMAINING_ORDER_CANDIDATE.json", "collection_plan": "s4/S4_ROOT_RUN.md", "formal_acceptance": false, "original_unit_complete": false, "phase_order": [ { "priority": 1, "phase": "APPLY_COMMANDS", "status": "observed-current", "handlers": [ { "phase": "APPLY_COMMANDS", "handler_id": "simulation_runtime.commands", "function": "_process_tick_commands", "registration_line": 369 } ], "behavior": "Previous minute: commands → _process_tick_commands:5743. Operations gate requests current tick abort and returns before Clock changes; otherwise commands apply for minute+1." }, { "priority": 2, "phase": "TIME_BOUNDARIES", "status": "observed-current", "handlers": [ { "phase": "TIME_BOUNDARIES", "handler_id": "simulation_runtime.0_weather", "function": "_advance_weather", "registration_line": 366 }, { "phase": "TIME_BOUNDARIES", "handler_id": "simulation_runtime.a_upkeep", "function": "_advance_facility_upkeep", "registration_line": 368 }, { "phase": "TIME_BOUNDARIES", "handler_id": "simulation_runtime.operations", "function": "_advance_operations_time", "registration_line": 1766 } ], "behavior": "After APPLY: absolute_minute += 1, _sync_calendar_fields, _handle_time_boundaries:254 emits settlement_requested(completed_day) then day_started at00:00, before TIME_BOUNDARIES handlers. Handler order: weather, upkeep, operations. Runtime upkeep:1855; operations:1898 → coordinator _process_minute_boundaries:882: 00:00 upkeep, daily close, 06:00 morning, demand, arrivals (conditional boundaries and early returns)." }, { "priority": 3, "phase": "MANA", "status": "observed-current", "handlers": [ { "phase": "MANA", "handler_id": "simulation_runtime.mana", "function": "_advance_mana", "registration_line": 379 } ], "behavior": "Runtime _advance_mana:10694: proxy preflight → mana_network advance → mana_power_projection.apply → MANA_STATE_CHANGED events." }, { "priority": 4, "phase": "CONSTRUCTION", "status": "observed-current", "handlers": [ { "phase": "CONSTRUCTION", "handler_id": "simulation_runtime.construction", "function": "_advance_construction", "registration_line": 384 } ], "behavior": "Construction:8064 follows power and precedes logistics." }, { "priority": 5, "phase": "LOGISTICS", "status": "observed-current", "handlers": [ { "phase": "LOGISTICS", "handler_id": "simulation_runtime.logistics", "function": "_advance_inventory_and_logistics", "registration_line": 389 } ], "behavior": "Logistics:8472 precedes completion." }, { "priority": 6, "phase": "FACILITY_COMPLETION", "status": "observed-current", "handlers": [ { "phase": "FACILITY_COMPLETION", "handler_id": "simulation_runtime.facilities", "function": "_advance_facilities", "registration_line": 394 } ], "behavior": "Runtime _advance_facilities:8482: facility_service.advance_one_minute then kitchen. FacilityService _prepare_service_for_tick:853 checks BROKEN, related_facility_operating (RELATED_FACILITY_INACTIVE), power_available (NO_POWER), staff grace. Only ACTIVE services advance (:569). _complete_service:895 → Runtime _complete_service_transaction:11769 → _apply_service_transaction:11785 posts SERVICE_SALE / SERVICE_CASH_SWEEP at the post-increment minute (:11826–11838)." }, { "priority": 7, "phase": "VITALS_AND_ENVIRONMENT", "status": "observed-current", "handlers": [ { "phase": "VITALS_AND_ENVIRONMENT", "handler_id": "simulation_runtime.guest_vitals", "function": "_advance_guest_vitals", "registration_line": 399 } ], "behavior": "Guest vitals:8488 follows completion." }, { "priority": 8, "phase": "INCIDENTS_AND_EVENTS", "status": "observed-current", "handlers": [ { "phase": "INCIDENTS_AND_EVENTS", "handler_id": "simulation_runtime.authority_incidents", "function": "_advance_authority_incidents", "registration_line": 409 }, { "phase": "INCIDENTS_AND_EVENTS", "handler_id": "simulation_runtime.defense", "function": "_advance_defense", "registration_line": 414 }, { "phase": "INCIDENTS_AND_EVENTS", "handler_id": "simulation_runtime.relationship_events", "function": "_advance_relationship_events", "registration_line": 419 } ], "behavior": "String-sorted authority_incidents:8551 → defense:8577 → relationship_events:8615; after completion/charging." }, { "priority": 9, "phase": "FACILITY_QUEUES", "status": "observed-current", "handlers": [ { "phase": "FACILITY_QUEUES", "handler_id": "simulation_runtime.guest_queues", "function": "_advance_guest_queues", "registration_line": 404 } ], "behavior": "_advance_guest_queues:8502 releases closed queues first (_release_closed_business_queues:12624); closed queues spend no patience (:8516–8517)." }, { "priority": 10, "phase": "AI_DECISIONS", "status": "observed-current", "handlers": [ { "phase": "AI_DECISIONS", "handler_id": "simulation_runtime.staff_ai", "function": "_advance_staff_ai", "registration_line": 424 } ], "behavior": "_advance_staff_ai:8658: prune elevator waits, elevators, rescue, staff_service, prune waits, staff_commute (shift handover), staffing sync, cleaning, fatigue, rescue and staffing sync again, then _advance_guest_ai_decisions:8738. DECIDING PLANNED_EXIT → LEAVING; despawn occurs only on later minute (:8760–8762)." }, { "priority": 11, "phase": "PUBLISH_SNAPSHOT", "status": "observed-current", "handlers": [ { "phase": "PUBLISH_SNAPSHOT", "handler_id": "simulation_runtime.snapshot", "function": "_publish_snapshot", "registration_line": 374 }, { "phase": "PUBLISH_SNAPSHOT", "handler_id": "simulation_runtime.zz_save_checkpoints", "function": "_process_save_checkpoints", "registration_line": 431 } ], "behavior": "snapshot:12476 then zz_save_checkpoints:4514; persistence follows publication." } ], "safety_cases": [ { "item": "No charge while paused NO_POWER or RELATED", "status": "original", "phase": "FACILITY_COMPLETION", "source": "FacilityService _prepare_service_for_tick:853, ACTIVE-only gate:569, _complete_service:895", "priority": "Preparation before advance/completion/payment", "proof": "R/s4.json isolated power; I C and R/s2a.json dependency hold", "approval": "Dependency hold approved; both D05(a) options preserve safety" }, { "item": "Double-settlement idempotency", "status": "original", "phase": "TIME_BOUNDARIES", "source": "coordinator _process_daily_close:1125; _day_summaries replay:1127–1130; daily-close:N:1137", "priority": "Before facility completion", "proof": "I C; R/s2a.json same-boundary replay and separate-PID restore, unchanged accounting" }, { "item": "Orphan reservation release", "status": "original", "phase": "APPLY_COMMANDS / FACILITY_QUEUES", "source": "Runtime _execute_leave_facility_queue:7553 (release keys:7565–7569); _leave_guest_queue_boundary:9178; _release_closed_business_queues:12624; _release_closed_business_request:12642", "priority": "Command release before completion; closed-queue release afterward; closed patience not spent", "proof": "R/s3.json B2a/B2b/B3/B4b; I C; R/s2a.json reservation/service identity and restore" } ], "proof_legend": { "label": "Root-measured", "R": "B/audit-support/p04-raw-collect-r22", "I": "B/p04-evidence/index.json schema2; native_bundle/raw_references/versions/source_map/environment bind exact proofs", "pins": "REPAIR29_STATIC_SOURCE.json proof_pins; R/MANIFEST.json pins series and relocation, series retain raw paths/hashes" }, "authority_statuses": { "original": [ "P04-01 safety acceptance", "BASELINE:64,67,71,72,183" ], "approved": [ "A01 midnight ownership upkeep", "D05-P04-DEPENDENCY", "D05-P04-SHIFT-1800", "D-034 direct business closure" ], "pending D05": [ "a power vs closure/dependency", "b destruction", "c exit", "d cost time/day beyond A01 and18:00" ], "observed-current": "All phase and source behavior observations; not approval" }, "full178_applicability_context": "REPAIR29_STATIC_SOURCE.json full_source_static_comparison: full178 selected1339 includes f5; one test-source mismatch (test_required_kitchen.gd), no game-source mismatch; preserve Runner applicability binding, no blanket1338 identity or a61 full proof." }