Psoriasis Progression Monitor
Psoriasis Progression Monitor is an adversarial two-agent chart review.
Core trick
One agent assembles evidence with verbatim-verified quotes and photo observations, while a second agent without chart access challenges claims against pharmacy fills.
Description
Psoriasis Progression Monitor is an adversarial two-agent chart review. Agent A builds the case that a patient's psoriasis is progressing, searching notes and clinical photographs, with every quote verified verbatim against the source. Agent B, a nurse-auditor who never sees the chart, cross-examines that case against a clinical rubric and the one thing the chart can't show: independent pharmacy fill records. Only claims that survive the debate become a verdict.
README excerpt
# psoriasis-tracker Two-agent adversarial disease-progression monitor for plaque psoriasis. **Agent A (assembler)** searches a synthetic patient chart — clinical notes plus photographs, which A examines with a multimodal vision pass — and builds an evidence packet against a 5-item rubric (note quotes verbatim-verified; photo observations labeled and exact-match guarded). **Agent B (reviewer)** sees only the packet + rubric — no chart — and challenges unsupported attributions. The orchestrator runs up to 3 challenge/repair rounds and emits a terminal state: `CONFIRMED_WORSENING | STABLE | INSUFFICIENT_EVIDENCE`. ## Layout - `contracts.md` — frozen function signatures + JSON schemas (read first) - `config.py` — model/temperature/rounds/corpus config (only place a model string lives) - `rubric.json` — the 5 progression criteria - `tools.py` — chart_search / rubric_lookup / verify_quote - `agents.py`, `prompts/` — assemble / review / repair - `orchestrator.py` — the adversarial loop; persists run_state to `runs/` - `app.py`, `static/` — FastAPI + static HTML viewer (polls latest run_state) - `corpus/patient1/` — synthetic chart (4 visits); `corpus/patient1_twin/` — adherence-clean twin - `fixtures/` — hand-authored packet/challenges/run_state + tiny corpus for isolated testing - `main.py` — entry point ## Run ```bash uv venv && uv pip install -r requirements.txt cp .env.example .env # then put your key in .env as ANTHROPIC_API_KEY=... python main.py --patient corpus/patie