P04-01: 同時発生の更新規約
This commit is contained in:
@@ -0,0 +1,160 @@
|
||||
## REPAIR49 current correction
|
||||
|
||||
Source-ready only; original 30/88, formal 16, P04=0, no partial credit.
|
||||
REPAIR48's specification-mismatch blocker below is historical and corrected:
|
||||
the immutable 7000-byte original has SHA256
|
||||
d28aadb044633f7d804de5a92c8d4c4a7438dfbf44c3243dca978951f4def25f;
|
||||
removing its single EOF LF gives
|
||||
9ec722e7dfb0bee178d291624a026420c08412574e238bba1fde012c7a6f7881.
|
||||
This is the existing Git/Runner strip/checker one-EOF-LF pin contract.
|
||||
No specification, approval or normalization change. Older contradictory wording
|
||||
below is superseded history, including blanket full-reuse prohibitions and
|
||||
all-controls-unexecuted wording. Q47 admission/index failures remain failures.
|
||||
See REPAIR49_STATUS.md for closure audit and verbatim complete_B FileNotFoundError.
|
||||
Root handoff reports payload(B), all53, series/join/power PASS; order-typed remains
|
||||
UNDETERMINED. Worker did not rerun them. Corrected complete_B remains unexecuted.
|
||||
Old native/full successes confer no new-S acceptance or credit.
|
||||
|
||||
|
||||
# REPAIR48 implementation status
|
||||
|
||||
BLOCKED on exact specification-version context; source changes are retained for
|
||||
review. No acceptance or new credit is claimed.
|
||||
Original scope remains 30/88; formal credit is 16; P04 credit is 0.
|
||||
Engine runs, Git writes, Runner actions and delegation are prohibited.
|
||||
|
||||
The supplied task contract declares spec_sha256
|
||||
`9ec722e7dfb0bee178d291624a026420c08412574e238bba1fde012c7a6f7881`.
|
||||
The actual immutable docs/spec/acceptance/P04-01.json hashes to
|
||||
`d28aadb044633f7d804de5a92c8d4c4a7438dfbf44c3243dca978951f4def25f`.
|
||||
That local hash agrees with REPAIR47_STATIC_CHECKS.json. This worker has not
|
||||
changed the specification or selected a replacement authority. Root must resolve
|
||||
which exact specification bytes govern the retained repair before gate use.
|
||||
This is an exact-version context gap, not a proposed acceptance change.
|
||||
|
||||
## Current changes
|
||||
|
||||
`build_p04_index.py` separates exclusive generation (`relocate_materials`) from
|
||||
read-only `payload`. The exact output is resolved B/p04-evidence, with no existing
|
||||
output, traversal or parent symlinks. Fixed pins plus QA are checked for exact
|
||||
duplicates and conflicting identities, including across series. Copies are
|
||||
content-addressed under the first referencing series, created exclusively, and
|
||||
rehashed. Exact (original path, bytes, SHA) identities share one copy across all
|
||||
series; different original paths are never silently merged. RELOCATION.json
|
||||
keeps original pin paths as keys. Raw inputs are never rewritten. Every payload
|
||||
call checks map membership, declared relative form, hashes, unmapped files and
|
||||
exactly one wrapper candidate. Materials and wrapper descriptors are relative;
|
||||
the relocation-map SHA is included in the index. The obsolete absolute material
|
||||
admission pre-check is removed. Main relocates, derives, checks refs and roles,
|
||||
then writes index and the separate invocation receipt. Failure leaves a failed
|
||||
output attempt without a usable index; an existing output cannot be resumed.
|
||||
|
||||
S5 dependency identity uses the package-relative power, series and guard module
|
||||
paths. Each module is read once and those same bytes are compiled and executed,
|
||||
without cached bytecode. Symlinks, outside dependencies and mismatched mappings
|
||||
are rejected. The roster is checked against the modules loaded. Dependency maps
|
||||
are checked against the executed roster before deriving facts. Absolute observed
|
||||
paths and checkout are retained in collection/dependency-invocation.json, outside
|
||||
the compared s5.json and the collection manifest's series mapping. The adapter's
|
||||
own observed path and executed-byte SHA are also retained there.
|
||||
|
||||
## Static path audit
|
||||
|
||||
| Value | Result and required context |
|
||||
| --- | --- |
|
||||
| fixed pins and QA | Source placement is free-form. Generation reads original pinned paths; verification admits relocated relative copies under B/p04-evidence. |
|
||||
| wrapper | Exactly one distinct original pin path must match wrapper_sha256; descriptor uses that relocated copy. |
|
||||
| runner-input row | Absolute path is constructed from the current B and the registered series run. supplied_file admits each registered run root. No earlier Root B is embedded by the builder. |
|
||||
| C references | Constructed under current B/audit-support/native-first-current, one of supplied_file's fixed roots. |
|
||||
| native_bundle | Same fixed native-first-current root under the supplied B. |
|
||||
| authorities | ROOT-relative source paths, resolved against the invocation's gate.ROOT. |
|
||||
| native and full raw references | Relative to each retained run/B, with original provenance retained. No analysis checkout is used as a payload identity. |
|
||||
| S1–S4 / verify_fresh_* | Shared implementations in p04_native_series.py; no separate checkout-keyed dependency maps. Current metadata modules are found via __file__; that path is not returned as a fresh fact. Fresh wrapper loading now executes source bytes directly. |
|
||||
| S5 adapters | Checkout-keyed dependency map corrected. Raw hash keys refer to the immutable raw input, not the analysis checkout. Explicit raw root is resolved before writer/reader references are formed. |
|
||||
| readers | Independent Reader data is validated from raw run-relative references and recorded original provenance. bulk_reader_equivalence.py is a fixture using explicit scratch checkouts, not a production payload producer. |
|
||||
| full_suite_verifier | Explicit Q root and retained run are inputs. Its reference map uses run-relative names. Metadata module loading now executes source bytes directly. |
|
||||
| scratch_fixture_adapter | Explicit scratch routing only; no production compared payload. |
|
||||
|
||||
Transport does not make the entire B portable by itself. FreshSeries still
|
||||
requires original Q source paths/project_root, the retained stage/formal copies,
|
||||
and the exact engine file for identity reads (no engine launch). full-suite
|
||||
verification also reads its recorded actual Q. If a later invocation changes B,
|
||||
the registry/run hierarchy and these original-source contexts must still be
|
||||
supplied. Missing context is a blocker; do not rewrite raw pins or the checker
|
||||
to conceal it. Static supplied_file inspection found no additional absolute
|
||||
descriptor admission gap in the builder's rows above. Runtime admission has
|
||||
not been claimed.
|
||||
|
||||
## Historical failures and successes
|
||||
|
||||
The Q47 material admission failure is preserved verbatim in
|
||||
REPAIR48_HISTORICAL_ROOT_Q47_ACTUAL_MATERIAL_ADMISSION_FAILURE.json.
|
||||
All eight recorded attempts failed with their original `unsupplied external
|
||||
material: ...` messages. The index generation traceback is preserved verbatim
|
||||
in REPAIR48_HISTORICAL_ROOT_Q47_ACTUAL_INDEX_GENERATION.log, ending:
|
||||
|
||||
```text
|
||||
ValueError: fresh raw recomputation drift
|
||||
```
|
||||
|
||||
These are failures, not passing receipts. Original raw and historical receipts
|
||||
remain unchanged. Their retained source is
|
||||
build/owner-handoff/p04-after-p26-closure-r01/repair48-final-index-transport.
|
||||
|
||||
Root actually staged the S47 context under p04-fresh-context-r47, deviating from
|
||||
the fixed p04-fresh-context name in the pre-REPAIR48 S5_ROOT_RUN.md line 167.
|
||||
The old direction is retained as history. Material placement is now free-form
|
||||
for builder relocation; no historical receipt is renamed or adopted.
|
||||
|
||||
Q47 native successes and the historical full 184 result (21903 checks, zero
|
||||
reported failures, 329 parse paths, 186 ended PIDs, no guard/cleanup failures)
|
||||
remain historical only. They are not C and cannot be reused under the new S.
|
||||
The immutable checker still binds M/S/Q_tree; no adopter is introduced.
|
||||
|
||||
## Verification handoff
|
||||
|
||||
The worker performed syntax parsing and static source/path inspection only.
|
||||
Per the final worker instruction that tests are formally executed by Runner,
|
||||
no pure control, check-only plan, registered checker or engine was executed.
|
||||
No result is inferred from a historical test count. No unaffected pure result
|
||||
is reused without a complete code/dependency SHA proof; none is claimed here.
|
||||
|
||||
Runner controls added:
|
||||
|
||||
- repair48_transport_controls.py --retained <retained repair48-final-index-transport>
|
||||
checks the real immutable S47 inputs/copies, r47 context and out-of-B Q pins,
|
||||
relocation repeatability, duplicate/conflict rules, material adversaries,
|
||||
wrapper failures, and the actual checker's old-S/new-S binding rejection
|
||||
using simulated Git observations without Git writes.
|
||||
- repair48_identity_controls.py --raw <retained S5 raw> --writer-sha <pin>
|
||||
--reader-sha <pin> --build <complete retained relocated B> checks independent
|
||||
same-byte complete analysis directories (S5 results and builder payload),
|
||||
dependency mutations and mappings, symlinks,
|
||||
outside paths, two read-only payload calls and unchanged B tree, index drift,
|
||||
and external absolute descriptor rejection. The optional B section must be
|
||||
supplied for the complete control, not omitted as an implicit pass.
|
||||
|
||||
All these controls remain UNEXECUTED. Required affected existing controls and
|
||||
fresh check-only S1/S2a/S2b/S3/S4/S5 plans also remain Runner work. A dirty-only
|
||||
failure has not been observed and is not invented. Source-ready is not a gate
|
||||
pass. Runner must verify full negative coverage, including exclusive output,
|
||||
pin-SHA mismatch and ambiguous wrapper bindings, before the native lease.
|
||||
|
||||
## Normal-gate material roster and Root order
|
||||
|
||||
Supply the exact B with native-first-current, historical relocation inputs,
|
||||
fresh-run registry, every fresh run's runner-input/ended/source/UID/formal/raw
|
||||
and lifecycle receipts, the exact recorded Q source and engine identity context;
|
||||
B/p04-evidence/runner-materials with all pin copies and RELOCATION.json;
|
||||
the matching fresh collection including MANIFEST and separate dependency
|
||||
invocation record; and the matching full 184 run and its binding/raw receipts.
|
||||
The final index and generation-invocation receipt belong to this same attempt.
|
||||
Required original authorities and sources must exist in the frozen checkout.
|
||||
|
||||
Root's next order is unchanged: freeze new Q; affected pure controls; clean
|
||||
exact-Q check-only; capacity/PID-end checks; one heavy native lease for
|
||||
S1/S2a/S2b/S3/S4 and all ten S5 cases; readers/adapters; collect 15 EV and all
|
||||
subclauses; full 184 once; index generation with relocation; registered
|
||||
p04-acceptance once (no duplicate Root --verify-only); separate Opus whole-unit
|
||||
review; normal prepare/C/integration/final/Root DB join/ledger/main push.
|
||||
Only whole-unit acceptance can grant credit.
|
||||
Reference in New Issue
Block a user