Skip to content

ID-145 — S466 handoff inputs (ratifications + MAIN ledger-write intents)

ID-145 handoff inputs (authored S463-close, for S466)

Section titled “ID-145 handoff inputs (authored S463-close, for S466)”

Durable capture of the owner ratifications and the MAIN ledger-write intents that were held in the closing session’s scratchpad. PRODUCT.md, ARCH-REVIEW.md, FORM-EXTRACTION-SPIKE.md and DR-056 are the other durable artefacts; this doc carries only what those don’t.

Owner OQ ratifications (12 — gate {145.2}; already encoded in PRODUCT.md R1–R12)

Section titled “Owner OQ ratifications (12 — gate {145.2}; already encoded in PRODUCT.md R1–R12)”

6 accepted · 3 amended (OQ-3 delete-wholesale/no-backfill · OQ-8 hard-rename→narrowed by DR-056 · OQ-11 rename in TECH set) · 3 default. OQ-5 REVISED (owner): autofill/form-fill is IN v1 (mechanism → {145.3} TECH; see FORM-EXTRACTION-SPIKE.md). Notes: OQ-6 track per-form_type state re-vocab as a backlog item; OQ-9 completing-forms is the named Claude-side dependency; OQ-10 seed the exemplar from owner-provided real forms.

PRODUCT BI ratification (S463 lavish board) — 34 accept / 14 amend / 0 cut / 5 annotated

Section titled “PRODUCT BI ratification (S463 lavish board) — 34 accept / 14 amend / 0 cut / 5 annotated”

The 14 amended BIs are owner-flagged as “most likely reshaped by ARCH-REVIEW” — NOT line-edits; reconcile each against ARCH-REVIEW §6 in the PRODUCT revision: BI-1, 2, 3, 5, 6, 7, 11, 16, 22, 37, 38, 40, 41, 42.

The 5 annotations (concrete PRODUCT-revision inputs):

  • BI-22 (Fill): partial fill is first-class — unfillable gaps must be VALID + remain fillable; mempalace holds prior “creating content to complete a form” conversations.
  • BI-37 (Citations): content_items must be FULLY removed (no lingering references), not just adding the q_a_pair cite path. (ARCH-REVIEW: 495 occurrences / 126 non-test files repo-wide — ID-145 owns the procurement/citations slice; rest routes to the Curator.)
  • BI-38 (Promotion gate): compose the existing finished RPC (q_a_extractions_promotion_candidates(), {138.17}) + promote route; /review is a SEPARATE content-quality lane — no new backend.
  • BI-40 (UI-vs-Claude): web UI must handle (i) part-drafted forms and (ii) users manually answering questions the DB can’t answer.
  • BI-42 (MCP): re-key, do not rename the umbrella tools (DR-056).

ARCH-REVIEW §6 notable reshapes: BI-3 → drop the legacy redirect (R3 deletes ALL procurement workspaces, nothing left to redirect to).

MAIN ledger-write intents (apply on the main canonical checkout — ledger writes MAIN-only)

Section titled “MAIN ledger-write intents (apply on the main canonical checkout — ledger writes MAIN-only)”
  1. {145.x} runtime trace (OQ-12) → add + mark done. Journal: boundaries do NOT throw on current main (zombie-dev-server transients, not a defect); no error-boundary fix; reproducible rot = §4b model inconsistency + Unit-F bid copy + dashboard /bids 404s (folded into {145.2}).
  2. id-136 record correction. {136.5} (c84be63b, PR #113) over-removed — deleted the sole form_template_fields producer (form_extractors/, 2,235 LOC) on a dead-code-gate + a false TECH.md §1.2 claim. Git-recoverable at c84be63b^ (5494b527). Restoration owned by ID-145.
  3. C12 register updates — DONE via DR-056 (decision-register). Also append an id-71 journal note (reconciled, not superseded) and narrow ID-145 R8/BI-42 rename→re-key in the PRODUCT revision.
  4. Backlog item: per-form_type state re-vocabulary (labels-only) — deferred from v1 (BI-6).
  5. completing-forms → open as a SIBLING Task (item-id contract settled = form id, BI-2/R1).
  6. {145.2} add-subtasks (finalise at {145.4} PLAN, post-TECH) — ~14-slice chain sketch in ARCH-REVIEW §5 (W1 migration-batch first … W5 promotion UI).
  7. Task-level: id-128 stays PAUSED (excl {128.3}) until ID-145 lands.

Extraction approach (→ {145.3} TECH; full detail in FORM-EXTRACTION-SPIKE.md)

Section titled “Extraction approach (→ {145.3} TECH; full detail in FORM-EXTRACTION-SPIKE.md)”
  • PDF = FFDetr detection (real PDFs are FLAT, 0 AcroForm) + pdfplumber label pairing (detection gives coords/widget only). commonforms code licence unconfirmed (owner contacting author) → fallback = ~200-line pypdf+onnxruntime wrapper over the Apache FFDetr weights.
  • .docx/.xlsx = recover AND generalise the id-52 deterministic readers (recovery alone is insufficient — they’re overfit, emit 0 on unseen forms; the generalisation is the load-bearing work, ~days). /goal-build an ML detector is NOT warranted (category error — OOXML has native structure).
  • langextract deferred (text-spans only; no coords/widget/fill_status; needs an LLM anyway).
  • Legacy .doc/.xls → convert-on-upload (LibreOffice headless) is a TECH decision.