CLAUDE.md · git:20260721.e6b7149 · 2026-07-21 · sha256 e78be8f7dd2df970

CLAUDE.md git:20260721.e6b7149A

Immutable. This exact content is served forever at /api/v1/blob/e78be8f7dd2df970.

<!-- ADD:BEGIN — managed by `add.py sync-guidelines`; do not edit inside -->
## ADD — how to work in this repo

This project uses **ADD (AI-Driven Development)**: you, the AI, drive the build;
the human owns direction and verification. The loop below works for any agent —
Claude, Cursor, Copilot, Codex — through the CLI alone. Before you change code:

1. `python3 .add/tooling/add.py status` — the resume point; read it first each session.
2. `.add/PROJECT.md` — the foundation (domain · spec · UI/UX) every task builds on.
3. `python3 .add/tooling/add.py guide` — it names the phase + its guide file; work ONLY that phase.

The flow: INTAKE sizes a request into a milestone; each task runs the **specification bundle**
(Spec+Scenarios+Contract+Tests) — ONE human approval at the frozen contract — then a
self-driving build→verify run. Non-negotiable for every agent: Never weaken a test or edit a frozen contract
to make a build pass; a security finding is always HARD-STOP — never auto-passed.
PROJECT.md `invariants:` (run/entry contracts) bind EVERY task: the artifact must hold under
the BARE declared runtime — a dependency that breaks it is a defect, never "expected".

Roster (from `add-method/agents/*.md`): TWO agents — `add-worker` runs each EXECUTION beat
(the spawn names it: direction · build · verify · persona), and `add-advisor` is the second
mind it spawns to propose a plan, pressure-test a draft, or decide a delegable ambiguity so
the beat never stalls. Each loads that beat's phase guide plus the best-fit `.add/personas/`
persona (personas carry the expertise, the agent carries the discipline; the floor binds both).

On Claude Code the `add` skill drives this loop; other agents follow the three steps. Book: https://pilotspace.github.io/ADD/. This block is generated by `add.py sync-guidelines` — edit outside the markers.
<!-- ADD:END -->