Progress tracking for spec-driven development. Use to update task status, track progress, journal decisions, move specs between folders, and maintain spec files. Handles the administrative/clerical aspects of specification documents during development.
Inherits all available tools
Additional assets for this skill
This skill inherits all available tools. When active, it can use any tool Claude has access to.
reference.mdUse Skill(foundry:sdd-update) to:
Do NOT use for:
sdd-plan)sdd-next)sdd-modify)Document Reality: JSON spec files are living documents that evolve during implementation. This skill ensures the spec accurately reflects current progress, decisions, and status. All updates flow through the MCP tools, which handle validation, backups, and progress recalculation automatically.
This skill operates entirely through the Foundry MCP server (foundry-mcp). Tools use the router+action pattern: mcp__plugin_foundry_foundry-mcp__<router> with action="<action>".
Critical Rules:
Read() on spec JSON filescat, grep, jq) on specsThis skill is part of the Spec-Driven Development workflow:
sdd-plan → sdd-plan-review → sdd-modify → sdd-next → Implementation → sdd-update (this skill)
| Operation | sdd-update | sdd-modify |
|---|---|---|
| Mark task completed | Yes | No |
| Update task status | Yes | No |
| Add journal entries | Yes | No |
| Move spec between folders | Yes | No |
| Update task descriptions | No | Yes |
| Add/remove tasks | No | Yes |
| Add verification steps | No | Yes |
| Apply review feedback | No | Yes |
Key Distinction:
For detailed workflow steps with examples, see
reference.md#workflow-details
Use task action="complete" to atomically update status AND create a journal entry:
mcp__plugin_foundry_foundry-mcp__task action="complete" spec_id={spec-id} task_id={task-id} journal_entry="What was accomplished, tests run, verification performed."
This automatically:
completedneeds_journaling flagmcp__plugin_foundry_foundry-mcp__task action="start" spec_id={spec-id} task_id={task-id}
# Block with reason
mcp__plugin_foundry_foundry-mcp__task action="block" spec_id={spec-id} task_id={task-id} reason="Description" blocker_type="dependency"
# Unblock with resolution
mcp__plugin_foundry_foundry-mcp__task action="unblock" spec_id={spec-id} task_id={task-id} resolution="How resolved"
mcp__plugin_foundry_foundry-mcp__journal action="add" spec_id={spec-id} title="Title" content="Content" task_id={task-id} entry_type="decision"
Entry types: decision, deviation, blocker, note, status_change
# Activate from backlog
mcp__plugin_foundry_foundry-mcp__lifecycle action="activate" spec_id={spec-id}
# Archive
mcp__plugin_foundry_foundry-mcp__lifecycle action="move" spec_id={spec-id} to_folder="archived"
# Complete (all tasks done)
mcp__plugin_foundry_foundry-mcp__lifecycle action="complete" spec_id={spec-id}
pending - Not yet startedin_progress - Currently being worked oncompleted - Successfully finishedblocked - Cannot proceedFor JSON structure details, see
reference.md#json-structure-reference
specs/
├── pending/ # Backlog - planned but not activated
├── active/ # Currently being implemented
├── completed/ # Finished and verified
└── archived/ # Old or superseded
For spec lifecycle transitions, see
reference.md#workflow-6-moving-specs-between-folders
For comprehensive documentation including:
See reference.md