KB-7C6A

D36 No-Vector Staging Zone — Review Answers Freeze (2026-05-25)

11 min read Revision 1
d36no-vector-staging-zonereview-freezedesign-only2026-05-25dieu36-addendumgpt-review-gated

D36 No-Vector Staging Zone — Review Answers Freeze Report

Macro: D36_NVSZ_REVIEW_ANSWERS_FREEZE Date: 2026-05-25 Status: PASS — answers recorded, consistency check clean, no production mutation, no migration, no collection creation. Authors of the answers: user + GPT (per Q15: gpt-first). Parent design package: ops/d36-no-vector-staging-zone-design/ (docs 00-… through 08-…, total 1928 lines pre-edit + freeze section added).

This report is the durable record that the design phase of the No-Vector Staging Zone addendum (Phụ lục Điều 36) is now frozen for GPT review. No implementation work proceeds until GPT review is delivered and Macro A is explicitly authorised.


1. Approved answers Q1–Q15

answers:
  Q1: A           # iu_core schema
  Q2: A           # two-table split: iu_staging_record + iu_staging_payload
  Q3: approve     # per-kind retain_days defaults stand as proposed
  Q4: approve     # approval requirement matrix stands as proposed
  Q5: A-as-sidecar # vector eligibility delivered as sidecar policy table,
                  #   NOT as ALTER TABLE column-add on collection_registry
  Q6: B           # no PG text-search over staging payloads in phase 1
  Q7: B           # no per-actor scoping; rely on actor column + audit
  Q8: A           # idempotency_key = md5(source_ref ‖ staging_kind ‖ suffix)
  Q9: A           # event_domain = 'staging'
  Q10: 10MiB      # per-part payload cap; blob_ref for larger
  Q11: A          # substrate-only; no Directus UI in phase 1
  Q12: B          # no standardised promotion; permanent data re-authored
  Q13: approve    # names baked in as proposed (SPE-NVS, COL-IUS-001/002, etc.)
  Q14: approve    # 3-macro packaging A / B / C approved
  Q15: gpt-first  # GPT review before any implementation macro

Interpretive notes for each answer are recorded inline in 08-review-questions-before-implementation.md and bind future implementation macros.


2. Design consistency check (docs 01–07)

The freeze cross-checks each approved answer against the other seven design docs. Every "same" cell in the compatibility matrix and every contract clause in the architecture / vector-exclusion / birth / MARK docs remains coherent under the recorded answers.

Answer Affected docs Consistency Notes
Q1 A — iu_core schema 01 §5, 03 §10, 05 §3 consistent All three docs already proposed iu_core
Q2 A — two-table split 03 §1–§3 consistent Two-table sidecar is the design's centrepiece
Q3 approve — retain_days 03 §10, 05 §1, 07 P5.1 consistent Per-kind table in §Q3 is the source of truth
Q4 approve — approval matrix 03 §6, 06 §3 consistent Matrix carried into MARK integration unchanged
Q5 A-as-sidecar — vector eligibility sidecar 02 row "collection_registry entry", 04 §2 Layer-1, 07 P3.1 rewrite carried forward into Macro A See §3 below
Q6 B — no text search 04 §6, 07 P10 consistent Already filed as out-of-scope
Q7 B — no per-actor scope 02 row "Permissions / role", 03 (no RLS columns) consistent owner_actor retained for audit only
Q8 A — md5 idempotency key 03 §2 idempotency_key, 06 §7 consistent Mirrors 25000x precedent
Q9 A — event_domain='staging' 02 row "Audit trail", 04 §1, 05 §5 (5 event types) consistent New domain value enumerated everywhere
Q10 10MiB — payload cap 03 §10, 04 (blob_ref path) consistent blob_ref path already specified for overflow
Q11 A — substrate-only Directus 02 row "Directus exposure", 05 §3, 07 P10 consistent Option B explicitly deferred
Q12 B — no promotion path 02 §4, 07 P10 consistent Promotion explicitly forbidden as design narrowness
Q13 approve — names 01 §5, 05 §2–§4 consistent All names baked in
Q14 approve — 3-macro packaging 07 §11 consistent Macro A/B/C scopes confirmed
Q15 gpt-first 07 §12 STOP gate consistent Already the listed review gate

Verdict. 14 of 15 answers are consistent without modification to any design doc. One answer (Q5) carries a doc-level rewrite forward into Macro A authoring; no design doc requires editing inside this freeze macro.


3. Carry-forward — Q5 A-as-sidecar rewrite into Macro A

Q5 A-as-sidecar means: do not deliver vector eligibility by adding a column to collection_registry. Instead, deliver it as a sidecar policy table (PK = FK to collection_registry), e.g. collection_registry_vector_policy. The design docs need three small rewrites at Macro A authoring time (not in this freeze macro):

Doc Section Current text (paraphrase) Macro A rewrite (paraphrase)
02-governance-compatibility-matrix.md row "collection_registry entry" "Required, with purpose" + implicit vector_eligible column Same purpose contract; vector_eligible lives in the sidecar joined via view v_collection_registry_with_vector_policy
04-vector-exclusion-contract.md §2 Layer-1 row "collection_registry row" "vector_eligible = false (new column proposed)" "vector_eligible = false read via sidecar collection_registry_vector_policy (PK=FK)" — Layer-1 semantic unchanged
07-implementation-backlog.md P3.1 "Add vector_eligible boolean DEFAULT true NOT NULL to collection_registry" "Create sidecar collection_registry_vector_policy(collection_code PK FK, vector_eligible boolean NOT NULL DEFAULT true) + read-side view."

