You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(readme): refresh front-of-fold + status table for Phase 5/5b/6
Update the README to reflect the actual current state:
- Top: tests 41 -> 241 + 73 evals; add PWA + Evals badges; version
0.1.0 -> 0.6.0; status now reads "Phase 6 complete"
- Surfaces table: add PWA URL, dashboard URL, journal link
- "What's shipped vs deferred" replaces "what's mocked vs real":
18 line items covering Phase 1-6 each with shipped/deferred status
- "What's next" replaces the original 6-item roadmap (most of which
shipped). Now lists only the two operator-side wires + partner
outreach + the deferred-with-design items pointing to PHASE6_DEFERRED.md
The architecture-section content (Skills/sub-agents/hooks/MCP/
settings/CLAUDE.md tables) is unchanged because it ages well.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
A conversational AI navigator for people leaving incarceration in Texas. Built as a Claude Code architecture: layered **Skills**, **sub-agents**, **hooks**, **MCP servers**, **settings**, and a distributable **plugin** — composed into one reliable workflow for a safety-critical domain.
22
+
A conversational AI navigator for people leaving incarceration in Texas. Built as a Claude Code architecture: layered **Skills**, **sub-agents**, **hooks**, **MCP servers**, **settings**, and a distributable **plugin**, composed into one reliable workflow for a safety-critical domain.
21
23
22
-
This repo is both a real product-in-progress *and* an opinionated demonstration of how Claude Code primitives compose when wrong answers cause real harm — legal misinformation, missed deadlines, lost benefits, or a missed crisis signal.
24
+
This repo is both a real product-in-progress AND an opinionated demonstration of how Claude Code primitives compose when wrong answers cause real harm: legal misinformation, missed deadlines, lost benefits, or a missed crisis signal.
23
25
24
-
> **Status:**Active development. The architecture is complete and the demo flow runs end-to-end against real Texas statutory data. Tests: **150/150 passing** (hooks + LangGraph end-to-end across 6 conversation paths, plus regression tests for crisis-keyword phrasings discovered in live testing, plus the Phase 4 web channel). Twilio dispatch and live Pinecone are stubbed behind interfaces and documented in [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md).
26
+
> **Status:**Phase 6 complete. The system runs end-to-end across three audiences (SMS user, PWA user, caseworker dashboard) on the same FastAPI + LangGraph + Skills + MCP backend. Quality signal: **241 unit tests + 73 eval scenarios** all green; CI gates merges on a per-category pass rate with crisis at 100%. Two items remain deferred-with-design ([`docs/PHASE6_DEFERRED.md`](docs/PHASE6_DEFERRED.md)): MMS photo extraction and warm-transfer voice, both blocked by paid Twilio dependencies. The full chronological build is in [`docs/JOURNAL.md`](docs/JOURNAL.md).
| 📚 **OpenAPI / Swagger**|<https://prathik10-pathways.hf.space/docs>| Interactive — try `/_debug/invoke` with `{"message":"Can I vote in Texas if I'm on parole?"}`|
34
+
| 📱 **Live PWA**|<https://pathways-iota.vercel.app/>| Installable on iOS + Android home screens. Forest + Marigold palette, bilingual UI, four quick-start chips. |
| 📚 **OpenAPI / Swagger**|<https://prathik10-pathways.hf.space/docs>| Interactive. Try `/_debug/invoke` with `{"message":"Can I vote in Texas if I'm on parole?"}`|
37
+
| 📊 **Caseworker dashboard**|<https://prathik10-pathways.hf.space/dashboard/>| Token-gated. Demo mode accepts any `Authorization: Bearer <anything>`. Anonymized aggregates only; no PII ever stored. |
34
38
| 🧠 **Architecture deep-dive**|[`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md)| Why each Claude Code primitive is load-bearing in a safety-critical domain |
35
39
| 🎬 **Per-primitive walkthrough**|[`docs/SHOWCASE.md`](docs/SHOWCASE.md)| Code-trace tour: see exactly what a Skill, sub-agent, hook, and MCP server look like in practice |
### Install as a Claude Code plugin (loads all 7 Skills + 4 sub-agents + 3 hooks into your own session)
39
44
@@ -200,30 +205,40 @@ license back.
200
205
201
206
You'll see: `intake-assessment` Skill auto-loads → routes to `housing-pathway` and `record-clearing-tx` → calls `pathways-corpus` and `tx-resources` MCP servers → `compliance-auditor` sub-agent validates citations → final response cites NICCC sections and offers SMS handoff to a real navigator.
| Tests |**136/136 passing**: hook unit tests + graph end-to-end tests + crisis-keyword regression suite covering live-discovered phrasings |
218
-
219
-
## What I'd build next, in order
220
-
221
-
1.**Real NICCC ingestion pipeline.** Currently 40 hand-curated excerpts. Production needs the full NICCC corpus chunked, embedded, and indexed with state filters.
222
-
2.**Eval harness.** A 50-question Texas reentry rubric with ground-truth citations. LLM-as-judge for citation correctness, exact-match for eligibility outcomes. Run on every PR.
223
-
3.**Twilio production wiring.** Webhook receiver, opt-in/opt-out compliance, message threading.
224
-
4.**Multi-language.** Spanish first. The Texas reentry population includes a meaningful Spanish-monolingual subset.
225
-
5.**Caseworker UI.** Next.js PWA wrapping the same backend, for navigators managing 30+ clients each.
| Forward `thread_id → phone` resolver (encrypted) |**Deferred** ([`docs/PHASE6_DEFERRED.md`](docs/PHASE6_DEFERRED.md)): three lines from unblocking real-world send for both shipped queues |
230
+
231
+
## What's next
232
+
233
+
The technical surface is comprehensive. What it needs now is real users and real feedback.
234
+
235
+
**Operator-side wiring left to do** (~half a day):
236
+
1. Set `PATHWAYS_ADMIN_TOKEN` on the HF Space and add a daily GitHub Actions cron to POST to `/admin/run-parole-reminders`.
237
+
2. Wire the forward phone map (`pathways/sessions/phone_map.py` with a small `session_phones` table; encrypt with `PATHWAYS_PHONE_ENCRYPTION_KEY`). Until this is in place, both parole reminders and NGO write-back persist in their queues and the daily cron reports `skipped_no_phone` honestly.
238
+
239
+
**Then partner outreach.** The dashboard exists so partner NGOs can see what's flowing through their region; that conversation is what unlocks pilot users.
240
+
241
+
**Deferred-with-design.** MMS extraction and warm-transfer voice are documented in [`docs/PHASE6_DEFERRED.md`](docs/PHASE6_DEFERRED.md) with their blockers and unblock criteria. Both gate on paid Twilio features.
0 commit comments