dev-flow
Installation
SKILL.md
dev-flow
Conductor for the canonical dev chain. It does NOT re-implement the sub-skills — each one owns its own logic and its own "when to skip" rules. This skill only picks the tier, orders the stages, and drives them. Match ceremony to stakes: a bug gets three steps, a new subsystem gets ten.
Executor note: this is a prompt, not a script. Sub-skills still pause for user input (grill-me interrogates, pr-craft wants approval). Drive one stage, wait for it to finish, then start the next. Never fire the whole chain blind.
Protocol
- Isolate — a dev-flow run dirties the working tree and makes commits across many stages. If another agent might touch this repo concurrently (the default assumption on a shared machine), call
EnterWorktreebefore driving any stage so this whole run gets its own working tree + branch and the main checkout stays free for that other agent. This is the parallel-worktrees "isolating your own work" path (see that skill). Name the branch<type>/<slug>, where<type>follows the detected tier:fix/for the bug tier,feat/for feature/architecture (usechore//refactor//docs/when that describes the work better), and<slug>= short kebab task description — e.g.fix/distributor-bar,feat/cv-pv-pdp. Caveat:EnterWorktree name:has no branch override — it always mintsworktree-<name>, which makes ugly PR titles. For a clean branch, create it yourself and enter by path instead:git worktree add -b feat/<slug> .claude/worktrees/<slug> "$BASE"thenEnterWorktree path:.claude/worktrees/<slug>(a path-entered worktree is kept by ExitWorktree, which is what Close wants anyway). Skip only if already in a worktree session, or it's a throwaway one-liner on a repo you're certain is yours alone; when skipping, say so in the plan so the user can override. - Detect tier from the task description (table below). If ambiguous, ask one question: which tier.
- Print the plan — the ordered stage list for that tier, each stage marked RUN or SKIP with a one-line reason. Honor each sub-skill's own skip rules (e.g. grill-me skips single-file changes; to-prd skips bug fixes). Reflect those in the SKIP reasons. Lead with the isolation decision (worktree name, or why skipped).
- Confirm — user says go / edit / abort. Accept partial edits ("skip the PRD", "add adhd", "no worktree"). Record exactly what they approved.
- Drive — invoke each RUN stage via the Skill tool, in order. After each returns, checkpoint: report what it produced (file path, decision, diff), then start the next. Stop and surface if a stage can't proceed (fuzzy scope → route back to grill-me; unsettled architecture → route to compass).
- Close — after the last stage, one-line summary of artifacts produced (intent path, PRD path, ADR path, plan path, PR URL). Every stage that ran should have left a numbered file behind; a stage that ran and produced nothing readable is a gap worth naming here. If you entered a worktree in step 1,
ExitWorktreewithkeep(neverremove— the branch holds your commits and the pushed PR).
Tiers
Detect from the task. When in doubt, pick the lower-ceremony tier and let the user upgrade.