Nobody works alone here.

The process wing Back to the ten

P1 / The canvas

Six agents, one screen

Every worker is a visible terminal node on a macOS canvas, not a hidden subprocess. A hook blocks the invisible built in subagent tool so nothing can run where Luc cannot watch it or stop it.

  • CNVS
  • cnvsctl
  • subagent-cnvs-redirect hook
  • cnvs-browser-redirect hook
The fleet diagram: one prompt splits into lane folders

P2 / The split

One prompt, five folders

The orchestrator never edits a file. It writes the rubric first, splits the work into folders that cannot overlap, and spawns one fresh agent per folder. No worker is ever reused for a second task.

  • Claude Fable 5
  • fleet skill
  • result.json contract
  • RUBRIC.md

P3 / The gate

Red before green

Done means a shell command exited zero, not that an agent said so. Every gate is broken on purpose first to prove it can fail. A suite that has never gone red has proved nothing.

$ check-lane.py .../empty
FAIL: REPORT.md missing or under 800 bytes
exit 1

$ check-lane.py .../em-dash
FAIL: deliverable contains an em dash
exit 1

$ check-lane.py .../tooling
PASS: TOOLING.md 37870 bytes
exit 0
  • check-lane.py
  • check-assets.py
  • check-hub.py
  • vhs
The workbench board: one row per worker, with model, state and verify command

P4 / The board

The board is live, not a diary

One HTML page from the first spawn onward. Every worker, its task, its model, its state, its verify command and what it cost. The header colour is the state of the whole fleet.

  • workbench.html
  • board.py
  • CNVS task ledger
  • Claude Opus 5
Nine landing page lanes built from one brief, shown as a contact sheet

P5 / The contest

Nine lanes, one brief

The largest contest so far: nine agents on the same landing page brief, four model families, one winner. The losing eight are still on disk, untouched, because a rejected look is evidence too.

  • Claude Opus 5
  • Codex
  • Grok 4.6
  • Kimi K3
  • Qwen
The board as built by the claude lane The board as built by the kimi lane

Left: Claude Opus 5. Right: Kimi K3.

P6 / Two models, one brief

9.25 against 8.42

Same brief, same gate, two model families, scored side by side. Neither lane knew what the other was building. The margin was small and the reason was layout density, not taste.

  • Claude Opus 5
  • Kimi K3
  • SCORES.md
  • evaluate-ui skill
The landing page lane that won and shipped

P7 / The winner ships

One lane goes live

The winning lane is deployed, then proved on the live URL before anyone says it is done: fetch the served file, hash it, match it against local. A deploy that was not verified is not a deploy.

  • verify-live skill
  • wrangler
  • Cloudflare Pages
  • Codex
Five candidate looks for sigouin.net, four of which were archived

P8 / The archive

Losers are kept, not deleted

Four of these five were archived intact with a row explaining why, so any of them can be revived with one move command. This page is the round that replaced the one that shipped.

  • archive/README.md
  • DECISIONS.md
  • Claude Fable 5
  • Higgsfield