Skip to content

S239 STILL-OPEN consolidation — end-of-session sweep

S239 STILL-OPEN consolidation — end-of-session sweep

Section titled “S239 STILL-OPEN consolidation — end-of-session sweep”

Date: 14/05/2026 (S239 end-of-session) Author: background worktree consolidation agent Scope: Every STILL-OPEN flag raised across S239 output docs (01-vision, 03-tech-stack, 04-workspace-types, 07-collapse-list, RLS-PATTERN PRODUCT/TECH), cross-checked against canonical ratification sources + project reference docs. Output: Three-tier classification — [ACTUALLY-STILL-OPEN] / [ACTUALLY-RESOLVED] / [RESOLUTION-AMBIGUOUS] — with recommended handoff disposition per item.


16 STILL-OPEN flags scanned across 6 source docs.

ClassificationCountItems
[ACTUALLY-STILL-OPEN]11Theme F MCP review · diff-UI retire scope · P7 file-upload · Roadmap §3/§3.7/§11 LIKELY-ABSORB · EP8 partial obsolescence · Knowledge Map graph substrate · TS-facing API for cocoindex ledger · CocoInsight on-prem deployment · Prompt-cache passthrough · Discriminated-union Pydantic (Q-EX2) · Tracked-changes DOCX regression test · P-5 RLS observability hook
[ACTUALLY-RESOLVED]1RLS-PATTERN destination decision (now ratified — spec exists at docs/specs/rls-pattern/{PRODUCT,TECH}.md; 03-tech-stack.md §8.2 reads stale)
[RESOLUTION-AMBIGUOUS]4Q-OQR1-16 migration “STILL-OPEN” framing (multiple sub-doc occurrences — verify shared vs distinct STILL-OPEN flag) · TBD/future feature spec placeholders for 5 workspace seat tables · WP6 markdown ontology storage CV columns (Q-OQR1-12) referenced as ratified but not load-bearing for sub-docs · 06-mcp-tooling sub-doc reference (gate is established but the sub-doc itself doesn’t yet exist — meta-status)

Note: there are 11 distinct items in [ACTUALLY-STILL-OPEN] but 12 if double-counting 04-workspace-types and 03-tech-stack separate migration-STILL-OPEN flags (the same Q-OQR1-16 migration). Treating those as 1 underlying ratification gap → 11 distinct items.

Top headline finding: Only 1 item is [ACTUALLY-RESOLVED] (RLS-PATTERN destination) — and that resolution happened mid-session. 03-tech-stack.md §8.2 line 188 should be updated to cite the spec rather than the pre-decision framing. All other flags reflect genuinely open items already in the canonical STILL-OPEN register at 00-synthesis-v2.md §5.2 / decision-graph §11.4.2, plus the new P-5 observability gap surfaced by the RLS-PATTERN spec itself.


Scanned 6 S239 output docs for STILL-OPEN / gates on / migration STILL-OPEN / TBD / pre-decision / Theme F markers via grep. Cross-checked each flag against:

  • docs/plans/phase-0-investigation/0.9-decision-graph.md §11 (consolidated ratifications)
  • docs/plans/phase-0-investigation/10-feedback-investigation-findings/00-synthesis-v2.md §3 + §5
  • docs/specs/core-docs-pathway-assessment/S238-pre-S239-synthesis.md (Wave 2 carry-forwards)
  • docs/specs/core-docs-pathway-assessment/INV-architecture-split-readiness.md §2/§3/§5/§7
  • docs/specs/core-docs-pathway-assessment/S238-pre-S239-consistency-audit.md
  • docs/plans/phase-0-investigation/phase-b-prerequisite-1-onthology-pipeline-feedback-investigation.md §8 (Q-OQR1)
  • docs/plans/phase-0-investigation/supabase-db-action-items.md
  • docs/reference/state-of-the-product.md, product-roadmap.json, product-backlog.json, SCHEMA-QUICK-REFERENCE.md, CLAUDE.md

Scan result: No STILL-OPEN flags raised. 01-vision.md is the ratified S238 pilot output; it cites Theme F as a future sub-doc gate (companion sub-doc note line 7) but does not raise a STILL-OPEN of its own.

03-tech-stack.md (commits 82361fa7 + fix dfa278a1)

