STOP - Read before ANY tool call
- Read
{{GUARDRAILS_PATH}} - Read
_shared/sdd-artifacts/SESSION.md; load session-state for$Cwd - If the relevant gate is not approved: STOP - ask user (pt-BR) - do NOT Write/Shell
- SDD/develop skills: after ONE step/task, STOP session - handoff only
- This skill body is English; user-facing prompts may be (pt-BR)
Step -1 - Gate check (report in chat before continuing)
Gate check:
[ ] guardrails.mdc read
[ ] SESSION.md read; session-state loaded
[ ] PIPELINE.md read (SDD skills only)
[ ] User confirmed current action (sim)
-> If any unchecked: STOP
Skill: split-story-checklist
Trigger
Invoke when the user asks for: /split-story-checklist, break down tasks, /split-story-checklist, or after refine-story.
Input (one of):
| Source | Example |
|---|---|
| Feature story | features/004-export/US01/STORY.md |
| Path | docs/backlog/my-feature.md |
| Chat | User confirms refined markdown from current session |
| Pasted | User pastes the Steps section |
Prerequisite: content includes structured Steps (or Bug Suggested fix). If missing, hand off to /refine-story.
Outcome
In the target workspace, a grouped checklist (backend / frontend / tests) with dependency-aware order (dependency-aware task checklist style).
Output altitude (RN01 / REQ-005): emit SMART engineering tasks only — never one US/TS per file, class, or script (anti-task-shatter.md). Keep task-shaped titles as checklist rows under the parent story; do not invent new USnn/TSnn folders from file names.
Persistence (prefer in order):
features/NNN-slug/USnn/REFINE/tasks.md- default when story folder existsfeatures/NNN-slug/USnn/TASKS.md- only if user explicitly asks for flat besideSTORY.md(do not invent both)- Shortcut:
docs/implementation-tasks/<slug>.md(legacy aliasdocs/sdd-developation-tasks/still accepted)
If both REFINE/tasks.md and TASKS.md already exist: update REFINE/tasks.md and note the duplicate in chat (do not fork content into both).
TASKS complexity gate (REQ-004): Read FEATURE Complexity. If trivial (small) → do not Write TASKS / REFINE/tasks.md only to satisfy a gate — report that TASKS is not required. If medium or complex → TASKS checklist is required before handoff. Details: CHANGE-CONTRACT.md + references/complexity-policy.md.
No creation of external work items; no mandatory corporate workflow checklists.
Lazy-load
| When | Path |
|---|---|
| Caveman Mode (if active) | {{TOOLKIT_ROOT}}/skills/_shared/caveman/CAVEMAN.md - Full cap |
| Anti-task-shatter / SMART tasks (RN01) | {{TOOLKIT_ROOT}}/skills/_shared/backlog-item-types/anti-task-shatter.md |
| Splitting / merge policy (when grouping unclear) | {{TOOLKIT_ROOT}}/skills/_shared/backlog-item-types/splitting.md |
| Reference index (routing only) | {{TOOLKIT_ROOT}}/skills/split-story-checklist/reference.md |
| Process step detail (lazy) | {{TOOLKIT_ROOT}}/skills/split-story-checklist/references/<section>.md |
| Resolve SDD PLAN path (handoff) | {{TOOLKIT_ROOT}}/skills/_shared/sdd-artifacts/STORAGE.md + references/plan-resolution.md |
| Context pressure | {{TOOLKIT_ROOT}}/rules/context-management.mdc |
| Language surfaces (chat vs spawn) | {{TOOLKIT_ROOT}}/skills/_shared/agents/LANGUAGE.md |
Never by default: do not preload all references/*.md or all backlog-item-types. Load one section per Process step (SKILL-REFERENCE-RETRIEVAL.md). Load anti-task-shatter.md before Write when titles look verb+file/class/script.
Reference routing
| Situation | Path |
|---|---|
| Parsing steps | references/parsing.md |
| Topology / grouping | references/topology-grouping.md |
| Output template | references/output-template.md |
| SDD / O2 handoff boundary | references/sdd-handoff.md |
| PLAN resolution | references/plan-resolution.md |
| TASKS complexity policy | references/complexity-policy.md |
| Exclusions | references/exclusions.md |
Process
Step -1b - Caveman Mode (Full cap)
- Read
{{SDD_ROOT}}/preferences.json(create{ "caveman_mode": false, "caveman_level": "full" }if missing). - If
caveman_modeis false: continue without compression. - If true: load
{{TOOLKIT_ROOT}}/skills/_shared/caveman/CAVEMAN.md; apply Full participation cap + prefscaveman_level(Lite skills never escalate); show once:[Caveman] Modo ativo (respostas compactas, level={effective}). Digite caveman off para desativar. - Honor
caveman on|off|status|lite|full|ultra(andstop caveman/normal mode) during the session. - Auto-Clarity + never-compress gates/drafts/paths per
CAVEMAN.md.
0. Workspace and source
- Confirm target repository.
- Load refined content from feature story, path, chat, or paste.
- Extract steps from Steps / Suggested fix (
references/parsing.md). - Read sibling
FEATURE.mdComplexity when underfeatures/NNN-slug/(CHANGE-CONTRACT.mdTASKS policy).
If no steps found, stop and suggest /refine-story.
If Complexity is trivial (small): STOP Write of TASKS — tell the operator (pt-BR) that TASKS is not required for trivial/small; offer optional checklist only if they insist.
If Complexity is medium or complex (or unknown and story looks multi-step): proceed to build the required TASKS file.
1. Documentation language (blocker before Write)
Ask once:
Language for the tasks file - pt-BR or English?
Record in the output file header. Paths stay English.
2. Group steps (deps + topology)
Apply references/topology-grouping.md:
- Honor explicit
Depends on:edges first (Kahn / levels) - Then layer / repo heuristics
- Mark steps safe to run in parallel when no edge between them
- Max 5 implementation groups - merge adjacent if needed
- Test steps go to dedicated test groups
3. Build checklist file
Write preferred path under the story folder (or shortcut) using references/output-template.md - honor Persistence order above (REFINE/tasks.md default):
- Implementation groups with
- [ ]per original step (preserve titles and dependencies) - Separate Tests section when test steps exist
- Execution order with critical path + parallel waves
- Optional Before PR neutral checklist (user may omit)
Each row is a SMART task under the existing story — not a new US/TS. If a step title is verb+file/class/script, keep it as a task row; do not promote it to a story folder (anti-task-shatter.md / RN01).
Do not inject fixed corporate tasks (AI tags, manual sign-off checklist, Sonar boilerplate as mandatory rows).
4. Summarize in chat
Show group names, dependency waves, output path, and suggested next skills.
5. Handoff
| Situation | Next |
|---|---|
| Multi-story / needs O1 | /orchestrate-analyze |
| Full SDD for the story | /sdd-spec -> /sdd-plan -> /sdd-develop |
| PLAN already exists | Resolve under features/**/PLAN/ only (workspace + global feature root); /sdd-develop - <full-plan-path> - Step 1 |
| Small code-only change | /developer / stack *-developer |
| Commit checklist file | /commit |
Must not
Also enforce references/exclusions.md. Handoff boundary: references/sdd-handoff.md. PLAN path: references/plan-resolution.md.
- Create or update external tracker cards via external work-item APIs
- Add fixed "workflow" tasks (manual sign-off checklist, Datadog, SDD/DevAI tags) unless the user explicitly requests a custom section
- Assume toolkit repo paths during consumer runs
- Write the file before the language question
- Emit one US/TS per file, class, or script (RN01) — output stays SMART tasks under the parent story (
anti-task-shatter.md) - Create new
USnn/TSnnfolders from checklist breakdown
Handoff examples
/sdd-spec
/orchestrate-analyze
/sdd-develop - features/004-export/US01/PLAN/PLAN_004_export.md - Step 1