S238 pre-S239 consistency audit — DG + central synthesis + pilot cross-refs
S238 pre-S239 consistency audit — DG + central synthesis + pilot cross-refs
Section titled “S238 pre-S239 consistency audit — DG + central synthesis + pilot cross-refs”Audit date: 14/05/2026 (S238 wrap — pre-S239 Wave 1 dispatch gate)
Auditor: S238 consistency-audit sub-agent (worktree agent-a92cc5e2a155c9825).
Branch head: ae9577e2 (chore(WP5): annotate migration draft with post-apply SCHEMA-QUICK-REF sync note).
Scope: Adversarial cross-check of the Phase 0.9 central register, the heritage/strategy docs cited in the S238 pilot, the supabase-platform action items, and the schema-quick-reference — to verify that the docs feeding the 7 remaining S239 Wave 1 sub-doc dispatches (02-data-flow.md + 03-tech-stack.md + 04-workspace-types.md + 05-qa-flow.md + 07-collapse-list.md + 08-new-features.md + 09-diagrams.md) are mutually consistent + accurate + up-to-date. 06-mcp-tooling.md stays gated on Theme F per 00-synthesis-v2.md §5.2 row 1 and is out of scope for Wave 1.
Confidence: HIGH for §§1-3, §7, §9, §10 (line-level cross-checks). MEDIUM for §§4-6, §8 (judgement calls on heritage-doc framing and on what counts as “drift” vs “expected lag”).
Audit rule: This doc audits only. No rulings. Liam ratifies remediation.
§1. Method
Section titled “§1. Method”For each of the 10 mandated check categories the audit:
- Opened the central register docs (
0.9-decision-graph.md§11,00-synthesis-v2.md§3 + §5,0.9-collapse-candidates.md§12-§14,feedback-findings-review.md§5 + §6) and the readiness assessment (INV-architecture-split-readiness.md§2 + §3 + §5). - Identified the Q-OQR1-XX / WP8 / S237 CV / docs-site / Supabase-deadline / heritage-doc claim to check.
- Walked through every ratifying citation in the pilot (
docs/plans/phase-0-investigation/architecture/01-vision.md§1-§7) and confirmed the cited section exists in the cited doc with the cited disposition. - Spot-checked a random sample of S237 CV resolutions (CV 02 / CV 03 / CV 04 / CV 06 / CV 13 / CV 16 / CV 19) against the
docs/ontology/*.mdNotes blocks. - Cross-referenced
supabase-db-action-items.mdItem 1 + Item 2 + Item 3 against the migration draftsupabase/migrations/20260514150238_enable_rls_auto_event_trigger_and_grants_pattern.sql. - Sampled the
SCHEMA-QUICK-REFERENCE.mdLast verifiedheader + theworkspacesrow vs the post-S237 ratified schema state.
Where the cited source genuinely says the cited thing, the row is CONSISTENT. Where two sources say materially different things on the same ratification, the row is DRIFT-DETECTED. Where one source lags another because an apply step (migration / code sweep / doc-site build) has not landed, the row is LAG-ACCEPTABLE with explicit “apply tracks the gap” rationale.
§2. Check 1 — Decision-graph §11 vs 00-synthesis-v2.md §3 + §5: Q-OQR1-01..17 + WP8 + S237 CV
Section titled “§2. Check 1 — Decision-graph §11 vs 00-synthesis-v2.md §3 + §5: Q-OQR1-01..17 + WP8 + S237 CV”Verdict: CONSISTENT (with one minor concern in §3 below — feedback-findings-review §5.2.1 lag).
Q-OQR1 cross-checks (each row checked against both docs)
Section titled “Q-OQR1 cross-checks (each row checked against both docs)”| Q-OQR1-XX | Disposition in 00-synthesis-v2.md | Disposition in 0.9-decision-graph.md §11.1 | Match? |
|---|---|---|---|
| Q-OQR1-01 | Option (c) hybrid with provenance (§3.4) | RESOLVED-S235 Option (c) hybrid (§11.1 ONT.2) | YES |
| Q-OQR1-02 | Procurement umbrella rename (§3.5) | RESOLVED-S235 rename pre-launch (§11.1 ONT.4) | YES |
| Q-OQR1-03 | 6 baseline core application_types (§3.4) | RESOLVED-S235 6 types: procurement, intelligence, sales_proposal, product_guide, competitor_research, training_onboarding (§11.1 ONT.3) | YES |
| Q-OQR1-04 (KISS single discriminator) | Implied in §3.4 satellite-pattern framing | Cited in §11.1 Q1.13 narrative (line 241) — KISS single discriminator + Finding 05 Option B pattern | YES |
Q-OQR1-05 (lib/bid/ → lib/procurement/) | Implied in §3.5 cascade rename block | RESOLVED-S235 cited in §11.1 ONT.4 + §11.3 row 4 | YES |
| Q-OQR1-06 | Corpus-level + scope_tag-driven (§3.6) | RESOLVED-S235 corpus-level (§11.1 ONT.5) | YES |
| Q-OQR1-07 | Nullable source_workspace_id for provenance (§3.6) | Cited in §11.1 ONT.5 + N11 §2.3 | YES |
| Q-OQR1-08 | Workspace-private q_a_pairs DEFERRED-v1.1 (§3.14 + §5.3) | RESOLVED-S235 defer to v1.1 (§11.1 ONT.6) | YES |
| Q-OQR1-09 | source_documents.workspace_id nullable (§3.15) | RESOLVED-S235 NULLABLE (§11.1 ONT.7) | YES |
| Q-OQR1-10 (Multi-wing content semantics) | STILL-OPEN, defer to operational (§5.2 row 9) | STILL-OPEN, defer to operational impl (§11.4.2) | YES |
| Q-OQR1-11 | Provenance pattern across hybrid vocabularies (§3.7) | RESOLVED-S235 across all hybrid vocabularies (§11.1 ONT.8) | YES |
| Q-OQR1-12 | Markdown ontology frontmatter shape (§3.7 WP6 implication) | Implied in ONT register; landed S236-S237 per §5.3 + §11.4.5 | YES |
| Q-OQR1-13 | Admin UI v1.1 (§3.13 + §5.3) | RESOLVED-S235 v1.1 (§11.1 ONT.10) | YES |
| Q-OQR1-14 (Form_type behaviour code vs data-driven) | STILL-OPEN, code-driven v1 / data-driven v2 (§5.2 row 8) | STILL-OPEN, code-driven v1 (§11.4.2) | YES |
Q-OQR1-15 (application_types.state_machine_config jsonb shape) | Not in main synthesis-v2 register; appears in 0.9-collapse-candidates.md §13 row 4 as DEFERRED to impl | DEFERRED in collapse-candidates.md §13 (Q-OQR1-15 sub-state semantics) | YES |
| Q-OQR1-16 | Combined PR scope per §3.4 + §3.5 + §3.6 + §3.7 + §3.8 + §3.15 | §11.3 combined schema-restructure PR scope (10 components verbatim) | YES |
| Q-OQR1-17 | ”All planned/needed” (§3.12 — Layer-1 CVs added) — Q-OQR1-17 is the catch-all bullet covering the new CVs | Same content in §11.1 ONT.12-ONT.17 | YES |
Verdict for Q-OQR1 cross-checks: all 17 entries CONSISTENT between 00-synthesis-v2.md §3 + §5 and 0.9-decision-graph.md §11. Confidence HIGH.
WP8 cross-checks
Section titled “WP8 cross-checks”| WP8 item | 00-synthesis-v2.md §5.1 | 0.9-decision-graph.md §11.4.1 | Match? |
|---|---|---|---|
| N7 op_id propagation | Cocoindex + industry best practice; trigger-driven for platform-wide audit cohesion + cocoindex per-flow op_id (lands in 02-data-flow.md) | RESOLVED-S236; same disposition (cocoindex + industry best practice; principled hybrid; lands in WP4 02-data-flow.md) | YES |
| N9 per-method scoring | Separate embedding_score + fulltext_score columns on bid_question_matches; op-verify deferred to feature spec | RESOLVED-S236; same disposition | YES |
| audit_log RLS (OQ-Q24-B + OQ-Q113-B) | Adopt Supabase rls_auto_enable() event trigger platform-wide (per supabase-db-action-items.md Item 2). Lands in dedicated RLS pattern doc + new migration paired with §3.17 grants helper | RESOLVED-S236; adopt Supabase rls_auto_enable() event trigger platform-wide (per supabase-db-action-items.md Item 2). Lands in dedicated RLS pattern doc + new migration paired with §11.4.3 grants helper. Closes Q24-B + Q113-B together | YES |
Verdict for WP8: all 3 items CONSISTENT. Confidence HIGH.
S237 CV cross-checks (CV 02 / CV 03 / CV 04 / CV 06 / CV 13 / CV 16 / CV 19)
Section titled “S237 CV cross-checks (CV 02 / CV 03 / CV 04 / CV 06 / CV 13 / CV 16 / CV 19)”| CV | 00-synthesis-v2.md §5.4 / §3.7 | 0.9-decision-graph.md §11.4.5 | docs/ontology/*.md Notes block (S237) | Match? |
|---|---|---|---|---|
| CV 02 (33 vs 31 count drift) | Prose reconciled to 33 baseline values (§3.7 + §5.4) | Same disposition (§11.4.5) | docs/ontology/02-taxonomy-subtopics.md line 124 + Notes §“Seed-file derivability (Ratified-S237)“ | YES |
| CV 03 layer-vocabulary provenance ALTER | ALTER ratified for Q-OQR1-16 combined PR (§3.7 + §5.4) | RATIFIED-S237 ALTER for Q-OQR1-16 (§11.4.5) | docs/ontology/03-layer-vocabulary.md Notes §“Provenance column ALTER (Ratified-S237)“ | YES |
| CV 03 UI nesting spec deferred | DEFERRED-S238+, v1 keeps 4 live keys (§5.3 + §5.4) | DEFERRED-S238+ same (§11.4.4 + §11.4.5) | docs/ontology/03-layer-vocabulary.md Notes §“UI nesting spec (Deferred-S238+)“ | YES |
CV 04 policy vs compliance | Author-vs-evidence rule (ISO management-system framing) (§3.7 + §5.4) | RATIFIED-S237 same rule (§11.4.5) | docs/ontology/04-content-type.md Notes §“policy vs compliance — Ratified-S237” | YES |
CV 04 retire capability | Lockstep-with-migration retire pattern; enum 15→14 (§3.7 + §5.4) | RATIFIED-S237 lockstep pattern (§11.4.5) | docs/ontology/04-content-type.md Notes §“methodology vs capability — Ratified-S237 retire” | YES |
CV 06 regulation vs date_bound | Regulation-as-specialisation rule; DCAT-AP-aligned (§3.7 + §5.4) | RATIFIED-S237 same (§11.4.5) | docs/ontology/06-lifecycle-type.md Notes §“regulation vs date_bound — Ratified-S237” | YES |
CV 13 bid_library → bid_library_extraction | Inference-internal rename; cleanup PR separate (§3.7 + §5.4) | RATIFIED-S237 rename (§11.4.5) | docs/ontology/13-ingest-source.md Notes §“Pipeline parameter vs DB value distinction” | YES |
CV 16 firecrawl prune-on-migration | Lockstep-with-migration retire pattern (§3.7 + §5.4) | RATIFIED-S237 same (§11.4.5) | docs/ontology/16-extraction-method.md Notes §“firecrawl retired-S236, prune-on-migration” | YES |
CV 16 trafilatura + pdfplumber retire on Docling | Retire on Docling adoption; WP4 02/03 reconciliation (§3.7 + §5.4) | RATIFIED-S237 same (§11.4.5) | docs/ontology/16-extraction-method.md Notes §“Python extractor divergence — Ratified-S237” | YES |
| CV 19 engineering-types KEEP | RATIFIED-S237 KEEP (§5.4) | RATIFIED-S237 KEEP (§11.4.5) | docs/ontology/19-engineering-types.md Notes §“Ratified-S237 keep” | YES |
Verdict for S237 CV resolutions: all 7 CV closures CONSISTENT across all three locations (synthesis-v2 §5.4, decision-graph §11.4.5, and the corresponding docs/ontology/*.md Notes block). Confidence HIGH.
Astro+Starlight docs-site ratification
Section titled “Astro+Starlight docs-site ratification”00-synthesis-v2.md§5.4 row 1: “Astro+Starlight ratified as docs-site framework. Same-repodocs-site/sub-directory most likely; standalone repo retained as contingency only.docs/ontology/README.md‘GitBook auto-update plan’ section retired in favour of ‘Docs-site auto-update plan (Astro + Starlight)’ with workflow-orchestration §8 docubot replication pattern + Claude Agent SDK integration. Build deferred to production-readiness track per Liam.”docs/ontology/README.md§“Docs-site auto-update plan (Astro + Starlight)” (line 66 onward): present; line 70 confirms “Stack ratified S237: Astro + Starlight (NOT GitBook). Same-repodocs-site/sub-directory most likely; standalone repo retained as a contingency only…”; line 89 confirms “Build deferred to production-readiness track.”
CONSISTENT. Confidence HIGH.
§3. Check 2 — 0.9-collapse-candidates.md §12-§14 vs 00-synthesis-v2.md §5: retire markers + lockstep pattern
Section titled “§3. Check 2 — 0.9-collapse-candidates.md §12-§14 vs 00-synthesis-v2.md §5: retire markers + lockstep pattern”Verdict: CONSISTENT.
Retire-marker register
Section titled “Retire-marker register”| Marker family | collapse-candidates.md location | 00-synthesis-v2.md corresponding location | Match? |
|---|---|---|---|
RATIFIED-RETIRE-S235 (workspaces.type text column + CHECK; kb_section value; unpdf; Q4.12 cost-tracking pattern; custom freshness governance for URL inputs) | §12.1 + §12.3 + §12.4 | §2.3 N3 + §3.8 + §3.10 + §3.11 | YES — rows match |
DEFERRED-v1.1-S235 (private_to_workspace_id; Admin UI for client-managed vocabs) | §12.2 row 3 + §13 row 2 | §3.13 + §3.14 + §5.3 rows 3-4 | YES |
RATIFIED-DO-NOT-BUILD-S235 (pipeline_failures; q_a_pairs.workspace_id UUID NOT NULL planned shape; q_a_pair_workspaces M:N junction; idx_q_a_pairs_workspace) | §12.2 rows 1-2 + 4; §12.3 row 1 | §3.10 + §3.6 framing (NO direct workspace FK on q_a_pairs) | YES |
| RATIFIED-RENAME-S235 (templates → form_templates; template_fields → form_template_fields; template_requirements → form_template_requirements; bid_workspaces → procurement_workspaces; lib/bid/* → lib/procurement/*; BID_STATES → PROCUREMENT_WORKFLOW_STATES; bid_question_matches → question_matches) | §12.1 rows 3-6 + §12.5 | §2.2 I1 + §2.2 I2 + §3.5 | YES |
S237 CV-driven retires (lockstep-with-migration retire pattern)
Section titled “S237 CV-driven retires (lockstep-with-migration retire pattern)”| Retire entry | collapse-candidates.md §14 | 00-synthesis-v2.md §5.4 / §3.7 | Match? |
|---|---|---|---|
CV 04 content_items.content_type='capability' | §14.1 RATIFIED-RETIRE-S237 (lockstep); enum 15→14 | §5.4 row “CV 04 content-type — methodology vs capability”: RATIFIED-S237 retire capability (lockstep) | YES |
CV 16 feed_articles.extraction_method='firecrawl' (27 prod rows) | §14.2 RATIFIED-RETIRE-S237 (prune-on-migration timing; lockstep) | §5.4 row “CV 16 extraction-method — firecrawl provenance enum extension OR prune”: RATIFIED-S237 prune-on-migration timing (lockstep) | YES |
scripts/kb_pipeline/extract.py trafilatura write path | §14.3 RATIFIED-RETIRE-S237 (conditional on Docling adoption) | §5.4 row “CV 16 extraction-method — Python extractor divergence”: RATIFIED-S237 retire on Docling | YES |
scripts/kb_pipeline/extract.py pdfplumber write path | §14.3 RATIFIED-RETIRE-S237 (conditional on Docling) | §5.4 row “CV 16 extraction-method — Python extractor divergence”: RATIFIED-S237 retire on Docling | YES |
CV 13 lib/layer-inference.ts:21 bid_library parameter literal | §14.4 RATIFIED-RENAME-S237 → bid_library_extraction (NOT a retire) | §5.4 row “CV 13 ingest-source — bid_library cleanup”: RATIFIED-S237 rename | YES |
docs/ontology/README.md “GitBook auto-update plan” section | §14.5 RATIFIED-RETIRE-S237 (already replaced by Astro+Starlight) | §5.4 row “Astro+Starlight docs-site framework (vs GitBook)”: RATIFIED-S237 Astro+Starlight (GitBook framing retired) | YES |
Lockstep-with-migration retire pattern explicitly noted in both docs
Section titled “Lockstep-with-migration retire pattern explicitly noted in both docs”collapse-candidates.md§14 preamble: “All four follow the lockstep-with-migration retire pattern introduced at S237: the WP6 markdown CV (docs/ontology/*.md) retains the value inbaseline_valuesuntil the Q-OQR1-16 combined PR migration drops the corresponding DB CHECK value — keeping the CV in lockstep with the live schema.”00-synthesis-v2.md§3.7 + §5.4: “Lockstep-with-migration retire pattern (CV 04baseline_valueskeepscapabilityuntil DB CHECK drops it)” — explicit twice (CV 04 + CV 16).
CONSISTENT. Confidence HIGH.
§4. Check 3 — feedback-findings-review.md §5 + §6 vs 00-synthesis-v2.md §3 + §5
Section titled “§4. Check 3 — feedback-findings-review.md §5 + §6 vs 00-synthesis-v2.md §3 + §5”Verdict: DRIFT-DETECTED — MEDIUM severity. Two rows in feedback-findings-review.md §5.2.1 lag the S236 WP8 rulings.
What was checked
Section titled “What was checked”Cross-referenced every disposition row in feedback-findings-review.md §5.2 + §5.3 + §6 against the corresponding row in 00-synthesis-v2.md §2 + §3 + §5 + decision-graph §11.4.1.
Drift detected
Section titled “Drift detected”| Row | feedback-findings-review.md disposition | 00-synthesis-v2.md disposition | Severity |
|---|---|---|---|
§5.2.1 row 6 (OQ-Q24-B audit_log RLS pattern) | “STILL-OPEN — RLS pattern doc pending (orthogonal to prereqs); aligned to OQ-Q113-B” | §3.16 + §5.1 + decision-graph §11.4.1: RESOLVED-S236 — adopt Supabase rls_auto_enable() event trigger | DRIFT-DETECTED MEDIUM |
| §5.2.1 row 7 (OQ-Q24-C op_id propagation pattern) | “STILL-OPEN — not a cocoindex decision per Prereq 2 §1.3 N7; working default per Finding 01: hybrid” | §3 N7 + §5.1 + decision-graph §11.4.1: RESOLVED-S236 — cocoindex + industry best practice; trigger-driven for platform-wide audit cohesion + cocoindex per-flow op_id | DRIFT-DETECTED MEDIUM |
Why this matters
Section titled “Why this matters”These two rows are in §5 of the doc — the “post-prereq resolution rollup” written at S234. The S236 WP8 rulings updated both items to RESOLVED. The §6 “S237 closures appended” section was added at S237 (lines 588-628) but did not retroactively close the §5.2.1 STILL-OPEN markers. §6.4 lists “STILL-OPEN items NOT addressed at S237” — and includes only Theme F + the doc split, correctly indicating that audit_log RLS + op_id are NOT still-open. But §5.2.1 rows 6+7 still read as STILL-OPEN, which is now stale.
Remediation guidance (HIGH severity for S239 dispatch? — NO, MEDIUM)
Section titled “Remediation guidance (HIGH severity for S239 dispatch? — NO, MEDIUM)”feedback-findings-review.md §5.2.1 rows 6+7 should be updated to RESOLVED-S236, with a “(superseded by §6 / S236 WP8 ruling — see 00-synthesis-v2.md §3.16 + §5.1 + decision-graph §11.4.1)” cross-link. This is a documentation-hygiene issue, not a Wave 1 sub-doc dispatch blocker — the canonical synthesis-v2 + decision-graph + §6 of feedback-findings-review are correct, and 02-data-flow.md writer must read those primary sources per the S239 dispatch prompt.
Action: add this as a doc-hygiene item Liam can ratify post-Wave-1, OR fold into the §5 → §6 rectification when feedback-findings-review is next touched. Does NOT block Wave 1.
No-drift confirmations (positive)
Section titled “No-drift confirmations (positive)”- §5.1 Themes A-G dispositions: CONSISTENT with
00-synthesis-v2.md§2 + §3 (Theme A procurement umbrella, Theme E application_types Option (c), Theme F STILL-OPEN are all aligned). - §5.2.2 Finding 02 rows (Q1.11 polymorphic citing_entity; Q1.12 question_matches with question_kind discriminator; q_a_pair corpus-level + scope_tag-driven per Q-OQR1-06): CONSISTENT.
- §5.2.3 Finding 03 rows (Q1.13 Shape B with application_type_id FK; Q3.11 templates → form_templates): CONSISTENT.
- §5.2.4 Finding 04 rows (OQ-Q35-C no checklist enum; OQ-Q11-A
ExtractByLlm): CONSISTENT. - §5.5 Docling spike resolution + Cloud Run sidecar architecture finding (NEW from spike): CONSISTENT with
00-synthesis-v2.md§3.1 + §3.2. - §6.1 CV-level closures (all 10 entries): CONSISTENT with
00-synthesis-v2.md§5.4 + §3.7 + decision-graph §11.4.5. - §6.2 Astro+Starlight docs-site closure: CONSISTENT with synthesis-v2 §5.4.
- §6.3 WP6 D1 + E2 land: CONSISTENT with synthesis-v2 §5.3 + decision-graph §11.4.5.
- §6.4 STILL-OPEN items: CONSISTENT — lists only Theme F + the architecture doc split.
§5. Check 4 — INV-architecture-split-readiness.md §2 + §3 + §5 vs 00-synthesis-v2.md §4 + §5
Section titled “§5. Check 4 — INV-architecture-split-readiness.md §2 + §3 + §5 vs 00-synthesis-v2.md §4 + §5”Verdict: CONSISTENT (with one cosmetic finding flagged below — not blocking).
INV §2 — 10 superseded source-doc items
Section titled “INV §2 — 10 superseded source-doc items”Each row in INV §2 cites a ratifying doc. The audit checked each citation actually resolves (the cited section exists in the cited doc with the cited disposition):
| INV §2 row | Citation | Cited section exists with stated content? |
|---|---|---|
| 1 (q_a_pairs schema NOT NULL → corpus-level) | Q-OQR1-06; 00-synthesis-v2.md §3.6; 0.9-decision-graph.md §11.1 ONT.5; 0.9-collapse-candidates.md §12.2 row 1 | YES — all four citations resolve |
| 2 (§6 Q&A model framing per-workspace via FK → corpus-level + scope_tag overlap) | Q-OQR1-06; 00-synthesis-v2.md §3.6 | YES |
3 (§1.2 / §10 bid_workspaces satellite → procurement_workspaces) | Q-OQR1-02 + Q-OQR1-05; decision-graph §11.1 ONT.4 + §11.3 row 4; collapse-candidates §12.1 rows 3-5 | YES |
4 (workspaces.type text CHECK → application_type_id FK) | Q-OQR1-01 (Option (c) hybrid) + Q-OQR1-03; 00-synthesis-v2.md §3.4; decision-graph §11.1 ONT.2 + ONT.3 | YES |
5 (kb_section workspace type → retire) | Q-OQR1-S235 + WP-ONTO-R1 §7; 00-synthesis-v2.md §3.8; collapse-candidates §12.1 row 2 | YES |
6 (source_documents slim → Option α nullable workspace_id) | B2 RESOLVED-DIRECTIONAL-S234 + Q-OQR1-09; 00-synthesis-v2.md §2.1 B2 + §3.15; collapse-candidates §2.1 | YES |
7 (digests → change_reports + project_id → workspace_id combined PR) | Q-OQR1-16; decision-graph §11.3 (10-item combined-PR scope); 00-synthesis-v2.md §2.3 N3 | YES |
8 (templates → form_templates 3-table rename) | I2 RESOLVED-S234 + Q-OQR1-11; 00-synthesis-v2.md §2.2 I2 + §3.7; collapse-candidates §12.5 | YES |
| 9 (Cloud Run sidecar architecture for Docling) | S234 Docling bake-off §5; 00-synthesis-v2.md §3.1 + §3.2; decision-graph §11.2 COCO.2 + COCO.6 | YES |
10 (Pattern A/B parser → ExtractByLlm recurring runtime adapter) | B1 RESOLVED-S234 (Prereq 2 Rec 1); 00-synthesis-v2.md §2.1 B1; collapse-candidates §12.3 row 3 | YES |
CONSISTENT. All 10 superseded items in INV §2 have intact citations.
INV §3 — WP4 readiness map (row-by-row vs synthesis-v2 §4)
Section titled “INV §3 — WP4 readiness map (row-by-row vs synthesis-v2 §4)”| Sub-doc | INV §3 readiness state | synthesis-v2 §4 readiness state | Match? |
|---|---|---|---|
| 01-vision-mission | READY-TO-DRAFT (“None blocking” per 00-synthesis-v2.md §4 row 1) | READY-TO-DRAFT (None blocking) | YES |
| 02-data-flow | READY-TO-DRAFT (B2/I3/B1/N5/N6/N7/OQ-CX33-A all RESOLVED; cross-link to RLS-PATTERN doc TBD) | READY-TO-DRAFT (same list) | YES |
| 03-tech-stack | READY-TO-DRAFT (add Docling + Cloud Run sidecar) | READY-TO-DRAFT (same) | YES |
| 04-workspace-types | READY-TO-DRAFT (big sub-doc; application_types + kb_section retire + procurement rename + q_a_pairs corpus-level) | Same | YES |
| 05-qa-flow | READY-TO-DRAFT (I3/B1/N1/N8/N9/N11 RESOLVED + q_a_pairs corpus-level shape) | Same | YES |
| 06-mcp-tooling | STILL-OPEN (Theme F MCP-action review pass STILL-OPEN) | STILL-OPEN per §4 row 6 + §5.2 row 1 | YES |
| 07-collapse-list | READY-TO-DRAFT (driven by 0.9-collapse-candidates.md) | READY-TO-DRAFT (new tier markers per S235 refresh) | YES |
| 08-new-features | READY-TO-DRAFT (N4 cosmetic; OQ-Q310-A/B / OQ-Q38-A/G RESOLVED-S234; Knowledge Map cocoindex substrate per CX.32; surface scope still open) | Same | YES |
| 09-diagrams | READY-TO-DRAFT (dependency-gated) | READY-TO-DRAFT (same) | YES |
CONSISTENT. INV §3 row-by-row matches synthesis-v2 §4.
INV §5 — open gates row-by-row vs synthesis-v2 §5.2
Section titled “INV §5 — open gates row-by-row vs synthesis-v2 §5.2”| Open gate (INV §5) | synthesis-v2 §5.2 | Match? |
|---|---|---|
| 02-data-flow RLS-PATTERN.md destination decision | §3.16 references “path TBD with 04-workspace-types or new RLS-PATTERN.md” | YES — INV §5 quotes synthesis-v2 §3.16 verbatim |
| 05-qa-flow — None blocking, S9 spike UNBLOCKED-CONDITIONAL | §4 row 5 — same | YES |
| 06-mcp-tooling — Theme F MCP-action review pass STILL-OPEN | §5.2 row 1 STILL-OPEN | YES |
| 08-new-features — Knowledge Map graph substrate scope | §4 row 8 + §5.2 row 4 STILL-OPEN | YES |
| 09-diagrams — cross-doc dependency | implicit per §4 ordering | YES |
| All sub-docs touching schemas — May 30 grants / May 26 OAuth deadlines | §3.17 + §3.18 + §5.2 rows 2-3 | YES |
CONSISTENT. INV §5 row-by-row matches synthesis-v2 §5.2.
Cosmetic finding (LOW severity, NOT blocking)
Section titled “Cosmetic finding (LOW severity, NOT blocking)”INV §3 row 1 (01-vision-mission Source material column) cites the path docs/client-documentation-base/markdown/Knowledge Hub — Platform Overview.md. The actual path in the repo is docs/client-documentation/Knowledge Hub — Platform Overview.md (no -base/markdown segment). The S238 pilot 01-vision.md correctly cites docs/client-documentation/Knowledge Hub — Platform Overview.md in its §7.1 heritage table. INV is the only place with the wrong path — and it predates the S238 pilot’s foreground content-fix.
LOW severity because the Platform Overview file exists and the pilot cites it correctly. INV’s path drift is a cosmetic note — does NOT block Wave 1. Could be cleaned up when INV is next touched. Track as documentation-hygiene only.
§6. Check 5 — Pilot 01-vision.md outgoing-link sanity — cited section exists?
Section titled “§6. Check 5 — Pilot 01-vision.md outgoing-link sanity — cited section exists?”Verdict: CONSISTENT for every Q-OQR1-XX / §X.Y citation in the pilot.
Pilot citations checked
Section titled “Pilot citations checked”| Pilot location | Cited target | Target exists? | Says what the pilot claims? |
|---|---|---|---|
| §1.1 (ontology pipeline as first step) | application_types-as-applications + per-application satellites + corpus-level q_a_pairs with scope_tag-driven relevance | Implied across 00-synthesis-v2.md §3.4 + §3.5 + §3.6 + §3.7 | YES |
| §1.3 (AI as plumbing) | docs/reference/ai-visibility-policy.md + docs/reference/ai-integration-strategy.md (§1 “Vision and Strategic Positioning”); Platform Overview “spell-check or full-text search” quote | All three exist; AI Integration Strategy §1 has 4 sub-sections (§1.1-§1.4) including the “Everyone Ends Up Working Within an LLM” frame; Platform Overview line 64 contains the exact “spell-check or full-text search” quote | YES |
| §2.1 reframe 3 (Application types as applications) | Implied — instance pattern per Q-OQR1-01 | 00-synthesis-v2.md §3.4 confirms instance pattern Option (c) | YES |
| §2.2 (Five Guiding Principles) | Platform Overview Five Guiding Principles | Platform Overview line 34 ”### Five guiding principles” — 5 principles match the pilot’s adapted version (one-record-many-views; helping users organise not extracting value; observe-and-intervene; programmatic-where-possible; library-and-applications-feed-each-other) | YES (adapted phrasing for architecture audience, but framing intact) |
| §3.3 reason 1 | AI Integration Strategy §1.2 “Everyone Ends Up Working Within an LLM” | AI Integration Strategy line 51 §1.2 — exists with stated content | YES |
| §4.1 (instance table pattern) | Q-OQR1-01 “Option (c) hybrid with provenance” per 00-synthesis-v2.md §3.4 | synthesis-v2 §3.4 line 95 confirms “Option (c) hybrid with provenance” + 6 baseline core application_types | YES |
| §4.2 (6 baseline application types) | Q-OQR1-03 | synthesis-v2 §3.4 line 95 confirms 6 types: procurement / intelligence / sales_proposal / product_guide / competitor_research / training_onboarding | YES |
| §4.2 (procurement_workspaces / sales_proposal_workspaces satellites) | Q-OQR1-02; §4.4 for procurement naming detail | synthesis-v2 §3.5 + decision-graph §11.1 ONT.4 | YES |
| §4.3 (typed columns over JSONB) | 00-synthesis-v2.md §3.9 “typed columns over JSONB platform standard” | synthesis-v2 §3.9 line 143 confirms; ratified S235 | YES |
| §4.3 (Admin UI v1.1) | Q-OQR1-13 | synthesis-v2 §3.13 + decision-graph §11.1 ONT.10 | YES |
| §4.4 (procurement umbrella rename per Q-OQR1-02 + Q-OQR1-05 + S235) | 00-synthesis-v2.md §3.5 | synthesis-v2 §3.5 confirms Q-OQR1-02 procurement rename + Q-OQR1-05 cascade (BID_STATES → PROCUREMENT_WORKFLOW_STATES; lib/bid/bid-state-machine.ts → lib/procurement/procurement-workflow.ts) | YES |
§5.1 procurement (corpus-level + scope_tag per 00-synthesis-v2.md §3.6) | synthesis-v2 §3.6 | YES | |
| §5.1 PROCUREMENT_WORKFLOW_STATES | synthesis-v2 §3.5 cascade | YES | |
| §5.1 form_type code-driven for v1 per Q-OQR1-14 | synthesis-v2 §5.2 row 8 (STILL-OPEN; code-driven for v1, data-driven for v2) | YES | |
§5.2 intelligence scope_tag overlap per 00-synthesis-v2.md §3.6 | synthesis-v2 §3.6 | YES | |
| §5.3 sales_proposal_workspaces | synthesis-v2 §3.4 / §3.5 6 baseline app_types | YES | |
| §5.4 product_guide / competitor_research / training_onboarding baseline per Q-OQR1-03 | synthesis-v2 §3.4 line 95 | YES | |
| §6 anti-patterns table row 1 (workspace_type CHECK column) | Q-OQR1-01 + Q-OQR1-03; 00-synthesis-v2.md §3.4 | synthesis-v2 §3.4 line 95 + decision-graph §11.1 ONT.2 + ONT.3 | YES |
| §6 anti-patterns table row 2 (kb_section) | 00-synthesis-v2.md §3.8 (Q-OQR1-S235) | synthesis-v2 §3.8 line 135 + decision-graph §11.1 ONT.9 | YES |
§6 anti-patterns table row 3-4 (bid_workspaces / application_type='bid') | Q-OQR1-02 + Q-OQR1-05; 00-synthesis-v2.md §3.5 | YES | |
| §6 anti-patterns table row 5 (Per-workspace q_a_pair scoping) | Q-OQR1-06; 00-synthesis-v2.md §3.6 | YES — “0 of 395 prod q_a_pair rows were workspace-assigned empirically” matches synthesis-v2 §3.6 line 107 verbatim | |
| §6 anti-patterns table row 6 (JSONB over typed columns) | 00-synthesis-v2.md §3.9 | YES | |
| §6 anti-patterns table rows 7-9 (AI features / chat sidebar / model-name branding) | docs/reference/ai-visibility-policy.md Rules 1-4 + §2 | AI Visibility Policy file has Rule 1 (line 16), Rule 2 (line 27), Rule 3 (line 37), Rule 4 (line 47) — CopilotKit sidebar fully removed in S109 (line 50-52) — all match | YES |
| §7 source-of-truth list (3 canonical Phase 0.9 sources) | INV-architecture-split-readiness.md §2 + 00-synthesis-v2.md §3 + §4 + 0.9-decision-graph.md §11 | All three docs exist; §2 of INV has the 10 superseded items; §3+§4 of synthesis-v2 + §11 of decision-graph are correct cross-refs | YES |
| §7 archival path | .planning/.archive/.specs/0.9-intended-architecture.md after Wave 4 | INV §6 S240 final wave: “Archive 0.9-intended-architecture.md to .planning/.archive/.specs/ per CLAUDE.md ‘Historical planning’ convention; preserve as audit trail” | YES |
| §7.1 heritage docs table — 4 rows | Platform Overview; Claude Integration Guide; AI Integration Strategy; Product Differentiation Audit | All four files exist in docs/client-documentation/ or docs/reference/ (verified) | YES |
§8 pilot review notes — content-fix pass commit 4b9dccd3 | git history pre-S238 wrap | (Not audited in detail; commit-SHA reference is operational metadata, not a Phase 0.9 cross-ref) | n/a |
Verdict: all pilot outgoing-links resolve correctly and the cited content matches the pilot’s framing. Confidence HIGH for the citation accuracy; MEDIUM only on a judgement call basis for whether each adapted-phrasing matches the source (the Five Guiding Principles framing in §2.2 is genuinely “adapted for architecture audience” per the pilot’s own preamble — the adaptation is honest, not drift).
§7. Check 6 — Pilot framing vs cited doc framing (judgement call)
Section titled “§7. Check 6 — Pilot framing vs cited doc framing (judgement call)”Verdict: CONSISTENT.
Specific framing claims spot-checked
Section titled “Specific framing claims spot-checked”| Pilot claim | Cited source | Cited source actually says |
|---|---|---|
Pilot §5.1 “corpus-level + scope_tag-driven per 00-synthesis-v2.md §3.6” | synthesis-v2 §3.6 | ”RATIFIED-S235 per Q-OQR1-06. NO direct workspace FK on q_a_pairs. Nullable source_workspace_id for provenance audit. Workspace relevance via scope_tag overlap.” — matches pilot framing |
Pilot §3.3 “Everyone Ends Up Working Within an LLM” from docs/reference/ai-integration-strategy.md §1.2 | AI Integration Strategy §1.2 (line 51) | §1.2 has exactly this title and frame (line 51 onwards) — confirms quoted framing |
| Pilot §6 anti-pattern table row 5 “0 of 395 prod q_a_pair rows were workspace-assigned empirically” | Q-OQR1-06; 00-synthesis-v2.md §3.6 | synthesis-v2 §3.6: “Empirical: 0/395 prod q_a_pair rows assigned to workspaces today” — matches exactly |
| Pilot §1.3 “AI is treated like spell-check or full-text search — useful infrastructure, not something to brand” | Platform Overview “founding idea” + the “note on AI” sub-section | Platform Overview line 64: “AI is treated like spell-check or full-text search — useful infrastructure, not something to brand” — exact quote match |
| Pilot §1 (SMB + data readiness framing) | Platform Overview “founding idea” section | Platform Overview line 23: “Most SMBs are not ready for an AI-first way of working. The blocker is not the AI — it is the data.” — same framing |
| Pilot §2.2 (Five Guiding Principles, “architecture-adapted restatement”) | Platform Overview Five Guiding Principles | Platform Overview line 36-59: 5 principles labelled (one-record-many-views; helping you get organised not learning from you; observe and intervene not prevent and approve; programmatic where it can be AI where it must be; library and application feed each other) — pilot adaptation: “the library and the applications feed each other” (plural — captures sales proposals + intelligence as additional applications). Adaptation is consistent with the source. |
Verdict: all pilot framings match the cited sources. Confidence HIGH.
Heritage-doc staleness flagged in pilot (consistent with audit)
Section titled “Heritage-doc staleness flagged in pilot (consistent with audit)”Pilot §7.1 + §8 note “Heritage-doc staleness” — Platform Overview is “Pre-Phase-0.9 in places (e.g. bid_workspaces framing — superseded by procurement umbrella per Q-OQR1-02)”; AI Integration Strategy is “Outdated in places per S238 but the load-bearing claims remain”. This is honest framing — the audit independently confirms both observations:
- Platform Overview line 79 still references “Bid Management” without procurement-umbrella adoption (consistent with pilot’s “pre-Phase-0.9 in places” note).
- AI Integration Strategy line 117-120 references
claude-sonnet-4-5/-4-6/-opus-4-6model tiers — current build state varies by code (not audited here); the §1 vision/positioning framing is the only load-bearing piece per the pilot’s framing.
The heritage-doc staleness flag is properly hedged. No drift between pilot and audit.
§8. Check 7 — Theme F STILL-OPEN status check + orphan-ruling scan
Section titled “§8. Check 7 — Theme F STILL-OPEN status check + orphan-ruling scan”Verdict: CONSISTENT — 00-synthesis-v2.md §5.2 row 1 still says STILL-OPEN. No orphan rulings.
What was checked
Section titled “What was checked”00-synthesis-v2.md§5.2 row 1 (line 239): “MCP-action review pass (Theme F) — STILL-OPEN — Liam reviewing — pre-decision still pending after S237 (not addressed in S237 Liam-pending CV resolutions; Theme F is operational, orthogonal to WP6 ontology work). Mempalace direct vs wrapped in KH MCP — operational. Required to unblock WP406-mcp-tooling.md.”0.9-decision-graph.md§11.4.2 row 1 (line 505): “MCP-action review pass (Theme F) — STILL-OPEN — Liam reviewing — pre-decision still pending after S237 (Theme F was NOT in scope of S237 Liam-pending CV resolutions; remains operational/orthogonal to WP6 ontology work). Mempalace direct vs wrapped in KH MCP — operational. Lone STILL-OPEN gate blocking WP406-mcp-tooling.md.”feedback-findings-review.md§6.4 row 1: “MCP-action review pass (Theme F) — STILL-OPEN — Theme F was NOT in scope of S237 Liam-pending CV resolutions; remains operational/orthogonal to WP6 ontology work. Lone STILL-OPEN gate blocking WP406-mcp-tooling.md.”
All three docs say STILL-OPEN with consistent framing.
Orphan-ruling scan
Section titled “Orphan-ruling scan”Grepped CLAUDE.md and supabase-db-action-items.md for Theme F or MCP-action review rulings — zero matches. No orphaned ruling claims hiding outside the central register. The S239 Wave 1 dispatch is safe to omit 06-mcp-tooling.md per the prompt’s gating.
Confidence HIGH.
§9. Check 8 — Knowledge Map graph substrate STILL-OPEN status
Section titled “§9. Check 8 — Knowledge Map graph substrate STILL-OPEN status”Verdict: CONSISTENT.
00-synthesis-v2.md§5.2 row 4 (line 242): “Knowledge Map graph substrate — STILL-OPEN — Future S7 spike; cocoindex confirmed as user-facing substrate at CX.32”0.9-decision-graph.md§11.4.2 row 5 (line 509): “Knowledge Map graph substrate — STILL-OPEN — Future S7 spike; cocoindex confirmed as user-facing substrate at CX.32”0.9-decision-graph.md§3.C row CX.32 (line 290): “RESOLVED-S232 — Cocoindex (not Graphify). Per S231 intended-arch feedback verbatim: ‘Cocoindex for “knowledge map”, not Graphify.’” — substrate decided; user-facing surface scope STILL-OPEN.
The substrate is RESOLVED (cocoindex per CX.32); the user-facing surface scope is STILL-OPEN. Both docs reflect this correctly. INV §5 row 4 also flags this for 08-new-features.md correctly: “Knowledge Map graph substrate scope (surface vs S7-spike-time decision) — Spec needed — but only for sub-section scope; not for the whole sub-doc”.
Confidence HIGH.
§10. Check 9 — Supabase platform deadlines (May 26 OAuth + May 30 grants) — alignment
Section titled “§10. Check 9 — Supabase platform deadlines (May 26 OAuth + May 30 grants) — alignment”Verdict: CONSISTENT (all three docs aligned; the migration draft + S238 OAuth survey close the loop).
00-synthesis-v2.md §3.17 / §3.18 / §5.2 alignment with supabase-db-action-items.md
Section titled “00-synthesis-v2.md §3.17 / §3.18 / §5.2 alignment with supabase-db-action-items.md”| Synthesis-v2 row | supabase-db-action-items.md item | Match? |
|---|---|---|
| §3.17 May 30 grants (Item 1) | Item 1 — May 30 platform compliance; explicit GRANT per role | YES |
| §3.18 May 26 OAuth (Item 3) | Item 3 — /v1/oauth/token 201→200 per OAuth 2.1 §3.2.3 | YES |
| §5.2 row 2 May 30 grants — combined migration with §3.16 auto-RLS event trigger | Item 2 + Item 1 combined pattern (auto-RLS event trigger + grants helper) | YES |
| §5.2 row 3 May 26 OAuth — verify app/api/oauth/* + MCP plugin OAuth client tolerate HTTP 200 | Item 3 + S238 survey result (line 94: “NO CHANGES NEEDED in KH code for Item 3”) | YES |
Migration draft supabase/migrations/20260514150238_enable_rls_auto_event_trigger_and_grants_pattern.sql vs Item 1 + Item 2
Section titled “Migration draft supabase/migrations/20260514150238_enable_rls_auto_event_trigger_and_grants_pattern.sql vs Item 1 + Item 2”The migration draft:
- Lines 39-73:
rls_auto_enable()event-trigger function. Verbatim match withsupabase-db-action-items.mdItem 2 (lines 47-83). Confirmed by side-by-side comparison. - Lines 77-81:
DROP EVENT TRIGGER IF EXISTS ensure_rls; CREATE EVENT TRIGGER ensure_rls .... Verbatim match with Item 2 lines 78-82. - Lines 75 + 118:
REVOKE EXECUTE ... FROM anonfor bothrls_auto_enable()andgrant_standard_public_table_access(regclass). This implements the CLAUDE.md gotcha “Supabase auto-grants anon EXECUTE on every new public.* PL/pgSQL function”. Cross-cited correctly in the migration header comment (lines 28-32). - Lines 104-116:
grant_standard_public_table_access(target_table regclass)helper following Item 1 pattern (lines 14-37: SELECT for anon; SELECT/INSERT/UPDATE/DELETE for authenticated + service_role).
Helper-pattern fidelity: the migration’s helper encodes “3-role grant pattern” (anon read, authenticated + service_role CRUD). Item 1’s example SQL shows the same 3-role pattern with the same SELECT/CRUD split. CONSISTENT.
S238 OAuth survey alignment
Section titled “S238 OAuth survey alignment”supabase-db-action-items.md §S238 survey result (line 94 onwards): “NO CHANGES NEEDED in KH code for Item 3 ahead of 26/05/2026.” The migration draft acknowledges this in its header (lines 15-20): “Item 3 (/v1/oauth/token 201 -> 200) — KH code surveyed clean S238 (no direct 201 assertion in app/api/oauth/* or scripts; Supabase Management API consumers in scripts/check-revoke-guard.ts + scripts/run-supabase-advisors.ts use /database/query not /oauth/token; @supabase/supabase-js handles oauth internally and will upgrade in lockstep with the platform change). NOT covered here.”
CONSISTENT. The migration explicitly does NOT cover Item 3 because the S238 survey closed it. Confidence HIGH.
§11. Check 10 — SCHEMA-QUICK-REFERENCE.md vs post-S237 ratified schema state
Section titled “§11. Check 10 — SCHEMA-QUICK-REFERENCE.md vs post-S237 ratified schema state”Verdict: LAG-ACCEPTABLE — SCHEMA-QUICK-REFERENCE.md lags ratifications because the Q-OQR1-16 combined PR migration has not been applied yet. This is expected.
Specific lag points
Section titled “Specific lag points”SCHEMA-QUICK-REFERENCE.mdLast verifiedheader (line 3) timestamp: 07/05/2026 (kh-prod-readiness-S37 W3). This pre-dates all S233-S237 ratifications.workspacestable row (line 161):type varchar NO 'bid' CHECK: bid, kb_section. Still reflects the pre-Q-OQR1-16 state (pre-application_type_idFK + pre-kb_sectionretire).- No mention of
application_typesinstance table. - No mention of
procurement_workspaces(renamed frombid_workspaces). - No mention of
q_a_pairscorpus-level shape (Q-OQR1-06). - No mention of Cloud Run sidecar architecture in any §.
- No mention of May 30 grants pattern or auto-RLS event trigger functions (the migration drafted at
20260514150238_*.sqlis gated on Liam review per the migration file header line 11).
Rationale for LAG-ACCEPTABLE
Section titled “Rationale for LAG-ACCEPTABLE”Per the migration draft header (lines 141-152): “SCHEMA-QUICK-REFERENCE.md sync (post-apply): After Liam ratifies + applies this migration, bump docs/reference/SCHEMA-QUICK-REFERENCE.md in the same commit:
- Add
rls_auto_enable()to §32 RPC Functions (event-trigger function) - Add
grant_standard_public_table_access(regclass)to §32 RPC Functions - Add
ensure_rlsevent trigger to the event-trigger section (or §32 if no dedicated section exists) - Bump the
<!-- Last verified -->header timestamp + cite S238 WP5”
The same “post-apply sync” pattern applies to Q-OQR1-16 combined PR: SCHEMA-QUICK-REFERENCE.md is updated when the migration lands, not before. This is the documented “apply tracks the gap” convention.
The lag is expected and tracked, not a defect. Confidence HIGH for the lag-acceptability rationale.
Tracked items for post-apply schema-doc updates
Section titled “Tracked items for post-apply schema-doc updates”When the Q-OQR1-16 combined PR + RLS+grants migration land, SCHEMA-QUICK-REFERENCE.md needs:
- Bump
Last verifiedheader timestamp. workspacesrow: droptype varcharrow + CHECK list; addapplication_type_id uuid NO FK → application_types(id)row.- New §N
application_typesinstance table. - Rename
bid_workspacesreference (if it appears as a “Supporting Table” — verify on apply) toprocurement_workspaces. - Add
rls_auto_enable()+grant_standard_public_table_access(regclass)to §32 RPC Functions. - Add
ensure_rlsevent trigger to event-trigger section. - If
q_a_pairstable lands per S16: add §Nq_a_pairstable with corpus-level shape (no workspace FK; nullablesource_workspace_id). - CV 04 content_type CHECK list: enum drops
capability(15 → 14 values). - CV 16 extraction_method CHECK list: drops
firecrawl.
(This list is for tracking — does NOT block S239 Wave 1.)
§12. Summary table — aggregate consistency state per check
Section titled “§12. Summary table — aggregate consistency state per check”| # | Check | Verdict | Severity (if drift) | Confidence |
|---|---|---|---|---|
| 1 | Decision-graph §11 vs synthesis-v2 §3 + §5: Q-OQR1-01..17 + WP8 + S237 CV | CONSISTENT | n/a | HIGH |
| 2 | Decision-graph §11 vs synthesis-v2 §3 + §5: Astro+Starlight docs-site | CONSISTENT | n/a | HIGH |
| 3 | collapse-candidates §12-§14 vs synthesis-v2 §5 (retire markers + lockstep pattern) | CONSISTENT | n/a | HIGH |
| 4 | feedback-findings-review §5 + §6 vs synthesis-v2 §3 + §5 | DRIFT-DETECTED | MEDIUM (2 rows in §5.2.1 lag WP8 rulings; canonical synthesis-v2 + decision-graph are correct) | HIGH |
| 5 | INV-architecture-split-readiness §2 + §3 + §5 vs synthesis-v2 §4 + §5 (citation resolution) | CONSISTENT | n/a (one cosmetic path-drift note, LOW) | HIGH |
| 6 | Pilot 01-vision.md outgoing-link sanity (every Q-OQR1-XX / §X.Y citation) | CONSISTENT | n/a | HIGH |
| 7 | Pilot framing vs cited-doc framing (judgement call) | CONSISTENT | n/a | MEDIUM (adapted framing is honest, not drift) |
| 8 | Theme F STILL-OPEN status + orphan-ruling scan | CONSISTENT | n/a | HIGH |
| 9 | Knowledge Map graph substrate STILL-OPEN status | CONSISTENT | n/a | HIGH |
| 10 | Supabase platform deadlines (May 26 OAuth + May 30 grants) + migration draft alignment | CONSISTENT | n/a | HIGH |
| 11 | SCHEMA-QUICK-REFERENCE.md vs post-S237 ratified schema state | LAG-ACCEPTABLE | n/a (expected lag — apply tracks the gap per 20260514150238_*.sql lines 141-152) | HIGH |
Tally: CONSISTENT 9 · DRIFT-DETECTED 1 (MEDIUM) · LAG-ACCEPTABLE 1.
§13. Action items before S239 sub-doc dispatch
Section titled “§13. Action items before S239 sub-doc dispatch”HIGH severity (must fix before S239 Wave 1 dispatch)
Section titled “HIGH severity (must fix before S239 Wave 1 dispatch)”None. No HIGH-severity drift found. S239 Wave 1 dispatch is NOT blocked by this audit.
MEDIUM severity (should fix; not blocking Wave 1)
Section titled “MEDIUM severity (should fix; not blocking Wave 1)”MED-1. Update docs/plans/phase-0-investigation/feedback-findings-review.md §5.2.1 rows 6+7 to reflect S236 WP8 rulings.
- Current (stale) status: STILL-OPEN.
- Correct status: RESOLVED-S236.
- Remediation: Add a “Note (S236): Superseded — see
00-synthesis-v2.md§3.16 + §5.1 + decision-graph §11.4.1 + this doc’s §6.4 for the audit-trail of which items were NOT addressed at S237” prefix to each row, OR rewrite the disposition to RESOLVED-S236 with cross-link. - Why MEDIUM (not HIGH): the canonical synthesis-v2 + decision-graph + feedback-findings-review §6 are all correct; S239 Wave 1 sub-doc writers reading the central register will get the right answer. The stale §5.2.1 rows are a documentation-hygiene issue, not a substantive blocker.
- Suggested ratification: fold into the next “feedback-findings-review.md is touched” pass; OR an explicit doc-hygiene mini-PR pre-S239 Wave 1 (~10 lines).
LOW severity (cosmetic; record for future cleanup)
Section titled “LOW severity (cosmetic; record for future cleanup)”LOW-1. docs/specs/core-docs-pathway-assessment/INV-architecture-split-readiness.md §3 row 1 cites docs/client-documentation-base/markdown/Knowledge Hub — Platform Overview.md. The actual file is at docs/client-documentation/Knowledge Hub — Platform Overview.md (no -base/markdown segment).
- Remediation: change the path in INV §3 row 1 to
docs/client-documentation/Knowledge Hub — Platform Overview.md. - Why LOW: the pilot
01-vision.mdalready cites the correct path in §7.1; INV is the only place with the wrong path; no Wave 1 sub-doc draft will rely on the INV path (they will use the pilot’s citation).
LAG-ACCEPTABLE (tracked, not actionable now)
Section titled “LAG-ACCEPTABLE (tracked, not actionable now)”LAG-1. docs/reference/SCHEMA-QUICK-REFERENCE.md Last verified header is 07/05/2026 and the doc reflects the pre-Q-OQR1-16 + pre-Cloud-Run-sidecar + pre-application_types schema state. The migration draft supabase/migrations/20260514150238_*.sql explicitly documents the post-apply sync pattern (lines 141-152). Per the same convention, the Q-OQR1-16 combined PR will trigger a SCHEMA-QUICK-REFERENCE sync on apply. Track at apply-time, not before.
§14. No-drift confirmations (positive register for audit trail)
Section titled “§14. No-drift confirmations (positive register for audit trail)”Items confirmed consistent across all cited locations:
- Q-OQR1-01..17 (17 rows): all dispositions match between
00-synthesis-v2.md§3 + §5 and0.9-decision-graph.md§11.1. - WP8 rulings (N7, N9, audit_log RLS): all 3 RESOLVED-S236 closures match between
00-synthesis-v2.md§5.1 and0.9-decision-graph.md§11.4.1. - S237 CV resolutions (CV 02 / CV 03 / CV 04 / CV 06 / CV 13 / CV 16 / CV 19): 10 CV closures match across
00-synthesis-v2.md§5.4,0.9-decision-graph.md§11.4.5, and thedocs/ontology/*.mdNotes blocks. - Lockstep-with-migration retire pattern (CV 04
capability+ CV 16firecrawl): explicit + consistent incollapse-candidates.md§14 +00-synthesis-v2.md§3.7 + §5.4 + the CV file Notes blocks. - Astro+Starlight docs-site ratification: consistent across
00-synthesis-v2.md§5.4,0.9-decision-graph.md§11.4.5,feedback-findings-review.md§6.2,collapse-candidates.md§14.5, anddocs/ontology/README.md§“Docs-site auto-update plan”. - Q-OQR1-16 combined PR scope (10 components): consistent across
00-synthesis-v2.md§2.3 N3 + §3 + §5 and0.9-decision-graph.md§11.3. - INV §2 superseded source-doc items (10 rows): every row’s citation resolves to a real section in a real doc with the cited disposition.
- INV §3 WP4 readiness map row-by-row: matches
00-synthesis-v2.md§4 exactly. - INV §5 open gates row-by-row: matches
00-synthesis-v2.md§5.2 exactly. - Pilot 01-vision.md outgoing-links (28+ citations checked): every cited target exists and says what the pilot claims.
- Theme F STILL-OPEN status: consistent across
00-synthesis-v2.md§5.2 row 1,0.9-decision-graph.md§11.4.2 row 1,feedback-findings-review.md§6.4 row 1,INV-architecture-split-readiness.md§5 row 3. No orphaned rulings. - Knowledge Map graph substrate STILL-OPEN: consistent across
00-synthesis-v2.md§5.2 row 4 +0.9-decision-graph.md§11.4.2 row 5; substrate RESOLVED-S232 per CX.32 (cocoindex, not Graphify); surface scope STILL-OPEN. - Supabase Item 1 + Item 2 + Item 3 alignment:
supabase-db-action-items.md+00-synthesis-v2.md§3.17 + §3.18 + §5.2 + migration draft20260514150238_*.sql+ S238 OAuth survey result — all four sources tell a consistent story. - Migration draft
20260514150238_*.sql:rls_auto_enable()function verbatim matches Item 2;grant_standard_public_table_access(regclass)helper encodes Item 1 3-role pattern;REVOKE EXECUTE ... FROM anonon both helpers per CLAUDE.md gotcha. - Heritage-doc framing in pilot §7.1: all 4 entries (Platform Overview, Claude Integration Guide, AI Integration Strategy, Product Differentiation Audit) have honest staleness flags + accurate “useful for” framing.
§15. Confidence per check (footnote)
Section titled “§15. Confidence per check (footnote)”| Check | Confidence | Why |
|---|---|---|
| 1 Q-OQR1 + WP8 + S237 CV cross-checks | HIGH | Direct line-level comparison; tabular evidence; reproducible by re-running grep |
| 2 Astro+Starlight docs-site | HIGH | Three+ docs corroborate; explicit lines cited |
| 3 collapse-candidates §12-§14 vs synthesis-v2 §5 | HIGH | Row-by-row tabular comparison |
| 4 feedback-findings-review §5 + §6 | HIGH (drift detection) — MEDIUM (severity ruling MEDIUM not HIGH) | Drift is unambiguous; severity is a judgement call (canonical sources are correct, so Wave 1 isn’t blocked) |
| 5 INV §2 / §3 / §5 citations | HIGH (resolution) + MEDIUM (cosmetic path) | Each citation walked; the cosmetic path drift on INV §3 row 1 is judgement-call-MEDIUM but no Wave 1 dependency |
| 6 Pilot outgoing-link sanity | HIGH | 28+ citations checked individually |
| 7 Pilot framing vs cited-doc framing | MEDIUM | Inherently a judgement call on “adaptation vs drift”; the pilot explicitly hedges with “adapted for architecture audience” framing in §2.2 + §8 |
| 8 Theme F STILL-OPEN + orphan scan | HIGH | Direct cross-doc + grep over CLAUDE.md + supabase-db-action-items |
| 9 Knowledge Map substrate STILL-OPEN | HIGH | CX.32 substrate decision + surface scope STILL-OPEN both confirmed |
| 10 Supabase deadlines + migration draft | HIGH | 4-source corroboration; migration content verbatim-matched against supabase-db-action-items |
| 11 SCHEMA-QUICK-REFERENCE lag | HIGH | Lag is documented in the migration draft’s own header (lines 141-152); convention is explicit |
§16. Bottom-line verdict for S239 Wave 1 dispatch
Section titled “§16. Bottom-line verdict for S239 Wave 1 dispatch”S239 Wave 1 dispatch is NOT blocked by this audit.
- 9 of 10 mandated check categories are CONSISTENT.
- 1 of 10 is LAG-ACCEPTABLE (SCHEMA-QUICK-REFERENCE.md — expected; apply tracks the gap).
- 1 of 10 is DRIFT-DETECTED (
feedback-findings-review.md§5.2.1 rows 6+7 lag the S236 WP8 ratifications) — but this is MEDIUM severity, not HIGH, because:- The canonical synthesis-v2 + decision-graph + feedback-findings-review §6 are all correct.
- Wave 1 sub-doc writers reading the prompt’s central-register sources (
00-synthesis-v2.md+0.9-decision-graph.md§11 +INV-architecture-split-readiness.md) will get the right answer. - The stale §5.2.1 rows are documentation-hygiene, not substantive drift.
Recommended posture for S239 Wave 1: dispatch the 7 remaining sub-doc agents using the central register docs (synthesis-v2 + decision-graph §11 + INV) as primary inputs. Note for sub-agents reading feedback-findings-review.md §5: prefer §6 closures + the canonical synthesis-v2 §3.16 / §5.1 for OQ-Q24-B + OQ-Q24-C dispositions.
Optional pre-dispatch doc-hygiene fix (10-line edit): update feedback-findings-review.md §5.2.1 rows 6+7 to RESOLVED-S236 with cross-link. This is a clean Liam-ratifiable mini-PR.
End of audit. No new architecture decisions proposed. No rulings made. All findings backed by direct line-level cross-doc comparison. Confidence HIGH for all 10 mandated checks.