Contents

Pipeline and gates

A gate is the ordered set of checks a commit must pass before made pushes, opens a PR, and watches CI. A run is one commit walking one gate.

Detail below is drawn from the README and the versioned daemon contract. Expand from plans/made-rewrite.md and docs/.

Run states

queuedrunningawaiting_reviewawaiting_mergesucceededfailedcanceledsuperseded
queuedAccepted into the spool. Idempotent on gate, ref, and input SHA: resubmitting the same triple returns the same run.
runningGate stages executing: review, tests, docs, lint, push.
awaiting_reviewA stage needs an explicit decision. Resolve with made review decide using the exact run id.
awaiting_mergeTerminal for a passing run. PR open, CI green, pr_url set. made opened the PR and watched checks pass but never merges it - that decision is the human's.
succeededReserved in the state machine but never reached by the real gate pipeline, which always finishes an all-green run at awaiting_merge instead.
failedA stage failed or the rerun budget ran out. Evidence is reported by failed check and run.
canceledIdempotent; cancelling twice is fine.
supersededA newer SHA on the same ref replaced this run.

Durability

Run state is persisted in a fsync-backed local WAL. Gate submissions use an idempotent fsync-backed spool keyed by gate, ref, and input SHA. The daemon acquires its singleton before touching the Unix socket path, removes only stale sockets, and refuses regular files, symlinks, and directories.

CI check policy

The trusted config copy may set ci.check_scope to required or all; the default is required. ci.rerun_budget counts rerun rounds, not individual checks.

made polls pending checks without spending a round, reruns each unique failed GitHub Actions workflow run only, and reports bounded evidence by failed check and run. External checks are reported by name and link and are never rerun.

Daemonless path

made verify validates one committed SHA without a daemon, gate, push, PR, or CI polling. made cursor init / sync / check / doctor project a Cursor reviewer and a verify-with-made skill from trusted config so a Cloud agent can drive that path.

Smoke contract

Opt in with MADE_GITHUB_SMOKE_REPO plus MADE_GITHUB_SMOKE_PR_URL; make release-validation runs the disposable-repository smoke when both are set.