P04-01: 同時発生の更新規約

This commit is contained in:
Agent Control Runner
2026-10-19 00:12:04 +09:00
parent a9ef681fb8
commit 785815002e
5 changed files with 3414 additions and 73 deletions
@@ -1,3 +1,31 @@
# P04-01 REPAIR51 canonical handoff
ACTUAL S50 historical evidence complete; S51 docs-only resubmission; S51 native admission pending at worker handoff (fresh native on Q51 required by S-binding, checker:368-371); post-submit admission determined only by Root version-pinned receipts; formal_acceptance false; P04=0.
ACTUAL S50: native6 / 24 phases PASS (historical; bound to S50/Q50).
ACTUAL S50: collector 15+EV, missing 0 (historical; bound to S50/Q50).
ACTUAL S50 receipts: build/audit-support/p04-root-acceptance-a9ef681f/.
ACTUAL S47: full184 retains its original label; conditional reuse only under the existing checker and applicability map. r22 remains historical.
S51 native admission is pending AT HANDOFF. After submission, only Root version-pinned receipts under build/audit-support/p04-root-acceptance-<S>/ and build/p04-evidence/index.json determine admission. Worker-time NOT RUN / UNDETERMINED / unexecuted text below is historical and never a reason to rebuild. Fresh native6 on Q51 is required by S/Q binding, not by that text. No future S51 SHA, Q51 or receipt is claimed.
All six D05 IDs remain approved; pending D05 is empty. PAUSE-REASON: S5B proves same-tick onset from ACTIVE gives RELATED. Power-first then dependency closure shows NO_POWER statically at M facility_service.gd:860-864; that sequential case is EXPLICITLY UNRESOLVED/UNPROVEN under the unchanged approval. It is not a defect, cured, proven, or silently narrowed. The :569 gate preserves P04 safety regardless of label. Any later product change needs a separate owner-authorised task; do not amend the contract or re-ask the owner.
Remaining Root gates:
- Root fixes Q51; compare actual hashes with REPAIR51_APPLICABILITY_MAP.json; stop reuse on executable differences
- clean exact-Q check-only; capacity and PID check; one heavy lease for fresh native6 on Q51
- reader/adapters then collector; full184 conditional reuse check; order CLI/complete_B conditional reuse or rerun once
- index regeneration; one p04-acceptance validate; separate Opus whole-unit independent review
- prepare / exactC / integration / final / RootDB join / ledger / main push
- nativeWindows individually pending
Scope: documentation-only repair within the original P04-01/W unit. Original total 30/88, formal 16, P04 credit 0; formal_acceptance false; unit incomplete. No partial credit. See REPAIR51_APPLICABILITY_MAP.json for hashes and reuse conditions.
# Historical, superseded
All older text below, including its current/status headings and worker-time execution statements, is superseded historical material.
## REPAIR49 current correction
Source-ready only; original 30/88, formal 16, P04=0, no partial credit.
@@ -1,3 +1,31 @@
# P04-01 REPAIR51 canonical handoff
ACTUAL S50 historical evidence complete; S51 docs-only resubmission; S51 native admission pending at worker handoff (fresh native on Q51 required by S-binding, checker:368-371); post-submit admission determined only by Root version-pinned receipts; formal_acceptance false; P04=0.
ACTUAL S50: native6 / 24 phases PASS (historical; bound to S50/Q50).
ACTUAL S50: collector 15+EV, missing 0 (historical; bound to S50/Q50).
ACTUAL S50 receipts: build/audit-support/p04-root-acceptance-a9ef681f/.
ACTUAL S47: full184 retains its original label; conditional reuse only under the existing checker and applicability map. r22 remains historical.
S51 native admission is pending AT HANDOFF. After submission, only Root version-pinned receipts under build/audit-support/p04-root-acceptance-<S>/ and build/p04-evidence/index.json determine admission. Worker-time NOT RUN / UNDETERMINED / unexecuted text below is historical and never a reason to rebuild. Fresh native6 on Q51 is required by S/Q binding, not by that text. No future S51 SHA, Q51 or receipt is claimed.
All six D05 IDs remain approved; pending D05 is empty. PAUSE-REASON: S5B proves same-tick onset from ACTIVE gives RELATED. Power-first then dependency closure shows NO_POWER statically at M facility_service.gd:860-864; that sequential case is EXPLICITLY UNRESOLVED/UNPROVEN under the unchanged approval. It is not a defect, cured, proven, or silently narrowed. The :569 gate preserves P04 safety regardless of label. Any later product change needs a separate owner-authorised task; do not amend the contract or re-ask the owner.
Remaining Root gates:
- Root fixes Q51; compare actual hashes with REPAIR51_APPLICABILITY_MAP.json; stop reuse on executable differences
- clean exact-Q check-only; capacity and PID check; one heavy lease for fresh native6 on Q51
- reader/adapters then collector; full184 conditional reuse check; order CLI/complete_B conditional reuse or rerun once
- index regeneration; one p04-acceptance validate; separate Opus whole-unit independent review
- prepare / exactC / integration / final / RootDB join / ledger / main push
- nativeWindows individually pending
Scope: documentation-only repair within the original P04-01/W unit. Original total 30/88, formal 16, P04 credit 0; formal_acceptance false; unit incomplete. No partial credit. See REPAIR51_APPLICABILITY_MAP.json for hashes and reuse conditions.
# Historical, superseded
All older text below, including its current/status headings and worker-time execution statements, is superseded historical material.
## REPAIR49 normal-gate handoff
Required materials: exact B/native-first-current and fresh-run registry; each
@@ -0,0 +1,19 @@
# REPAIR51 pre-submit worker handoff
code_ready: documentation-only batch prepared for submission. This file records worker-time static results only; it does not establish post-submit admission.
Changed: order-audit.json, CURRENT_STATUS.md, ORDER_AUDIT.md, this handoff and REPAIR51_APPLICABILITY_MAP.json. Checker, all executables, product/config/spec/values/engine/oracle, fixtures, approvals and historical REPAIR*_STATUS bodies remain byte-identical. Git writes 0; Runner 0; engine 0; delegation 0.
ACTUAL S50 native6/24 phases PASS and collector 15+EV missing 0 remain historical, bound to S50/Q50. ACTUAL S47 full184 retains its original label. No run is relabelled S51. S51 native admission pending AT HANDOFF; Root must freeze Q51 and run fresh native6 because checker:368-371 binds S/Q. Full184, order CLI and complete_B reuse require the map predicates; Root checks actual hashes.
Post-submit state is decided only by Root version-pinned receipts under build/audit-support/p04-root-acceptance-<S>/ and build/p04-evidence/index.json. S50 receipt location: build/audit-support/p04-root-acceptance-a9ef681f/. A worker NOT RUN statement is never a reason to rebuild. No future submitted SHA, Q51 or new receipt is claimed.
All six D05 approvals remain valid; pending D05 empty. Same-tick ACTIVE onset gives RELATED (S5B native proof). Power-first then dependency closure gives NO_POWER by static source observation only; sequential interpretation remains EXPLICITLY UNRESOLVED/UNPROVEN, neither defect nor cure nor proof. Original approval remains unchanged. P04 safety holds through :569 regardless of label. A later product change needs a separate owner-authorised task.
Static checks: JSON parsing, current-table stale-anchor search, empty pending D05, five-path scope check and immutable SHA comparisons. These are worker static checks, not Runner acceptance tests. See applicability map for unchanged SHA256 and source-consumer grep evidence.
Root order: fix Q51; compare map/stop reuse on executable difference; clean exact-Q check-only; capacity/PID check; one native6 heavy lease; readers/adapters then collector; full184 reuse check; order CLI/complete_B conditional reuse or one rerun; index; one p04-acceptance validate; separate Opus whole-unit review; prepare/exactC/integration/final/RootDB join/ledger/main push. NativeWindows individually pending.
Original 30/88, formal 16 and P04 credit 0 unchanged; unit incomplete; formal_acceptance false.
Worker static verification results: 594 JSON files parsed with zero errors; all 3,096 immutable-file SHA256 values matched; exactly the five declared doc-scope non-executables changed; six D05 IDs approved and pending D05 empty; no listed stale anchors in current phase_order/safety_cases. No formal tests were run. code_ready handoff.
@@ -1,8 +1,8 @@
{
"revision": "repair30",
"status": "BLOCKED: partial implementation; no native admission",
"revision": "REPAIR51 pre-submit documentation handoff",
"status": "ACTUAL S50 historical evidence complete; S51 docs-only resubmission; S51 native admission pending at worker handoff (fresh native on Q51 required by S-binding, checker:368-371); post-submit admission determined only by Root version-pinned receipts; formal_acceptance false; P04=0",
"task_id": "P04-01",
"current_table": true,
"current_table": "M c0ea009; current source facts, policy approvals and ACTUAL S50 historical evidence; S51 admission pending AT HANDOFF",
"scope": {
"conditions": 15,
"additional_EV_obligation": true,
@@ -16,12 +16,13 @@
"deliveries": 88,
"original_credit": "16/88 formal; P04 receives zero credit",
"CurrentAlphaScope": "unchanged",
"frozen_main": "c0ea009b28a7649aca6a433a1a24dc0be5e7ab81"
"frozen_main": "c0ea009b28a7649aca6a433a1a24dc0be5e7ab81",
"summary": "Documentation-only REPAIR51 within existing P04-01/W; original 30/88, formal 16, P04=0; unit incomplete."
},
"domains": [
{
"domain": "閉店",
"normative_rule": "D-034 preserves started services on direct closure and releases waiting requests. Dependency closure stops progress and charging, retains reservations/service identity, and completes once after recovery. RELATED_FACILITY_INACTIVE wins over NO_POWER when both apply.",
"normative_rule": "D-034 preserves started services on direct closure and releases waiting requests. Dependency closure stops progress and charging, retains reservations/service identity, and completes once after recovery. RELATED_FACILITY_INACTIVE wins over NO_POWER when both apply. PAUSE-REASON scope: same-tick onset from ACTIVE only is natively proven; sequential power-first scope explicitly unresolved/unproven.",
"current_source": [
{
"path": "autoload/simulation_runtime.gd",
@@ -53,10 +54,10 @@
"pending_D05": [],
"phase": "APPLY_COMMANDS / FACILITY_COMPLETION / FACILITY_QUEUES",
"relative_priority": "Command closure before completion; dependency hold during preparation; closed queue release after completion.",
"status": "approved policy; fresh Q evidence pending",
"observation_status": "historical observations; current M source inspected",
"status": "approved policy",
"observation_status": "M source observations; ACTUAL S50 historical evidence; S51 admission pending AT HANDOFF",
"historical_evidence": "I native_bundle C; R/s2a.json; R/s3.json B1",
"evidence": "Fresh exact-Q native proof pending; no old raw reused as Q",
"evidence": "ACTUAL S50 native6/24 phases PASS, collector 15+EV missing 0 (historical, bound to S50/Q50); S51 requires fresh native6 (checker:368-371); nativeWindows pending",
"nativeWindows": "pending"
},
{
@@ -86,11 +87,11 @@
"pending_D05": [],
"phase": "MANA → FACILITY_COMPLETION",
"relative_priority": "Projection before completion; RELATED chosen before NO_POWER.",
"status": "approved policy; fresh Q evidence pending",
"observation_status": "historical observations; current M source inspected",
"status": "approved policy",
"observation_status": "M source observations; ACTUAL S50 historical evidence; S51 admission pending AT HANDOFF",
"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.",
"historical_evidence": "R/s4.json; B/p04-s4-native-r28; R/s3.json B1 combined diagnostic",
"evidence": "Fresh exact-Q native proof pending; no old raw reused as Q",
"evidence": "ACTUAL S50 native6/24 phases PASS, collector 15+EV missing 0 (historical, bound to S50/Q50); S51 requires fresh native6 (checker:368-371); nativeWindows pending",
"nativeWindows": "pending"
},
{
@@ -132,10 +133,10 @@
"pending_D05": [],
"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": "approved policy; fresh Q evidence pending",
"observation_status": "historical observations; current M source inspected",
"status": "approved policy",
"observation_status": "M source observations; ACTUAL S50 historical evidence; S51 admission pending AT HANDOFF",
"historical_evidence": "R/s3.json B4a/B4b",
"evidence": "Fresh exact-Q native proof pending; no old raw reused as Q",
"evidence": "ACTUAL S50 native6/24 phases PASS, collector 15+EV missing 0 (historical, bound to S50/Q50); S51 requires fresh native6 (checker:368-371); nativeWindows pending",
"nativeWindows": "pending"
},
{
@@ -165,10 +166,10 @@
"pending_D05": [],
"phase": "APPLY_COMMANDS vs AI_DECISIONS",
"relative_priority": "Command exit before completion/charging; AI PLANNED_EXIT after them; despawn later.",
"status": "approved policy; fresh Q evidence pending",
"observation_status": "historical observations; current M source inspected",
"status": "approved policy",
"observation_status": "M source observations; ACTUAL S50 historical evidence; S51 admission pending AT HANDOFF",
"historical_evidence": "R/s3.json B2a/B2b/B3 and B1 departure history",
"evidence": "Fresh exact-Q native proof pending; no old raw reused as Q",
"evidence": "ACTUAL S50 native6/24 phases PASS, collector 15+EV missing 0 (historical, bound to S50/Q50); S51 requires fresh native6 (checker:368-371); nativeWindows pending",
"nativeWindows": "pending"
},
{
@@ -213,10 +214,10 @@
"pending_D05": [],
"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": "approved policy; fresh Q evidence pending",
"observation_status": "historical observations; current M source inspected",
"status": "approved policy",
"observation_status": "M source observations; ACTUAL S50 historical evidence; S51 admission pending AT HANDOFF",
"historical_evidence": "I native_bundle C; R/s2a.json; R/s4.json",
"evidence": "Fresh exact-Q native proof pending; no old raw reused as Q",
"evidence": "ACTUAL S50 native6/24 phases PASS, collector 15+EV missing 0 (historical, bound to S50/Q50); S51 requires fresh native6 (checker:368-371); nativeWindows pending",
"nativeWindows": "pending"
},
{
@@ -246,10 +247,10 @@
"pending_D05": [],
"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 policy; fresh Q evidence pending",
"observation_status": "historical observations; current M source inspected",
"status": "approved policy",
"observation_status": "M source observations; ACTUAL S50 historical evidence; S51 admission pending AT HANDOFF",
"historical_evidence": "I C first1080 sale joins; R/s2b.json no-night1081/overtime",
"evidence": "Fresh exact-Q native proof pending; no old raw reused as Q",
"evidence": "ACTUAL S50 native6/24 phases PASS, collector 15+EV missing 0 (historical, bound to S50/Q50); S51 requires fresh native6 (checker:368-371); nativeWindows pending",
"nativeWindows": "pending"
},
{
@@ -295,10 +296,10 @@
"pending_D05": [],
"phase": "pre-TIME_BOUNDARIES signals → TIME_BOUNDARIES → FACILITY_COMPLETION",
"relative_priority": "Midnight signals, then upkeep/close, then completion.",
"status": "approved policy; fresh Q evidence pending",
"observation_status": "historical observations; current M source inspected",
"status": "approved policy",
"observation_status": "M source observations; ACTUAL S50 historical evidence; S51 admission pending AT HANDOFF",
"historical_evidence": "I C paused/formal; R/s2a.json nonzero payroll/upkeep, replay and typed restore",
"evidence": "Fresh exact-Q native proof pending; no old raw reused as Q",
"evidence": "ACTUAL S50 native6/24 phases PASS, collector 15+EV missing 0 (historical, bound to S50/Q50); S51 requires fresh native6 (checker:368-371); nativeWindows pending",
"nativeWindows": "pending"
}
],
@@ -314,16 +315,22 @@
"REPAIR21_STATUS.md",
"REPAIR22–28 creation-time status and runbooks"
],
"history_policy": "Historical source/proof pins retain their original revisions; CURRENT_STATUS.md is canonical. New approvals are not new native evidence.",
"evidence_policy": "All old S1-S4/r22/native/full178 records are historical. None is relabelled as Q. Fresh native S1-S5 and full184/329 on final Q remain NOT RUN.",
"history_policy": "Raw and historical material retain original S50/S47/r22 labels. Canonical top sections describe handoff only; Root version-pinned receipts decide post-submit state.",
"evidence_policy": {
"S50_actual": "ACTUAL S50 native6/24 phases PASS, collector 15+EV missing 0 (historical, bound to S50/Q50); S51 requires fresh native6 (checker:368-371); nativeWindows pending",
"S47_full184": "ACTUAL S47 full184 historical; reusable only if checker:1185-1186 full source_sha256 equals new S5 source_before and product, checker and every doc-scope executable are byte-identical; all full verifier input/environment predicates must hold.",
"r22_historical": "r22 and earlier raw retain historical labels and bindings; no new-S native admission."
},
"pending": [
"Complete current-Q collector/wrapper/index binding and S5 drivers; see REPAIR30_STATUS.md",
"Fresh native S1-S5 on final Q, then full184/329 on the same Q including checker",
"Truthful index, formal registered validation on S --verify-only, whole-unit independent review, normal C integration",
"nativeWindows individually pending for every condition"
"Root fixes Q51; compare actual hashes with REPAIR51_APPLICABILITY_MAP.json; stop reuse on executable differences",
"clean exact-Q check-only; capacity and PID check; one heavy lease for fresh native6 on Q51",
"reader/adapters then collector; full184 conditional reuse check; order CLI/complete_B conditional reuse or rerun once",
"index regeneration; one p04-acceptance validate; separate Opus whole-unit independent review",
"prepare / exactC / integration / final / RootDB join / ledger / main push",
"nativeWindows individually pending"
],
"priority_candidates_if_required": "D05_REMAINING_ORDER_CANDIDATE.json (superseded history)",
"collection_plan": "REPAIR30_STATUS.md",
"collection_plan": "REPAIR51_STATUS.md; Root-only post-submit order",
"formal_acceptance": false,
"original_unit_complete": false,
"phase_order": [
@@ -336,10 +343,11 @@
"phase": "APPLY_COMMANDS",
"handler_id": "simulation_runtime.commands",
"function": "_process_tick_commands",
"registration_line": 369
"registration_line": 375
}
],
"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."
"behavior": "Previous minute: commands → _process_tick_commands:5765. Operations gate requests current tick abort and returns before Clock changes; otherwise commands apply for minute+1.",
"line_authority": "M c0ea009 actual Git source; main handler registration 371-438; operations registration 1787-1791. Explicitly marked ranges remain unverified-M-line."
},
{
"priority": 2,
@@ -350,22 +358,23 @@
"phase": "TIME_BOUNDARIES",
"handler_id": "simulation_runtime.0_weather",
"function": "_advance_weather",
"registration_line": 366
"registration_line": 372
},
{
"phase": "TIME_BOUNDARIES",
"handler_id": "simulation_runtime.a_upkeep",
"function": "_advance_facility_upkeep",
"registration_line": 368
"registration_line": 374
},
{
"phase": "TIME_BOUNDARIES",
"handler_id": "simulation_runtime.operations",
"function": "_advance_operations_time",
"registration_line": 1766
"registration_line": 1787
}
],
"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)."
"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:1876; operations:1919 → coordinator _process_minute_boundaries:882: 00:00 upkeep, daily close, 06:00 morning, demand, arrivals (conditional boundaries and early returns).",
"line_authority": "M c0ea009 actual Git source; main handler registration 371-438; operations registration 1787-1791. Explicitly marked ranges remain unverified-M-line."
},
{
"priority": 3,
@@ -376,10 +385,11 @@
"phase": "MANA",
"handler_id": "simulation_runtime.mana",
"function": "_advance_mana",
"registration_line": 379
"registration_line": 385
}
],
"behavior": "Runtime _advance_mana:10694: proxy preflight → mana_network advance → mana_power_projection.apply → MANA_STATE_CHANGED events."
"behavior": "Runtime _advance_mana:10716: proxy preflight → mana_network advance → mana_power_projection.apply → MANA_STATE_CHANGED events.",
"line_authority": "M c0ea009 actual Git source; main handler registration 371-438; operations registration 1787-1791. Explicitly marked ranges remain unverified-M-line."
},
{
"priority": 4,
@@ -390,10 +400,11 @@
"phase": "CONSTRUCTION",
"handler_id": "simulation_runtime.construction",
"function": "_advance_construction",
"registration_line": 384
"registration_line": 390
}
],
"behavior": "Construction:8064 follows power and precedes logistics."
"behavior": "Construction:8086 follows power and precedes logistics.",
"line_authority": "M c0ea009 actual Git source; main handler registration 371-438; operations registration 1787-1791. Explicitly marked ranges remain unverified-M-line."
},
{
"priority": 5,
@@ -404,10 +415,11 @@
"phase": "LOGISTICS",
"handler_id": "simulation_runtime.logistics",
"function": "_advance_inventory_and_logistics",
"registration_line": 389
"registration_line": 395
}
],
"behavior": "Logistics:8472 precedes completion."
"behavior": "Logistics:8494 precedes completion.",
"line_authority": "M c0ea009 actual Git source; main handler registration 371-438; operations registration 1787-1791. Explicitly marked ranges remain unverified-M-line."
},
{
"priority": 6,
@@ -418,10 +430,11 @@
"phase": "FACILITY_COMPLETION",
"handler_id": "simulation_runtime.facilities",
"function": "_advance_facilities",
"registration_line": 394
"registration_line": 400
}
],
"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)."
"behavior": "Runtime _advance_facilities:8504: 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:11817 → _apply_service_transaction:11833 posts SERVICE_SALE / SERVICE_CASH_SWEEP at the post-increment minute (:11826–11838 [unverified-M-line]).",
"line_authority": "M c0ea009 actual Git source; main handler registration 371-438; operations registration 1787-1791. Explicitly marked ranges remain unverified-M-line."
},
{
"priority": 7,
@@ -432,10 +445,11 @@
"phase": "VITALS_AND_ENVIRONMENT",
"handler_id": "simulation_runtime.guest_vitals",
"function": "_advance_guest_vitals",
"registration_line": 399
"registration_line": 405
}
],
"behavior": "Guest vitals:8488 follows completion."
"behavior": "Guest vitals:8510 follows completion.",
"line_authority": "M c0ea009 actual Git source; main handler registration 371-438; operations registration 1787-1791. Explicitly marked ranges remain unverified-M-line."
},
{
"priority": 8,
@@ -446,22 +460,23 @@
"phase": "INCIDENTS_AND_EVENTS",
"handler_id": "simulation_runtime.authority_incidents",
"function": "_advance_authority_incidents",
"registration_line": 409
"registration_line": 415
},
{
"phase": "INCIDENTS_AND_EVENTS",
"handler_id": "simulation_runtime.defense",
"function": "_advance_defense",
"registration_line": 414
"registration_line": 420
},
{
"phase": "INCIDENTS_AND_EVENTS",
"handler_id": "simulation_runtime.relationship_events",
"function": "_advance_relationship_events",
"registration_line": 419
"registration_line": 425
}
],
"behavior": "String-sorted authority_incidents:8551 → defense:8577 → relationship_events:8615; after completion/charging."
"behavior": "String-sorted authority_incidents:8573 → defense:8599 → relationship_events:8637; after completion/charging.",
"line_authority": "M c0ea009 actual Git source; main handler registration 371-438; operations registration 1787-1791. Explicitly marked ranges remain unverified-M-line."
},
{
"priority": 9,
@@ -472,10 +487,11 @@
"phase": "FACILITY_QUEUES",
"handler_id": "simulation_runtime.guest_queues",
"function": "_advance_guest_queues",
"registration_line": 404
"registration_line": 410
}
],
"behavior": "_advance_guest_queues:8502 releases closed queues first (_release_closed_business_queues:12624); closed queues spend no patience (:8516–8517)."
"behavior": "_advance_guest_queues:8524 releases closed queues first (_release_closed_business_queues:12672); closed queues spend no patience (:8516–8517 [unverified-M-line]).",
"line_authority": "M c0ea009 actual Git source; main handler registration 371-438; operations registration 1787-1791. Explicitly marked ranges remain unverified-M-line."
},
{
"priority": 10,
@@ -486,10 +502,11 @@
"phase": "AI_DECISIONS",
"handler_id": "simulation_runtime.staff_ai",
"function": "_advance_staff_ai",
"registration_line": 424
"registration_line": 430
}
],
"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)."
"behavior": "_advance_staff_ai:8680: 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:8760. DECIDING PLANNED_EXIT → LEAVING; despawn occurs only on later minute (:8760–8762 [unverified-M-line]).",
"line_authority": "M c0ea009 actual Git source; main handler registration 371-438; operations registration 1787-1791. Explicitly marked ranges remain unverified-M-line."
},
{
"priority": 11,
@@ -500,16 +517,17 @@
"phase": "PUBLISH_SNAPSHOT",
"handler_id": "simulation_runtime.snapshot",
"function": "_publish_snapshot",
"registration_line": 374
"registration_line": 380
},
{
"phase": "PUBLISH_SNAPSHOT",
"handler_id": "simulation_runtime.zz_save_checkpoints",
"function": "_process_save_checkpoints",
"registration_line": 431
"registration_line": 437
}
],
"behavior": "snapshot:12476 then zz_save_checkpoints:4514; persistence follows publication."
"behavior": "snapshot:12524 then zz_save_checkpoints:4535; persistence follows publication.",
"line_authority": "M c0ea009 actual Git source; main handler registration 371-438; operations registration 1787-1791. Explicitly marked ranges remain unverified-M-line."
}
],
"safety_cases": [
@@ -519,8 +537,9 @@
"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"
"proof": "ACTUAL S50 native6/24 phases PASS, collector 15+EV missing 0 (historical, bound to S50/Q50); S51 requires fresh native6 (checker:368-371); nativeWindows pending",
"approval": "All six D05 policies approved; pause_reason_scope preserves unresolved sequential interpretation.",
"approval_scope": "See authority_statuses.pause_reason_scope; no sequential display-rule interpretation is claimed."
},
{
"item": "Double-settlement idempotency",
@@ -528,15 +547,17 @@
"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"
"proof": "ACTUAL S50 native6/24 phases PASS, collector 15+EV missing 0 (historical, bound to S50/Q50); S51 requires fresh native6 (checker:368-371); nativeWindows pending",
"approval_scope": "See authority_statuses.pause_reason_scope; no sequential display-rule interpretation is claimed."
},
{
"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",
"source": "Runtime _execute_leave_facility_queue:7575 (release keys:7565–7569 [unverified-M-line]); _leave_guest_queue_boundary:9200; _release_closed_business_queues:12672; _release_closed_business_request:12690",
"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": "ACTUAL S50 native6/24 phases PASS, collector 15+EV missing 0 (historical, bound to S50/Q50); S51 requires fresh native6 (checker:368-371); nativeWindows pending",
"approval_scope": "See authority_statuses.pause_reason_scope; no sequential display-rule interpretation is claimed."
}
],
"proof_legend": {
@@ -554,15 +575,22 @@
"A01 midnight ownership upkeep",
"D05-P04-DEPENDENCY",
"D05-P04-SHIFT-1800",
"D-034 direct business closure"
"D-034 direct business closure",
"D05-P04-DESTRUCTION",
"D05-P04-MIDNIGHT-DAY",
"D05-P04-PAUSE-REASON",
"D05-P04-EXIT"
],
"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"
"pending D05": [],
"observed-current": "All phase and source behavior observations; not approval",
"pause_reason_scope": {
"authority": "D05_REMAINING_APPROVAL.json:30-33 unchanged; all six approvals remain valid",
"proven": "Same-tick onset from ACTIVE gives RELATED; natively proven only by S5B.",
"sequential": "Power loss first, then dependency closure: M facility_service.gd:860-864 shows NO_POWER. Static observation only; never executed natively. EXPLICITLY UNRESOLVED/UNPROVEN under the original approval text. Not a defect, not cured, not proven, and not silently narrowed into an approved meaning.",
"dependency_first": "Dependency closure first returns at :864 and retains RELATED.",
"safety": "M facility_service.gd:569 ACTIVE gate stops progress and charging and holds reservations in every order; no stopped charging, no double settlement and no orphan reservations do not depend on the label.",
"next_action": "No product change needed for P04 acceptance. Any later change at :860-864 is outside allowed_paths and needs a separate owner-authorised task. Do not amend the contract or ask the owner."
}
},
"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.",
"current_source_commit": "c0ea009b28a7649aca6a433a1a24dc0be5e7ab81",