C1132–C1431: 300-action verification and packaging
The cycle contains exactly 300 sequential research actions, C1132 through C1431. Its preseal prefix is C1430 (299 actions). Full Strategy reviews follow every completed block of 50 actions: C1181, C1231, C1281, C1331, C1381 and C1431. These reviews are unnumbered gates, not extra research actions.
Root-owned contracts
journal.jsonandevidence/sN.pyuse the existing record schema, one matching begin/finish pair, canonical record hashes and consecutive action numbers. The first predecessor string isC1131:342be9d0c96ff1b6290524df190b12c0e065d492e91ccb546a7841edd5f72f01.evidence/PREDECESSOR.jsonis the exact sealed C1131 record.PREDECESSOR_BINDINGS.jsonmaps each inherited relative filename to its original path in C1131'sresults.final_artifacts. Every final artifact must be covered once; aliases and artifact counts are generic rather than hardcoded.evidence/INHERITED_MANIFEST.jsonmaps every declared inherited path to its SHA-256. The verifier checks all declared files, requires every predecessor binding in that manifest, and checks bound final-artifact byte counts. The includedinherited/C1131_journal.jsonmust end in the exact pinned predecessor; its record hashes and chain are checked. This is not an old numerical replay.evidence/SOURCE_MANIFEST.jsonmaps source basenames to hashes underevidence/sources/. Source counts are dynamic. Latest File52c remains pinned toa5ea84562101158b60d0cf296765d6eff38e7a2abda4e74ad1b353dfd13b9530; Strategy remains pinned to9c9aa357f5483b3af1dbb5f0025ee514fa28160576a037be03037aa49bf01476.- Optional
SOURCE_BINDINGS.jsonmaps source aliases to original paths or path lists. Absolute paths are identity metadata and must stay unchanged for portable replay. - The root owns
research.py, numbered scripts, journal, source/inherited manifests and all six Strategy certificates. No previous-cycle versioned-input override is copied into this new verifier.
Strategy review certificates
Immediately after closing C1181, write evidence/strategy_reviews/review_1181.json, then permit the next numbered begin. Repeat at the other five checkpoints. The C1431 review follows the final seal and precedes final verification and packaging. The writer must block the next action while a required review is absent; the verifier additionally validates its contents and timing. A brief interval after a checkpoint closes and before its review is written intentionally does not pass verification.
Each certificate has exactly these keys:
{
"schema_version": 1,
"checkpoint": 1181,
"completed_record_sha256": "the exact completed C1181 record hash",
"block": {"first": 1132, "last": 1181, "actions": 50},
"strategy": {
"snapshot": "Strategy.md",
"sha256": "9c9aa357f5483b3af1dbb5f0025ee514fa28160576a037be03037aa49bf01476",
"bytes": 29743
},
"full_text_reviewed": true,
"sections": [],
"assessment": {
"strategy_alignment": "Substantive assessment of alignment.",
"last_fifty_actions": "Assessment of the completed block.",
"explanatory_progress": "What now explains how the families fit together.",
"remaining_uncertainty": "What remains unresolved.",
"next_best_step": "The reassessed next step."
},
"reviewed_utc": "a timezone-aware ISO timestamp"
}
The empty sections list above is a schema placeholder, not a valid certificate. Populate it using the helper's pure function after reading the complete Strategy:
from verify import strategy_section_index
data = (ROOT / 'evidence/sources/Strategy.md').read_bytes()
sections = strategy_section_index(data)
The function partitions every original byte at Markdown headings while preserving line endings. It returns 29 entries for this Strategy; each entry contains heading, start_line, end_line, bytes and sha256. Full-text SHA and byte count plus exact equality to the recomputed section index are required. The root supplies the assessment after the actual full review; a coverage index alone does not establish a thoughtful review.
Each certificate binds its completed checkpoint record, covers the preceding 50 actions, and has a timezone-aware timestamp at or after that record closed. When the next action exists, its opening timestamp must be at or after the review. The verifier requires every gate whose checkpoint is already present in the journal, including when a smaller --through prefix is requested.
Commands
For a completed prefix:
python3 c1132_c1431/evidence/verify.py --through 1181 --require-current-sources --output c1132_c1431/VERIFY_THROUGH_C1181.json
After C1430, run the 299-action preseal gate. After C1431 and its unnumbered full Strategy review, run the 300-action final gate and package:
python3 c1132_c1431/evidence/verify.py --through 1430 --require-current-sources --output c1132_c1431/VERIFY_THROUGH_C1430.json
python3 c1132_c1431/evidence/verify.py --require-current-sources --output c1132_c1431/VERIFY.json
python3 c1132_c1431/evidence/package.py --through 1431 --date 20260928
Final verification requires exactly 300 records, no pending action and all six Strategy reviews. Final packaging requires that passing report to bind the current journal and identical Strategy certificate hashes. Prefix packaging also requires every completed Strategy gate. The package captures a consistent journal, excludes pending files, caches and later numbered scripts, and creates a payload manifest.
Replay and portability
Replay substitutes an independent begin/finish/artifact adapter and never imports the journal writer. It checks metadata, declared inputs and sources, exact results, findings, reassessments, true Boolean checks, timestamps, hash chain and source identities. Artifact generation recomputes byte/hash metadata without writing. The audit guard rejects file writes, filesystem mutations, subprocesses and network activity during replay.
Independent decimal reversal preserves trailing-zero placeholders. Static nested-call checks and provenance tracking reject inversion of inverse-derived values. The guard covers this trusted packet; it is not a proof against deliberate manual reimplementation or provenance erasure. Final on-disk artifact bindings still require package preflight because intermediate outputs may have been superseded.
For an extracted packet, omit --require-current-sources. Frozen sources, inherited files, predecessor bindings and Strategy reviews remain mandatory. Absolute source bindings must not be rewritten. To demonstrate detachment while originals exist, verify the archive manifest first, then use a separate subprocess that hides original-workspace file availability and denies its file opens while permitting the extracted packet. Confirm zero current copies and unchanged extracted hashes. Do not move originals or alter packet bindings.