Backlog Workflow
Manage incremental delivery items following project conventions (docs/backlog/todo/, docs/backlog/in-progress/, docs/backlog/done/).
Commands
/backlog new <name> [description]
Create a new backlog item in docs/backlog/todo/:
- •Find next ID: Scan
todo/,in-progress/, anddone/for highest 5-digit ID, increment by 1 - •Create file:
docs/backlog/todo/{ID}-{name}.mdwith template:markdown# {Name} ## Goal {description or "TODO: what we're trying to achieve"} ## Context TODO: background and constraints ## Ship Criteria TODO: what must be true to consider this complete? ## Uncertainties - [ ] TODO: what might we be wrong about? ## Implementation Plan ## Notes - •Commit to main:
- •Must be on
mainbranch with clean working directory - •
git add . && git commit -m "chore: add {name} 📋" - •
git push origin main(team visibility)
- •Must be on
- •Remind: "Remember: Shippable, Valuable, Testable, Simple, Validating ✓"
Errors:
- •Not on main → "Error: Must be on main. Current: {branch}. Run: git checkout main"
- •Uncommitted changes → "Error: Uncommitted changes. Commit or stash first."
- •Duplicate name → "Error: Item '{name}' exists in todo/ ({ID}-{name}.md)"
/backlog start <id-or-name> [--with-branch]
Move item from todo/ to in-progress/:
- •Resolve item: Match
id-or-nameagainst items intodo/(partial OK if unique) - •Validate state:
- •Must be on
mainbranch (error if on feature branch: "Error: Already on '{branch}'. Checkout main first.") - •Clean working directory
- •Must be on
- •Move:
git mv todo/{file} in-progress/{file} - •Commit:
git commit -m "chore: start {name} 🚀" - •Push:
git push origin main - •Branch (optional):
- •Without
--with-branch: Stay on main (direct push workflow) - •With
--with-branch:git checkout -b {name}
- •Without
Errors:
- •Not found → "Error: No match for '{term}' in todo/. Try: /backlog status"
- •Multiple matches → "Error: Multiple matches: {list}. Use full ID."
- •Branch exists → "Error: Branch '{name}' exists. Delete or choose different name."
/backlog done [id-or-name]
Complete an in-progress item:
If on main branch (direct push workflow):
- •
id-or-namerequired (error if missing) - •Resolve item in
in-progress/ - •
git mv in-progress/{file} done/{file} - •
git commit -m "chore: complete {name} ✅" - •
git push origin main
If on feature branch:
- •Auto-detect from branch name if
id-or-namenot provided - •Verify clean working state
- •
git mv in-progress/{file} done/{file} - •
git commit -m "chore: complete {name} ✅" - •Prompt: "Ready for PR: gh pr create --title '{name}' ..."
Errors:
- •On main without id → "Error: On main branch, id-or-name required."
- •No match → "Error: No item matching '{term}' in in-progress/."
- •Uncommitted changes → "Warning: Uncommitted changes. Commit first."
/backlog status
Show backlog state:
- •List items in
todo/ - •List items in
in-progress/(mark current branch with*>) - •List last 5 items in
done/
Principles
- •Every state change commits to main - team visibility
- •Direct push default - stay on main, no branch needed
- •Branches only for preview env - use
--with-branchfor infra/arch changes needing validation - •Ship criteria is a statement - what must be true, not a checklist of constraints