Skip to content

ID-64 phase-a-findings (S344 s344-id64)

ID-64 Phase A — 7-OQ investigation findings (worker s344-id64, 2026-06-12)

Section titled “ID-64 Phase A — 7-OQ investigation findings (worker s344-id64, 2026-06-12)”

READ-ONLY investigation. Source: historic-reingest-doc-review.md §5. Staging = turayklvaunphgbgscat. Each item resolved with evidence; journal-intents below are for the PARENT to apply on MAIN via ledger-cli.ts.

Item 1 — Guide + MCP-content restore source ({64.7})

Section titled “Item 1 — Guide + MCP-content restore source ({64.7})”
  • NO historic SQL dump of guides/guide_sections/feed config exists anywhere (worktree, main repo, archive, git history, staging Storage). data/exports/** never committed.
  • Staging live = 3 guides / 4 sections vs historic 9 guides / 117 sections → historic 117-section set is superseded, not lost.
  • 3 standalone source docs SURVIVE as files: Telehouse PDF, SI-brief md, case-study md (04-named-clients-and-case-studies.md) in ~/Documents/development/kh-client-content-archive/ AND at git ref b6e35683d^.
  • Staging Storage EMPTY (0 objects across documents/templates/tender-documents buckets). Prod Storage not queried (read-only scope).
  • Regen-prompt fallback recoverable: knowledge-hub-archive/operations/guide-regeneration-prompts.md.
  • RECOMMENDATION: guides/guide_sections/feed config → export-from-current-live (not historic-dump restore); regen-prompts = fallback only. 3 source docs → export-restore via ID-45 cocoindex re-ingest from the archive/git-history copies.

Item 2 — coverage_targets intent ({64.7})

Section titled “Item 2 — coverage_targets intent ({64.7})”
  • 0 rows on staging. NO seed path in repo: only INSERT is RLS policy coverage_targets_admin_insert (admin-gated runtime upsert, 20260416102457:6077). App writes via app/api/coverage/targets/route.ts:24,79 (runtime upsert). Table comment: admin-curated extensible metric model.
  • RECOMMENDATION: Disposition = “intentionally empty — RE-SEED-not-required”. Empty is the correct cold-start state. {64.7} needs no coverage_targets handling.

Item 3 — keep-set artefact exclusion ({64.7}) — MATERIAL CORRECTION

Section titled “Item 3 — keep-set artefact exclusion ({64.7}) — MATERIAL CORRECTION”
  • Doc’s [E2E/[SUPERSEDE + “3 demo items” framing is WRONG for this snapshot. Baseline predicate matches 0 rows on staging.
  • Staging census: 574 of 578 rows are bracket-prefixed test artefacts ([MCP-SEED]×10, [S225-W1C-BATCHRECLASSIFY-*]×20, [S226-W1C-MARKDOWNBATCH-*] = the bulk, [CERT-BRIDGE-*]×8, [MD-PUB-*], [GOLDEN-PATH-*]). Genuine retained content ≈ 2 rows (Charnwood ITT template + Confidentiality Policy). All 578 have source_url IS NULL.
  • The operative exclusion key is title LIKE '[%' (not [E2E/[SUPERSEDE) + the CI/smoke UUID stubs (f0000000-0000-4000-8000-000000000001 “CI Test Content Item”; “S316 Smoke Content Path Check”).
  • {64.7} MUST census the PROD handover corpus’s OWN bracket-tag families first (split_part(title,']',1)) — prod may carry tag families absent on the refreshed staging snapshot.
  • RECOMMENDATION (ratify-by-default): EXCLUDE any title LIKE '[%' + the CI/smoke UUID stubs from the keep-set.

Item 4 — cutover mechanism ({64.8}) — FOR-LIAM design input

Section titled “Item 4 — cutover mechanism ({64.8}) — FOR-LIAM design input”
  • Task 82 (done) proved preview branches replay SCHEMA/migrations onto a dataless DB; reference data is absent + must be seeded. Branches do NOT carry the corpus.
  • Supabase docs (unambiguous): merge-to-production deploys migrations/functions/storage-buckets only; “data doesn’t move between branches”; “seed-data changes not merged to production”. → candidate (b) branch-promotion is NON-VIABLE for the data move.
  • RECOMMENDATION: author {64.8} on hybrid (c): schema via migration replay (already prod) + data via pg_dump --data-only FK-ordered restore into prod, with doc §3 gotchas (prepend SET search_path = public, extensions; PG-17 binaries; TRUNCATE CASCADE pre-seeded config tables BEFORE restore). FOR-LIAM decision; analysis only.

Item 5 — quality-gate equivalent → ID-45 spec input

Section titled “Item 5 — quality-gate equivalent → ID-45 spec input”
  • Recovered historic scripts/quality-gate.ts + scripts/config/quality-gate/profiles.json at git ref 6539fbff5^. 12 checks; the re-ingest profile = 6 must-pass: corpus_counts, embedding_coverage, chunk_coverage, classified_domains_not_empty, guide_domain_filter_resolves (+ entity_mention_coverage floors incl. 0.85 maps to the doc’s “≥85%”).
  • ID-45 state: title “T7 — Phew full-corpus reingest via cocoindex”; status spec_needed; NO spec-chain ({45.x} = []); deps [101,28,36,41,69].
  • New gate MUST: (a) DROP history_v1_present (OQ-64-9 clean-slate content_history); (b) ADD net-new dimensions for reference_items, q_a_extractions, relationship triples (ID-101 parity, C1).
  • RECOMMENDATION: register the recovered profile as a seed for ID-45 {45.1} RESEARCH/{45.2} PRODUCT. ID-45 spec scope, NOT {64.8}.

Item 6 — legacy Google-News rows ({64.7})

Section titled “Item 6 — legacy Google-News rows ({64.7})”
  • Staging = 0 (all 578 source_urls NULL). The 8 legacy rows are in the PROD handover corpus only.
  • Detection SQL for {64.7} (run vs prod): SELECT id,title,source_url FROM content_items WHERE source_url LIKE '%news.google.com/rss%'.
  • RECOMMENDATION (default): DROP — opaque non-canonical redirector URLs, un-citeable provenance; re-resolve only if a row proves high-value evergreen on inspection.

Item 7 — products-services taxonomy domain

Section titled “Item 7 — products-services taxonomy domain”
  • ACTIVE: taxonomy_domains id=406054e3-…, name=products-services, display_name=“Products & Services”, is_active=true. Referenced in lib/taxonomy/taxonomy-format.ts:46, pipeline snapshot, search-eval, ontology MD (intentional client-provenance domain).
  • RECOMMENDATION: No action — active & referenced, not stale.