Section titled “03-tech-stack.md (commits 82361fa7 + fix dfa278a1)”
LineFlag contentClassification
7Companion sub-doc note: 06-mcp-tooling.md (gated on Theme F)[ACTUALLY-STILL-OPEN] — companion-ref to canonical Theme F STILL-OPEN per synthesis-v2 §5.2 row 1. Not a new flag.
54Tool inventory + mempalace direct-vs-wrapped land in 06-mcp-tooling.md (gated on Theme F MCP-action review pre-decision per 00-synthesis-v2.md §5.2 row 1)[ACTUALLY-STILL-OPEN]
110CocoInsight on-prem deployment posture STILL-OPEN per 00-synthesis-v2.md §5.2 / TS-facing API for cocoindex per-flow-run ledger STILL-OPEN per same row[ACTUALLY-STILL-OPEN] — both canonical (synthesis-v2 §5.2 rows 6 + 5)
142Tracked-changes DOCX regression test STILL-OPEN per 00-synthesis-v2.md §5.2[ACTUALLY-STILL-OPEN] — canonical (synthesis-v2 §5.2 row 8)
188RLS-PATTERN doc destination (inline §12 of 04 vs separate docs/specs/rls-pattern/{PRODUCT.md,TECH.md}) is “a Wave-2 pre-decision per INV-architecture-split-readiness.md §7.4 — not blocking this sub-doc”[ACTUALLY-RESOLVED] — destination DECIDED at S239 Wave 2 dispatch. Spec exists at docs/specs/rls-pattern/{PRODUCT,TECH}.md (commit 8e1a25af). PRODUCT.md status header verbatim: “Spec destination ratified by Liam at S239 Wave 2 dispatch (separate doc per INV-architecture-split-readiness.md §7.4 recommendation)“.
241Mempalace integration pattern (direct vs wrapped within KH MCP) — Theme F MCP-action review item, STILL-OPEN per 00-synthesis-v2.md §5.2 row 1[ACTUALLY-STILL-OPEN]
295”RATIFIED-S235 across …; The entity_aliases.category enum is renamed to provenance in the Q-OQR1-16 combined PR (RATIFIED-S235, migration STILL-OPEN)“[ACTUALLY-STILL-OPEN] — migration not yet applied. Q-OQR1-16 combined PR is RATIFIED-S235 per synthesis-v2 §3.7; the actual migration is a Q-OQR1-16 deliverable not yet drafted (separate from the auto-RLS migration).

04-workspace-types.md (commits 797c233c + fix 34623848)

Section titled “04-workspace-types.md (commits 797c233c + fix 34623848)”
LineFlag contentClassification
7Companion sub-doc note: 06-mcp-tooling.md (gated on Theme F)[ACTUALLY-STILL-OPEN] — same companion-ref as 03-tech-stack.
20”Schema commitments in this sub-doc are RATIFIED-S235 in framing; the migration is STILL-OPEN per Q-OQR1-16 combined-PR scope (§8). The two qualifiers run together throughout: every typed-column claim cites the ratification + flags migration STILL-OPEN where relevant.”[ACTUALLY-STILL-OPEN] — Q-OQR1-16 combined PR migration scope established (decision-graph §11.3 + synthesis-v2 §3.4-§3.8) but NOT yet drafted as a migration file. (Distinct from the auto-RLS event trigger migration at 20260514150238_*.sql which is for 00-synthesis-v2.md §3.16+§3.17.)
43”RATIFIED-S235, migration STILL-OPEN per Q-OQR1-16 combined-PR scope. Citations: 00-synthesis-v2.md §3.4 (application_types instance table); 0.9-decision-graph.md §11.1 ONT.2 + ONT.3; phase-b-prerequisite-1-onthology-pipeline.md §4.2”[ACTUALLY-STILL-OPEN] — same Q-OQR1-16 migration
106-110Future workspace-type tables marked “TBD” (intelligence_workspaces, sales_proposal_workspaces, product_guide_workspaces, competitor_research_workspaces, training_onboarding_workspaces — “Future feature spec — TBD”)[RESOLUTION-AMBIGUOUS] — These are workspace SEAT tables (not migration items). Synthesis-v2 §3.4 Q-OQR1-03 names 6 baseline application_types (procurement + intelligence + sales_proposal + product_guide + competitor_research + training_onboarding). Per architecture-sub-doc-readiness-audit.md §47 column the existence of seat tables is implicit in Q-OQR1-04 (KISS single discriminator with per-application_type satellite tables). Status: feature-spec-needed-later, not architecture STILL-OPEN. Suggestion: clarify TBD-here means “deferred feature spec, not architecture STILL-OPEN” so handoff isn’t confused.
220”RATIFIED-S235, migration STILL-OPEN. The actual SQL belongs in the migration draft (a separate combined-PR deliverable per the readiness-audit §10 verdict — ‘the section describes the migration’s scope, not the actual SQL’). This sub-doc carries the scope + the per-item home; SQL details live in the migration file and the per-application feature spec where relevant.”[ACTUALLY-STILL-OPEN] — Q-OQR1-16 combined-PR migration not yet drafted.

