| 1 | # đŸ¤– AGENTS.md: TodoMVC bakeoff |
| 2 | |
| 3 | The one rule: **every app gets the same chance.** The same brief, the |
| 4 | same contract, the same UI, the same tests, the same measurement, the |
| 5 | same review-and-fix round, and the same platform defaults. Any difference |
| 6 | in how one app is treated is a defect in the bakeoff, not a detail. |
| 7 | |
| 8 | Design: `docs/superpowers/specs/2026-10-23-todomvc-bakeoff-design.md`. |
| 9 | Plan: `docs/superpowers/plans/2026-10-23-todomvc-bakeoff.md`. |
| 10 | |
| 11 | ## Layout |
| 12 | |
| 13 | | Path | What | |
| 14 | |---|---| |
| 15 | | `BRIEF.md`, `CONTRACT.md` | What every builder gets. Binding | |
| 16 | | `shared/` | TodoMVC CSS (`todomvc-common` 1.0.5, `todomvc-app-css` 2.4.3) and the reference page | |
| 17 | | `vendor/carlos-skills/` | The CARLOS skills builders read, pinned (see `SOURCE`) | |
| 18 | | `tests/behaviour/` | Playwright suite, run with JS on and off | |
| 19 | | `harness/` | Go measurement harness and report generator; `harness/refapp` is a test fixture builders never see | |
| 20 | | `builders/` | Prompts, runner scripts, session logs and reviews | |
| 21 | | `apps/<slug>/` | One directory per contestant, written only by its builder | |
| 22 | | `results/` | One JSON file per app, written only by the harness | |
| 23 | | `report/site/` | The generated report page | |
| 24 | |
| 25 | ## Rules |
| 26 | |
| 27 | - **Never fix an app by hand.** Apps change only through their builder's |
| 28 | session (the build, the one fix round, and the security-only round). |
| 29 | A pipeline problem is fixed in the scripts or the brief, and then every |
| 30 | affected app is rebuilt. |
| 31 | - **Never work around Carloku.** A missing capability becomes a Feature |
| 32 | Request on amadan (`amadan discuss new carlos/platform`), and the report |
| 33 | names it. |
| 34 | - **The report doesn't crown a winner.** Numbers, context and caveats. |
| 35 | - Servers bind `127.0.0.1` only. Scratch goes in `$TMPDIR`. Don't change |
| 36 | `GOCACHE`. No `sudo`. Stop what you start. |
| 37 | - Commits end with a `Co-Authored-By:` trailer naming the model. |
| 38 | |