Verification and packaging support for C632–C731
Prepared without writing the journal, research.py, source files, or any numbered research script. No prior archive or completed research suite was replayed.
Frozen predecessor
The C631 record was read once from the completed preceding journal. Its canonical record hash recomputes exactly as:
8da995fbc41dba4a3b78b59a6a6a316b712980b5052087bc963cd75e15db6351
The new journal's first predecessor field must be:
C631:8da995fbc41dba4a3b78b59a6a6a316b712980b5052087bc963cd75e15db6351
Root supplies evidence/C631_PREDECESSOR.json, source snapshots, and evidence/SOURCE_MANIFEST.json. The verifier reads the manifest dynamically; it does not impose the former cycle's28-source count.
Required source names for predecessor/primary bindings:
| Snapshot filename | Binding |
|---|---|
C631_checkpoint.md | 490d_Research_Checkpoint_After_C631_20260928.md from C631's deliverable hashes |
C631_synthesis.md | 490d_Chronological_Families_Integrated_Draft_20260928.md from the same record |
File52c_latest.md | Pinned primary SHA256 a5ea84562101158b60d0cf296765d6eff38e7a2abda4e74ad1b353dfd13b9530 |
Optional C631_reading_guide.md is also bound when included. Number-prefixed repository snapshot names automatically map back to the same filename in workspace project_sources. File51a.md and Strategy.md retain the previous known mappings. For any additional aliases, root may supply evidence/SOURCE_BINDINGS.json with { "snapshot.md": "relative/current/path.md" }, or a list of paths per snapshot. All available mapped copies must match. Bindings do not change frozen source hashes.
Read-only verification
Completed prefix:
python3 c632_c731/evidence/verify.py --through 641 --require-current-sources --output c632_c731/VERIFY_THROUGH_C641.json
Final, only after C731 is complete:
python3 c632_c731/evidence/verify.py --require-current-sources --output c632_c731/VERIFY.json
For a separately extracted packet, run python3 evidence/verify.py; omit --require-current-sources when originals are unavailable. All snapshot hashes and the pinned primary/predecessor identities still must pass. Missing current originals are reported rather than claimed checked.
The runner replaces journal begin/finish functions in memory and sets research.REPLAY=True. The artifact helper computes the exact generated bytes, digest and relative path without writing. A replay audit hook rejects write-capable opens, filesystem mutations, subprocesses and network operations. It also checks the journal after replay: the entire starting prefix must remain identical; concurrent root appends are allowed only during intermediate verification and are reported. Final100-step verification requires unchanged journal bytes and no pending step.
Every selected record is checked for schema, complete hash, predecessor link, timestamp order, declared metadata, source list, inputs, outputs, findings, reassessments, and Boolean checks. Each script must call exactly one begin and finish. Placeholder-preserving inversion is independently reimplemented; nested inv calls and inversion of tracked inverse-derived values are rejected. Fresh input3430 and unrelated numeric coincidences are permitted. This is a practical guard for trusted research scripts, not a proof against deliberately reimplemented or obfuscated reversal.
The final gate requires exactly100 completed steps632–731. A default full-range run is inappropriate before completion. --through N supports intermediate review without making that100-step claim.
Packaging
Root creates source snapshots and their dynamic manifest. evidence/package.py verifies those snapshots, creates the selected reading report, and captures the completed cycle's evidence into one ZIP without altering the journal or predecessor. Example:
python3 c632_c731/evidence/package.py --first 632 --through 651 --date 20260928
For a later report batch, change --first, while the accompanying evidence ZIP still contains the complete current cycle prefix. Final C731 packaging requires VERIFY.json with PASS,100 completed records, and the exact current journal digest. The packager excludes a pending record, bytecode caches, and future-step scripts. It reads payload bytes once and uses those same bytes for the hash manifest and ZIP, avoiding manifest/archive races. It fails if the journal changes during packaging, so call it between numbered research steps.
No package has been generated by this preparation task. Root retains control of checkpoint timing and persistence.
Preparation checks
- Both helper files compile.
- The C631 predecessor record hash matches the pinned digest.
- Direct guard checks reject write-open, removal, and subprocess actions before any action occurs.
- No new research script was replayed and no unfinished100-step verification was attempted.
Once C632–C641 are complete, this reviewer can inspect and replay that first new batch separately.