07-collapse-list.md (commits bbdc4a0f + fix dfa278a1)

Section titled “07-collapse-list.md (commits bbdc4a0f + fix dfa278a1)”
Line / §Flag contentClassification
42 (§1 intro)“§12 lists STILL-OPEN ratifications surfaced by the §239 Wave 1 sweep — items where the predecessor’s tier marker did not clearly resolve and the ratifying source did not pin the outcome.”Meta — points to §12
§12.1 (line 296+)Diff UI retire scope (app/api/source-documents/[id]/diff/*, app/documents/[id]/diff/page.tsx, components, lib/source-documents/document-diff.ts, source-document-impact.ts). “Predecessor §2.1 tagged PROPOSED-S233 pending Liam guidance; B2 RESOLVED-α per Q-OQR1-09 settles the table-shape question, but the diff-UI repurpose-or-retire scope is not addressed in the ratifying sources.”[ACTUALLY-STILL-OPEN] — Cross-checked against 00-synthesis-v2.md §2-§5, 0.9-decision-graph.md §11, finding 01 — diff-UI scope is genuinely not ratified. Notably the planned 02-data-flow.md §9 structure (per readiness-audit §99 line 111) is the binding location (“diff-UI retire under Option α”) but the resolution itself is downstream. Project roadmap §9.6 mentions source-document-diff-review.tsx (1,298 LOC) as a refactor target (not retire). No backlog row.
§12.2 (line 306+)P7 file-upload route disposition (app/api/upload/route.ts). Marked [CONDITIONAL-RETIRE] pending 02-data-flow.md source-binding-to-folder vs non-folder workflow resolution.[ACTUALLY-STILL-OPEN] — Decision binds at 02-data-flow.md. Synthesis-v2 §3 + finding 01 + collapse-candidates §3.1 confirmed no explicit binding-context resolution exists in ratifying sources.
§12.3 (line 316+)Roadmap §3 / §3.7 / §11 LIKELY-ABSORB sections (classification-related, AI telemetry, context graph phase 5). Per-item verification deferred to 02-data-flow.md.[ACTUALLY-STILL-OPEN] — Direction-of-travel (LIKELY-ABSORB) is established via CX.21 + cocoindex-eval §5.8 per synthesis-v2 §3; per-item ratification deferred.
§12.4 (line 326+)EP8 partial obsolescence (60% shipped via S194/S198/S205-S207). Predecessor tagged [CONDITIONAL-RETIRE] per OQ7 — partial rewrite needed, not full retire.[ACTUALLY-STILL-OPEN] — OQ7 rewrite scope not addressed in ratifying sources. Confirmed in project roadmap §1.11: EP8 has live entry “EP8 build remains” (session_refs: ["S209", "S198"], depends_on: [“§5”]) — open product item, not architecture-blocking. Schedule: OQ7 spike or PRODUCT.md for EP8-rewrite scope.

docs/specs/rls-pattern/PRODUCT.md (commit 8e1a25af)

Section titled “docs/specs/rls-pattern/PRODUCT.md (commit 8e1a25af)”
Line / §Flag contentClassification
11 (§How-to-use)Convention: invariants carry [STILL-OPEN — gates on X] with explicit gatingConvention statement, not a flag
59 (§P-5)P-5 — Auto-RLS event-trigger observability. “When the RLS auto-enable event trigger fires on a new public.* table, the system records the trigger invocation in an audit-friendly location (audit_log row / structured log / both) with table name + timestamp + invoking user/role. [STILL-OPEN — gates on observability spec]. Mention-only in companion TECH.md until the observability spec lands. Category per construction guide §5.2: tech spec needed.”[ACTUALLY-STILL-OPEN] — NEW item, surfaced by S239 RLS-PATTERN spec. Cross-checked against synthesis-v2 §3.16 (only records the rls_auto_enable() event trigger ratification, not an observability hook — the migration draft uses RAISE LOG per supabase-db-action-items.md Item 2 lines 66/69/72, no audit_log integration). Q24-B ratification per synthesis-v2 §5.1 covered audit_log RLS pattern, not the observability of the trigger itself. Liam pre-decision needed on option (a) audit_log insert / (b) separate fan-out / (c) defer to structured logging only.

docs/specs/rls-pattern/TECH.md (commit 8e1a25af)

Section titled “docs/specs/rls-pattern/TECH.md (commit 8e1a25af)”
Line / §Flag contentClassification
13 (§How-to-use)“Gate: any STILL-OPEN dependency”Convention statement
160 (§T-5)T-5 — Auto-RLS event-trigger observability (implements P-5 — STILL-OPEN). “Current state: rls_auto_enable() writes to PostgreSQL RAISE LOG only (migration draft lines 62, 65, 68-69). No structured emission to audit_log. Target state: STILL-OPEN. Options: (a) extend rls_auto_enable() to insert into audit_log; (b) separate rls_auto_enable_observability() fan-out; (c) defer to structured logging only. Gate: Liam pre-decision on which option + audit_log shape.”[ACTUALLY-STILL-OPEN] — Same P-5 item, just the TECH-side framing.

[ACTUALLY-RESOLVED] items — source-doc fixes needed

Section titled “[ACTUALLY-RESOLVED] items — source-doc fixes needed”

Fix 1: 03-tech-stack.md line 188 — RLS-PATTERN destination

Section titled “Fix 1: 03-tech-stack.md line 188 — RLS-PATTERN destination”

Location: docs/plans/phase-0-investigation/architecture/03-tech-stack.md §8.2 line 188.

Current text (stale):

The destination of the dedicated RLS-PATTERN doc (inline in 04-workspace-types.md §12 vs separate docs/specs/rls-pattern/{PRODUCT.md,TECH.md}) is a Wave-2 pre-decision per INV-architecture-split-readiness.md §7.4 — not blocking this sub-doc. The trigger pattern itself is ratified; the destination paragraph references it.

Ratification evidence: docs/specs/rls-pattern/PRODUCT.md line 3 verbatim: “Status: [CURRENT-CANONICAL] — NEW-S239. Spec destination ratified by Liam at S239 Wave 2 dispatch (separate doc per docs/specs/core-docs-pathway-assessment/INV-architecture-split-readiness.md §7.4 recommendation).” Commit 8e1a25af lands docs/specs/rls-pattern/{PRODUCT,TECH}.md.

Suggested replacement text:

The dedicated RLS-PATTERN doc lives at docs/specs/rls-pattern/{PRODUCT.md,TECH.md} (ratified S239 Wave 2 per INV-architecture-split-readiness.md §7.4 recommendation — separate doc, not inline in 04-workspace-types.md §12). The trigger pattern itself is ratified per synthesis-v2 §3.16; the destination paragraph references it.

Priority: LOW (decision is correctly described as “not blocking this sub-doc” — line is informational, not load-bearing). Can be left for the next read-through pass or fixed inline if anyone touches 03-tech-stack.md later.


[ACTUALLY-STILL-OPEN] items — for handoff carry-forward

Section titled “[ACTUALLY-STILL-OPEN] items — for handoff carry-forward”

Consolidated list of items genuinely open after S239 close. Each appears in next session’s continuation prompt for either pre-decision dispatch or downstream sub-doc binding.

#ItemSourceCurrent canonical rowLiam pre-decision needed?Suggested timing
1Theme F MCP-action review pass (mempalace direct vs wrapped within KH MCP)03-tech-stack §3, §10; 04-workspace-types companion-ref; canonical 00-synthesis-v2.md §5.2 row 1 + 0.9-decision-graph.md §11.4.2 row 1Lone STILL-OPEN gate blocking 06-mcp-tooling.mdYES — operational pre-decision (binary: direct vs wrapped)S240 kickoff or any dispatch — blocks 06-mcp-tooling.md only
2Diff-UI retire scope07-collapse-list §12.1NOT in canonical register — surfaced by S239 sweepYES — Liam 1-line ratificationS240 Wave 2 split (02-data-flow.md binding at §source-document-handling per 02-data-flow.md planned §9 structure)
3P7 file-upload route disposition (app/api/upload/route.ts)07-collapse-list §12.2 (CONDITIONAL-RETIRE)NOT in canonical register — binds at 02-data-flow.mdNO — 02-data-flow.md drafter resolves per cocoindex source-binding architectureS240 Wave 2 split (02-data-flow.md source-binding section)
4Roadmap §3/§3.7/§11 LIKELY-ABSORB per-item verification07-collapse-list §12.3 (CONDITIONAL-RETIRE)NOT in canonical register — binds at 02-data-flow.mdNO — per-item verification at 02-data-flow.mdS240 Wave 2 split
5EP8 partial obsolescence (60% shipped)07-collapse-list §12.4 (CONDITIONAL-RETIRE) + roadmap §1.11 (live entry)OQ7 OPEN-WITH-NOTE per 0.9-decision-graph.md §7 + roadmap §1.11NO — scheduled spike OR PRODUCT.mdSchedule OQ7 spike or docs/specs/ep8-qa-docx-import-ui-spec.md rewrite; carry [CONDITIONAL-RETIRE] flag until then
6Q-OQR1-16 combined PR migration drafting (kb_section retire + application_types introduce + project_id→workspace_id + digests→change_reports rename + ALTERs on application_types / form_types / form_template_requirements / guides / coverage_targets / entity_aliases.category→provenance / CV 04 retire capability / CV 16 retire firecrawl / CV 02 prose-to-frontmatter sync)03-tech-stack §10 (line 295 entity_aliases); 04-workspace-types §1.20 + §1.43 + §1.220 framingAll scope items RATIFIED-S235/S237 per 0.9-decision-graph.md §11.3; migration file itself not draftedNO — migration file pending; this is “ratification CLOSED, implementation PENDING” patternSchedule combined-PR migration drafting (separate from 20260514150238_*.sql auto-RLS migration) — pre-launch deliverable; not blocking architecture sub-docs
7P-5 RLS auto-enable observability hook (NEW S239)docs/specs/rls-pattern/PRODUCT.md P-5 + TECH.md T-5NEW item — gap left by synthesis-v2 §3.16 (event trigger ratified; observability not)YES — Liam picks (a) audit_log insert / (b) fan-out / (c) defer to structured loggingS240 kickoff or pre-launch — orthogonal to migration apply timing. Optional defer to v1.1 if scope justifies.
8Knowledge Map graph substratecanonical 00-synthesis-v2.md §5.2 row 4Future S7 spike; cocoindex confirmed as substrate at CX.32NO — pre-launchS7 spike (pre-launch); 08-new-features.md writes mention-only
9TS-facing API for cocoindex per-flow-run ledger03-tech-stack §5.6; canonical 00-synthesis-v2.md §5.2 row 5Pre-launch documentationNO — pre-launchPre-launch task
10CocoInsight on-prem deployment posture03-tech-stack §5.6; canonical 00-synthesis-v2.md §5.2 row 6Only if KH self-hostsNO — contingentDefer until self-host scenario surfaces
11Tracked-changes DOCX regression test03-tech-stack §6.4; canonical 00-synthesis-v2.md §5.2 row 8Adds to Theme B regression suiteNO — pre-launchPre-launch QA task; relates to CLAUDE.md “python-docx and Track Changes” gotcha
12Discriminated-union Pydantic with ExtractByLlm (Q-EX2)canonical 00-synthesis-v2.md §5.2 row 7Pre-launch schema designNO — pre-launchPre-launch task
13Anthropic prompt-cache passthrough verificationcanonical 00-synthesis-v2.md §5.2 row 5Pre-launch cost projectionNO — pre-launchPre-launch task

Items 9-13 are operational STILL-OPENs already in the canonical register; they are not blocking the architecture sub-docs but should appear in handoff for visibility.


[RESOLUTION-AMBIGUOUS] items — Liam ratification or clarification needed

Section titled “[RESOLUTION-AMBIGUOUS] items — Liam ratification or clarification needed”
#ItemWhat was checkedWhat was inconclusiveSuggested Liam disambiguation
104-workspace-types.md §1.106-1.110 future seat tables (“Future feature spec — TBD”) for intelligence_workspaces / sales_proposal_workspaces / product_guide_workspaces / competitor_research_workspaces / training_onboarding_workspacesQ-OQR1-03 (6 baseline application_types) + Q-OQR1-04 (single discriminator with satellite tables per application_type)Q-OQR1-04 ratifies the pattern (one satellite per app-type) but the timing of creating each satellite table is not addressed. Are these tables created upfront-with-empty-schema, or per-feature-spec when each application gets built?One-line ratification: “Satellite tables created per-feature-spec when each application ships, not upfront.” OR: “Satellite tables created upfront with reserved schema seat.” Either is consistent with Q-OQR1-04.
2WP6 markdown ontology storage CV columns (Q-OQR1-12 — provenance_model / client_extensible / editable_via / core_seed_path frontmatter per CV term)Referenced in 03-tech-stack §10 line 295 framing as load-bearing for provenance enum across hybrid Layer-1 CVsQ-OQR1-12 is RATIFIED-S235 per synthesis-v2 §3.7 / decision-graph §11.1 ONT.13, but the frontmatter shape itself is implemented in docs/ontology/*.md per WP6 D1 (a258d144). No STILL-OPEN element to track. Flag artefact.None needed — the framing is correct; flag is artefact of the Q-OQR1-16 migration cluster wording. No action.
306-mcp-tooling sub-doc — meta-statusThe sub-doc itself doesn’t exist as of S239 close; it’s a planned sub-doc gated on Theme FThe “STILL-OPEN” status applies to the gating ratification (Theme F), not the sub-doc — and the sub-doc itself can be dispatched once Theme F closes per INV §4 independent trackAlready addressed under item 1 of [ACTUALLY-STILL-OPEN] above. No new disambiguation needed.
4Q-OQR1-16 migration “STILL-OPEN” shared labelMultiple sub-docs label the same underlying migration as STILL-OPENIs the migration STILL-OPEN treated as one item (per 0.9-decision-graph.md §11.3) or per-occurrence (separately tracked per ALTER in each sub-doc)? Implication for handoff: one row in continuation prompt vs five.Treat as ONE underlying ratification gap (one Q-OQR1-16 migration draft, scope per decision-graph §11.3). Sub-doc framings flag it per-section because each ALTER is referenced from a different sub-doc, but the actual deliverable is one combined PR.

ItemDecision graph §11Synthesis-v2 §5.2S238 synthesisINV-readiness §7Q-OQR1 sourceProject ref docs
Theme F MCP-action reviewYES (§11.4.2 row 1)YES (row 1)YESYES (§7.2)YES (§8.1 Q-OQR1-05 + finding 03 1B-5 Q4.5)None
Diff-UI retire scopeNONONONOFinding 01 (1B-1 source_documents) — partialRoadmap §9.6 mentions refactor target, not retire
P7 file-upload routeNONONONOFinding 01 (N5 RESOLVED — separate issue)None
Roadmap §3/§3.7/§11 LIKELY-ABSORBNOCX.21 indirectlyNONONONone
EP8 partial obsolescenceYES (§7 OQ7 OPEN-WITH-NOTE)NONONONORoadmap §1.11 active item
Q-OQR1-16 migrationYES (§11.3 scope)YES (§3 + §5 references)YES (line 84 LAG-1)YES (§2 + §3)YES (Q-OQR1-16)SCHEMA-QUICK-REF Last verified 07/05/2026 lags
P-5 observability hookNO (NEW S239)NO (gap in §3.16)NONOQ-OQR1-09 referenced but unrelatedNone
Knowledge MapNO (§11.4.2 row 6)YES (row 4)YESYES (§5)NONone
TS-facing API cocoindex ledgerYES (§11.4.2 row 7)YES (row 5)NOYES (§5)NONone
CocoInsight on-premYES (§11.4.2 row 8)YES (row 6)NOYES (§5)NONone
Tracked-changes DOCXYES (§11.4.2 row 4)YES (row 8)NONONOCLAUDE.md “python-docx and Track Changes” gotcha (related but distinct — gotcha is for development; this is a regression test for the pipeline)
Q-EX2 PydanticYES (§11.4.2 row 3)YES (row 7)NONONONone
Prompt-cache passthroughYES (§11.4.2 row 2)YES (row 5)NONONONone
RLS-PATTERN destination (resolved)NO (post-§11 decision)NO (referenced as TBD)NOYES (§7.4 recommends standalone)NONone
Workspace seat tables TBDNONONOYES (§5 implies satellite-per-app)YES (Q-OQR1-04)None

TierConfidenceRationale
[ACTUALLY-STILL-OPEN]HIGHAll 11 distinct items cross-verified against ≥1 canonical source. Items 1, 8-13 are already in the canonical 00-synthesis-v2.md §5.2 + 0.9-decision-graph.md §11.4.2 register. Items 2-5 are surfaced by 07-collapse §12 with explicit “not addressed in ratifying sources” framing — confirmed by independent cross-check. Item 6 (Q-OQR1-16 migration) is a known deliverable from decision-graph §11.3. Item 7 (P-5 observability) is NEW but the gap is verifiable by reading synthesis-v2 §3.16 (event trigger only; no observability mention) + supabase-db-action-items.md Item 2 SQL (only RAISE LOG, no audit_log).
[ACTUALLY-RESOLVED]HIGHRLS-PATTERN destination decision is documented verbatim in docs/specs/rls-pattern/PRODUCT.md line 3 (commit 8e1a25af). The stale text at 03-tech-stack §8.2 line 188 was true at draft time but is now superseded by the same session’s spec landing.
[RESOLUTION-AMBIGUOUS]MEDIUMItem 1 (workspace seat tables timing) is genuinely undecided by Q-OQR1-04 wording. Item 2 (WP6 frontmatter) is a non-issue — flag artefact only. Item 3 (06-mcp-tooling meta-status) is administrative. Item 4 (Q-OQR1-16 shared label) is a tracking-discipline question, not a substantive open. Confidence is medium because some “ambiguity” here is actually clarification of framing rather than true STILL-OPENs.

Recommendations for next-session continuation prompt

Section titled “Recommendations for next-session continuation prompt”

Liam pre-decisions to surface (in order of leverage):

  1. Theme F MCP-action review pass — single highest-leverage pre-decision (unblocks 06-mcp-tooling.md entirely). Two-line decision: “mempalace direct” vs “mempalace wrapped within KH MCP”. Per finding doc 03 (1B-5 Q4.5) + feedback-findings-review.md §5.1 Theme F.
  2. Diff-UI retire scope (1-line ratification per 07-collapse §12.1) — binds at 02-data-flow.md §source-document-handling.
  3. P-5 RLS observability hook — pick option (a) audit_log insert / (b) fan-out helper / (c) defer to structured logging. Orthogonal to migration apply.
  4. Workspace seat tables TBD timing (1-line ratification per 04-workspace-types §1.106-1.110) — “satellite-per-feature-spec” vs “satellite-upfront”.

Carry-forward STILL-OPENs to track in handoff (no decision needed mid-session, just visibility):

  1. Q-OQR1-16 combined PR migration drafting — pre-launch deliverable.
  2. EP8 partial obsolescence — schedule OQ7 spike or PRODUCT.md.
  3. Operational pre-launch items: Knowledge Map (S7 spike), TS-facing cocoindex API, CocoInsight on-prem, tracked-changes DOCX regression test, Q-EX2 Pydantic, prompt-cache verification.

Source-doc fix to consider (LOW priority — not blocking):

  1. 03-tech-stack.md §8.2 line 188 — update RLS-PATTERN destination wording to cite the spec at docs/specs/rls-pattern/{PRODUCT,TECH}.md (now exists) instead of “Wave-2 pre-decision”. Defer to next read-through pass unless someone touches the sub-doc.

Post-S239 ratifications applied to the items above. Source: mempalace recall + S241 Liam ratification burst.

#ItemOriginal verdictS240 closureSource
1Theme F MCP-action review pass[ACTUALLY-STILL-OPEN]RATIFIED-S240 — direct pattern (mempalace as separate Anthropic plugin alongside KH MCP). Migration to wrapped pattern [DEFERRED-POST-LAUNCH].docs/specs/core-docs-pathway-assessment/theme-f-mempalace-investigation.md (S240 substrate) + docs/plans/phase-0-investigation/architecture/06-mcp-tooling.md (drafted S240)
2Diff-UI retire scope[ACTUALLY-STILL-OPEN]RATIFIED-S243 — RETAINED for v1, markdown-first (supersedes the interim S240 [DEFERRED-v1.1]). The surface (app/api/source-documents/[id]/diff/*, app/documents/[id]/diff/page.tsx, components, lib/source-documents/document-diff.ts, source-document-impact.ts) is NOT retired and NOT deferred — it is re-pointed from source_document_diffs to markdown sidecar revision comparison; lands as the Diff-UI sidecar re-point sub-task in PLAN.md T9.PLAN.md §7 item 2 (RATIFIED-S243 Item 5) — cited in 02-data-flow.md §10.2 + 07-collapse-list.md §12.1
3Reserved workspace seats (item 1 RESOLUTION-AMBIGUOUS — satellite tables TBD timing)[RESOLUTION-AMBIGUOUS]RATIFIED-S240 — upfront-with-PK+FK+RLS-only. 5 non-procurement seats created at v1 apply time per docs/specs/reserved-workspace-seats/{PRODUCT,TECH}.md (NEW-S240 spec pair, 8 invariants S-1..S-8). Per-app columns land via feature-spec ALTER.docs/specs/reserved-workspace-seats/PRODUCT.md S-1..S-8 + 04-workspace-types.md §4.2
4P-5 RLS auto-enable observability hook[ACTUALLY-STILL-OPEN]RATIFIED-S240 — [DEFERRED-v1.1] option (c) structured-logging-only (RAISE LOG → Cloud Run sidecar). audit_log integration deferred to v1.1.docs/specs/rls-pattern/{PRODUCT,TECH}.md P-5/T-5
#ItemOriginal verdictS241 closureSource
5Q&A migration rollback window[ACTUALLY-STILL-OPEN] (canonical-pipeline TECH.md §11 — uncategorised)RATIFIED-S241 — 1 year retention. Aligns with UK data-protection minimum for audit records. Hard-delete soft-archived q_a_pair rows 1 year post-migration. Migration completion now unblocked.S241 Liam ratification (this addendum)
6Q-EX2 Discriminated-union Pydantic with ExtractByLlm[ACTUALLY-STILL-OPEN] (canonical-pipeline TECH.md §11 — uncategorised)CATEGORISED-S241 — tech spec needed. Destination: docs/specs/id-36-cocoindex-extraction-contract/{PRODUCT,TECH}.md (NEW spec pair, NOT YET CREATED). Becomes a top-level task in canonical-pipeline implementation PLAN.md (WP-B S241).S241 Liam ratification + WP-B decomposition task
7Anthropic prompt-cache passthrough verification[ACTUALLY-STILL-OPEN] (canonical-pipeline TECH.md §11 — uncategorised)CATEGORISED-S241 — investigation spike needed (1-2h). Test ExtractByLlm call with cache_control block; confirm cache hit. No spec — verification only. Becomes a top-level task in PLAN.md.S241 Liam ratification + WP-B decomposition task
8TS-facing API for cocoindex per-flow-run ledger[ACTUALLY-STILL-OPEN] (canonical-pipeline TECH.md §11 — partially resolved by N6)DEFERRED-v1.1 per RATIFIED-S243 (Item 11) (supersedes the interim S241 “tech spec needed”). v1 ships only the pipeline_runs rollup (N6 retained); the per-stage metrics surface is deferred. Spec exists as v1.1 substrate at docs/specs/id-36-cocoindex-ledger-api/TECH.md.PLAN.md §7 item 9 (RATIFIED-S243 Item 11)

Schema-reference update guard — S241 removal

Section titled “Schema-reference update guard — S241 removal”

The docs/reference/SCHEMA-QUICK-REFERENCE.md entry was removed from TRACKED_REFERENCE_DOCS (lib/docs/tracked-reference-docs.ts) S241. Rationale: schema reference setup will be superseded by auto-syncing to the Astro docs-site (production-readiness track). Other tracked docs retain the freshness guard. The [skip-doc-freshness-guard] escape hatch on commit 8345e797 (S240 WP5 platform-deadline migration) is no longer load-bearing for the schema-quick-ref path but remains valid for other tracked docs.

#ItemStatusDisposition
-EP8 partial obsolescenceSTILL-OPENSchedule OQ7 spike or PRODUCT.md rewrite
-Q-OQR1-16 combined PR migration draftingSTILL-OPENPre-launch deliverable; lands as top-level task in PLAN.md
-Knowledge Map graph substrateSTILL-OPENFuture S7 spike; cocoindex confirmed as substrate at CX.32
-CocoInsight on-prem deployment postureSTILL-OPENContingent (only if KH self-hosts) — defer until scenario surfaces
-Tracked-changes DOCX regression testSTILL-OPENPre-launch QA task; relates to CLAUDE.md “python-docx and Track Changes” gotcha
-Roadmap §3 / §3.7 / §11 LIKELY-ABSORB per-item verificationSTILL-OPENPer-item verification deferred to 02-data-flow.md rebind or WP-B PLAN.md task
-P7 file-upload route disposition (app/api/upload/route.ts)STILL-OPENBinds at cocoindex source-binding architecture (PLAN.md task)
-New audit findings (P8 + P9 from implementation-readiness-audit-s240.md)TRACKED-S241Added to product-backlog.json per S241 WP-C — (P8) RLS-PATTERN CREATE TABLE LIKE / PARTITION OF not auto-enabled at v1; (P9) retroactive RLS audit for tables created before rls_auto_enable migration

End of consolidation + S240/S241 closure addendum. Original S239 register compiled 14/05/2026; S241 closure addendum compiled 18/05/2026 (S241 main session).