Three Peas in a Pod

AI where it's safe, switches where it isn't

Sole builder, client engagement

Site live since September 20, 2026 Dispatch, booking by text and billing run on staging and on a two-phone demo. No family or sitter has used them.

Before and after

Before

  1. Family Fills in one long web form , done by hand
  2. Owner Reads the request in her inbox , done by hand
  3. Owner Works her phone to find a sitter , done by hand
  4. Owner Confirms the sitter by text , done by hand

After

  1. Family Texts the agency number , done by hand
  2. Rule parser Reads the date and time first , automated
  3. Model Copies words only if rules refuse , done by the model
  4. Rule parser Checks every word against the text , automated
  5. Owner Reads and sends every drafted reply , reviewed by a person
  • Model
  • Person reviews
  • Automated
  • By hand
Finding a sitter for Saturday, before and after

The work before

The agency ran on one long web form that asked every family the same questions, whether they wanted a Saturday sitter or a full-time nanny placement. Each submission became an email the owner read by hand.

From there she worked her phone to find a sitter. Which sitter a family never wanted back was recorded nowhere a system could read.

The call

Reading a parent's free-text reply and placing it on a calendar is rule-governed work: a rule parser reads a text like "sat 5pm to 9pm" and resolves it into a date with no model involved at all. A model only gets a turn when the rules refuse to place a text.

Deciding what a parent meant is never handed to the model either. It may copy words already on the page; the ordinary parser still does every date calculation, and a person still sends every reply that reaches a family.

Automated

  • Copying date and time words already written in a parent's text
  • Drafting a reply to a placement enquiry, for the owner to edit

Kept with a person

  • Any date arithmetic: an ordinary parser resolves every date, never the model
  • Sending a reply draft to a family: the owner sends every one herself
  • Stating a price in a drafted reply: the model is told to name none
  • Turning dispatch, billing or booking-by-text live: each waits behind its own switch

Where AI sits

A parent's text is read first by an ordinary rule parser. Only when the rules refuse does Claude Haiku get a turn, and its system prompt states the boundary directly: it never decides what day something falls on and never computes a date, it only copies words off the page.

A second model call drafts a reply to a placement enquiry, in the owner's voice, for her to edit and send. The enquiry is walled off as data between delimiter lines in the prompt, and the model is told plainly that nothing inside it is an instruction, whatever it says.

ModelJobWhy
Claude Haiku 4.5Copies date and time words from a parent's text after the rule parser refuses itA bulk, low-stakes read where the real safety is the check that runs after it, not the model's judgment
Claude Haiku 4.5Drafts a reply to a placement enquiry for the owner to edit and sendA draft only a person reads before anything reaches a family; nothing here calls it a decision

Guardrails and evals

Every word the model claims to have read from a booking text is checked against the text itself: literally present, and shaped like the field it claims to be, so a real date and a real hour cannot be swapped and still pass. Any field that fails refuses the whole read, the same way the rule parser refuses rather than half-parsing.

What survives that check is composed into a plain string and handed to the same rule parser every other text goes through, so a 90-day booking horizon and a weekday that disagrees with its own date apply to a model-assisted read exactly as they do to any other one. A reviewer wrote 101 texts blind to the parser; the test suite asserts none of them ever produces a wrong booking.

Rules

  • A word the model offers is refused unless it is literally in the original text
  • The model never computes a date; one ordinary parser resolves every date
  • A reply draft never states a fee, a price or a promised outcome
  • The owner reads, edits and sends every reply draft; there is no send call in the code

Evals

  • An adversarial suite, written without sight of the check: confidently wrong model answers, none reaching a booking
  • A 101-text corpus written by a reviewer blind to the parser; the suite asserts zero wrong bookings on every run

Rollout and adoption

No family or sitter uses dispatch, booking by text, or billing today; all three run on a staging environment and a two-phone demo built for walking the owner through it. The public site itself has been live on her domain since September 20, 2026.

The kickoff-to-live-site work took four days. The system behind the site, and the rule that anything able to text or charge a family ships behind its own switch, is what the rollout still waits on.

How it was built

I wrote the plan and the safety rule for the model path, then set the gates a change has to clear: a hook refuses a raw publish command, a release script rebuilds the exact commit and runs the full test suite before shipping, and production still asks for the live domain typed back by hand. AI coding agents wrote much of the surrounding code under that plan.

Two phone screens side by side from a demo with an invented family and sitter, captured on staging. The left screen reads "Sunny is confirmed for Saturday, Sept 26 at 6:00pm." The right screen shows a job offer texted to four sitters, a "YES 2346" reply from one of them, and the confirmation sent back.
Demo data on staging: the two-phone walkthrough used to show the owner how dispatch works. No real family or sitter appears.
A family record on the staff desk, seeded with invented names on staging: two sitters marked Preferred with a sit count each, one marked Never send with a private note about a late arrival, and the start of a filterable history of sits, texts and enquiries.
Demo data on staging: a family's record on the desk, shown here with invented names. No real family or caregiver data appears.

Tools: SvelteKit, Cloudflare Pages and Workers, D1, Twilio, Stripe, Claude Haiku 4.5

Questions about this one: email me.