API Shipped · contract still moving
The same surface the console uses
There is no second implementation behind the console or the CLI — they both talk to this. Which also means it moves when the product moves, and this page is careful about what it promises.
What is stable
POST /v1/<tenant>/<repo>/tasks
{ "title": "one line", "requested_by": "you@example.com" }- A board is a pair. Every route is scoped by path —
/v1/<tenant>/<repo>/…— and a board is that pair, nothing more. - Intake is one line. A title lands in Triage. A request that has not been scoped is not work in progress, here as everywhere else.
- State is the gate's to change. The scoping route refuses a
statefield, so nothing can start work by writing to it sideways.
What is still moving
The full payload reference is filed and unwritten, and that is a deliberate order rather than a backlog accident: the shapes are still moving, and documenting a moving contract produces documentation that lies. What exists is marked pending; what is written above is what has held.
If you are building against this now, the version handshake is the part to wire first — a stale client is told so in one line instead of discovering it as a rule disagreement later.
Where it stops
- It is not the enforcement path. The hook never calls the network to decide, so an API outage cannot open a zone — it was never in the deny path.
- It cannot compute your diff. A close needs a change manifest from the machine with the branch —
cycle verify --closebuilds it there, and the API only ever receives it.
The routes as they stand are in the API reference. For most work the CLI and the MCP server are the shorter path.