← back to AbramsOS
docs/LIFE-OPTIMIZER-ROADMAP.md
64 lines
# AbramsOS — Life Optimizer roadmap
Steve's ask (2026-07-13, overnight): make AbramsOS proactively improve his life —
(a) money: coupons at places he shops + cheaper/better substitutes; (b) health: blood
pressure history + Apple Watch / device readings that sync.
Guiding principle: turn Steve's **real signals** into **honest, actionable** nudges.
Local LLM only ($0). Nothing auto-buys, auto-sends, or publishes. **Never fabricate** —
no invented prices/SKUs/coupon codes, and NO fake health readings (the vitals table
ships empty until Steve imports real data).
## Shipped
- **Savings module** (`db2fd48`) — `savings_suggestion` + `merchant_coupon`, grounded
strategy advisor via local **gemma3:12b**, `/savings` dashboard.
- **Discoverability + honest coupons** (`a121be0`) — home tile + 3 real savings mechanisms.
- **Nightly savings runner** (`0256450`) — `scripts/run-savings-advisor.js` + launchd plist.
- **Health / Vitals module** (`2d8848c`) — `health_reading` table, AHA BP categorization,
Apple Health `export.xml` streaming parser (pairs BP, scales SpO₂), `/health` dashboard
with inline SVG BP chart, per-person filter, manual add; `POST /api/health/readings`
JSON ingest for the Health Auto Export app; `scripts/import-apple-health.js` CLI.
## Shipped (this overnight run)
- **Health track DONE** — vitals trends + local-LLM "what changed this month" + Stage-2
recheck flag (`8f58fa2`); BP↔medication context (`355389e`); lapsed-habit reading
reminders (`8598287`).
- **Assets / Net Worth** (`a78d4ae`) — home by address + value + finance category + notes.
- **Neighborhood Watch** (`42d431f`) — address+radius, Leaflet map, Ring cameras/Neighbors,
Nextdoor, Citizen, crime maps, registries. Free OSM geocode (no key).
- **Biometrics / ID** (`5ab1c97`) — per-person profile (kids+adults), child-ID record,
exact BMI, CDC percentile link for kids.
## Savings track — DONE
1. **Subscription/bill audit** (`5387c7d`) — category-aware; never flags essentials;
subscriptions surface with annual cost; LLM refines cancel/downgrade; duplicate detector.
2. **Reorder-timing nudges** (`5387c7d`) — deterministic "reorder soon" from cadence.
## Remaining — all BLOCKED on Steve's credentials (nothing autonomous left)
- Home-value estimate for Assets — valuation API key (RentCast/ATTOM).
- Real bank/purchase auto-sync — Plaid keys OR George basic-auth.
- Device cloud biometrics (Withings/Omron) — per-vendor OAuth.
## Overnight run — COMPLETE. Unblocked roadmap exhausted; loop stopped.
## Shipped (banking)
- **Plaid "Connect a bank" flow** (`954cc77`) — connectors page now links Wells Fargo / any
US bank via Plaid Link (Plaid handles the bank login; AbramsOS never sees the password),
exchanges + stores the token encrypted, and syncs transactions → `purchase` (incremental
cursor + dedup). Graceful "setup needed" state until keys are added. Ready in sandbox now.
## Blocked (needs Steve — do NOT brute-force)
- **Plaid keys for a REAL bank** — set `PLAID_CLIENT_ID` + `PLAID_SECRET` (+ `PLAID_ENV`) via
the secrets skill. Free *sandbox* keys (fake banks) at dashboard.plaid.com work immediately;
linking the actual Wells Fargo account needs Plaid *production* access (application/approval).
(Stripe is NOT the tool here — it's for taking payments, not reading a bank.)
- **Real email purchase ingestion** — AbramsOS Google OAuth unconfigured; or give George
basic-auth to bridge the 201 Amazon order emails in info@ → `purchase`.
- **Device cloud APIs** (Withings/Omron Connect) — per-vendor OAuth creds from Steve.
Apple Health export + Auto Export app already cover Apple Watch with no creds.
## Rails
Local Ollama gemma3:12b only. Show $0 (local). Commit each working step
(author steve@designerwallcoverings.com). Lint + render-test before commit. No George
sends / deploy / DNS / publish without Steve's explicit go. Verify keepawake each cycle.