Child safeguards

What Mothy holds about a child, and how to check it

Mothy is an AI that reads and writes about children: daily logs, case records, statutory deadlines, safeguarding concerns. Most of the public conversation about child AI safety is about the other kind of system, the kind children talk to. This page is mainly about ours, because the failure modes are just as real: a system that asserts things about a child it cannot evidence, or holds things about a child that nobody can find, check or erase.

One part of the product is used by children, and we would rather say so here than have it found. In Chrysalis Carer, our tool for foster carers, a looked-after child can be given their own login and keep a private journal. What is true of it today: no model writes to them, answers them or comments on what they write, and what they write cannot be read by their carer, their supervising social worker or the agency, which is enforced by the database rather than by a screen that declines to show it. One model does touch it: a child who would sooner talk than type can dictate an entry, which turns their own speech into their own words and keeps no recording. A design that would add journalling prompts, weekly patterns and a check for whether a child seems unsafe is written down and is not built. None of it will be put in front of a child before a safeguarding professional has been through it and told us what is wrong with it.

This page says what Mothy does and does not hold about a child, which controls enforce that, which of those controls are running today, and how to check our claims. It also says what we do not claim. If you find a gap between this page and the product, we want to know: email hello@getmothy.ai and we will respond, and correct whichever one is wrong.

The rule

Mothy knows what you told it and what your records say. It never invents facts about a child. Everything it holds about a child is tagged to that child, so it can be shown, corrected and erased in one action.

That is three tiers, and the distinctions matter:

  1. A conclusion Mothy reached about a child is never stored. Not as memory, not as a record, not in any trust tier. A model's inference is not a record and cannot be signed by anyone. If Mothy notices something worth keeping, its only route is to propose it to a person, visibly, as something that person authors and takes responsibility for.
  2. A fact you state about a child is held, and must be tagged to that child. A foster carer telling Mothy the age of the child they foster is not an inference; it is the carer stating something they know, and a secretary that refuses to hold it cannot do the job. It is stored with full provenance (who said it, when, in which session), it is visible to the carer, and it is correctable and erasable per child.
  3. Where a governed record exists, Mothy stores a reference to the record, not a copy of its contents. A statutory deadline or a placement is looked up at the moment it is needed, so an amendment to the record changes the answer and an erasure removes it automatically. There is one version of the truth and it is the record. This tier is preferred wherever a record exists, and it is also the accurate one: a stored age goes wrong within twelve months, a reference survives the birthday.

Why tagging is the control, and prohibition is not

The intuitive rule is "hold nothing about a child at all". We built that first, and it was wrong, for a reason worth stating in public because it generalises.

A blanket ban does not stop a fact arriving. The carer needs the fact held, so it gets rephrased until nothing recognises it as child data, and then it is stored anyway, untagged. An untagged fact about a child is the worst possible outcome, because erasure works by tag: the untagged fact is exactly the one that an erasure request cannot find. We saw this in our own development database, where a plainly child-related fact had been stored by an older code path as ordinary untagged prose, invisible to erasure by subject. That row has since been deleted, and its content lives on as a test fixture that fails the build if the scan ever stops recognising it.

So the enforcement point is not the presence of child data. It is authorship and tagging: what we are building rejects anything model-authored about a child in either trust tier, and rejects any assertion about a child that does not carry a tag naming which child. Tagging is what makes showing, correcting and erasing possible. Prohibition manufactures the untagged kind.

The rest of this page is about how much of that is code today, because the distinction between a policy and a control is the whole point of the exercise.

What enforces it today

The honest headline is that the strongest protection Mothy has against holding a model's opinion about a child is that Mothy has no way to write one. There is no write path for memory yet. Nothing in the product authors a durable statement about anybody, so today nothing authors one about a child.

We are stating that plainly rather than describing the refusal rules as though they were already guarding the door, because protection by absence is real protection right now and it disappears the moment the write path lands. What replaces it has to be built, and it is not built yet. Anyone assessing us should be asking about the date the write path ships, not about today.

Running today

What does run is structural, and it is what the refusal rules will be built on.

  1. The store cannot hold a shapeless or unattributed statement. Every statement carries who authored it, where it came from and which trust tier it belongs to, and those are database constraints rather than API checks, so a new caller cannot skip them. An assertion must carry its text and no record pointer; a reference must carry a record pointer and no text. That separation is what makes the reference tier meaningful instead of a naming convention.
  2. A deterministic scan guards bulk import. Legacy memory being migrated into the new store is scanned against the child records the system knows and a child-vocabulary check. A flagged row is not imported. It is skipped, written to an exclusions report, and left for a human decision, because legacy rows carry no subject tags and a row nobody can tag is a row erasure cannot reach. This is the one child-specific control running in code today, and its scope is bulk import only.
  3. Erasure by subject works, and is tested on every build. Tagged statements about a child are removed by an erasure request for that child. The audit chain still verifies afterwards, so the erasure is itself evidenced.

Underneath all three sit the controls that are not memory-specific and have been live longer: the tamper-evident audit log, per-organisation row-level security, and erasure by data subject across every owned table.

What is specified and not yet built

Not built yet

These are the child controls people will most want to hear about, and none of them is in the product today. They are designed, written down and committed to, and they are the next build:

Also built and merged, but shipping switched off: the memory store itself, with provenance and supersession on every statement, the reference tier with its resolver tests (an amendment changes the answer, an erasure removes the reference, a missing record renders nothing rather than stale text), and a retrieval path over stored statements. It stays off for real organisations until our own data protection impact assessment for persistent memory is complete. We gate our own features on our own paperwork, and we think that is the right order.

This page will be updated as each item lands. Where it says "not yet built", that should either become true or be publicly withdrawn, not quietly reworded.

What we do not claim

How to check us

Why we are publishing this

"Won't Somebody Think of the Children? The Case for a UK Child AI Safety Institute" (Ellie Prosser, August 2026) argues that children need a defined, testable standard for the AI systems in their lives, with evidence against a threshold instead of "we added safeguards". We support that standard, and we think it must also cover the systems that write about children, not only the ones children talk to. The Department for Education flagged AI case recording as a gap in September 2025, and no institution owns it yet.

This page is our contribution: the standard we hold ourselves to, published before anyone requires it, in a form a sceptical reader can test. Including the part where we say which half of it is not built.

Last reviewed against the code on 13 August 2026.