441 lines
18 KiB
JSON
441 lines
18 KiB
JSON
{
|
||
"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."
|
||
}
|