Session-end closeout for S115 (AI_INFRA presence-not-age selector guardrail + rec-3 hmw.js STOP-HARD, shipped81b59f0, CI #385 PASS). STATUS + HANDOFF mega-line blurb, session-log, ensemble-synthesis (closes H10/HCV gate), WAL reset to clean template. No canonical-count change (Mig 65 / 89 tables / 486 tests / gotcha 81). Owner backfill target 210K + reviewer/cicd harvest already in81b59f0. §5.0 squashed the trailing wal: flush. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
5.1 KiB
S115 (2026-07-13) — Adopt AI_INFRA presence-not-age selector guardrail + rec-3 hmw.js STOP-HARD
Type: governance/tooling adoption (0 product code — no
src/, nofe-*, notests/). Lead: Opus 4.8 (1M) Max (Fable outage). HMW-mode: ON. Commit:81b59f0(pushed) + closeout. CI: Run #385 PASS 5m23s, bundle FROZEN.
What & why
AI_INFRA published two items dated 2026-07-13: a directed approval (6c32df89 — approves SE's H-22 + H-21/MTv3 reports at VERIFIED; SE = first-in-fleet full H-22) with rec-3, and a broadcast (ab6c387e, type=update) "presence-not-age selector guardrail" asking each project to re-verify only the selector of its memory refine-step against a 3-point function-floor. Owner directed the full rigorous pipeline.
Pipeline (H21 engine-đắt, owner-directed)
/check-email AI_INFRA (2 new pulled + hash-verified 6c32df89b60a) → /fable-clone reviewer 5-lane ensemble (wf_b621aac4-f0b) → lead verify+synthesize → spec (runs/2026-07-13-presence-not-age-adopt/spec-…-13-07-2026.md, H21 3-heading) → /fable-real reviewer single deep-pass (spec-review-fable-real.md) → PASS-WITH-FIXES (0C/2M/5m) → owner scope-decision ALL-3 (AskUserQuestion) → HMW execute (em-main solo, governance single-writer D9) → adap-report + email → commit + push → CI verify.
🎯 fable-real earned its keep: the 5-lane ensemble converged confidently, but all 5 missed M2 — a real contiguity-inversion bug in em-main's D3 pseudocode (a naive "skip protected entry" on the archive-gate's contiguous top-prefix byte-cut would leave the entry ABOVE the cut → still archived while the code believed it excluded = silent inversion). The independent deep-pass caught it. Breadth (N lanes) vs depth (1 adversarial pass) — the deep-pass catches consensus-shared blind-spots. Also M1 (D2 acceptance grep too narrow).
Deliverables (all verified)
- D2 (MUST) —
hmw.jsfail-soft → up-front STOP-HARD. Unknown non-empty role (typo/rename-drift) →throwin an up-front validation pass BEFOREparallel()(a per-lane throw could be swallowed tonullbyresults.filter(Boolean)= STOP-SILENT, worse). Preserves the legitnull/''/omitted role-less inherit-lead path (H6.2). Acceptance:node --checkexit 0 + stub 7/7 (typo→throw naming#i; null/''/omitted→no-throw; all-12-valid→no-throw). Doc-sync 5 live lines (ultra-on:21/26,README:208,harness-11-engine:348,runbook:520);session-startcorrectly untouched; 3 adap-reports + S56 parenthetical + the 🧊 saga note = frozen history. - D3 (SHOULD) —
memory-archive-gate.ps1value_protect advisory-flag → pre-selection HARD-SKIP. Value-marked LOGICAL entries (heading-only spans,----robust) partitioned OUT of the movable pool BEFORE the size-drain; non-contiguous per-entry byte accumulation (the M2 fix); value-floor WARN. Acceptance (fault-injection): protected-big-at-top NOT drained (afterEst 986>850vs old ~169); permutation-invariant (1029==1029); value-floor fires; DRY-RUN preserved; A7 untouched. Real regression: 12 subs render, A7 242/242, exit 0. - D1 (MUST) —
reinject-ledger.mdre-verify stamp + 3 honest-notes + BUILD-GAP disclosure.governance-detectors0 new HIGH.
Verdict (the broadcast's re-verify)
- (i) reinject-by-absence = COMPLIANT (floor-rot = coverage-gap, not age; CG-1 = rate-limiter not age-rank).
- (iii) MFE age-band = COMPLIANT (print-only flag, no consumer, STATUS-gated denominator).
- (ii)+(iii) archive-gate = RED-FLAG → HARDENED (D3).
- Honest: D3 = defense-in-depth codify, NOT leak-closure (9-token grep unchanged → spine/paraphrase leak remains; em-main value-scan stays the guarantee). Reinject per-item-L1-presence detection stays PARTIAL (BUILD-GAP).
Other
- Owner-directed:
crystallized_backfill.target0 → 210K (budget.json); planner confirmsexpected_backfill 210Kfits headroom 253.7K. Honest caveat recorded (file-floor headroom = upper bound; ~44K left for task-context worst-case). - RAG-down at bootstrap (§2.3):
list_projects0-chunks across all collections = gotcha #14 down-artifact (Qdrant off after reboot, corpus intact). AI_INFRA restored it (their domain, §I1); SE flags + defers. Recorded infeedback_aiinfra_charter_v2(don't runrag-infra.ps1— positional syntax note). - #53 return-garble ×2 (fable-clone lane-4 Part B → recovered from
sub-reviewer-4.md; cicd #385 → recovered em-main-solo curl + diary). 0 work lost. Cumulative ~×19. - AS-10 residual:
reviewer/MEMORY.mdself-written by the fable-real Agent-spawn → git-diff backstop caught → em-main verified faithful → KEPT (convention-not-mechanism). - H22 dogfood: the Stop-hook auto-committed run-trace + agent-memory as
wal:flushes between turns; §5.0reset --softsquashed this-session's trail into one[CLAUDE]commit (no pushed-history rewrite).
State (unchanged — governance-only)
Mig 65 · 89 tables · 486 tests · gotcha 81 · menu 54 · bundle admin D51OYyGV / user BVdssm5S · prod 37 NCC / 17 user. No new User-Mark (codify-only, applies existing RC-…10-29-11).