What this is
Local test harness for the Opsy Umbrella concierge product — the Telegram bot + facilitator dashboard + per-dog page described in OPSY-Concierge-MVP-Plan.md. This instance runs isolated from the production opsy.me research bot.
Anyone who opens the bot is greeted and guided through pre-screen → consent → profile → V1 → dose cycle → V2 → V3. The exclusion gate (aggressivity-5 to humans or prior bite requiring surgery) is the real safety boundary — no invite code is required.
Running in English. FR strings remain in the codebase (canonical Zoopsy source) and can be toggled from the locale selector — they are the authoritative reference for the evaluation matrix.
① Bot simulator
Talk to the concierge bot in the browser — no Telegram account needed. Opens with an automatic welcome, just like tapping Start in a real Telegram bot. Every turn runs the same state machine the Telegram adapter uses.
Use the sidebar to spin up several "owners" in parallel and advance time to exercise the dose scheduler.
② Facilitator dashboard
Cohort overview, 4A aggregate, drilldown, supervisor inbox, exports. Bearer-token gated.
Paste the FACILITATOR_TOKEN from your .env. The EN draft banner shows until the team completes the phrasing pass.
③ Flow walkthrough
Every screen a participant sees across the whole 30-day protocol, side by side. Pick a scenario (happy path, exclusion, concomitant flip, delete…) and scroll the Figma-style grid.
Replays against the real state machine — not static mockups. Updates when you change the flow.
④ Participant page (owner view)
Signed short-lived JWT. Each owner sees only their own dog's trajectory, timeline, and data.
Sample link (dev only — minted on the fly): /my-dog/<enrollment_id>
Share with the team
Seeded with demo dogs via npm run seed. See README.md for tunnelling (ngrok / cloudflared) so the team can open the dashboard from their own laptops.
Production target: concierge.opsy.me → PM2 on port 3100 → same Hetzner VPS. Research bot stays untouched.