Skip to main content
Before you write a single JSON key, list the stages your team actually uses, the things each work item tracks, and the criteria that must be true before something moves forward. That list is the board. The mapping below turns each element into the right Substrate construct.

1. Stages Become Groups

Each workflow stage is one group. Order them with position (0, 1, 2, …) — that is left-to-right flow on the board.
Ids are referenced by policies and by every task — pick short, stable, human-readable ones. A rename later is a migration.

2. Metadata Becomes field_schema.task

Every distinct thing a work item tracks becomes a field entry under field_schema.task:
Add a boolean gate field for each exit criterion you will enforce. If a criterion must be signed off by a person, mark that field "human_only": true — write tools will refuse to set it, making the human’s approval the only path forward. To change one field on an existing board without resending the whole schema, use update_board’s field_schema_patch.

3. The Mapping Recipe

4. A Worked Shape

A three-stage board with one real gate — from Spec to Build only when plan_approved is set:
Once you have this shape, move on to writing the full policy DSL and validating that the rails fire.

Write Policies

The full DSL for transition guards and agent responsibilities.

Validate Gates

Prove your guards actually fire before relying on them.