Fallback. If a live survey during Macro A authoring proves the sidecar is incompatible (e.g. unavoidable hot-path join cost in the vector connector or a registry cardinality issue), the design may fall back to direct column-add — but only with an explicit follow-up addendum recording the survey result. This is the textual meaning of "A-as-sidecar … unless sidecar proves incompatible".

The carry-forward is recorded in 08-…-review-questions.md §"Design frozen for GPT review" so GPT review sees it.


4. Hard prohibitions (until Macro A is authorised)

Per the freeze macro's own scope:

Prohibition Status this macro
Author migration NNN_iu_staging_substrate.sql NOT done
Create iu_staging_record NOT done
Create iu_staging_payload NOT done
Register species SPE-NVS NOT done
Register collections COL-IUS-001 / COL-IUS-002 NOT done
Add DOTs to dot_iu_command_catalog NOT done
Change Qdrant / AgentData vector behavior NOT done
Touch any production data NOT done
Apply any SQL to any database NOT done

Result: zero production mutation in this macro. Every effect of this macro lives in two markdown files only:

  1. ops/d36-no-vector-staging-zone-design/08-review-questions-before-implementation.md (answers block + freeze section appended).
  2. This freeze summary report (uploaded to KB at knowledge/current-state/reports/d36-no-vector-staging-zone-review-answers-freeze-2026-05-25.md).

5. Doc package — final state

ops/d36-no-vector-staging-zone-design/
├── 00-survey-current-birth-governance-vector.md          258 lines  (unchanged)
├── 01-d36-no-vector-staging-zone-addendum.md             157 lines  (unchanged)
├── 02-governance-compatibility-matrix.md                 118 lines  (unchanged; Q5 carry-forward noted in 08)
├── 03-sql-nosql-staging-architecture.md                  297 lines  (unchanged)
├── 04-vector-exclusion-contract.md                       181 lines  (unchanged; Q5 carry-forward noted in 08)
├── 05-birth-protocol-plan.md                             255 lines  (unchanged)
├── 06-mark-workflow-integration.md                       215 lines  (unchanged)
├── 07-implementation-backlog.md                          188 lines  (unchanged; Q5 P3.1 carry-forward noted in 08)
├── 08-review-questions-before-implementation.md          [updated]  (answers + freeze section appended; 383 lines)
└── reports/
    └── d36-no-vector-staging-zone-review-answers-freeze-2026-05-25.md   [this report; 200 lines]

6. Next gate — GPT review

Per Q15 gpt-first, the design package now travels to GPT review. Required output from GPT review (recorded in a future report under reports/):

  1. Per-doc review verdict (00–08) — accept / accept-with-notes / reject.
  2. Explicit verdict on the Q5 sidecar carry-forward (§3 above).
  3. Any additional design holes spotted (in particular: the Layer-1/2/3/4 defence-in-depth of the vector exclusion contract, the approval-required matrix, and the cleanup contract's no-orphan-vector invariants).
  4. A go/no-go on Macro A authoring (substrate + birth + DOTs + healthcheck + tests, per 07-…-backlog.md §11).

Until that GPT review report exists and the user authorises Macro A, the implementation backlog stays frozen.


7. Lessons + memory hooks (no new lessons in this macro)

No new feedback memories are written from this macro — every decision recorded here is sourced from prior lessons:

  • Sidecar over column-add → 15000x feedback-sidecar-over-column-add-for-live-infra.
  • Two narrow sidecars beat one wide → 18000x feedback-two-narrow-sidecars-over-one-wide-sidecar.
  • Honest partial > fake pass → 40000x feedback-honest-partial-over-fake-pass.
  • pg_hba local trust unblocks owner-applies → 70000x feedback-pg-hba-local-trust-unblocks-role-channel.
  • lifecycle_status not status → 70000x feedback-information-unit-status-column-is-lifecycle-status.
  • event_outbox JSONB column = safe_payload → 70000x feedback-event-outbox-jsonb-column-is-safe-payload.
  • Idempotency key = md5(source‖kind‖suffix) → 25000x feedback-idempotency-key-for-event-driven-compose.
  • Trigger fns only callable via triggers → 70000x feedback-trigger-functions-only-callable-via-triggers.

A short project memory will summarise that the freeze landed; no new feedback / reference memories are needed.


8. Pass criteria — checklist

  • Q1–Q15 answers recorded in 08-…-review-questions.md
  • Per-answer interpretation block added
  • "Design frozen for GPT review" section added to 08-…
  • Design consistency check across docs 01–07 PASSED (one Q5 doc-rewrite carried forward into Macro A; no other rewrites required)
  • Freeze summary report written (this file)
  • Report uploaded to KB at knowledge/current-state/reports/…
  • No migration authored
  • No iu_staging_record / iu_staging_payload created
  • No DOT registered / no Directus collection registered
  • No Qdrant / AgentData mutation
  • No production mutation

Result. D36_NVSZ_REVIEW_ANSWERS_FREEZE_PASS.

Back to Knowledge Hub knowledge/current-state/reports/d36-no-vector-staging-zone-review-answers-freeze-2026-05-25.md