The development workflow#
Every task follows the same lifecycle, whatever its size:
idea → prompt file → issue → worktree → PR(s) → merge → registry
(Mind) (GitHub) (isolated) (gated) (human) (Mind)
Intent is written down first. A task starts as a markdown file in the Mind under
<work-type>/<target>/<name>.md— plain English, no template. The work-type folder (feature/,bug/,refactor/,docs/, …) tells the Brain what kind of reasoning the task needs.start_devroutes the prompt through the Brain’s Feature Agent: classify, plan at two levels (human bullets + a detailed plan a fresh session could resume from), survey the affected branches, create a tracked GitHub issue, and register the task in the Mind’sactive.md.Work happens in a task worktree (
~/Code/PyAutoLabs-wt/<task>/) on afeature/<task>branch across every claimed repo, so parallel tasks never collide.active.mdrecords the claim; a conflict check blocks double-claiming a repo.ship_*gates the finish: test suites, the review faculty, and the Heart readiness verdict. GREEN ships; YELLOW needs an explicit human acknowledgement; RED stops. One PR per repo, always.Merge is always human. After merge, the task entry moves from
active.mdtocomplete.md— the organism’s operational history.
The registry files (active.md, planned.md, complete.md) are shared
state in the Mind repo, so any machine or session — laptop, web, CI — can
read the current picture and resume an in-flight task with no handoff
ceremony.
The autonomy contract#
How much of that lifecycle runs without a human is not ad-hoc: it is defined
once, in
AUTONOMY.md.
Each prompt carries Autonomy: safe | supervised | human-required; each
work-type has a cap; the effective level is the minimum of the two, and it
binds only when a run is explicitly launched with --auto. The contract
pins the invariants: merge is always human, autonomous runs end at PR-open,
Heart RED always stops, and a safe run’s four-leg ship gate (tests, smoke,
automatic review, Heart) must pass before anything is pushed. Every
autonomous run appends to a calibration log, and raising a cap requires
citing it.
Model tiers#
The workflow splits across model tiers, not named models: a judgment tier (the strongest available model) does planning, risk calls, and any prose a reader will learn from; an execution tier (a fast, cheap model) runs the mechanical shell/git phases as subagents. The doctrine survives model generations changing underneath it.