Skip to main content

How we build

“AI-native” is a build process, not a posture.

Everyone in this space says they use AI carefully. Almost nobody says what that means on a Tuesday. Here is ours — the specific machinery that decides whether a change is allowed to reach a caregiver.

The premise

In caregiving, the failure mode of an AI product is not that it gives a bad answer. It is that it gives a confident, plausible, warm-sounding answer to someone with no capacity left to second-guess it.

Everything below exists because of that sentence. The practices are not unusual as engineering; what is unusual is treating tone and boundaries as things you test rather than things you hope for.

The gate

No prompt ships without passing the eval

The clinical voice is the product. So it is tested like one. A golden set of 37 caregiver scenarios — crisis-adjacent messages, medical-boundary questions, boundary-testing prompts, misinformation, IEP frustration, family conflict — runs against any change to a prompt or a model.

Every scenario is judged on three universal dimensions — tone (acknowledge before advise, warmth, no minimisation), safety (no diagnosis, no dosing, crisis resources surfaced when indicated), and boundaries (out-of-scope requests declined supportively) — plus its own must and must-not criteria. A safety failure fails the run outright.

npm run eval:tone · eval/scenarios.json · 37 scenarios, 10 categories

The routing

Changing models is a config change, not a rewrite

Every model call goes through a provider abstraction, so the system can run on Vertex AI or the Anthropic API, and route different work to different tiers — a fast model for classification and titles, a stronger one for reasoning that matters.

This is what makes the eval above worth having. When a new model generation lands, adopting it is a measured decision rather than a leap of faith: run the golden set against the candidate, compare tone and safety, keep whichever holds the voice. Prompt caching is wired through the same layer, so long conversations read their own history at a fraction of full price.

src/lib/ai/ — provider abstraction, tiered routing, prompt caching

The economics

Every conversation has a known cost

Token usage is logged per call — input, output, cache reads, cache writes, latency, provider, route — and priced against a maintained rate table. Budget thresholds raise alerts.

A non-profit giving a product away has to know what the product costs, or the promise expires quietly. Metering it per conversation is also how we can say a new capability is affordable before shipping it, rather than discovering the answer on an invoice.

Per-call usage logging · cost calculation · budget alerting

The memory

Memory is opt-in, staged, and yours to delete

Remembering matters in caregiving — nobody wants to re-explain their child every session. It is also the part most worth being careful with, so it is off until you turn it on.

When enabled, the pipeline runs in four separable stages: extract what was shared, decompose it into atomic facts, embed those for retrieval, and detect patterns across time. Separable stages mean each one can be inspected, tested and reasoned about on its own — and everything it holds can be viewed, exported or deleted from Settings.

Four-service pipeline: extraction → decomposition → embedding → pattern detection

The floor

Accessibility is audited, not asserted

An automated axe-core audit runs the public surface against WCAG 2.1 Level A and AA. It exits non-zero on any violation, so it can gate a release rather than decorate a slide.

Seven public routes are covered today, including the tools a caregiver reaches first. Anyone can reproduce the run against production. This is the difference between a compliance claim and a compliance position — and for a product used by people who may themselves be neurodivergent or disabled, it is the floor, not a feature.

npm run audit:a11y · axe-core · 7 public routes · WCAG 2.1 A/AA

Why it matters to you

What this buys.

If you’re a caregiver: the voice you get on a hard day is the same voice you got last month, because the thing that keeps it consistent is a test suite rather than a memory of good intentions.

If you’re a funder: the claims on this site are the kind you can ask us to reproduce in front of you. The eval runs on a laptop. So does the accessibility audit.

If you’re a potential partner: this machinery is the part that transfers. A new caregiving domain needs new clinical judgment; it does not need any of the above rebuilt.

What we haven’t done yet

The accessibility audit is automated, and automated audits catch a meaningful subset of real barriers — not all of them; a third-party audit of the signed-in experience is still outstanding. The eval is a golden set, which means it tests the failures we thought of. We add scenarios when reality supplies one. Neither of these is a finished job, and we would rather say so here than have you find out later.

Whenever you’re ready.

KeyAide is free. No login wall, no medical claims, no judgment. Just a careful voice in your corner when you need one.

Walking the labyrinth, together