timmy-talking-turd/ROADMAP.md

130 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Timmy the Talking Turd — Product Roadmap
Canonical forge: [https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd)
## North star
Make bowel logging fast enough to become a habit: take a photo, receive conservative observable-field suggestions, review or correct them, add symptoms yourself, and retain a private portable record. Timmy is playful during routine logging and calm/direct during safety escalation.
## Product boundary
- AI may suggest visible stool form, broad color, and image quality.
- AI never diagnoses disease, identifies bleeding conclusively, infers pain/urgency/fever/vomiting, clears food, or suppresses deterministic red-flag escalation.
- Model output remains provisional until the user confirms it.
- Journal save and training contribution are separate consent decisions.
- Hermes/Timmy remains release authority; human gates are limited to clinical/privacy review, beta consent, and RC approval.
## Verified baseline at triage
- Installable mobile-first PWA with manual Bristol logging, local ledger, JSON portability, privacy controls, history/calendar, summaries, and deterministic escalation.
- Photo-first capture, explicit inference consent, strict model schema, confidence/abstention, and user confirmation.
- Hosted and self-hosted OpenAI-compatible profiles with readiness reporting.
- Real open-weight stool-photo spike completed: no content refusal, but the known Type 4 image was misclassified; production prefill remains blocked behind abstention and specialist-model evidence.
- 22 unit/security tests, mobile green path, photo-first acceptance, syntax checks, and zero known npm vulnerabilities passed at triage.
## Milestones
| Milestone | Target | Outcome |
|---|---:|---|
| [M0 — Triage & Reproducible Baseline](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/milestone/7) | 2026-08-26 | Canonical forge, CI, decisions, reproducible self-host bootstrap. |
| [M1 — Sovereign Photo Intelligence](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/milestone/8) | 2026-09-16 | Smooth camera-first UX, hardened sovereign inference, safety/privacy boundary. |
| [M2 — Consented Dataset & Specialist Model](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/milestone/9) | 2026-10-15 | Consent-governed corpus, evaluation harness, calibrated specialist model candidate. |
| [M3 — Private Beta & Longitudinal Value](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/milestone/10) | 2026-11-15 | User-owned longitudinal utility, grounded Timmy, bounded private beta. |
| [M4 — Production Readiness & Release](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/milestone/11) | 2026-12-15 | Security/load/ops evidence, RC manifest, rollback, explicit release approval. |
## Epic map
### [#1 — EPIC: Photo-first logging experience](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/1)
- [ ] [#11 — Mobile capture: harden camera/gallery permission and retry UX](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/11)
- [ ] [#12 — Preserve manual fallback and resumable draft when vision is unavailable](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/12)
- [ ] [#13 — Make AI suggestions visibly provisional and correction-first](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/13)
- [ ] [#14 — Accessibility and visual QA across photo, alert, and privacy paths](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/14)
### [#2 — EPIC: Sovereign vision inference](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/2)
- [ ] [#10 — Package a reproducible self-hosted SmolVLM2 bootstrap](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/10)
- [ ] [#15 — Containerize the llama.cpp GPU worker with pinned model receipts](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/15)
- [ ] [#16 — Harden image ingress: magic bytes, re-encode, limits, metadata stripping, and rate control](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/16)
- [ ] [#17 — Add bounded inference queue, cancellation, and overload fallback](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/17)
- [ ] [#18 — Build schema-conformance and real-stool refusal regression corpus](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/18)
- [ ] [#19 — Instrument privacy-safe model health, latency, abstention, and failure metrics](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/19)
### [#3 — EPIC: Consented stool-image data flywheel](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/3)
- [ ] [#24 — Implement separate opt-in training contribution and withdrawal flow](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/24)
- [ ] [#25 — Extend dataset ingester with immutable provenance and deletion receipts](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/25)
- [ ] [#26 — Build reviewer/adjudication tool for Bristol, color, quality, and exclusions](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/26)
- [ ] [#27 — Publish dataset card, labeling guide, and contributor-level split policy](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/27)
- [ ] [#28 — Run the 100-image real-world reality check and issue go/hold verdict](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/28)
### [#4 — EPIC: Specialist Bristol classifier & calibration](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/4)
- [ ] [#29 — Build contributor-held-out evaluation harness and calibration report](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/29)
- [ ] [#30 — Train frozen-encoder baseline with stool/not-stool and Type 17 heads](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/30)
- [ ] [#31 — Fine-tune specialist visual classifier with color and quality heads](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/31)
- [ ] [#32 — Calibrate confidence and define the production abstention policy](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/32)
- [ ] [#33 — Export the candidate to ONNX and benchmark CPU, GPU, and device targets](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/33)
### [#5 — EPIC: Clinical safety, privacy & security](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/5)
- [ ] [#9 — Document product decisions, non-diagnostic boundary, and release authority](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/9)
- [ ] [#20 — Write the end-to-end photo data-flow threat model](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/20)
- [ ] [#21 — Expand deterministic symptom escalation regression suite](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/21)
- [ ] [#22 — Finalize photo-analysis consent, retention, deletion, and privacy copy](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/22)
- [ ] [#23 — Independent clinical review of Bristol and urgent-symptom language](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/23)
### [#6 — EPIC: Journal intelligence & user-owned data](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/6)
- [ ] [#34 — Implement explainable longitudinal pattern summaries](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/34)
- [ ] [#35 — Version ledger migrations and harden JSON portability](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/35)
- [ ] [#36 — Add private photo lifecycle controls to history and calendar](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/36)
- [ ] [#37 — Ground Timmy chat answers in the local ledger with citations](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/37)
- [ ] [#38 — Run a bounded private beta and synthesize correction/friction evidence](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/38)
### [#7 — EPIC: Production operations, private beta & release](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/7)
- [ ] [#8 — CI: enforce unit, mobile acceptance, audit, syntax, and diff-hygiene gates](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/8)
- [ ] [#39 — Define production topology, secrets, backup, and rollback runbook](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/39)
- [ ] [#40 — Execute security, abuse, load, and medical-image leakage tests](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/40)
- [ ] [#41 — Create release observability and incident-response dashboard](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/41)
- [ ] [#42 — Produce RC evidence manifest and explicit approval checklist](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/42)
- [ ] [#43 — Refresh the product film with the real photo-first self-hosted path](https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/issues/43)
## Critical sequence
1. **M0:** preserve the green baseline, record the product boundary, and make the local worker reproducible.
2. **M1:** harden capture and ingress, move inference to private GPU compute, prove real-stool schema/refusal behavior, and finish clinical/privacy language.
3. **M2:** collect separately consented human-confirmed labels, run the 100-image reality check, then train only if the evidence says GO or NARROW.
4. **M3:** prove repeated user value through explainable summaries, grounded Timmy chat, portable data, photo lifecycle controls, and a bounded beta.
5. **M4:** attack the RC, exercise rollback, publish an evidence manifest, receive explicit approval, then refresh the film from the real release path.
## Release gates
- Contributor-held-out macro-F1 ≥ 0.80 across Bristol Types 17.
- Precision ≥ 0.90 among non-abstained suggestions at the selected coverage.
- Expected calibration error ≤ 0.05.
- 100% valid Timmy schema or fail-closed response.
- No inference-body or image-byte logging.
- No training use without a versioned contribution receipt and tested withdrawal/deletion path.
- Deterministic symptom escalation passes independently of model state.
- Clean-checkout build, security/load suite, artifact hashes, rollback exercise, and explicit RC approval.
## Definition of ready
- One bounded outcome with measurable acceptance criteria.
- Parent epic, milestone, labels, dependencies, privacy/safety boundary, and required evidence are present.
- No real medical image is copied into an issue or Git history.
## Definition of done
- Focused tests and relevant full suite pass from a clean checkout.
- PR links the issue and records reproducible evidence.
- Privacy/safety impact is dispositioned.
- Documentation and data/model provenance are updated.
- Gitea issue is closed by the merged PR or explicitly deferred with rationale.
## Planning policy
Gitea issues, milestones, and labels are the source of truth. Do not mirror this backlog into a second kanban unless workers actively consume that board. Keep contributor updates in the forge; surface only human gates or blocked decisions in chat.