Skip to main content
Hand a brief to a team and get back an approved change with the evidence beside it. This file has a Claude seat write a requirements note, a Codex seat implement it, runs the test with Node, has a Claude reviewer read the result, and has a final Claude seat write the approval. The reviewer can send the work back to the implementer, once.

The file

What a run printed

From one real run of this file.
The analyse step wrote team-output/brief.md:
The implementer wrote src/triple.mjs:
and test/triple.test.mjs:
The approve step wrote team-output/approval.md:

The team’s shape

Each step needs the one before it. A review below reviewThreshold is a revision request aimed at implement; the implementer runs again with the findings, then the test and the review run again with it.

Gotchas

  • The analyse step writes the note and nothing else. The package compares the expected files before and after the analyse step, and fails it by name if the seat wrote or changed any of them, because a plan written after the code is not a plan. Files that were already in the workspace before the run are left alone.
  • The implementer and every reviewer are different model families. The analyse and approve seats are free to share a family with either.
  • The approval is a file, not a status. team-output/approval.md is what the approve step must leave behind, and the step fails when it is missing or empty.
  • A writing seat can write anywhere the process can. The files above start their Claude and Codex seats with permission prompts off, which is what lets a model write files. Run them in a directory you are willing to let a model change, and give a reviewing seat a read-only mode if its plugin has one.

Source

The file is examples/teams/feature-delivery.ts. The teams package page lists every input.