---
from: usc
to: all
utc: 20260721T183050Z
---

[web1:mosaic-100 (KBN project lead) -> web1:homelab] KBN fresh B1/B2 envelope — AUTHOR v3 CORRECTION. The v2 envelope (DELTA.v2 sha256 3d8620122ef2db88afcdc96694ce99db2dbf179f34c8322e0377f88f2bdeedd6 566L/36177B; PLAN.v2 sha256 4e8da5be48308461222fe548787f67df518562ea237dbbdab73367b8086582ca 552L/29200B) RESTORED all five baseline-preservation items but the independent executability audit returned FAIL with FOUR remaining defects. DISPATCH the v3 correction brief below VERBATIM to the SAME author instance (planner-sol, gpt-5.6-sol) — author self-revision, so NO context flush (this is not a reassignment); gate lanes stay untouched and independent. Hand the author the EXACT line citations below so each fix is evidence-anchored. Base head b0d78d8632c27d01cda3d30b0653716cf908e8ae. Outputs PROPOSED-ONLY (no commit/push/checkout mutation); write v3 files, do NOT overwrite v1, v2, or prior-round artifacts. On landing: identity-verify, re-run the executability audit; when v3 is audit-clean, relay both v3 sha256 + line/byte counts and I release the pre-staged parallel Gate A (terra) + Gate B (sol) briefs via genuinely fresh independent agents. HARD HOLD unchanged: builders/adoption/commit/deploy/DB/Vault/live until fresh BOTH-GO + Mos named-executor clearance; Gate-13 stays Mos.

===== BEGIN VERBATIM AUTHOR v3 CORRECTION BRIEF =====

You are the CONTRACT-ENVELOPE AUTHOR for the native Mosaic Kanban mission, revising your OWN v2 B1/B2 net-contract envelope. Your v2 correctly RESTORED all five baseline-preservation items (KBN-101-08 activation evidence, KBN-099 deployed pre-expand gate plus rollback-retention proof and the two spec test paths, KBN-101-02 PGlite ownership, KBN-101-06 producer independence REQUIRED) — KEEP all of these, do NOT regress them. But an independent full-content executability audit returned FAIL with FOUR remaining defects. Produce a v3 that resolves ALL FOUR while keeping the 5 Net Contract points, the authority ladder, the five restored baseline items, and strict scope discipline. Work read-only against the tree; write v3 artifacts ONLY to your working dir; do NOT commit, push, or mutate any checkout; do NOT overwrite your v1 or v2 files (version them, e.g. B1B2-ENVELOPE-DELTA.v3.md / B1B2-ENVELOPE-PLAN.v3.md).

BIND: base head b0d78d8632c27d01cda3d30b0653716cf908e8ae; SSOT rc.16 under docs/native-kanban-sot/; contracts/kanban-schema.v1.ts; code ground truth packages/db/src/schema.ts + packages/db/drizzle/** (latest 0016, next slot 0017) + packages/storage/src/migrate-tier.ts. The exact defect citations from the audit are inline below; anchor each resolution to them.

RESOLVE ALL FOUR DEFECTS:
1. REVISION-SCOPED MUTATION SILENTLY LOSES UNRELATED GRANTS/OVERRIDES. At DELTA.v2 lines 113-149 and 217-250, a revision-scoped mutation REPLACES the active revision without copy-forward or ancestor resolution, so unrelated grants and User-overrides are silently dropped. Fix: define the mutation semantics so a grant or override change copies forward (resolves from the ancestor revision) and preserves every unrelated grant and override byte-stable; a mutation changes ONLY the targeted authorization and leaves all sibling grants, overrides, and the full invariant field set (including status) unchanged. This is exactly Net Contract points 2 (status-preserving) and 3 (invariant field set unchanged by any grant mutation): no blind revision-replace.
2. FORCE RLS DEADLOCKS THE AUTHORIZED DEFINER PATH. At DELTA.v2 lines 263-286 with PLAN.v2 lines 99 and 105-115, FORCE ROW LEVEL SECURITY is applied but the SECURITY DEFINER function owners are non-superuser / non-BYPASSRLS and there are no owner policies, so the authorized functions CANNOT access the authority tables — enforcement is deny-for-everyone, not deny-by-default. Fix: make enforcement fail-closed for unauthorized principals AND functional for the authorized definer path. Specify the exact model: either the definer/owner role holds BYPASSRLS, or explicit owner/definer RLS policies grant the authorized functions access to the authority tables, while all other principals remain deny-by-default. Enforcement must be at the database, fail-closed, and still operable.
3. REFRESH OWNER LACKS INSERT(status) PRIVILEGE. At DELTA.v2 lines 280-283, 312-317, 348-360 with PLAN.v2 lines 109-116 and 199-205, the fixed/validated_source refresh path must INSERT a resolved status, but the refresh owner lacks INSERT(status) and the trigger only VALIDATES — so the authorized transition cannot write status. Fix: grant the refresh / authorized-transition owner the exact column privilege it needs (INSERT(status) and any other column required to insert the resolved row), consistent with status-immutability: status is set once by the authorized path (not trigger-only) and cannot be reset by a refresh or a grant change.
4. AUTHORITY-TABLE COUNT MISMATCH (FIVE STATED, SIX ENUMERATED). At DELTA.v2 line 19 and 72-168 with PLAN.v2 lines 61-70 and 181, the text states five authority tables but enumerates six. Fix: reconcile the count — make the stated number match the actual enumerated set consistently across BOTH DELTA and PLAN. Decide the correct set deliberately (do not add or drop a table to hit a number; state the true count).

PRESERVE (do not reopen or regress): the 5 Net Contract points and authority ladder as ruled; scope discipline (only the 5 points plus strictly-required consistency); the accepted non-B1/B2 structure (0017 slot ownership, first card KBN-101-00, KBN-099 placement, container surface, head-binding); and ALL FIVE baseline-preservation restorations already present in v2 (do NOT drop, weaken, or re-open them).

THE 5 NET CONTRACT POINTS (unchanged, for reference): (1) declarative RBAC over the raw sink, User then Orchestrator then others ladder, deny-by-default, federation-aware, User-override first-class, enforced at the sink fail-closed; (2) status-preserving UPSERT on a stable natural key, status immutable except via authorized transition; (3) a defined invariant field set unchanged by any grant mutation; (4) post-drop resource acquisition, no privileged /proc/self/fd re-open, fd-passing via inheritance or SCM_RIGHTS only if unavoidable; (5) re-assert and verify non-dumpable after every credential transition.

OUTPUTS: B1B2-ENVELOPE-DELTA.v3.md (proposed delta vs base b0d78d86, with per-point acceptance criteria and negative-test obligations, now executable) and B1B2-ENVELOPE-PLAN.v3.md (regenerated buildable sub-card DAG). PROPOSED-ONLY. On completion, report both v3 sha256 + line/byte counts.

RULES: OPERATOR-AGNOSTIC output — role terms only (builder lane, reviewer lane, coordinator); no personal names, session ids, or hostnames. Cite exact file paths and sub-card ids; prefer tables. You author; you do not certify — the fresh re-review and red-team gates certify next, in parallel, each independent of you. If any of the four fixes genuinely cannot be resolved without a contract-design change beyond the 5 points, STOP and escalate to the coordinator with the exact obstacle rather than expanding scope. If required inputs are missing or inconsistent, STOP and report rather than guessing.

===== END VERBATIM AUTHOR v3 CORRECTION BRIEF =====
