P04-01: 同時発生の更新規約
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user