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_itemsmust 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;/reviewis 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)”- {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}).
- id-136 record correction. {136.5} (
c84be63b, PR #113) over-removed — deleted the soleform_template_fieldsproducer (form_extractors/, 2,235 LOC) on a dead-code-gate + a false TECH.md §1.2 claim. Git-recoverable atc84be63b^(5494b527). Restoration owned by ID-145. - 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.
- Backlog item: per-form_type state re-vocabulary (labels-only) — deferred from v1 (BI-6).
- completing-forms → open as a SIBLING Task (item-id contract settled = form id, BI-2/R1).
- {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).
- 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.