sd-execute
Execute a spec-driven feature's implementation phase while syncing taskmaster status after each task or batch, so the taskmaster tag mirrors real progress without driving execution order itself. Use w
SKILL.mdskills/sd-execute/SKILL.md
GitHubExecute Feature Tasks
Taskmaster is a mirror, not a driver. This skill does not reimplement execution -- it calls tlc-spec-driven's Execute phase exactly as documented in its own references/implement.md (auto-sized: inline for Small/Medium, sub-agent batching of ~7-8 tasks for Large/Complex, single always-on Verifier at the end), and layers one thing on top: syncing task status to taskmaster after each unit of work completes, so the taskmaster tag stays an accurate read-only log of what's done.
No wave-parallel dispatch, no worktree isolation, no adversarial per-task evaluator loop -- tlc-spec-driven's own batching and Verifier already cover reliability; duplicating that logic here only causes drift between the two.
Steps
Add the following steps as tasks using the TaskCreate, TaskUpdate, TaskGet, and TaskList tools. Update the status as you progress through each step to keep the user informed.
| # | Step | Action | Output / Gate |
|---|---|---|---|
| 1 | Validate tag | Confirm .specs/features/{TAG}/spec.md exists (design.md/tasks.md optional per auto-sizing) and a matching tag exists in .taskmaster/tasks/tasks.json |
Missing spec.md -> report, stop. Missing taskmaster tag -> tell user to run sd-insert-taskmaster first, or proceed without sync if they prefer |
| 2 | Read spec-driven skill | Read skills/tlc-spec-driven/SKILL.md and its references/implement.md once |
Execution conventions loaded -- auto-sizing, batching threshold, Verifier contract |
| 3 | Run Execute phase | Invoke tlc-spec-driven's Execute exactly as documented -- no modification. Sub-agent batching offer, atomic commits, gate-before-done, Verifier at the end all apply unchanged | Feature implemented and verified per tlc-spec-driven's own contract |
| 4 | Sync taskmaster after each completed unit | As each task (inline mode) or batch (sub-agent mode) finishes and its commit lands, call set_task_status for the corresponding taskmaster id(s) -- tag is required, omitting it silently no-ops |
Taskmaster tag reflects real progress incrementally, not batched at the very end |
| 5 | Sync on Verifier outcome | Verifier PASS -> tasks stay done. Verifier flags a gap that becomes a fix task -> sync that task back to pending (or blocked if user chooses not to fix now), then re-sync to done once the fix commit lands |
Taskmaster reflects fix-loop iterations, not just the first pass |
| 6 | Sync docs | Invoke generate-docs skill in update mode, scoped to the diff/commits produced by this run, if the changes warrant a docs update |
docs/ reflects the implemented feature -- skip silently if generate-docs determines no doc-worthy changes occurred |
| 7 | UI test gate | If any task touched a UI component or screen, test it with Playwright MCP (or similar E2E tool) before marking done -- cover golden path and edge cases, watch for regressions in other features | UI change verified in a real browser -- skip silently for non-UI tasks |
| 8 | Summary | Report what tlc-spec-driven reported, plus taskmaster sync confirmation (ids updated) and docs sync outcome | User does the final commit/push -- tlc-spec-driven's own contract, unchanged here |
| 9 | Save permanent memory | At the end of the session, evaluate whether there is anything worth saving as permanent memory. Save only what the next session will need and cannot rediscover by reading the code, Git, or CLAUDE.md -- such as the reason behind a decision, a non-obvious invariant, or a user preference; if it is already in the repo or only matters for this specific conversation, do not save it. Use the ai-memory-durable-pages skill to persist it. |
Durable page written when warranted, or nothing when not |
Status mapping
| Outcome | set_task_status value |
|---|---|
| Task committed and gate passed | done |
| Verifier found a gap, fix pending | pending (revert from done) |
| User chose not to fix / deferred | deferred |
| Task skipped by user decision | cancelled |
| Task blocked on external dependency | blocked |
Reference files
- troubleshooting.md -- common failure symptoms and fixes
- diagram.md -- diagram of the flow.