Light Follow-ups · 02 fn_iu_create Fingerprint Note
Light Follow-ups · 02 fn_iu_create Fingerprint Note (B-FN-IU-CREATE-FINGERPRINT-NOTE)
doc 2 of 6 · 2026-05-20 · G1 gate
phase : G1 — enrich fn_iu_create fingerprint note in repo outcome : G1 PASS — backlog item closed production_mutation : NONE (yaml-only edit; no DB read/write)
1. Why the note needed enrichment
sql/lifecycle/fingerprints.yaml (committed at 1cd286e during DDL
ratification) pinned the current md5(prosrc) for fn_iu_create so
future drift could be detected — but the entry was a one-liner with no
audit trail tying the pin to its KB provenance, nor any record of the
previous baseline or the origin of the observed drift.
The post-enactment closeout memory recorded the drift explicitly:
fn_iu_create=3017892a5ac605a6daeaa5348e2a6cdf (DRIFT from survey pin dcade99a… via A-4 patch wave; off critical path; flagged R-7)
That context was only in memory, not in the repo. This macro promotes
it into the repo so that anyone reading fingerprints.yaml cold can
distinguish "live md5 differs from pin → STOP" (the drift policy) from
the historical, sovereign-approved A-4 drift.
2. Edit (exact)
File: sql/lifecycle/fingerprints.yaml (lines 52–57 → 52–63).
Before:
# NOT in scope (pre-existing; pinned for cross-check only)
fn_iu_create:
md5_prosrc: "3017892a5ac605a6daeaa5348e2a6cdf"
in_scope_of_m3a: false
note: "pre-existing canonical creator; not modified by M3a-retry"
After:
# NOT in scope (pre-existing; pinned for cross-check only)
fn_iu_create:
md5_prosrc: "3017892a5ac605a6daeaa5348e2a6cdf"
in_scope_of_m3a: false
captured_utc: "2026-05-20"
source_of_pin: "live PG pg_proc.prosrc; cross-checked KB v0.5-post-enactment-closeout-release-readiness/doc 01 (live fingerprint census)"
prior_md5_prosrc: "dcade99a (truncated) — pre-A-4 patch baseline, recorded in KB v0.5-fn-iu-create-canonical-path-survey-and-redesign/doc 02 (S2 contract survey)"
drift_origin: "A-4 publication_type=law patch wave (2026-05-20); not part of M3a lifecycle scope. See KB v0.5-first-controlled-cut-canonical-production-execution/doc 01 §A-4."
drift_disposition: "ACCEPTED — patch wave occurred under sovereign approval; fn_iu_create not modified by M3a-retry; pin recorded here for future drift detection (DRIFT POLICY above)."
note: "pre-existing canonical creator (SECDEF, set search_path); writes IU + UV(version_seq=1) + anchor in one txn; not modified by M3a-retry"
3. What stayed the same
md5_prosrcvalue unchanged (3017892a5ac605a6daeaa5348e2a6cdf).in_scope_of_m3a: falseunchanged.- File-wide
DRIFT POLICYheader unchanged — operator still STOPs on mismatch; the new fields only clarify which mismatches have a documented sovereign-approved origin. - No other function entry edited.
- No DDL emitted, no live PG read, no privileged role used.
4. Why this is "note" and not "DDL drift"
The new fields are pure-comment metadata under the fn_iu_create: key.
The function body is not redefined here. Bundles A..E remain the
ratified DDL surface; fn_iu_create is referenced only for cross-check
(bundle_e_fn_iu_apply_edit_draft_patch depends on it existing, but
does not modify it).
5. Provenance cross-references
| Field | Source |
|---|---|
| current md5 | KB v0.5-post-enactment-closeout-release-readiness/01-live-state-… (live PG census 2026-05-20) |
| prior md5 | KB v0.5-fn-iu-create-canonical-path-survey-and-redesign/02-fn-iu-create-contract-survey-… (S2 survey) |
| A-4 patch origin | KB v0.5-first-controlled-cut-canonical-production-execution/01-canonical-path-preflight-… (A-4 publication_type=law patch wave) |
| drift policy | sql/lifecycle/fingerprints.yaml file header (unchanged, already canonical) |
6. G1 result
g1_outcome : PASS
file_touched : sql/lifecycle/fingerprints.yaml (1 yaml block)
lines_changed : +7 / -1
md5_pin_changed : NO
ddl_changed : NO
production_touched : NO
backlog_closed : B-FN-IU-CREATE-FINGERPRINT-NOTE