diff --git a/.claude/board/LATEST_STATE.md b/.claude/board/LATEST_STATE.md index f5283b50..92831d9b 100644 --- a/.claude/board/LATEST_STATE.md +++ b/.claude/board/LATEST_STATE.md @@ -28,6 +28,13 @@ --- +## 2026-07-10 — branch `claude/medcare-ruff-codebook-handover-5ulx0i` — `contract::ogar_codebook` +`external_practice` (`0x090C`, round-4b Health mint) + +Paired mirror of OGAR `13e1b0f` (COUNT_FUSE 88->89, `lance-graph-ogar` compile-time equality green). **NEW row:** `external_practice 0x090C` — a referral-partner organization (FHIR `Organization`), the round-4b furnace mint. Hardened by a staged 5+3 council **and** an operator-directed three-axis grounding gate (method + storage + navigation-structure witnesses all present -> grounded [G]); the round's second candidate was refused a mint by the same gate for lacking a navigational home. No OGIT entity -> no port alias. **Verified:** `cargo test --manifest-path crates/lance-graph-ogar/Cargo.toml` (fuse green, 62+ tests), `cargo test -p lance-graph-contract` (840 lib tests). Consumer side: medcare-analytics extends `MINTED_UNSERVED_HEALTH_CONCEPTS` with `0x090C`. Merge train: OGAR -> this mirror -> medcare gate, back-to-back (W1 fuse window universal, W2 medcare-gate window present). + +## 2026-07-10 — branch `claude/medcare-ruff-codebook-handover-5ulx0i` — `contract::ogar_codebook` synced to the OGAR round-2 Health mints (`0x0908..0x090B`) + +Paired mirror of OGAR `2c8836f` (two-sided COUNT_FUSE: `lance-graph-ogar` compile-time assert now 88 == 88). **NEW rows:** `anamnesis 0x0908` / `investigation 0x0909` / `examination 0x090A` / `practitioner 0x090B` — harvest-derived mints surfaced by the MedCare transcode furnace exam's slag ledger (council-hardened 5+3, spec in the consumer repo), NO OGIT entity → no port alias; the 0x09 section comment now names the two provenance classes (7 OGIT-promoted + 4 harvest-derived). **Verified:** `cargo test --manifest-path crates/lance-graph-ogar/Cargo.toml` (COUNT_FUSE green, 62+ tests), `cargo test -p lance-graph-contract` (840 lib tests green). Consumer side: medcare-analytics lands the `MINTED_UNSERVED_HEALTH_CONCEPTS` fail-closed exemption ledger in the same window (its RLS boot gate derives coverage from `concepts_in_domain(Health)`). Merge train: OGAR first, this mirror immediately after, medcare gate immediately after that. ## 2026-07-10 — branch `claude/review-claude-board-files-nhqgx1` — W2d `elevation::cycle::CycleBudget` + W4a `MailboxSoA::cast_on_behalf` (the M12 allocator + the write-on-behalf pairing at the carrier) - **W2d / M12** — `lance-graph-planner::elevation::cycle::CycleBudget`: the ONE per-cycle budget allocator. Reads the Libet anchor from the stamped Σ-commit `KanbanMove` (`from_move`; parity test pins `LIBET_CYCLE_BUDGET_US = 550_000` against the REAL `NextPhaseScheduler` stamp), carves every per-strategy `PatienceBudget` from the cycle remainder (`slice_for` — extend-don't-shadow), advisory `admits` (updates reprioritize, never gate), measured consts with provenance (66 µs/card lane-E t2; ~0.5 µs/step Addendum-5). Doc cross-refs both ways (budget.rs ↔ cycle.rs ↔ contract scheduler.rs). Planner lib 209 green. M12 → IN-FLIGHT. diff --git a/crates/lance-graph-contract/src/ogar_codebook.rs b/crates/lance-graph-contract/src/ogar_codebook.rs index 10faf406..78edccb5 100644 --- a/crates/lance-graph-contract/src/ogar_codebook.rs +++ b/crates/lance-graph-contract/src/ogar_codebook.rs @@ -507,7 +507,10 @@ pub const CODEBOOK: &[(&str, u16)] = &[ ("page_layout", 0x0807), ("page_image", 0x0808), ("ocr_renderer", 0x0809), - // ── 0x09XX — Health domain (MedCare; OGIT NTO/Healthcare promotion) ── + // ── 0x09XX — Health domain (MedCare; 0x0901..0x0907 = OGIT + // NTO/Healthcare promotion; 0x0908..0x090C = harvest-derived mints, + // furnace-exam rounds 2 & 4 — no OGIT entity, no port alias yet; + // 0x090C external_practice is three-axis-witnessed, FHIR Organization) ── ("patient", 0x0901), ("diagnosis", 0x0902), ("lab_value", 0x0903), @@ -515,6 +518,11 @@ pub const CODEBOOK: &[(&str, u16)] = &[ ("treatment", 0x0905), ("visit", 0x0906), ("vital_sign", 0x0907), + ("anamnesis", 0x0908), + ("investigation", 0x0909), + ("examination", 0x090A), + ("practitioner", 0x090B), + ("external_practice", 0x090C), // ── 0x0AXX — Anatomy domain (FMA reference ontology; public, not PHI) ── // FMA anatomy lives HERE, not in Health 0x09 — reference structure is // public, a clinical finding *about* it is PHI. `CLASSID_FMA` retargets to diff --git a/crates/lance-graph-ogar/src/lib.rs b/crates/lance-graph-ogar/src/lib.rs index 4621048a..506b4ad3 100644 --- a/crates/lance-graph-ogar/src/lib.rs +++ b/crates/lance-graph-ogar/src/lib.rs @@ -301,21 +301,33 @@ mod hotplug_bridge_tests { let plug = HotPlug { consumer: "tesseract-ogar", classids: &[0x0805, 0x0808, 0x0809], + // Exactly the actions the three requested classids declare + // (OGAR `ocr_actions`, grown by OGAR #188's structured-document + // v2): textline(0x0805)=1, page_image(0x0808)=7, + // ocr_renderer(0x0809)=4 = 12. `harvest_fields` / + // `detect_page_furniture` are `page_layout`(0x0807), NOT + // requested here, so they stay out. `covered` must match the + // requested classids' action set exactly (activate rejects both + // Uncovered and Undeclared). covered: &[ - "extract_page_image", - "extract_text_layer", "recognize_line", "recognize_page", - "render_hocr", - "render_searchable_pdf", + "extract_text_layer", + "extract_page_image", + "recognize_page_words", + "recognize_document", + "segment_page", + "detect_halftone_regions", "render_text", "render_tsv", + "render_hocr", + "render_searchable_pdf", ], }; let auth: &dyn CapabilityAuthority = &super::OgarAuthority; let act = auth.activate(&plug).expect("green activation"); assert_eq!(act.concepts.len(), 3); assert!(act.concepts.contains(&("textline".to_string(), 0x0805))); - assert_eq!(act.capabilities.len(), 8); + assert_eq!(act.capabilities.len(), 12); } }