Medical Advice Remediation — Steer Document¶
Date: 2026-04-08 (Session 34)
Status: Implemented — PR #84 merged
Companion spec: ../medical-advice-remediation-feature.md
Problem¶
The medical advice audit (Session 34) found that patient-visible strings
in risk_assessor.py and lab_analyzer.py read as imperative clinical
instructions — "Optimize HbA1c <8%", "Hold NSAIDs 5-7 days pre-op",
"Type 2 Diabetes detected from HbA1c 6.3%". Curaway is a coordination
platform, not a medical practice. These strings crossed the line.
Decision¶
Rewrite all patient-facing clinical strings to descriptive "providers typically..." framing. Same clinical thresholds, same data — different words. No diagnostic labels for auto-detected conditions.
Design Rationale¶
Why descriptive framing, not removal¶
Removing clinical context entirely would harm the patient experience — they need to understand why records are being requested. The fix is framing: "Providers typically request HbA1c below 8% before scheduling" vs "Optimize HbA1c <8% pre-op".
Why a CI guard¶
String rewrites are point-in-time fixes. Future PRs will add new
clinical content. The test_no_medical_advice.py CI scanner prevents
regressions by catching imperative verbs in patient-facing files.
Why Dr. Naidu review¶
Clinical wording changes need clinical advisor sign-off. The Excel review sheet with side-by-side tables ensures the advisor reviews every string, not just a summary.
Enforcement Layers¶
config/voice_rules.yaml— forbidden phrases (you should, diagnosed with, etc.)tests/test_no_medical_advice.py— 2-tier CI scanner on patient-facing filestests/test_voice_compliance.py— scans all source files for voice violations.claude/agents/voice-auditor.md— subagent runs both tests- CLAUDE.md Ground Rule 9 — "Hard rule: NO medical advice"
References¶
- Audit:
docs/specs/ai-steer/medical-advice-audit-steer.md - Feature spec:
docs/specs/medical-advice-remediation-feature.md - PR #84 (merged)