Skip to content

OKF round-4 feedback — RATIFIED DECISION LOG

OKF round-4 feedback — RATIFIED DECISION LOG

Section titled “OKF round-4 feedback — RATIFIED DECISION LOG”

Owner ratification via Lavish board (.lavish/okf-triage-board.html), 2026-06-28. Source findings: .user-scratch/RECOVERED-findings.md (E1/E2/E4/E5/E7/E8/E11) + workflow run wf_da6fa678-4c7 (E3/E6/E9/E10/E12). Follow-up checks (F1–F4) in flight: run wf_7f9d01cf-9a8.

DB note: zjqbrdctesqvouboziae = Platform DB (prod+staging). rovrymhhffssilaftdwd = CLIENT PROD DB. Prior agents queried Platform; some owner facts are client-prod. F1 reconciles.


#DecisionRatified callOwner modifier / caveat
D1Classification cols → SD (E2)Persist computed + drop dead/no-producerOnly persist confidence/reasoning/secondary IF actually USED → F4 verifies consumers; on source_documents not content_items
D2Forms match pool (E5)1A drop SD + 2A include RI nowTrack RI usage on the Intelligence-domain track
D3Manual q_a authoring (E7)A — new id-131 sub-task + 'manually_authored' origin_kindQ: was a Q&A editor built then removed? (EP8: “writes INTO a fully-mature Q&A editor surface”) → F2
D4thumbnail_url (E9)B — ship empty nullable col now, backfill laterClient-prod (rovrymhhffssilaftdwd) HAS thumbnail rows — reconcile + find writer → F1. id-111/110/112 are CLOSED; id-118 surfaces them to UI (id-118 IS a valid awareness target)
D5layer axis (E10)Retire from source_documents (no SD col)KEEP the layer concept in the ontology — do NOT deprecate the 03-layer-vocabulary CV; re-frame it as the Guides audience axis
D6Dead-loader / register (E11)A — keep Decision A (retire loader) + reframeConflated — the real ask is id-133 must BUILD ON the original id-63 ontology plans (phase-b-prerequisite-1-onthology-pipeline*.md), not entity_type/relationship → F3
D7GOV-FACET per-axis (E12)A — per-axis; Q&A drops freshness (0 net-new cols)Defer RI freshness/validity/contradiction to the Intelligence-domain track (follows id-130) — track, not lose. Expiry-data history → bl-90 (docs/research/human-validation-auto-metadata-research.md)
D8Citation rationale (§4)A — reframe; anchors-only conclusion stands
D9hybrid_search re-research (§3.3)A — new research sub-task in id-131, blocks the RPC-rewrite subtasksreview id-71
D10id-134 corpus ownership (RATIFY-1)1A committed in-repo + 2A defer Platform OKF repoKeep a synced copy OUTSIDE the main repo for integration testing. Note: id-132 may build the Platform OKF repo imminently — coordinate

  • ✓ RATIFY-1b (no manifest) · ✓ RATIFY-2 (Q&A sidecar retired, QA-DBONLY) · ✓ RATIFY-4
  • RATIFY-3 — do NOT build id-134 files until id-131 final shape confirmed (these decisions reshape id-131) — holds
  • ⏸ PARKED — workspace_id vs activity-id abstraction (strategic; own review)
  • E1completed pipeline_runs = cron/MCP audit; id-134 gate filters pipeline_name='kh_canonical_pipeline' AND op_id NOT NULL; corrects v3 §9 → 0 chunks/33 items/498 runs (Platform DB)
  • E3governance-section.tsx: keep; repoint fetchLastFreshnessCheck (:102-118) to facet; ADD to GOV-FACET consumer list (spec omits it)
  • E4declare_vector_index avoidance is deliberate (DDL-via-migration governance); embeddings ARE written; EMB-STORE same pattern
  • E6 — walk = enumerate-all / process-delta (owner right re: processing); per-walk declare_row UPSERT is O(all files) — id-134 cost note
  • E8 — id-132 OKF-conformant; toolbox/enrichment/fileset.ts not reviewed but consumer-side; optional consumer-side OKF-MCP backlog; fix cosmetic method-name in TECH

Tracking actions to create (Curator) — so deferred work is NOT lost

Section titled “Tracking actions to create (Curator) — so deferred work is NOT lost”
  1. RI lifecycle facet (freshness/validity/supersession/contradiction) → Intelligence-domain track, after id-130. Ref bl-90 + human-validation-auto-metadata-research.md. (from D7/D2)
  2. Synced Platform-corpus copy outside main repo for integration testing. (from D10.1)
  3. Coordinate Platform OKF repo with id-132 (may be built imminently). (from D10.2)
  4. PARKED workspace_id vs activity-id abstraction review.

Follow-up RESULTS (run wf_7f9d01cf-9a8 — F1/F2/F3 agents; F4 done by orchestrator)

Section titled “Follow-up RESULTS (run wf_7f9d01cf-9a8 — F1/F2/F3 agents; F4 done by orchestrator)”

