KB-4EB0

C1-DRYRUN-EXECUTION 04 — C1 Manifest / Resolver & Hash Proof — 2026-06-22

3 min read Revision 1
c1-dryrun-executionmanifestresolverr-c1cser-v1authority-residualjoin-zeroregistration-hold2026-06-22

C1-DRYRUN-EXECUTION 04 — C1 Manifest / Resolver & Hash Proof — 2026-06-22

Gate: REGISTRATION_HOLD · CAN_PROCEED = NO · 0 runtime mutations.


1. Resolver R_C1 (carried from PATCH2 file 04 — design, deterministic)

The authoritative value source is apr_action_types' own governed columns (action_code, risk_level, handler_ref, _dot_origin provenance), with act_type as a constant for the C1 vocabulary. The PATCH1 enrichment join to process_axis_action_vocabulary is dropped as broken.

Live confirmation this session (read-only): apr_total=14, pav_total=12, joined_on_action_code=0. The join is empty — the two namespaces are disjoint (apr uses create_item, authorize_build_step, …; pav uses APPROVE_BIRTH_ADMISSION, …). This reproduces R8 and confirms the dropped-join correction is correct.

2. What is recomputable now vs. blocked

Item Status
Canonical serialization cser-v1 (JCS-style canonical JSON, UTF-8 NFC, sorted keys, explicit null) defined (PATCH2 file 09); recompute command published
Sample value digest (PATCH2): SHA-256 2ab1f90b… over the cser-v1 bytes of one value recomputable from the published bytes + command
Frozen manifest_digest over the admitted set BLOCKED — requires the curated, Gate-B-admitted value set, which can only be admitted through DOT_C1_VALUE_ADMIT (absent, file 03)

3. Why the manifest cannot be frozen here

A manifest digest is meaningful only over the actual admitted rows. Admitting rows requires the governed value-admission handler and the C1 table — both absent (file 02/03). Producing a digest over an invented set would be exactly the "values curated later / provenance ≠ authority" defect Codex flagged (review §5.3). Therefore the manifest stays an authority/runtime residual, not a closed artifact, in this package — unchanged from PATCH2.

4. Classification & boundary attestation

RESOLVER_DETERMINISTIC (design closed) + MANIFEST_FREEZE_BLOCKED_PENDING_CONTRACT (residual). No values admitted, no digest registered. REGISTRATION_HOLD retained; CAN_PROCEED = NO; 0 runtime mutations.

Back to Knowledge Hub knowledge/dev/laws-new/reports/c1-dryrun-execution/04-c1-manifest-resolver-and-hash-proof-2026-06-22.md