A crisis signal is checked before anything is written
On every route that takes free text — a check-in note or its tags, a goal's title, description or category, a goal check-in note, a reflection body, and a coaching message. The check runs before the database row is even constructed, so a check-in that trips it is never stored: not rolled back, simply never built.
An escalation records the rule, never the text
Only the rule that matched — a fixed label such as 'self-harm language' — is stored, never the text that tripped it. What you wrote is not kept anywhere the escalation can be read back.
A missing AI key never blocks a crisis escalation
On the AI-assisted coaching route, the crisis scan runs before the check for a configured LLM key. A workspace with no model credential at all still escalates a crisis-shaped message correctly — it does not fall through to "no AI configured" and leave a person in distress with an error instead of a route to help.
The crisis directory is operator-populated, never invented
Nothing is seeded. An unconfigured workspace is told the list is empty and pointed to a local emergency number, rather than shown a helpline nobody in this workspace has verified.
A goal framed as a clinical symptom is never coached as one
It routes to the professional-referral path instead — Ojas will say plainly that this is outside what it can help with, rather than quietly attempt to coach it anyway.
Claims no clinical efficacy it has not earned
No safety validation or accuracy statistic beyond actual, published evaluation. Every claim this product makes about itself is a claim about what it does — logs self-reported data, detects certain text patterns, refers out — never a claim about a clinical outcome.