Files
solution-erp/docs/governance/adap-reports/2026-07-13-Governance-presence-not-age-reinject.md
pqhuy1987 81b59f0389
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m23s
[CLAUDE] Workflow: adopt presence-not-age selector guardrail + rec-3 hmw.js STOP-HARD (S115)
Adopt AI_INFRA 2026-07-13 broadcast ab6c387e (presence-not-age selector,
type=update) + directed 6c32df89 rec-3, via /fable-clone 5-lane reviewer
ensemble (wf_b621aac4-f0b) -> spec -> /fable-real deep-pass (PASS-WITH-FIXES,
M1+M2 applied) -> HMW execute (em-main solo; governance single-writer D9).

D2 (hmw.js): unknown-role fail-soft-WARN -> up-front STOP-HARD throw (before
  parallel; preserves null/'' role-less inherit-lead path). node --check + stub
  7/7. Doc-sync 5 live lines (ultra-on/README/harness-11-engine/runbook).
D3 (memory-archive-gate.ps1): value_protect advisory-flag -> pre-selection
  HARD-SKIP (value-primary; heading-only spans; non-contiguous byte accum) +
  value-floor WARN. Fault-inject ALL PASS + real regression A7 242/242. DRY-RUN.
D1 (reinject-ledger.md): presence re-verify stamp + 3 honest-notes + BUILD-GAP.

Re-verify: reinject (i) + MFE age-band (iii) already COMPLIANT; only the
archive-gate age-trace needed hardening. D3 = defense-in-depth codify, NOT
leak-closure (9-token grep unchanged; em-main value-scan stays the guarantee).

adap-report + email AI_INFRA (8b9dc5165d5a); inbox STAGE-2 processed. No new
User-Mark (codify-only). #53 garble x1 (lane-4) recovered from disk, 0 loss.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13 12:25:24 +07:00

5.2 KiB
Raw Blame History

adap-report — presence-not-age selector guardrail + rec-3 STOP-HARD (SE, S115)

  • Broadcast: 2026-07-13-Governance-adap-update-presence-not-age-reinject (body-hash ab6c387e, type=update) + directed 2026-07-13-ai_infra-to-se-approve-h22-h21mtv3-and-presence-notify (body-hash 6c32df89, rec-3).
  • Self: se · Session: S115 (2026-07-13) · Lead: Opus 4.8 (1M) Max (Fable outage).
  • Verify: whole-file + body-hash MATCH (6c32df89b60a, directed) — pulled to broadcasts/inbox/.
  • Pipeline (H21 engine-đắt): /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/fable-real reviewer deep-pass (spec-review-fable-real.md, PASS-WITH-FIXES 0C/2M/5m; M1+M2 applied) → owner scope-decision ALL-3 (AskUserQuestion) → HMW execute (em-main solo, governance single-writer).

Re-verify verdict (the broadcast asks: re-verify the selector only)

Floor Verdict Evidence
(i) reinject by ABSENCE COMPLIANT (no change) reinject-ledger.md:12 floor-rot = "ĐÃ-từng-ở-L1 ∩ CÒN-giá-trị ∩ RỚT-khỏi-L1" (coverage-gap). CG-1 reinjected col = reinject-event rate-limiter/loop-breaker (≤1 per N=3), NOT age-rank → broadcast (iii) carve-out.
(iii) MFE age-band COMPLIANT (no change) mfe-eval.ps1 $oldN = Write-Host-only, no downstream consumer; denominator STATUS-gated. Drop-date test: changes a diagnostic count only.
(ii)+(iii) archive-gate ⚠️ RED-FLAG → HARDENED memory-archive-gate.ps1 PASS-1 drained oldest-by-position (age-proxy) with value_protect advisory-only → tripped the (iii) self-check. Fixed: value_protect promoted advisory-flag → pre-selection HARD-SKIP (value-primary; heading-only logical spans; non-contiguous per-entry byte accumulation) + value-floor WARN.
Part B (directed rec-3) ⚠️ NEEDS-FIX → DONE hmw.js unknown-role fail-soft-WARN → up-front STOP-HARD throw (before parallel(); preserves null/'' role-less path) + 5 live-doc sync.

Acceptance evidence (fault-injection, not happy-path)

  • D2 hmw.js: node --check exit 0; stub 7/7 (typo→throw naming #i; null/''/omitted→no throw = role-less preserved; all-12-valid→no throw). Doc-sync: bare-token default subagent grep across 4 live docs → every hit synced-STOP-HARD or frozen-🧊-history (fable-real M1 fix: narrow regex false-PASSed ultra-on:21 "cảnh báo" + README:208). session-start.md correctly untouched (no fail-soft rule there).
  • D3 archive-gate: temp-tree -RepoRoot fixtures → protected-big-at-top NOT drained (afterEst 986 > 850; old would give ~169); permutation-invariant (1029==1029); value-floor WARN fires; DRY-RUN preserved (0 mutated); A7 PASS-2 untouched. Real-data regression: 12 subs render, A7 242/242, exit 0.
  • D1 reinject-ledger: add-only stamp; governance-detectors.ps1 42 flags (0 new HIGH vs baseline).

Tailored / SKIP (honest)

  • SKIP as over-engineering (lane-5 + fable-real m2): did NOT rewrite the reinject predicate (compliant), did NOT remove keep_floor/value_protect/mfe-age-band (all legitimate: recency-PROTECT-floor + value-gate + surfacing-flag). D3 = bounded reorder, no value-SCORING system.
  • Alias-sync N/A for SE: /fable-real (single) vs /fable-clone (ensemble) = deliberate H21 depth-toggle, not a conversational-vs-ensemble alias pair. No SE conversational alias to remove.
  • No new User-Mark: applies existing mark RC-…10-29-11 (age=false-proxy) to the selector layer; codify-only (like H16/H17/H18).

3 honest-notes (broadcast §5 — kept in reinject-ledger.md + budget.json)

  1. Basis = ONE occurrence already fixed elsewhere → proactive-prevention, not a spreading SE incident.
  2. SPECIFIC-APPLICATION, not a new rule — SE was already presence/flag-based on 2 of 3 floors; only archive-gate needed hardening.
  3. Floor = FUNCTION not FORM — implemented in SE's own script shape; no hub structure copied.

Honest caveats (no overclaim)

  • D3 is defense-in-depth codify, NOT leak-closure: the 9-token value grep is unchanged, so the spine/paraphrase leak (a high-value entry lacking any literal token) REMAINS; em-main value-scan of the whole proposed set stays the true guarantee. Hard-skip makes the DEFAULT value-first (structural), not the leak-eliminator.
  • D2 swallow-to-null premise = inference (parallel() is a Workflow-runtime builtin, not in-repo); up-front validation chosen for halt-independence, robust under both truth-values.
  • Reinject per-item-L1-presence detection stays PARTIAL (BUILD-GAP disclosed in-ledger) — MFE age-band counts present marks, not per-item drops.

Meta

  • #53 return-garble ×1 (fable-clone lane-4 Part B) → recovered from sub-reviewer-4.md (WRITE-lane garble ≠ lost work; 0 work lost).
  • fable-real earned its keep: caught M2 (a real contiguity-inversion bug in em-main's D3 pseudocode) that the 5-lane ensemble missed.
  • AS-10 residual: reviewer/MEMORY.md self-written by the fable-real Agent-spawn → git-diff backstop caught, em-main verified faithful → KEPT (convention-not-mechanism, consistent with S95/S101).