← ClaudeAtlas

dw-startlisted

Open a shaped change for building: create its worktree and branch, enter it, and claim the change by writing the branch into its `CHANGE.md`. Bare lists what's unclaimed. Explicit-invoke only — creating branch topology is your call, never the model's.
dominikwozniak/dw-solo-skills · ★ 1 · AI & Automation · score 77
Install: claude install-skill dominikwozniak/dw-solo-skills
# dw-start — a worktree per change, claimed before building Mechanics plus one field write: a shaped change gets its own worktree and branch, so several run at once, each in its own session reading its own `CHANGE.md` from disk. The thinking already happened in `dw-shape`; the building happens in `dw-next`. ## What it reads and writes Reads `.ai/work/*/CHANGE.md` (written by `dw-shape`) to find the unclaimed changes. Writes exactly one thing: the chosen change's `branch:` flips from `unclaimed` to the new branch — the **claim** — committed immediately. `.ai/` is tracked in git, and an uncommitted claim is invisible to every other session, which is the race this protocol closes. ## Workflow ### 1. Pick the change - `$ARGUMENTS` names a slug → that change. - Bare → list every `CHANGE.md` with `branch: unclaimed`, newest first, and ask. - A description with no shaped change behind it → shape first: offer `dw-shape` here in the main tree, then come back. ### 2. Check it isn't taken Taken means any of: its `branch:` is no longer `unclaimed`; a branch named `<slug>` or `worktree-<slug>` already exists (`git branch --list`); a worktree already sits at `.claude/worktrees/<slug>` (`git worktree list`). If taken, say which branch owns it and **stop** — stealing a change is the user's edit to make, never yours. Then confirm the doc is committed: `git status --porcelain .ai/work/<slug>/`. A worktree checks out committed state only — if `dw-shape`'s commit step was skipped, do