FIX6 07 — Writer/builder repoint: v9/v6/content-hash authoritative in the apply path
FIX6 07 — Writer/builder repoint (authoritative in the REAL apply path)
The recurring FIX1..FIX5 failure mode: new guards were built but the real writer/builder still used the old ones. FIX6 repoints the actual apply path so v9/v6/content-hash are AUTHORITATIVE (verified: writer uses_v9/uses_signoff_v6/uses_content_hash/uses_unclassified = all true).
fn_dot_birth_qt001_apply (writer) — EXECUTE path gates (all additive/stricter, all fail-closed today)
In order, each RAISEs (blocks) if unmet:
v_qt001_authoritative_legacy_dependency_guard(kept; diagnostic structural callgraph).v_qt001_callgraph_unclassified_fail_guard(FIX6; native callgraph completeness — currently false → always blocks).v_qt001_apply_readiness_guard_v9.overall_ready(FIX6; NULL-strict — currently false).- Fixed-point: CURRENT
qt001_plan_content_binding.content_hash==v_qt001_plan_content_hash(signoff-independent). Satisfiable & stable (not circular). - tier
apply_allowed(none in 2.6A). fn_qt001_signoff_satisfies_v6(FIX6; schema-valid, content-hash-bound — none today).- gateway integrity + Stage 0 freeze + valid OPEN execute permit (none) + expected_delta/max_rows binds + false-done prevention.
Dry-run path (NOT p_execute OR p_dry_run) is UNCHANGED and returns before the execute gates → production monitoring behaviour preserved. The execute path was already unreachable under FIX5; FIX6 makes it strictly MORE blocked.
fn_qt001_build_plan_registry (builder)
Unchanged logic + one addition: after minting the CURRENT plan it populates qt001_plan_content_binding with the stable v_qt001_plan_content_hash (forward coherence so a future rebuild keeps the fixed-point binding).
Rollback (ROLLBACK_fix6_to_fix5.sql) restores the exact FIX5 writer/builder bodies and drops all FIX6 objects/constraints/registry rows.