Contents
With consigliere
Consigliere decides what to build and who builds it. made decides whether it is ready to become a PR. Neither does the other's job.
The handoff
soldier commitsmade run submitgate runsreview decisionpush + PRCI greenboss lands
1 · commitA soldier working in a herdr worktree commits to its branch. Consigliere reads the SHA from herdr's status.
2 · submitConsigliere calls
made run submit --json with the gate path, the ref, the previous head, and the input SHA. The spool makes the call idempotent.3 · gatemade runs review, tests, docs, and lint on exactly that SHA.
4 · reviewIf a stage needs a decision, the run parks in
awaiting_review. Consigliere answers it through made review decide when the project's posture allows (yolo), otherwise it asks the boss.5 · pushmade pushes and opens the PR only after the gate passes.
6 · CImade polls checks under the check policy and reruns failed Actions runs within the budget.
7 · landThe run reaches
awaiting_merge with pr_url set — made opens the PR but never merges it. Consigliere brings the green PR back for the boss's word. Landing is always the boss.Why exact ids and --json
Consigliere is bash. It needs fixed shapes, not prose: every made command has a --json form, run ids are exact, and made capabilities --json lets consigliere check the protocol before it depends on a command.
Without a daemon
Where a daemon is not welcome (a Cursor Cloud agent, a CI job), made verify validates one committed SHA with no gate, push, PR, or polling.
no-mistakes remains an optional dependency on the consigliere side. made is an independent synthesis of the same pipeline in Go, not a drop-in of no-mistakes.