with one click
sdd-tasks
Generate phased `tasks.md` checklists from specs and design.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Generate phased `tasks.md` checklists from specs and design.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Review SDD task plans for execution blockers and return [OKAY] or [REJECT].
Mandatory step-0 requirements discovery for non-trivial work before any implementation or SDD routing decisions.
Resolve residual spec ambiguity in place before design, with a bounded taxonomy-driven clarification pass.
Guide a semver constitution amendment and Sync-Impact Report entry.
Execute SDD task lists with real-time progress tracking, sub-agent dispatch, and verification checkpoints.
Merge completed deltas into main specs and archive the change.
| name | sdd-tasks |
| description | Generate phased `tasks.md` checklists from specs and design. |
Translate the approved spec and design into an implementation checklist.
The orchestrator passes the artifact store mode (thoth-mem, openspec, or
hybrid). Follow the persistence contract for read/write rules per mode.
thoth-mem: persist to thoth-mem only — do NOT create or modify
openspec/ files.openspec: write files only — do NOT call thoth-mem save tools.hybrid: persist to both (default).change-namepipeline-type (accelerated or full)Read the shared conventions.
Recover artifacts via the retrieval protocol in the persistence contract:
proposalspec and designIf a task plan already exists, recover sdd/{change-name}/tasks with the
same mode-aware retrieval rules before rewriting it.
Validate existing-file references: For every task that modifies an existing file (not creates a new one), verify the file actually exists on disk before including it in the task list. If a referenced "existing" file is not found, flag it as a design defect in an > ⚠️ Warning block at the top of the tasks artifact, and omit the task or add a note.
Codebase discovery (required when design artifact is absent or lacks file paths): Before generating tasks, actively explore the repository to gather the concrete data needed for accurate Verification blocks:
package.json, Makefile, Cargo.toml, .csproj, pyproject.toml) to discover available commands for testing, building, linting, and type-checking. Use the exact commands the project defines in Run: fields — never invent commands that don't exist in the project.*.test.ts, *.spec.ts) to reference in Verification commands.This exploration is mandatory in accelerated pipeline. In full pipeline, prefer paths from the design artifact's File Changes section but still validate commands from package.json.
Build a phased checklist for openspec/changes/{change-name}/tasks.md. In
thoth-mem mode, produce the same canonical checklist content without
creating the file.
Use hierarchical numbering and Markdown checkboxes with per-task verification:
# Tasks: {Change Title}
## Phase 1: Foundation
- [ ] 1.1 Set up project structure — `src/config/`
**[USN-1]** | Priority: P1
**Spec:** `config-domain/Project Structure`
**Independent Test:** Inspect `src/config/` exists and typechecks in isolation.
**Verification**:
- Run: `pnpm run typecheck`
- Expected: No TypeScript errors in config files
## Phase 2: Core Implementation
- [ ] 2.1 Author core-logic tests — `src/core/handler.test.ts`
**[USN-2]** | Priority: P1
**Spec:** `core-domain/Core Logic`
**Independent Test:** Run the new handler test file; it is red before 2.2.
**Verification**:
- Run: `pnpm test -- -t "core handler"`
- Expected: New tests run (red before 2.2)
- [ ] 2.2 Implement core logic — `src/core/handler.ts`
**[USN-2]** | Priority: P1
**Spec:** `core-domain/Core Logic`
**Independent Test:** Run the handler tests; they pass against the impl.
**Verification**:
- Run: `pnpm test -- -t "core handler"`
- Expected: All handler tests pass
## Phase 3: Integration
- [ ] 3.1 [P] Integrate with API — `src/api/client.ts`
**[USN-3]** | Priority: P2
**Spec:** `api-domain/Client Integration`
**Independent Test:** Run the API client lint in isolation.
**Verification**:
- Run: `pnpm run lint src/api/`
- Expected: No linting errors in API module
## Phase 4: Integration & Release
- [ ] 4.1 Run full integration test suite and validate release artifacts — all modules
**Verification**:
- Run: `pnpm test`
- Expected: All tests pass with 100% coverage
Recognized task states:
- [ ] pending- [~] in progress- [x] completed- [-] skipped — always append a reason: - [-] 1.2 Task name — skipped: reason hereReference concrete file paths and specific spec scenarios in the tasks.
If the selected mode includes thoth-mem, persist the full checklist with:
Use the memory tool binding for mem_save with the canonical SDD topic key
and required metadata fields: title, topic_key, type, project,
scope, and content.
After tasks.md is generated, the workflow proceeds to an optional oracle
plan review via the plan-reviewer skill. This is managed outside the scope
of this skill.
The artifact governance validator may run after sdd-tasks as a
report-only handoff. It captures placement guidance for the future
pre-sdd-apply entrypoint, but it does not enforce execution or overlap
with plan review.
The orchestrator handles the [OKAY] / [REJECT] review loop and any
necessary fixes before proceeding to execution.
Canonical definitions live in `_shared/openspec-convention.md`. These fields are
ADDITIVE to the existing `Verification` block, not a replacement, and they are
optional for back-compat (legacy `tasks.md` without them still executes).
- **`[USN-<n>]`** — a user-story-number grouping label (a coarse story/epic
bucket). It is NOT the requirement linkage.
- **Priority** — one of `P1`, `P2`, `P3`.
- **`Spec:` trace tag** — names the exact requirement the task implements, in
`{domain}/{Requirement Name}` format (optionally `#{Scenario Name}`). This is
the requirement linkage `plan-reviewer` counts for coverage %; keep it
greppable and one requirement per tag.
- **`Independent Test`** — how the task's outcome is verified in isolation,
without depending on other tasks being complete.
### `tasks.tdd` ordering
When `rules.tasks.tdd` is enabled in `config.yaml`, sequence test-authoring
tasks BEFORE their corresponding implementation tasks within the same phase (see
the Phase 2 example: 2.1 authors tests, 2.2 implements). When `tasks.tdd` is
disabled, impose no test-first ordering constraint. `plan-reviewer` enforces
this ordering when the flag is enabled.
### `[P]` parallel markers
When `rules.tasks.parallel_markers` is enabled in `config.yaml`, an optional
`[P]` marker MAY be placed AFTER the `N.M` number (`- [ ] 2.1 [P] Title`),
never before it (`[P] 2.1` would break the task-numbering validator). Emit
`[P]` ONLY on tasks that are intra-phase, dependency-free of every other task
in the same phase, and assigned to the SAME execution agent — never across
phases and never on tasks with intra-phase dependencies. `[P]` is
back-compatible: when `parallel_markers` is disabled or the marker is absent,
the plan executes exactly as it does today (absence = today's behavior). It
annotates an explicit parallel batch; it does not change `N.M`, `[USN]`, the
`Spec:` tag, or introduce flat `T001` ids.
### Consume upstream handoffHints
At task-generation start, surface the spec/design phases' `handoffHints` and
treat them as preservation constraints (coverage decisions, architecture
constraints, recorded Assumptions). When no hints were declared, surface
nothing. Surfacing is gated by `rules.handoffs.surface_hints`.
## Output Format
Return:
ChangeArtifact: openspec/changes/{change-name}/tasks.mdTopic Key: sdd/{change-name}/tasksPhase Summary: task counts per phaseExecution Order: one short paragraphNext Step: sdd-applyVerification sub-block with:
Run: — the exact command(s) to verify this task (e.g., pnpm test, pnpm run typecheck, pnpm run lint)Expected: — the specific observable outcome that confirms successVerification block will be rejected by the plan-reviewer.