Context
The landing page explains boucle in prose (why-boucle, how-it-works, the 7 steps) but never shows the thing that makes it deterministic: the label state machine. A visitor reading "deterministic, therefore reliable" has to take it on faith. The states are the product's most concrete differentiator and they are currently invisible.
What to add
A new section between how-it-works and quick-start rendering the loop's states as a progression, driven by a new src/content/loop-states/ collection (one file per state) so the copy stays editable from public/admin like every other section.
Each state needs a label chip, a one-line description of what boucle is doing in it, and a marker for whether it is an autonomous state or one where a human decides.
The states to cover, in order:
| Label |
Autonomous? |
boucle:triage |
autonomous |
boucle:spec-review |
human decides |
boucle:todo |
autonomous |
boucle:working |
autonomous |
boucle:review |
autonomous |
boucle:approval |
human decides |
boucle:merging |
autonomous |
boucle:done |
terminal |
boucle:human |
escalation (terminal) |
The two terminal states should read as terminal — they are exits from the loop, not steps in it.
Layout
This is the part that needs design judgement, and the reason a mockup matters:
- Desktop (≥1024px): a horizontal progression. Nine states will not fit on one row legibly, so it needs to wrap or scroll in a way that keeps the reading order obvious. The two "human decides" states must be visually distinct from the autonomous ones — that contrast is the section's whole point.
- Mobile (<768px): the horizontal progression cannot survive at 390px. It should become a vertical list with the connector running down the left edge.
- The escalation state (
boucle:human) branches off the main path rather than sitting in sequence; that branching needs to survive the collapse to vertical.
Use the existing tokens from DESIGN.md — --accent gold for the human-decision states, --accent-cyan for autonomous, --surface-raised for the chips. No new colours.
Non-goals
- No animation or scroll-triggered reveal.
- Not adding these states to the README or docs — landing page only.
- Not making the chips link anywhere.
Acceptance criteria
- New
loop-states content collection with a schema, one entry per state, registered in src/content.config.ts.
- The section renders all nine states in order, with the autonomous/human/terminal distinction visible without reading the text.
- At 390px wide the section is legible with no horizontal page scroll.
- At 1440px the progression reads left-to-right without crowding.
- Editable from
public/admin/config.yml like the other collections.
npm run build passes.
Context
The landing page explains boucle in prose (
why-boucle,how-it-works, the 7steps) but never shows the thing that makes it deterministic: the label state machine. A visitor reading "deterministic, therefore reliable" has to take it on faith. The states are the product's most concrete differentiator and they are currently invisible.What to add
A new section between
how-it-worksandquick-startrendering the loop's states as a progression, driven by a newsrc/content/loop-states/collection (one file per state) so the copy stays editable frompublic/adminlike every other section.Each state needs a label chip, a one-line description of what boucle is doing in it, and a marker for whether it is an autonomous state or one where a human decides.
The states to cover, in order:
boucle:triageboucle:spec-reviewboucle:todoboucle:workingboucle:reviewboucle:approvalboucle:mergingboucle:doneboucle:humanThe two terminal states should read as terminal — they are exits from the loop, not steps in it.
Layout
This is the part that needs design judgement, and the reason a mockup matters:
boucle:human) branches off the main path rather than sitting in sequence; that branching needs to survive the collapse to vertical.Use the existing tokens from
DESIGN.md—--accentgold for the human-decision states,--accent-cyanfor autonomous,--surface-raisedfor the chips. No new colours.Non-goals
Acceptance criteria
loop-statescontent collection with a schema, one entry per state, registered insrc/content.config.ts.public/admin/config.ymllike the other collections.npm run buildpasses.