F1 — ⚠️ MAJOR: reversibility premise is Platform-only; client-prod has real data.

  • CLIENT PROD rovrymhhffssilaftdwd (“canonical-phew”, ACTIVE): content_items=631, content_chunks=926, thumbnail_url populated=55 (og:image, writer retired ID-110 commit f9bcc26a 2026-06-14), q_a_pairs(typed)=0, reference_items=0, q_a_extractions=3.
  • 396 content_items are content_type='q_a_pair' (380 qa_import + 15 manual + 1 null) — the Q&A mass lives in the god-table, not the typed table. So “q_a_pairs=0” is misleading.
  • Platform (33/0/3/0) is a near-empty unrelated dataset → the v3 “zero prod data / fully reversible” claim holds ONLY for Platform.
  • D4 thumbnail: genuinely net-new on RI (ship empty). The 55 old client-prod og:image values are wiped (not backfilled). Writer retired (ID-110) → open sub-point: re-wire og:image capture (content-extractor.ts:276) into the NEW reference ingest so RIs get thumbnails going forward, vs leave empty.
  • D11 — DISSOLVED by owner (2026-06-28): client-prod is NOT live / no real users; id-45 does a full-replace re-ingest (cocoindex full walk) that WIPES & rebuilds client-prod from the gated corpus. So current client-prod content = pre-OKF debris, not data to migrate. The “disposable L-records, regenerated from L-raw” framing is correct — make it explicit that it covers client-prod via wipe-and-replace (not just Platform’s emptiness).
  • Flag (non-blocking): the 15 manual q_a_pairs in client-prod are NOT corpus-derived → discarded by the wipe. Acceptable (not-live seed data); future manual pairs use the D3 authoring path. Confirm none of the 15 need preserving into the corpus first.

F2 — Q&A editor EXISTS (live, mature, shipped S198) — D3 = reuse-and-repoint, not build-new.

  • Live surfaces: app/item/new/create-content-client.tsx (Q&A create), components/qa/qa-answer-display.tsx (Tiptap inline edit), app/library/library-content.tsx (Q&A Library viewer). EP8 confirms “Shipped S198 / fully-mature.” The only deletions were a hook-refactor + docx-parser retirement (not the editor).
  • D3 reframes: rebind the existing Q&A editor’s data layer from content_items → typed q_a_pairs + add the manual-authoring create path ('manually_authored' origin_kind). Gated by the content_items→q_a_pairs cutover. Not greenfield.

F3 — id-133 BUILDS ON id-63 (faithful) — D6 satisfied.

  • Decision A (markdown register authoritative) = original Q-OQR1-12; Decision B (per-value provenance) extends Q-OQR1-11; entity_type/relationship CORE-closed honoured; HARD/SOFT enforcement preserved (id-63’s contribution).
  • ONE loose thread: original “auto-fresh register / ID-9-Astro auto-sync” vision is replaced by hand-authored-contract + parity-guard + docubot lane. id-133 should add a reconciliation note tying the docubot lane to the original auto-fresh intent + explicitly closing the ID-9/Astro linkage (else lineage looks abandoned). Otherwise aligned — no other id-133 changes.

F4 — all 3 computed cols ARE consumed (on surviving surfaces) — D1 persist all 3, drop dead.

  • classification_confidence: review-queue ordering (app/api/review/queue), lib/quality/quality-score.ts, MCP formatters/quality.ts. USED.
  • classification_reasoning: lib/provenance/item-provenance.ts, MCP formatters/ai.ts. USED (provenance/audit).
  • secondary_domain/secondary_subtopic: components/review/review-card.tsx (display), lib/domains/procurement/form-templating/template-coverage.ts (forms matching), provenance, MCP. USED.
  • → Persist confidence/reasoning/secondary_* onto source_documents (extend flow.py to write them); drop classification_model (dead, 0 consumers as a stored value).

NEW DECISION pending owner (D11): client-prod migration framing — see chat

Section titled “NEW DECISION pending owner (D11): client-prod migration framing — see chat”

  1. okf-record-model-v3.md — §3.2 (thumbnail D4, layer DROP D5, classification reclassify D1), §3.4 (citation reframe D8), §5 (per-axis facet D7 + RI deferral), §8.2 (forms drop SD D2), §9 (E1 numbers + DB caveat)
  2. id-131 PRODUCT/TECH — per-axis facet (D7), classification cols (D1/F4), thumbnail RI (D4/F1), forms (D2), citation (D8), GOV-FACET consumer list +governance-section.tsx (E3); +subtasks: manual q_a (D3/F2), search-redesign research (D9)
  3. id-133 TECH — BI-4 retire-from-SD-keep-CV (D5), BI-7/Decision A reframe + id-63 alignment (D6/F3)
  4. id-132 — method-name fix + Pass-2 note (E8); Platform OKF repo coordination (D10)
  5. id-134 — HELD per RATIFY-3 (gate op_id filter E1, corpus ownership D10 queued)
  6. Ledger/Curator — the 4 tracking actions above