Imported from darrenoakey/daz-cad (
AGENTS.md). Install upstream withnpx skills add darrenoakey/daz-cad. Copyright stays with the author.
Greenline gate — how merges work here
This repo is gated by greenline. Read docs/greenline.md and docs/DOCTRINE.md
before writing code or tests.
Invariants (never violate):
master== what prod runs == green, always.- The canonical checkout is pristine — never edit it by hand.
- All work happens in worktrees branched from last-green.
- Every merge goes through the serialized gate: change-impact
check+ realdeploy.
Your workflow:
greenline worktree <name>— get a worktree at/Volumes/Gumby/worktrees/greenline/daz-cad/<name>on branchgl/<name>.- Do your work there. Co-design tests + code per docs/DOCTRINE.md (parallel-safe, namespaced, no global-state assertions, OS-assigned ports, probe the exact host:port instead of machine-wide
lsof/netstat/ss/fuserscans; never mock other services — make real calls fast with a content-addressed record/replay cache). - Commit in your worktree. Then
greenline submit(from that worktree). - The gate squash-merges, runs
./run check, fast-forwardsmaster, runs./run deploy, and publishes. It rolls back prod automatically if deploy fails. - On success:
greenline doneto remove your worktree + branch.
Never commit or push on master — hooks hard-lock it (reference-transaction
cannot be bypassed with --no-verify; pre-commit/pre-push refuse too). Never edit the
canonical checkout. If the gate reports a conflict, rebase your worktree on
master and resubmit. If commits somehow reached master outside the
gate (legacy workflow, hotfix), run greenline adopt to gate them in place —
greenline never discards commits on master.
Diagnose with greenline status and greenline doctor (--fix to reconcile).