722feae1991c6da79ebe143ecec60971ebcfc1fb
Closes #101 Adds A/B testing capability for crisis detection algorithms: 1. Feature flag: crisis detection algorithm A vs B - Variant A: Current canonical detector (crisis/detect.py) - Variant B: Enhanced detector (more sensitive to MEDIUM indicators) - Configurable traffic split (default 50/50) - Deterministic variant assignment via text hash 2. Logging: which variant triggered for each event - JSONL log file with event details - Privacy-preserving (text hashed, not stored) - Includes latency measurements 3. Metrics: false positive rate, detection latency per variant - Detection distribution by level - Average latency per variant - False positive rate (with human labeling) - Disagreement rate between variants 4. API: - CrisisABTester class for full control - detect_crisis_ab() convenience function - compare_results() for side-by-side analysis - label_event() for human review - get_report() for human-readable output 23 tests passing.
The Door
A single URL where a man at 3am can talk to Timmy. No login. No signup. No tracking. Just a door that's always open.
Mission
Stand between a broken man and a machine that would tell him to die.
What This Is
- index.html — The entire frontend. One file. <25KB. Works on 3G.
- system-prompt.txt — The crisis-aware system prompt for Timmy.
- deploy/ — nginx config and deployment script for the VPS.
Architecture
Browser → nginx (SSL) → static HTML → /api/* proxy → Hermes Gateway
Crisis Features
- 988 Suicide & Crisis Lifeline banner (always visible, click-to-call)
- Client-side crisis keyword detection
- Full-screen 988 overlay for explicit intent
- Crisis-aware AI responses per SOUL.md
- Offline fallback with static crisis resources
Quick Deploy
ssh root@67.205.155.108
cd /opt/the-door
bash deploy/deploy.sh
Links
- 📞 988 Suicide & Crisis Lifeline — call or text 988
- 💬 Crisis Text Line — text HOME to 741741
- ⛓️ SOUL.md — Timmy's soul, inscribed on Bitcoin
Built by a man who survived his darkest night, for the man who's in his right now.
Sovereignty and service always.
Languages
Python
64.3%
HTML
26.4%
Shell
7.2%
JavaScript
1.4%
Makefile
0.7%