internal/assets/skills/sdd-tasks/SKILL.md
Break an SDD change into implementation tasks. Trigger: orchestrator launches task planning for a change.
npx skillsauth add gentleman-programming/gentle-ai sdd-tasksInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
ORCHESTRATOR GATE: If you loaded this skill via the
skill()tool, you are the ORCHESTRATOR — STOP. Do NOT execute these instructions inline. Delegate to the dedicatedsdd-taskssub-agent using your platform's delegation primitive (e.g.,task(...), sub-agent invocation, etc.). This skill is for EXECUTORS only.
If you ARE the sdd-tasks sub-agent (NOT the orchestrator), the gate above does NOT apply to you. Continue with the phase work below. Do NOT delegate. Do NOT call the Skill tool. You are the executor — execute.
Generated technical artifacts default to English. Do not inherit the user's conversational language or the active persona's regional voice for SDD artifacts unless the user explicitly requests that artifact language or the project convention requires it.
If Spanish technical artifacts are explicitly requested, use neutral/professional Spanish unless the user explicitly asks for a regional variant.
Public/contextual comments follow the target context language by default. Explicit user language or tone overrides win; Spanish comments default to neutral/professional Spanish unless the user or target context clearly calls for regional tone.
You are a sub-agent responsible for creating the TASK BREAKDOWN. You take the proposal, specs, and design, then produce a tasks.md with concrete, actionable implementation steps organized by phase.
From the orchestrator:
engram | openspec | hybrid | none)ask-on-risk | auto-chain | single-pr | exception-ok)Follow Section B (retrieval) and Section C (persistence) from
skills/_shared/sdd-phase-common.md.
sdd/{change-name}/proposal (required), sdd/{change-name}/spec (required), sdd/{change-name}/design (required). Save as sdd/{change-name}/tasks.skills/_shared/openspec-convention.md.tasks.md to filesystem. Retrieve dependencies from Engram (primary) with filesystem fallback.Follow Section A from skills/_shared/sdd-phase-common.md.
From the design document, identify:
IF mode is openspec or hybrid: Create the task file:
openspec/changes/{change-name}/
├── proposal.md
├── specs/
├── design.md
└── tasks.md ← You create this
IF mode is engram or none: Do NOT create any openspec/ directories or files. Compose the tasks content in memory — you will persist it in Step 4.
# Tasks: {Change Title}
## Review Workload Forecast
| Field | Value |
|-------|-------|
| Estimated changed lines | <rough estimate or range> |
| 400-line budget risk | Low / Medium / High |
| Chained PRs recommended | Yes / No |
| Suggested split | <single PR or PR 1 → PR 2 → PR 3> |
| Delivery strategy | <ask-on-risk / auto-chain / single-pr / exception-ok> |
| Chain strategy | <stacked-to-main / feature-branch-chain / size-exception / pending> |
Decision needed before apply: <Yes|No>
Chained PRs recommended: <Yes|No>
Chain strategy: <stacked-to-main|feature-branch-chain|size-exception|pending>
400-line budget risk: <Low|Medium|High>
### Suggested Work Units
| Unit | Goal | Likely PR | Notes |
|------|------|-----------|-------|
| 1 | <standalone deliverable> | PR 1 | <base branch; tests/docs included> |
| 2 | <standalone deliverable> | PR 2 | <immediate parent/base branch boundary; depends on PR 1 or independent> |
## Phase 1: {Phase Name} (e.g., Infrastructure / Foundation)
- [ ] 1.1 {Concrete action — what file, what change}
- [ ] 1.2 {Concrete action}
- [ ] 1.3 {Concrete action}
## Phase 2: {Phase Name} (e.g., Core Implementation)
- [ ] 2.1 {Concrete action}
- [ ] 2.2 {Concrete action}
- [ ] 2.3 {Concrete action}
- [ ] 2.4 {Concrete action}
## Phase 3: {Phase Name} (e.g., Testing / Verification)
- [ ] 3.1 {Write tests for ...}
- [ ] 3.2 {Write tests for ...}
- [ ] 3.3 {Verify integration between ...}
## Phase 4: {Phase Name} (e.g., Cleanup / Documentation)
- [ ] 4.1 {Update docs/comments}
- [ ] 4.2 {Remove temporary code}
Each task MUST be:
| Criteria | Example ✅ | Anti-example ❌ |
|----------|-----------|----------------|
| Specific | "Create internal/auth/middleware.go with JWT validation" | "Add auth" |
| Actionable | "Add ValidateToken() method to AuthService" | "Handle tokens" |
| Verifiable | "Test: POST /login returns 401 without token" | "Make sure it works" |
| Small | One file or one logical unit of work | "Implement the feature" |
Before finalizing tasks, estimate whether implementation is likely to exceed the 400 changed-line review budget (additions + deletions). This is a planning guard, not an exact diff count.
Use available signals: number of files, phases, integration points, tests, docs, generated artifacts, migrations, and how many concerns the change crosses.
If the estimate is High or likely above 400 lines:
Chained PRs recommended as Yes.Decision needed before apply from delivery strategy:
ask-on-risk: Yes — orchestrator asks before apply.auto-chain: No — orchestrator proceeds with the first slice using the chosen chain strategy.single-pr: Yes — orchestrator must require size:exception before apply.exception-ok: No — maintainer has accepted size:exception.Do not bury this in prose. Put the forecast near the top of the tasks artifact so the user sees it before implementation starts.
The forecast MUST include these exact plain-text lines so downstream guards can match them literally:
Decision needed before apply: Yes|No
Chained PRs recommended: Yes|No
Chain strategy: stacked-to-main|feature-branch-chain|size-exception|pending
400-line budget risk: Low|Medium|High
You may keep the table for readability, but the plain-text lines are the guard contract.
For feature-branch-chain, suggested work units SHOULD name the intended base boundary: PR #1 base = feature/tracker branch; PR #2 base = PR #1 branch; PR #3 base = PR #2 branch. If a child PR would show previous PR changes, the base is wrong and must be retargeted/rebased before review.
Phase 1: Foundation / Infrastructure
└─ New types, interfaces, database changes, config
└─ Things other tasks depend on
Phase 2: Core Implementation
└─ Main logic, business rules, core behavior
└─ The meat of the change
Phase 3: Integration / Wiring
└─ Connect components, routes, UI wiring
└─ Make everything work together
Phase 4: Testing
└─ Unit tests, integration tests, e2e tests
└─ Verify against spec scenarios
Phase 5: Cleanup (if needed)
└─ Documentation, remove dead code, polish
This step is MANDATORY — do NOT skip it.
Follow Section C from skills/_shared/sdd-phase-common.md.
taskssdd/{change-name}/tasksarchitectureReturn to the orchestrator:
## Tasks Created
**Change**: {change-name}
**Location**: `openspec/changes/{change-name}/tasks.md` (openspec/hybrid) | Engram `sdd/{change-name}/tasks` (engram) | inline (none)
### Breakdown
| Phase | Tasks | Focus |
|-------|-------|-------|
| Phase 1 | {N} | {Phase name} |
| Phase 2 | {N} | {Phase name} |
| Phase 3 | {N} | {Phase name} |
| Total | {N} | |
### Implementation Order
{Brief description of the recommended order and why}
### Review Workload Forecast
- Estimated changed lines: {estimate or range}
- 400-line budget risk: {Low | Medium | High}
- Chained PRs recommended: {Yes | No}
- Delivery strategy: {ask-on-risk | auto-chain | single-pr | exception-ok}
- Decision needed before apply: {Yes | No}
- Suggested work-unit PR split: {brief list or "Not needed"}
### Next Step
{Ready for implementation (sdd-apply) OR ask the user whether to use chained PRs before sdd-apply.}
rules.tasks from openspec/config.yamlskills/_shared/sdd-phase-common.md.tools
Shared SDD references for installed skills. Not invokable.
tools
<!-- section:model-capable --> --- name: sdd-verify description: "Trigger: SDD verification phase, verify change. Execute tests and prove implementation matches specs, design, and tasks." disable-model-invocation: true user-invocable: false license: MIT metadata: author: gentleman-programming version: "3.0" delegate_only: true --- > **ORCHESTRATOR GATE**: If you loaded this skill via the `skill()` tool, you are > the ORCHESTRATOR — STOP. Do NOT execute these instructions inline. Delegate
documentation
Write SDD delta specs with requirements and scenarios. Trigger: orchestrator launches spec work for a change.
tools
Create an SDD change proposal with intent, scope, and approach. Trigger: orchestrator launches proposal work for a change.