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

This commit is contained in:
Agent Control Runner
2026-10-16 06:12:33 +09:00
parent accd07c91d
commit b543c26c95
19 changed files with 3076 additions and 24 deletions
@@ -0,0 +1,183 @@
# Repair20 — source submission; tests NOT RUN
Source-only repair. No Git command, fixture, collector, series, Godot/native,
Runner, agent, commit, branch or integration operation was executed. The only
code validation performed was Python `compile(..., 'exec')` in memory, without
imports/execution of the edited modules. No acceptance is claimed. Original
credit remains 13/88; all 15 conditions + EV, seven domains and three safety
outcomes retain their scope. nativeWindows remains pending for every condition.
The next submission SHA is assigned by Runner and is not predeclared here.
Changed files:
- `tools/check_p04_order_evidence.py`: real checkout/role binding, isolated
object stores under B, first-1080 R2 join, schema2 recomputation and r20 collection.
- `p04_native_series.py`: B1 departure/despawn/full-state joins, explicit 352/176
S3 checks, confined getter projection, persistence pins and six-header diagnostic.
- `collect_p04_native.py`: exclusive new collection at
`B/audit-support/p04-raw-collect-r20`.
- `checker_negative_fixtures.py`: retain existing content-case IDs and meanings;
isolate their content layer explicitly in the test harness, while the separate
real-Git fixture exercises production role binding without a bypass.
- New `build_p04_index.py`, `checker_role_fixtures.py`,
`checker_encoder_fixtures.py`, `checker_join_fixtures.py`.
- New `REPAIR20_STATUS.md` and `REPAIR20_CORRIGENDUM.md`.
In-memory compilation: all eleven Python files (checker plus ten modules in E)
compile. This is syntax validation only; every test below is **NOT RUN**.
The retained C region, `NATIVE_RUNS` through `verify_native`, is byte-for-byte
equal to T's retained source, SHA256
`5d778b3cfab7c139ca03812489508ce9aae90c1d17f8c2249c340f30d1496b3b`.
`verify_product_target` itself is also byte-for-byte retained and no longer called.
Existing repair17/18/19 status, corrigendum, raw outputs and T's retained archives
were not modified. Existing C 25 negatives and series 56 negatives remain required.
## R3 source pins
Product source: `scripts/operations/operations_coordinator.gd`, 130891 bytes,
SHA256 `871a248ee101b6df543fd5cf0440b5d4b0f02c21fa145a99f0687888c1bc6f90`.
Runtime verification checks the complete bodies and cross-checks the actual
body bytes, lengths and hashes against `T/ROOT_ACTUAL_PERSISTENCE_CALL_CHAIN.json`.
| Function | SHA256 |
| --- | --- |
| get_day_summary | 449eef926054cf76c39d6b4c016da3d775d41f2b343b4f8ad57b62c594cb32bb |
| create_snapshot | 8c6e4f000e6df6f0f996445a57c4c17223cae4e1df57a9c2e3a605cf4d9f5309 |
| _snapshot_root_report | 96084d76beeac11d165753a82160f789cd47b4dec4b6bb8cd6599a4f5ed08efe |
| _visit_snapshot_tree | 70792369c05882b813632a3c96f934928e9a089d420700cfc0d4c8fa971972a0 |
The corrigendum lists all six Array header changes. Native persisted comparisons
are direct typed-byte comparisons. Raw getter inequality remains diagnostic.
The optional projection admits only the supported persistence subset; unsupported
composite dictionary keys fail closed. Its negative controls include field loss,
extra fields, both numeric-type directions, value changes, nonfinite floats,
invalid keys, collisions, unsaveable values, wrong call chain and use on native
persisted comparisons. The positive changes only Array headers and StringName.
## Condition disposition on this untested source
No condition is newly proven by this dispatch. All tests are **NOT RUN**.
| Condition | State and reason pending Root execution |
| --- | --- |
| power_stop | Open: new B1 959–963 join; real B at 959/960, normal recorded departure then absence, unchanged one-time release, stock 1, wallet 50, no B charge; recovery 25 at 962 and no extra 963 charge. |
| destruction_stop | Pending: retained S3 B4b BROKEN failure and zero-sale/release predicates. |
| dependency_stop | Pending: unchanged C paused service identity/progress/reservation proof. |
| shift_completion | Open: new C first-1080 join; PIDs 77462/77504/77536 ended, 1338-file content 5f, 44→45, ledger_00000006/25G, DAY2 present before handover and zero after, no extra at 1081. |
| recovery_completion | Pending: unchanged C recovery transaction/idempotency join. |
| same_minute_replay | Pending: retained real paid request-resend join; never substituted for settlement replay. |
| closure_release | Pending: retained S3 closure/release plus despawn-aware B1 checks. |
| exit_release | Pending: retained S3 B2 release/completion ordering. |
| patience_release | Pending: retained S3 B3 patience expiration and release. |
| paused_midnight | Pending: unchanged C paused-midnight series. |
| midnight_settlement | Pending: retained S2a nonzero sales/payroll/upkeep/duty joins. |
| midnight_replay | Pending: actual advance_to replay, zero processed minutes and zero daily closes, exact Runtime bytes. |
| save_restore | Open: direct full typed Runtime and formal 4+4 equality remain mandatory; optional getter projection must equal actual persisted day1. A remaining mismatch is explicitly reported, never projected out of native restore. |
| night_staff_absent | Pending: retained S2b WAITING_FOR_STAFF at 1081. |
| overtime_task | Pending: retained S2b interrupt-level-zero task/staff/shift and once-only duty joins. |
| EV | Pending: retained S1 reachable reserved staff power-stop proof and pinned static chain. |
Stage A is implemented but **NOT RUN**. Submission is inferred from actual Git
ancestry and scoped diff; the composed product is labelled prospective, not a
tested worker game. Integration/final requires an actual two-parent merge and
exact recomputed merge tree, native product map/modes and submitted checker/doc
patch. Every tracked file and executing module must match HEAD bytes/mode;
untracked/ignored files and symlinks fail. Unknown/deleted sources and candidate,
code-only or phase declarations cannot authorize a role. Metadata membership
comes from the real 9b1a18c tree, without the old count assumptions.
Schema2 retains native source/config/input/environment, real lifecycle PIDs,
formal proofs, complete raw references, authority and original-audit uncertainty,
domain and reachability mappings. Its entire payload is recomputed from raw by
the same checker. It contains no candidate==HEAD pin or Root-passed flag.
`generation-invocation.json` separately records the actual invocation/HEAD.
## Root execution order (all commands below NOT RUN)
Run from the clean, actual auto-submitted checkout. Root supplies actual clean
merged/final checkout paths later; do not substitute invented SHAs. Preserve all
prior output directories and use exclusive fresh output destinations.
```sh
export B=/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build
export E=docs/plans/original-completion-2026-10-02/execution/p04-01
export BUILD_OUTPUT_DIR="$B"
export PYTHONDONTWRITEBYTECODE=1
```
1. Local file-only and fixture controls on the actual new SHA:
```sh
python3 "$E/checker_negative_fixtures.py"
python3 "$E/checker_applicability_fixtures.py" --native-bundle "$B/audit-support/native-first-current"
python3 "$E/checker_native_fixtures.py" "$B/audit-support/native-first-current"
python3 "$E/checker_series_fixtures.py" --build "$B"
python3 "$E/checker_encoder_fixtures.py"
python3 "$E/checker_join_fixtures.py" --build "$B"
```
2. Real series against B, then the exclusive r20 collection:
```sh
python3 "$E/p04_native_series.py" --build "$B"
python3 "$E/collect_p04_native.py" --build "$B"
```
3. After auto-submit, generate the fresh normal Runner index. B/p04-evidence was
absent at static inspection. If it is now occupied, retain it and choose an
explicit fresh directory with P04_EVIDENCE_DIR for manual checks; do not overwrite.
The normal Runner uses B/p04-evidence and must receive that actual generated index.
```sh
python3 "$E/build_p04_index.py" --build "$B" --output "$B/p04-evidence" \
--invocation validate \
--registered-ref deb1bcb2374eb378b840ca345db952bd8572cb6e \
--tested-ref 5f6bc11d6bb6e92d22d787989b219fef3a435bc1
```
4. Checker on submitted, merged and final actual checkouts. Real temp-Git fixtures
need the generated index, so their execution follows step 3, not a fabricated
pre-submission index. They create throwaway repositories/objects only under B.
```sh
python3 "$E/checker_role_fixtures.py" --build "$B" --evidence "$B/p04-evidence"
python3 tools/check_p04_order_evidence.py --verify-only
python3 "$P04_MERGED_CHECKOUT/tools/check_p04_order_evidence.py" --verify-only
python3 "$P04_FINAL_CHECKOUT/tools/check_p04_order_evidence.py" --verify-only
```
The same index works in all three roles. For separate invocation records, the
generator also accepts `--invocation prepare-integration` and `--invocation final`
with explicit fresh output paths while executing from those actual checkouts.
These labels are receipt metadata and grant no role. Root must respect the normal
Runner state machine: its prepare_integration requires prior formal review.
An isolated local prospective-merge control does not replace that review or move
Runner state. `runner.validate("P04-01")`, `runner.prepare_integration("P04-01")`
and `runner.integrate("P04-01")` remain Root operations only.
5. Mandatory whole validation and full 178-game regression once on exact final
sources. The supplied Runner core exposes
`runner.verify("P04-01", final_checkout, actual_final_sha, "final")`; retain every
configured mandatory validation, then run the existing guarded full-game runner:
```sh
python3 "$P04_FINAL_CHECKOUT/tools/run_all_tests.py" \
--project-root "$P04_FINAL_CHECKOUT" --output "$B/p04-final-product-full-r01"
```
Do not change timeout, marker contracts or suite policy, splice phases, or reuse
historical 177-suite proof. Confirm the final selected source map and 178-suite
roster, and preserve source/default-profile invariance. This command is the one
full run, not permission for an additional `make test` native run.
6. Independent Opus review using Root's existing reviewer route, with exact
source/validation materials mirrored into the frozen checkout's .review-material.
The supplied core's formal method is `runner.review("P04-01")`; that method reviews
the actual submitted revision and requires its validation evidence. Any additional
final-composition Opus review must explicitly receive the actual final revision.
The external commander/Opus CLI entry point and installed Runner configuration
were not supplied in this checkout, so no guessed shell command is asserted for
them. Root retains its existing formal validation/review/integration workflow.
The absent external entry-point/configuration details are handoff context gaps,
not evidence of a pass, and not a blocker solely because Root testing is pending.