87 lines
9.4 KiB
Markdown
87 lines
9.4 KiB
Markdown
# Signal — Ship-Status Ledger
|
||
|
||
Canonical, git-tracked record of **what shipped, what didn't, and the reason or dependency** for anything outstanding. Both Pi and Claude read and maintain this; Kisa validates. Ship-status never lives only in private memory. Update this on every ship or blocker change. Pairs with `context/current-state.md` (this = the detailed ledger; current-state = the live ACTIVE/NEXT snapshot).
|
||
|
||
**Status legend:** SHIPPED · IN PROGRESS · BLOCKED · NOT STARTED · DEFERRED · PI-SIDE · PARKED
|
||
|
||
---
|
||
|
||
## Ledger (as of 2026-06-24)
|
||
|
||
| # | Item | Owner | Status | Reason / Dependency | Next action |
|
||
|---|------|-------|--------|---------------------|-------------|
|
||
| 1 | Claude-side delegation trigger (`dispatch-trigger.sh` + settings.json `UserPromptSubmit` hook + dispatch thresholds) | Claude | **SHIPPED** (verified live) | none | done |
|
||
| 2 | Audit Finding 1 — hook stdout injection works | Claude | **SHIPPED** | verified live (marker reached the model) | done |
|
||
| 3 | Audit Finding 2 — `$1` bug → read stdin JSON | Claude | **SHIPPED** | caught + fixed during build | done |
|
||
| 4 | Audit Finding 4 — old+new dispatch rules conflict | Claude | **SHIPPED** | added clarifying line (kept judgment fallback, marker = evaluate not auto-dispatch) | done |
|
||
| 5 | Convex-Signal spike **brief** | Claude | **SHIPPED** (committed this wrap) | — | Pi designs from it |
|
||
| 6 | Convex-Signal spike **design** | Pi | **SHIPPED** | docs/convex-signal-spike-design-2026-06-24.md. 40h/3-phase plan; Module map + Repository interface + Convex schema + Auth seam (Convex default, Clerk swappable) + Phase 1 (core readiness loop) = what Claude builds first. | Claude builds Phase 1 from it |
|
||
| 7 | `signal-convex` repo creation | Claude (GitHub) + Kisa/token (Forgejo) | **PENDING** | Dependency: Pi design + Kisa approval (create once, correctly). Claude can do GitHub via `gh`; Forgejo has no API token here. | after design approved |
|
||
| 8 | Convex BAA email (plan/cost/signing) | Kisa | **IN PROGRESS** | Kisa handling | Kisa sends |
|
||
| 9 | Readiness-model build (rename coverage→readiness, rules-to-config, grouping+verdict, device override, require-plan-type, frontend nesting) | Claude | **IN PROGRESS** | Step 3 SHIPPED 2026-06-26/27 (additive, not yet wired): (a) `core/dedup.py` grouping (CSVRow→MergedShipment→CoverageLine), 30 tests, auditor-reviewed; (b) `core/readiness.py` verdict engine — required-vs-input two-axis grading that KILLS the false green (required+absent never satisfied; clear-to-ship only on positive evidence; plan unknown→"Plan Type Needed"; required-ness read from payer_rules.json not Python sets), 27 tests, auditor-reviewed (H1/H2 config-surface false greens + M2/M3/M4 fixed). Added additive `plan_type` to ShipmentRecord. **OPEN for Kisa/Pi:** provisional gap→label mapping (At Risk/Action Needed/On Track) + H3 scope boundary (visit recency = timing layer, not readiness verdict — confirm). Remaining: rules-to-addressable-config (citation IDs), patient rollup, device-keyed override+recompute+rollup, require-plan-type enforcement + remove name-guesser/default in the LIVE path, frontend nesting + "plan type needed" UX (→ Pi). | Next: hand frontend/label UX to Pi (brief staged); build patient rollup + WIRE orchestration in `api/main.py`/new pipeline module, NOT inside `coverage_calculator` (circular import). Each step auditor-reviewed. |
|
||
| 10 | NocoDB leads / CRM cleanup | Claude + Kisa | **BLOCKED** | Reason: leads table has no primary key (Signal-base data source `bdmhi02nks1pg6g` is corrupted — a fresh table there also came up PK-less; content base is healthy). SQLite can't add a PK to a populated table (Route 1 failed). Interim: capture still works (inserts via n8n `signal-cgm-lead`); the 2 test rows can't be deleted. | resolved by the data-platform decision (item 11) |
|
||
| 11 | Data-platform decision (leads + future PHI backend) | Kisa (with Claude/Pi analysis) | **OPEN** | Options analyzed: repaired-NocoDB / Supabase Postgres / Neon / AWS (already set up, BAA+RDS+S3 parked) / Convex ($25/mo incl. BAA). Leads = non-PHI (stay outside PHI boundary). Decision informed by the Convex spike. | run spike → decide |
|
||
| 12 | Research-versioning Layer-1 (`research-autopush.sh` + Stop-hook entry) | Claude | **NOT STARTED** | Dependency: Pi design exists (`docs/research-versioning-design-2026-06-24.md`). Lower priority than product. | next infra slot |
|
||
| 13 | `signal/docs/` auto-versioning (Audit Finding 5) | Claude + Pi | **NOT BUILT** | Reason: research-versioning scope excludes `signal/docs/`. **This is why design docs need manual commits.** | add `signal/docs/` to scope |
|
||
| 14 | Pi research-versioning ext `tool_call`→`tool_result` (Finding 3) | Pi | **LIKELY DONE** | Pi state reports persist gap closed (8 file writes this session); confirm it is the tool_result fix | Pi confirm |
|
||
| 15 | Mid-session commit push on clean tree (Finding 6) | Claude | **DEFERRED** | optional, low risk, adds session-close latency | revisit if loss occurs |
|
||
| 16 | Chief-of-staff sequential-dependency capability (Finding 7) | Claude | **NOT TESTED** | Dependency: a discovery test with a sequential multi-specialist brief | run the test |
|
||
| 17 | Pi injected-message behavior (Finding 8) | Pi | **NOT TESTED** | Pi-side test | Pi test |
|
||
| 18 | Skills-as-git-repo (Finding 9) | Claude/Pi | **DEFERRED** | Phase 2 per workflow-consolidation plan | phase 2 |
|
||
| 19 | Website copy + agent-file fixes | lead-content / Claude | **STAGED, not deployed** | prose rewrites routed to lead-content; BAA wording attorney-gated | deploy when ready |
|
||
| 20 | Signal AIOS product | — | **PARKED** | Activate only on demand-pull + Signal self-sustaining + delegable capacity | hold |
|
||
|
||
---
|
||
|
||
## Timeline / critical path
|
||
|
||
1. **Next session:** (a) Kisa gives the dedup decision → Claude builds the readiness model (item 9). (b) In parallel, Pi designs the Convex-Signal spike from the committed brief (item 6).
|
||
2. **After Pi's Convex design:** Kisa validates → create `signal-convex` (item 7) → Claude builds the spike.
|
||
3. **Convex spike + BAA terms (item 8)** → inform the data-platform decision (item 11) → which resolves the NocoDB leads/CRM fix (item 10).
|
||
4. **Infra cleanup (batched in slack):** research-versioning Layer-1 + `signal/docs/` scope (items 12–13, the reason docs need manual commits), then low-priority Findings 6/7/9. Findings 3/8 are Pi-side.
|
||
5. **Fixed date:** labABLE `/pilot-prep` Fri 2026-06-26 1:30 PM.
|
||
|
||
## Dependencies summary
|
||
|
||
- Readiness build ⟸ Kisa dedup decision.
|
||
- Convex spike build ⟸ Pi design ⟸ committed brief (ready) ; and ⟸ Kisa approval + repo creation.
|
||
- NocoDB/leads fix ⟸ data-platform decision ⟸ Convex spike evidence + BAA terms.
|
||
- Design-doc durability ⟸ `signal/docs/` auto-versioning (until built, commit docs manually).
|
||
|
||
## Maintenance
|
||
|
||
Update this whenever an item ships or a blocker changes. Move shipped items to a `## Shipped (archive)` section when the table grows. Both agents reason from this; Kisa validates and redirects.
|
||
|
||
## Design Verification (2026-06-24, Claude)
|
||
|
||
Pi's dedup design (item 9) and Convex-spike design (item 6) were verified line-by-line. Both are build-ready; fixes applied directly to the design docs:
|
||
|
||
- **dedup-design-2026-06-24.md**: (1) added a separate client-mapped `plan_type` field, distinct from display `payer`, so CoverageLine keys on the mapped plan type, never the payer name — the original draft reintroduced the killed plan-type-guessing bug. (2) Fixed `merge_quantities` to sum across distinct component configs; the old blanket-max dropped quantity in mixed duplicate+split groups (e.g. two [sensor] + one [transmitter] returned 3 instead of 4).
|
||
- **convex-signal-spike-design-2026-06-24.md**: `shipments.orderNumber`/`hcpcs` changed to arrays (post-dedup multi-value); §11 dedup note de-staled to LOCKED; carry-forward note to grade on the mapped `planType`.
|
||
- Noted, not a blocker: "Convex auth -> Clerk = config-only swap" is optimistic; treat as low-but-nonzero effort (Convex Auth still maturing).
|
||
|
||
## Shipped: readiness model wired live (2026-07-07, Claude, commit a3af499)
|
||
|
||
Build plan 01 executed end to end. Phase 2a coexistence: readiness verdicts ride
|
||
additively on `/api/upload` and `/api/confirm-visit`; legacy output proven
|
||
byte-identical (live diff vs pre-deploy baseline: NONE).
|
||
|
||
- New `core/worklist_readiness.py` (ReadinessIndex). Row-to-line membership
|
||
resolves through the dedup group key `(patient_id, device_type, DOS)` — an
|
||
adversarial review reproduced a false green in the first draft's row-keyed
|
||
resolution; fixed and regression-locked before ship.
|
||
- Minimal plan_type CSV mapping shipped with the wiring (per umbrella plan 00;
|
||
OQ1 recorded for Kisa's explicit confirmation). Values lowercased+trimmed
|
||
only, never guessed; unknown values grade Plan Type Needed.
|
||
- Pre-existing bug fixed: record_lookup missed for ALL order-numbered CSVs
|
||
(CoverageResult has no order_number), silently dropping doc_state. Fallback
|
||
now resolves through the dedup MergedShipment (latest-non-null fields,
|
||
collected order numbers).
|
||
- Verification (measured, live): 132 tests green; Pi E2E 33/33; adversarial
|
||
3-lens review + refutation (7 confirmed findings, all fixed); independent
|
||
code-auditor SHIP. Live: no-plan_type upload = 3/3 "Plan Type Needed",
|
||
stats reconcile; engineered false-green row reads legacy "Clear to Ship" +
|
||
readiness "Action Needed" in the same record; confirm-visit flips verdict to
|
||
Clear to Ship and normalizes "Medicare" -> "medicare".
|
||
- Frontend intentionally renders nothing new yet (P6, gated on Kisa's mockup
|
||
approval).
|