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

This commit is contained in:
Agent Control Runner
2026-10-18 10:58:54 +09:00
parent 2dde7596a8
commit 20d0ae5990
32 changed files with 11890 additions and 314 deletions
@@ -0,0 +1,67 @@
# Repair 30 — BLOCKED / partial implementation
This revision is **not ready for Root native admission**. Formal status remains
**16/88, P04=0**. Outstanding items include unfinished implementation, not merely
the fresh evidence Root is expected to produce after submission.
Implemented within allowed_paths:
- Four actual human approvals, exact answer/policy text, both source paths and
SHA256 bindings; candidate documents marked superseded.
- Per-ID path/hash authority binding for six D05 IDs; required authority refs
corrected without changing the 15-condition + EV roster or thresholds.
- Frozen M is c0ea009b28a7649aca6a433a1a24dc0be5e7ab81. Counts/membership derive
from Git objects: 1368 product files excluding checker, 3644 metadata paths.
Ordering functions retain registered byte equality; applicability has 58
changed function units. Full details are in REPAIR30_SOURCE_FACTS.json.
- Q must equal the recomputed merge-tree object. A commit cannot impersonate Q.
C must have frozen M as first parent, legal S as second parent and the same
entire tree as Q. Selected native sources explicitly include the checker;
product equality continues to exclude it.
- Seven-domain audit refreshed with actual M hashes/function lines. All
condition-specific nativeWindows obligations remain pending.
Implementation/context gaps blocking readiness:
1. S5's four executable drivers and raw semantic adapters are **not written**.
s5/PENDING.md records concrete source constraints. Additional approved
destruction/day/pause-reason/exit measurements are not enforced from S5 raw
bytes yet. REQUIRED retains the existing safety metrics.
2. p04_native_series.py, collect_p04_native.py, S1–S4 wrappers and parts of the
schema2 builder still bind historical run names/manifests/raw pins. Connect
fresh Q material without replacing historical records or inventing future
hashes. The builder now reads tested revision from native provenance and
includes the checker, so the old bundle cannot satisfy the new role check.
3. Full184/329 runner-input has no source_before or QA_overrides, unlike native
QA inputs. It needs its own exact source/settings/markers/policy/engine/input
and ended-receipt join. The native input loop is not a full-proof verifier.
4. Parent/tree equality alone cannot establish normal prepare-integration
provenance: a synthetic commit can have identical parents/tree. The supplied
plan does not define the concrete normal-candidate qualification receipt,
path and hash contract. Independent qualification remains pending; no
invented Runner API or authority has been added.
5. Bulk and role fixtures perform Git writes, including temporary objects,
commits and merges. They were not run under the worker Git-write prohibition.
Updated role negatives are unexecuted; genuine fresh-Q positive and
fake-normal-C rejection remain unqualified.
Static results are in REPAIR30_STATIC_CHECKS.json. Historical/synthetic fixture
success is not new game evidence. No engine, formal registered gate, Runner
operation, Git write or other agent was invoked. Product/test-tree/Clock/values
remain unchanged.
Required Root order after remaining implementation is repaired:
1. All eight static controls plus role/applicability/approval negatives.
2. Genuine Q from final S and frozen M; fresh real native S1–S5 once.
3. Inspect free disk and verified CoW, then full184/329 once on the same final Q
including final checker; bind test_required_kitchen separately.
4. Truthful index from exact raw material.
5. Registered p04-acceptance on S with --verify-only.
6. Independent whole-unit review.
7. Normal prepare-integration/final on independently qualified C, equal to Q for
source/settings/markers/policy/engine/inputs.
Keep live Root records under .runtime while M is frozen. Old S1–S4/r22 and f5
full178 remain historical. No known-fail formal gate is a progress check.
No sources/evidence are removed for the obsolete 500000-byte cap.