From sdd
Polish and improve what was built in the current sprint. Bugs, new features, UX improvements — scoped through a brief interview and added to the sprint file.
How this skill is triggered — by the user, by Claude, or both
Slash command
/sdd:iterateThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Execute these steps in order before beginning the iteration interview.
Execute these steps in order before beginning the iteration interview.
Read skills/sdd-guide/SKILL.md and follow all rules defined there (tone, interaction rules, guard rails, process notes, open concerns, state tracking). Everything in sdd-guide applies to this command.
Read skills/sdd-guide/references/living-documents.md. This defines the protocol for updating living documents during iteration. Follow its default stance: resist changes to scope, PRD, and spec. New ideas surface through the backlog or unvetted section, not through direct edits.
Read ~/.claude/sdd-user-profile.json.
If the file does not exist, stop immediately and output:
Run
/sdd:onboardfirst.
Do not proceed. Do not attempt to create the profile or work around its absence.
If the file exists, parse it and use the communicationStyle field to set tone for this session (per sdd-guide rules).
Read docs/project-state.json.
If the file does not exist, stop immediately and output:
Run
/sdd:scopefirst.
Do not proceed.
If the file exists, read currentSprint to determine the current sprint number.
Read docs/sprint-N.md where N is currentSprint from docs/project-state.json.
If the file does not exist, stop immediately and output:
Run
/sdd:sprintfirst.
Do not proceed.
Read CLAUDE.md in the project root. This provides project conventions and coding standards relevant to iteration work.
If the file does not exist, skip this step without error.
All checklist items in the current sprint file must be complete (all status checkboxes checked). Scan every item under ## Checklist and any existing ## Iteration N sections.
If any items are incomplete, stop immediately and output:
Not all sprint items are complete. Run
/sdd:buildfirst.
Do not proceed. Do not offer to skip incomplete items or work around them.
Before doing any other work:
lastCommand to "/sdd:iterate" in docs/project-state.json.docs/open-concerns.md per sdd-guide open concerns protocol.Check docs/project-state.json for commandExplanationsShown.iterate.
If iterate has NOT been shown (or commandExplanationsShown does not exist):
Output the following as plain text. This is not a question — do not wait for acknowledgment. Output it and continue.
What /sdd:iterate does
Iterate is for polishing and improving what was built in the current sprint. Bugs, new features, UX improvements — anything that makes the sprint output better. I'll do a quick review of the current state, surface any backlog items worth pulling in, and then interview you about what you want to work on. That conversation produces a mini-checklist that gets appended to the sprint file. Then you run /sdd:build again to execute it. You can iterate as many times as you want within a single sprint.
After outputting, set commandExplanationsShown.iterate to true in docs/project-state.json.
If iterate HAS been shown: Skip the explanation entirely. Do not mention it.
Read docs/open-concerns.md (if it exists). Resolve what you can based on the current sprint's completed work. Defer what you cannot. Note any new concerns that arise during iteration.
This was initiated during the state updates phase. Continue applying the protocol throughout this command.
Read docs/backlog.md (if it exists).
If the backlog contains items, surface 2-4 small items that could reasonably fit into an iteration cycle. Present them briefly — one line each with enough context for the user to decide.
Frame this as optional: "A few backlog items that might fit into an iteration round:" followed by the items. Do not push the user to accept any of them. If the user wants to pull one in, it gets added to the iteration checklist in Step 6.
If docs/backlog.md does not exist or is empty, skip this step without comment.
Review the completed sprint items and the current state of the project. Surface 2-3 observations about what was built. These should be concrete and specific — not generic praise. Focus on:
Present these observations to the user as a starting point, not as a mandate. The user decides what matters.
Ask the user a single, open-ended question about what they want to improve, fix, or add. Do not present categories or options. Let the user name what matters to them.
Example: "What do you want to work on in this iteration?"
One question. Wait for the response.
Based on the user's response, conduct a brief interview to scope the iteration work. This is not the full deepening rounds protocol — it is a focused conversation to clarify what needs to be done.
Keep this interview short and focused. The goal is enough clarity to write actionable checklist items, not a full planning session.
Determine the iteration number by scanning the current sprint file for existing ## Iteration N headers. The new iteration is N+1 (or 1 if no iterations exist yet).
Selectively load relevant sections of docs/spec.md — only the sections that pertain to the iteration items being created. Do not load the full spec.
Generate a checklist and append it to the current sprint file under a new ## Iteration N header. Each item follows this format:
## Iteration N
### [Item Title]
- **What to do:** Brief, concrete description of the work
- **Spec ref:** `spec.md > [Section] > [Subsection]` (if applicable)
- **Acceptance criteria:**
- [ ] Criterion 1
- [ ] Criterion 2
- **Verification:** How to verify the item works
- **Status:** [ ] Not started
Rules for iteration items:
Present the iteration checklist to the user for review before appending it to the sprint file. Ask if anything needs to change. Iterate until they approve.
Once the user approves, append the ## Iteration N section to the end of docs/sprint-N.md.
Do not modify any existing content in the sprint file. Iteration sections are append-only.
Update docs/open-concerns.md per sdd-guide protocol:
Append iteration process notes to process-notes-sprint-N.md where N is the current sprint number.
Capture:
Tell the user:
docs/sprint-N.md./sdd:build to execute the iteration items.If the user wants to add more iteration work after this, they can run /sdd:iterate again. Each run produces a new ## Iteration N section. There is no limit on iteration cycles within a sprint.
/sdd:iterate in the project. Check commandExplanationsShown.iterate — do not show it on subsequent runs./sdd:iterate run is a discrete cycle that appends a new section to the sprint file.npx claudepluginhub zabuuq/sdd-plugin --plugin sddGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.