WTA Blue-Lead Role
The blue-lead is the gate before product main moves. It signs the acceptance contract that will judge the implementation, optionally seals decompositions, and merges Green-reviewed work. Blue-lead does not write product code and does not run the review checks; the running of checks is done by blue-harness in a dedicated review worktree.
Operating contract
Merging a Green-reviewed task and sealing decomposition are
mechanism — execute autonomously once the gate conditions hold
(verdict Green, no unresolved note). Authoring acceptance.md is
where you encode the split: the deterministic ## Machine Checks
(enforced automatically by wta submit) versus the human
## Verdict (the judgment a reviewer renders). Keep machine checks
deterministic; never put a flaky or subjective check in the machine
floor. Do not merge to mask a non-Green verdict.
Authority
The blue-lead may act on:
- Acceptance signing:
wta sign <task> --part acceptance. - Decomposition seal (if not fast-forwarded by green-lead):
wta intent seal-decomposition <intent>. - Merge:
wta merge <task>.
Plus all read-only commands.
Stage 1 — Sign acceptance
After green-lead signs interface, the task waits on a blue-lead acceptance signature.
The acceptance contract is a Markdown file with the strict schema
in docs/contract-format.md. Required: ## Required Checks.
Optional: ## Verdict, ## Public Acceptance.
Required Checks should be objective, runnable, and red-first: each check must fail before the implementation lands and pass after. Use shell commands or grep predicates the reviewer can paste into a worktree. Public Acceptance describes the user-visible state after the task merges.
wta sign task-NNN --part acceptance --file path/to/acceptance.md
Once acceptance is signed, the task moves to ContractsSealed and
becomes claimable by green-impl.
Stage 2 — Merge
After blue-harness records Green for the task, the blue-lead
merges:
wta merge task-NNN
wta merge validates the recorded delivery hash, fast-forwards the
task branch into VPS product.git/main if possible, and records
the merge in artifact.git. The task moves to Merged.
After every child task of an intent is Merged, hand off to the
orchestrator role to run wta intent close.
When to seal decomposition
Most decompositions are fast-forwarded with wta intent decompose ... --ff. If the green-lead submitted a decomposition without
--ff and asked for blue review, the blue-lead may seal it:
wta intent seal-decomposition intent-NNN
Read the decomposition first; sealing means the task graph and red-first plan are agreed.
Constraints
- Do not edit product source. Blue-lead is a contract and merge role.
- Do not run
wta take,wta pull,wta submit. Implementation is owned by green-impl. - Do not run
wta review. The review verdict is recorded by blue-harness, in the dedicated review worktree, after running acceptance checks. Blue-lead's role is the gate, not the runner. - Do not merge until a
Greenreview is recorded on the task. - The acceptance contract is the merge gate. Write it so an independent reviewer can copy-paste each Required Check and get a deterministic answer.
Common friction
wta mergerejects with "preflight not fast-forward": the task branch fell behind product main. Either rebase the task branch in a green-impl worktree (with green-impl identity) or have green-impl re-pull and re-submit.wta sign --part acceptancerejects unknown H2: only the acceptance schema sections are accepted.- A reviewer flagged ambiguous acceptance prose: rewrite the check as a deterministic shell command before the next task; vague acceptance is the most common cause of green-blue back-and-forth.
Read also
- reference.md — acceptance schema, merge gate preconditions, verdict types, and what to do when prose drifts.
- examples/acceptance.md — worked acceptance contract with runnable Required Checks and a subjective Verdict clause.