P23-03: 生活の観察

This commit is contained in:
Agent Control Runner
2026-10-15 07:59:43 +09:00
parent 860136f709
commit 03100beabe
13 changed files with 1386 additions and 101 deletions
@@ -3702,6 +3702,17 @@
"scope": "normal placement; native and OS pending"
}
}
,{
"test": "tests/ui/test_p23_life_observation.gd",
"template": "P23 life observation: <checks> checks, <failures> failures",
"required": true,
"fixed_check_count_used": false,
"source_sha256_at_schema_audit": "b9afa66ec73d3a5cadf86f9a71f0d13f5b085c3cc9a534dfe29b2bed0e2e76a0",
"authority": {
"path": "docs/spec/acceptance/P23-03.json",
"scope": "component and read-only observation only; native unexecuted; whole unit blocked"
}
}
],
"unknown_roster_suite_policy": "refuse, explicitly review its source/schema before accepting",
"roster_count_is_not_hardcoded": true,
@@ -0,0 +1,41 @@
# P23-03 Phase 0 — API and state map
Base: `860136f7099f5e3aee99da5798a627a77f2d8eea`. Static inspection only; no engine execution.
## Exact source references
Line numbers below refer to the base; SHA256 covers the complete file.
| Source | Lines / API | SHA256 |
| --- | --- | --- |
| autoload/simulation_runtime.gd | 203 initialize(clock,state,seed); 225 seed assignment; 466 submit_command; 508 get_rng_stream; 511 create_snapshot; 1483 enable_production_operations; 1780 default demand configuration; 2831 arrival boundary; 2949 apply arrivals; 4137 queue_manual_checkpoint; 4141 save_to_path; 4169 load_from_path; 5066 seed streams; 6103 spawn_guest executor; 7629 build_facility executor; 10859 staff management report; 12464 supply management report | 4696df4a77feb465a5a3ba8b806569f7bcbe1d03c88289acfb78a3928f307d67 |
| autoload/game_state.gd | 20 reset | cf0e884910220e54c56b5875983e53de439af9d893be1e1b65c2121d2a30722f |
| scripts/core/simulation_kernel.gd | 91 reset; 104 advance_minutes; 122 advance_one_minute; 175 set_paused | 341c0c878c4894adbac628d0db6362ff69fc3347bdd9e61e50936e15dc2d1edb |
| scripts/facility/facility_service.gd | 109 get_instances; 656 create_snapshot | ceb4a3e9224587423f273cdb2b56e6843ab176ac1fc4fe79dd498b5ed5c33b77 |
| scripts/guest/guest_service.gd | 170 get_guests; 982 create_snapshot | 56880410e9a00816f9a95d30821982955532de8dd976980934e12016a9f2b21e |
| scripts/staff/staff_service.gd | 166 get_staff_members; 682 get_tasks; 1064 create_snapshot | 355ad5c3c9f85dc4d4ffc3bc4293e36f81078c403d1662512a735b2c8d815fb3 |
| scripts/transport/elevator_service.gd | 345 get_report; 362 create_snapshot | cea09dd9204551c26b31b30cd3aa847cc77e3b75fdac31662b9694a95fb3580c |
| scripts/world/path_service.gd | 545 get_cell_traffic | 447135729a1106639a6eee6754af3195c8a8b458ca26980ae91fa39d80dcfbd4 |
| scripts/supply/supply_logistics_bridge.gd | 122 get_report | b9e394af788595d2744b71f1907c8e7c3d762d38ff49992b1ee74e63b9639e80 |
| scripts/facility/facility_instance.gd | 8 OperationState; 10 State; 30 state and subsequent live fields | 0c6aa493f3299611e05dd26aa429dda8cf7b5c479e4d09632036fb862f79a324 |
| tests/transport/test_runtime_transport_comparison.gd | 91 existing fixed-demand setup; 109 real paid build command | ba577397fa8db5a6cf92cfd398dd7a5ece49e6b59856f14772b67b51ddc0bde9 |
## Deterministic demand capability
An existing deterministic input path is available without Runtime edits: fresh clock/state, `initialize(clock,state,seed)`, then the same scheduled `submit_command(&"spawn_guest", payload, ..., execute_at, idempotency_key)` sequence. The executor validates registered definitions and real walkable cells, creates wallets and GuestRuntime actors, and verifies Path actor projection and movement credit. Explicit IDs must avoid the reserved `guest-auto-` namespace. Inputs and processed results must both be recorded; a seed/hash alone does not prove identical arrivals.
The existing transport comparison exercises public spawning, real paid construction and Runtime-owned movement. It is fixed-demand experimentation, not proof of natural autonomous demand or all six observation categories. Its numeric assertions are not adopted as new acceptance thresholds. Automatic production arrivals are a separate path (`enable_production_operations`): population, weather and terminal-state gates mean the same seed alone cannot guarantee identical accepted arrivals. Layouts must use identical production settings and compare actual arrival inputs/results.
`build_facility` resolves the registered definition, runs `_build_facility_precheck`, then calls `construction_service.start_construction` with `definition.build_minutes`. Construction cost, time and capacities must come from definitions. B may add only the predeclared existing corridor/EV through this command.
## Clock and observation
`reset` defines initial time. Paused manual `advance_minutes` is explicitly supported; abort/pause boundaries must be checked. Commands run before minute increment, then time boundaries, mana, construction, logistics, facility completion, vitals, incidents, queues, AI and publication.
Facility/guest/staff getters expose typed objects; presentation must copy values without mutating them. Elevator reports contain shafts/trips. Path traffic provides actual density/capacity/block fields. Logistics reports contain requests/deliveries, source/destination IDs, carrier, requirements, weight, state/reason and task ID. They do not contain warehouse stock: requested quantities must never be labelled stock.
## Formal save/load and evidence
Use `queue_manual_checkpoint` or `save_to_path`, then `load_from_path` under a distinct real PID. The load API pauses the clock and invokes SaveService package validation before restore. `restore_snapshot` alone is not formal resume. Preserve all package members, source/spec/engine/settings pins, whole typed sparse snapshots and actual CUA/process/cleanup evidence.
Original references read: BASELINE.txt lines 10,13,16,25,37,43,69,83,106,216; IMPLEMENTATION_PLAN.md line 1800; immutable P23-03 spec; recorded direction 83e836e. All seven conditions remain mandatory, with no partial credit. Root native/OS/resume/full-regression evidence is missing.
@@ -0,0 +1,94 @@
# P23-03 worker status: submitted static work, implementation incomplete
Base commit: `860136f7099f5e3aee99da5798a627a77f2d8eea`.
This submission preserves the previous dirty work and adds genuine static
implementation. It is **not acceptance-ready**. No external Runtime capability
gap or out-of-scope defect has been established. Remaining implementation is
listed separately from pending Root evidence; no acceptance credit is claimed.
## Inspection and changes in this repair
- Re-read the recorded direction, Phase 0 map, previous status and renderer diff.
The single frame builder supplies drawing and the deep-copy public report.
No renderer redesign or additional renderer was introduced. Existing renderer
and component test bytes were retained.
- Added `tests/fixtures/p23-03/layout_comparison.gd`. Both layouts initialize the
public Runtime with seed 806042, reset budget and clock, identical production
defaults and the same recorded 48-person arrival script. Commands build the
existing elevator and corridors; B adds only the declared second elevator.
Preparation time derives from registered definition build times.
- Predeclared metric: sum of destination-arrival minutes for the entire cohort.
The checker rejects incomplete cohorts, changed actual arrival payloads,
additional layout changes, changed initial state, and non-strict improvement.
No observed improvement is claimed: the fixture has not run.
- Extended diagnostic_stream with hash-addressed typed event/input records.
The fixture records actual command results, domain movement events and
per-minute guest/path/EV/facility projections, including service history,
queues and density. Whole aggregate state/report pairs are sparse (30-minute
intervals); the existing P08 typed encoder is reused without truncation.
- Extended independent checking of room service/rescue occupants and business
enum fields, queue allocation/overflow, shared transforms, traffic, logistics
report selection/order and cabin geometry. Added Rect2 and vector-key decode.
The checker still refuses whole-unit acceptance.
## Exact remaining implementation (not external blockers)
1. Finish rest destination selection from typed path costs and event/defense
locks. Current room check validates eligibility and reported rest references;
it does not independently prove which rest destination Runtime selected.
2. Finish every actor/passenger mode and geometry, including cleaning,
rest/rescue/service slots, visual track history, badge text and screenshot
rect/pixel provenance. Cabin endpoints and rectangles are checked, but
unpaused prior-frame interpolation origin is not independently established.
3. Complete A/B definition/source/production pins and command/event/path
cross-validation, invoke the fixture from the Root collector, and add
representative real operational scenarios for all six categories and BACK.
The added experiment covers the fixed-demand FRONT transport comparison;
it does not establish actual service purchasing or all-six-category coverage.
4. Replace run_p23_life_observation.py readiness stub with the actual Root
collector using P08 owned-process/profile/source/engine/ordinary-audio and
CUA request/ACK helpers. It remains unchanged; it launches nothing.
Formal save, distinct-PID normal resume, both-layout FRONT/BACK/pan/zoom,
complete CUA receipts, all-run cleanup/protection and failure history remain
to be wired and independently checked.
5. Add missing meaningful negatives, especially normal OS/distinct-PID resume,
visual provenance and the remaining rest/motion branches. Existing 12 local
tests are not a complete seven-condition test matrix.
Steps (2) and (3) of the repair direction are therefore still incomplete;
step (4) is not implemented. This is a partial static submission, not a claim
that the requested repair is finished. Do not begin acceptance on an assumption
that all worker deliverables are complete.
## Checks actually run in this repair
- `python3 -B tools/test_p23_life_observation_evidence.py`: 12 test methods,
zero failures. Synthetic Python examples validate rejection logic only.
- AST syntax: all three P23 Python tools parsed.
- Marker JSON: old rows and metadata unchanged; exactly one appended row;
its SHA matches the unchanged GDScript component test.
- `git diff --check`: passed.
- No Godot parsing/runtime, native, OS, Runner or full regression execution.
- No git writes, subagents, integration, new assets or production changes.
suite-policy.json was not changed; no new suite was registered.
## Source SHA256 at local checks
| File | SHA256 |
| --- | --- |
| scenes/main/world_preview.gd | add770377c190a5ccdde95379539de9753f7dabc703c1d58452ba590c6eda2f0 |
| scripts/ui/room_presentation.gd | 55340b7b623532e861be1d21225635fd9169e2e40928597c1cd0458b99524dd9 |
| tests/ui/test_p23_life_observation.gd | b9afa66ec73d3a5cadf86f9a71f0d13f5b085c3cc9a534dfe29b2bed0e2e76a0 |
| tests/fixtures/p23-03/diagnostic_stream.gd | ff178a094fc310b0640d923a15058c6f6fcf859551c14f6428a5709dcd24260e |
| tests/fixtures/p23-03/layout_comparison.gd | ddf00268b8e32e3c5c078ebb57ada321382ecc7c5fbd87efad7e9dfbe768df6b |
| tools/run_p23_life_observation.py | 53c2f0638d4a861cf4fcb664504c25df33ae5478207867654f1c8cdf58fa23c7 |
| tools/check_p23_life_observation_evidence.py | 318b253a08248a753b88902e382edc5f01cbce6f1ed8092359698b69d3bb0503 |
| tools/test_p23_life_observation_evidence.py | 0f20d3de20b44f46f8738c0d022fcc1179656014e85fe31754f00b87ec2c288a |
## Root evidence: pending
After genuine completion and freezing: both-layout native and actual normal OS
observation, full CUA trace, formal save and distinct-PID resume, mandatory exact
version full regression and independent Opus review. These absent Root results
are **pending**, not blocked. The fixed 30-package / 88-unit denominator and all
P08/P22/P25/Windows/held-gesture/performance exclusions remain unchanged.