P08-03: 配置の通常操作受入

This commit is contained in:
Agent Control Runner
2026-10-14 03:22:38 +09:00
parent 12430ba899
commit 7dd450c64c
22 changed files with 7543 additions and 2 deletions
@@ -0,0 +1,67 @@
# P08-03 condition matrix — implementation submission, not acceptance
Immutable specification: `docs/spec/acceptance/P08-03.json`, normalized SHA-256
`7941da4edbd3c43a636a4a3d834d57c095b56da988fa3a056e55b22d3a5d50e9`.
Base HEAD: `12430ba89970bda349781e51157e72e48a4ac06f`. Worker made no commit.
This is one existing unit in 30 packages / 88 units, with no partial credit.
| Condition | Implemented paths / diagnostic cases | Current evidence state |
|---|---|---|
| support_connection | Normal palette: unsupported standard room; supported/connected reception; supported stair with missing landing; lower/upper stair construction. Real preview and Runtime command results are retained. | Source and synthetic checker controls only; real handler/native/OS pending. |
| invalid_position_reason | Reception footprint crosses the boundary from an in-bounds origin; existing reception overlap. Exact displayed Japanese reason and report codes; whole typed before/after preservation. | Source and semantic corruption controls only; actual refusals pending. |
| demolish_rebuild | Palette demolition toggle, cell selection, confirmation/cancel, Runtime `demolish_facility`, synchronous/queued results. Lower landing refusal, cancellation, reception removal, same-cell reconstruction. Occupancy, operational/construction instances, costs/refund checked. | Implemented; Godot parsing, actual UI, audio ownership, Runtime results pending. |
| pan_zoom_world_identity | Move mode + non-Ctrl wheel; normal wheel zoom, 0.5/4.0 clamps; recomputed local/viewport/screen coordinates and actual selected cell. OS recorder requests CUA only. | Mock bridge/checker controls only; actual OS wheel/screenshot provenance pending. |
| separate_pid_resume | Formal four-member save; separate native writer/reader; normal load menu; whole typed/raw checkpoint identity, instance ID, cell and overlap judgement. | Collector/source prepared; real private profiles, actual distinct PIDs and formal saves pending. |
## Original-matched diagnostic choices
`BASELINE.txt` §9.3 names reception/checkout in the lobby; current
`data/facilities/reception.tres` is FRONT 4×2, cost read directly from the
definition. §10.1 explicitly gives standard room 2×1 FRONT; current
`standard_room.tres` matches and is used for unsupported-placement rejection.
§8.4 names stairs; current `infrastructure/guest_stairs.tres` and
`tests/transport/test_runtime_stairs.gd` expose ordinary two-floor stair
construction and `STAIR_LANDING_MISSING` / `STAIR_LANDING_IN_USE`.
All three IDs are in Main's existing normal palette and Runtime registry.
These choices establish this diagnostic slice, never all30 acceptance.
The handler fixture computes any diagnostic resource top-up from the four
planned positive construction definitions. It emits an initial formal save
and a budget report explicitly tagged diagnostic. No production costs,
services, balance values or definitions are changed. New art is unnecessary;
the demolition button reuses Main's existing styling and audio.
## Evidence boundary
`placement.gd` contains the shared finite scenario and handler endpoints.
`passive_placement.gd` overrides **all** input/setup/progression endpoints:
button, reveal, click, wheel, load_menu, complete_build, setup,
diagnostic_budget, save_initial_fixture, archive_formal. Its reachable
scenario neither calls product handlers nor emits their signals, advances
the clock, submits commands, resets Runtime or restores models. It reads
snapshots/reports and archives evidence. Root performs all OS gameplay.
Constructing/freeing the Main scene uses the existing ordinary cleanup helper.
The passive executable has a separate completion line. Only the handler UI
suite adds one entry to the strict marker contract and one source-pinned
ordinary cleanup policy. All previous marker/policy entries are retained.
The native OS collector never routes its process through the headless gate.
Checker controls are synthetic, including fabricated engine, PID, typed-byte
stand-ins, screenshots and weak-reference records. A positive local test
validates the checker, not the game or OS. Controller tests replace Popen,
engine probes, profiles and owner gate with mocks and launch no engine.
See `local-validation.json` and `implementation.json` for the actual final
executed source/input hashes and results.
## Still required from Root / independent review
Freeze a clean exact candidate; collect guarded native handler and real CUA
OS writer/reader evidence; run verify-only against that candidate; perform
impact checks and final full regression after related sources are frozen;
obtain independent Opus review of all five conditions; integrate and verify
the current final source, then update the authoritative ledger.
No reused P08-02 PASS is claimed for changed sources. P08-01 and the whole
P08 package remain open. Windows same-distribution/device evidence remains
open; Mac/Linux results cannot substitute for it. No outside-scope service
defect or required permission change has been demonstrated by this worker.