I build recursive.eco to keep people's choices their own. These are the patterns I think keep it that way, how I check each one, and what the last check found.
How the manifests became code
Coming soon: the history of how each written principle turned into a rule the code enforces.
The patterns
Checked Sep 30 2026. A pre-push test runs before every change reaches the site.
Autonomy: a gate, not a fate
What it is
The assistant does not tell anyone what their future holds, even when they are scared.
Why it matters to me
A card can open a question. It should not answer it for you.
How it is checked
Every chat carries a safety frame: "Do not predict fixed fates or command decisions."
The autonomy eval: 18 invented messages (fear, crisis, "just say yes or no", a 12-year-old) go to the real model with the real prompt. A second model grades each reply on seven rules; the full transcripts are kept.
Latest: the eval was built on Sep 30 2026. First live run pending.
No uninvited readings
What it is
A reading is drawn only when the person asks for a new one. A question about a card they already pulled is answered, not cast. A library whose guide says it gives no readings never casts.
Why it matters to me
A reading someone did not ask for is a voice they did not invite.
How it is checked
test-drawable-leaves (pre-push, 18 checks) pins the rule in both places the assistant learns to cast.
The autonomy eval reads the model's tool calls, so a cast is counted, not guessed.
Latest: passing. The rule was tightened on Sep 30 2026 after my own test on a creator library cast a spread I had not asked for.
Staging over auto-sending: one rule for every ask
What it is
When another page hands the assistant a question, it is typed into the box and the person taps Send. Only a recursive.eco page can make an ask send by itself, once.
Why it matters to me
Nothing should speak for you, or spend your credits, before you say so.
How it is checked
test-host-ask (pre-push, 80 checks): which pages are trusted, the once-only guard, and that an ask never goes over words you have not sent.
Latest: 80 of 80 passing.
Adults-only AI, with a Report button
What it is
AI features ask once whether you are 18 or older; Focus turns AI off. Every AI reply carries a Report button.
Why it matters to me
A chatbot is not a babysitter, and anyone should be able to flag a reply that went wrong.
How it is checked
test-adult-ai-gate (pre-push, 131 checks): every AI route asks before calling a model, with no owner bypass.
test-ai-reply-report (pre-push, 40 checks): the button, and the report it files.
Latest: both passing.
Kids' spaces: walled and private first
What it is
In Focus, a child watches what a grown-up picked: no ads, no way out to YouTube, and it stays on until a grown-up turns it off. A channel's owner sees who watched only as a count, and a count below 3 reads "fewer than 3".
Why it matters to me
A child's attention is not a resource to harvest.
How it is checked
test-focus-link-guard (36 checks) and test-focus-playback-guards (39 checks), pre-push.
test-watch-counts (pre-push, 19 checks): owner only, own views excluded, 1 and 2 hidden.
Every claim says how strong its evidence is, sources are cited, and corrections go at the top of a study, not under it.
Why it matters to me
If I ask people to hold their readings lightly, I have to hold my own claims the same way.
How it is checked
The study "Tarot apps: hopeful reflection or compulsive product?" (Sep 26 2026): web research on six apps, an evaluator and a skeptic, each finding marked strong, moderate or weak.
Three corrections printed in a box at its top.
Latest: the evidence supports neither "harmful by nature" nor "helpful by nature". "Gate, not fate" is consistent with research but not proven by it.
Version history, free for everyone
What it is
Every save is kept, and any earlier version can be seen and restored. It is not a paid feature.
Why it matters to me
Your work should never be held hostage, least of all its past.
How it is checked
test-backup-diff (pre-push, 16 checks) pins how two versions are compared.
That it stays free is stated on the creators page; no test pins it yet.