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