home / skills / ntcoding / claude-skillz / create-tasks

create-tasks skill

/create-tasks

This skill generates well-formed, vertical tasks with clear deliverables, context, acceptance criteria, and verification to accelerate engineering work.

npx playbooks add skill ntcoding/claude-skillz --skill create-tasks

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
7.5 KB
---
name: create-tasks
description: "Creates well-formed tasks following a template that engineers can implement. Triggers on: 'create tasks', 'define work items', 'break this down', creating tasks from PRD, converting requirements into actionable tasks, feature breakdown, sprint planning."
version: 1.0.0
---

# Create Tasks

Creates well-formed tasks that provide large amounts of contexts so that engineers that weren't in conversations can implement the task without any prior knowledge and without asking questions.

Tasks should be created using the tools and documentation conventions in the project the skills is being applied to. If the conventions are not clear, ask the user to clarify and then document them.

## What Engineers Need

Every task must provide:
- What they're building (deliverable)
- Why it matters (context)
- Key decisions and principles they must follow
- Acceptance criteria
- Dependencies
- Related code/patterns
- How to verify it works

## Before Creating Tasks: Slice First

🚨 **NEVER create a task without validating its size first.** A PRD deliverable is NOT automatically a taskβ€”it may be an epic that needs splitting.

### Example Mapping Discovery

🚨 **Never copy PRD bullets verbatim.** Use Example Mapping to transform them into executable specifications.

| Card | What You Do |
|------|-------------|
| 🟑 **Story** | State the deliverable in one specific sentence |
| πŸ”΅ **Rules** | List every business rule/constraint (3-4 max per task) |
| 🟒 **Examples** | For EACH rule: happy path + edge cases + error cases |
| πŸ”΄ **Questions** | Surface unknowns β†’ resolve or spike first |

**The Examples (🟒) ARE your acceptance criteria.** Write them in Given-When-Then format:

```
Given [context/precondition]
When [action/trigger]
Then [expected outcome]
```

**Edge case checklist** β€” for each rule, systematically consider:

| Category | Check For |
|----------|-----------|
| **Input** | Empty, null, whitespace, boundaries, invalid format, special chars, unicode, too long |
| **State** | Concurrent updates, race conditions, invalid sequences, already exists, doesn't exist |
| **Errors** | Network failure, timeout, partial failure, invalid permissions, quota exceeded |

**Example:** PRD says "User can search products"

Rules identified: (1) Search by title, (2) Pagination, (3) Empty state

For Rule 1 alone, edge case thinking yields:
- Given products exist β†’ When search β†’ Then results (happy path)
- Given no matches β†’ When search β†’ Then empty set
- Given empty search term β†’ When submit β†’ Then validation error OR all products? (πŸ”΄ Question!)
- Given special chars in search β†’ When search β†’ Then handled safely

### Splitting Signals (Task Too Big)

If ANY of these are true, **STOP and split**:

- ❌ Can't describe in a specific, action-oriented title
- ❌ Would take more than 1 day
- ❌ Title requires "and" or lists multiple things
- ❌ Has multiple clusters of acceptance criteria
- ❌ Cuts horizontally (all DB, then all API, then all UI)
- ❌ PRD calls it "full implementation" or "complete system"

### SPIDR Splitting Techniques

When you need to split, use these techniques:

| Technique | Split By | Example |
|-----------|----------|---------|
| **P**aths | Different user flows | "Pay with card" vs "Pay with PayPal" |
| **I**nterfaces | Different UIs/platforms | "Desktop search" vs "Mobile search" |
| **D**ata | Different data types | "Upload images" vs "Upload videos" |
| **R**ules | Different business rules | "Basic validation" vs "Premium validation" |
| **S**pikes | Unknown areas | "Research payment APIs" before "Implement payments" |

### Vertical Slices Only

Every task must be a **vertical slice**β€”cutting through all layers needed for ONE specific thing:

```
βœ… VERTICAL (correct):
"Add search by title" β†’ touches UI + API + DB for ONE search type

❌ HORIZONTAL (wrong):
"Build search UI" β†’ "Build search API" β†’ "Build search DB"
```

## Task Naming

### Formula

`[Action verb] [specific object] [outcome/constraint]`

### Good Names

- "Add price range filter to product search"
- "Implement POST /api/users endpoint with email validation"
- "Display product recommendations on home page"
- "Enable CSV export for transaction history"
- "Validate required fields on checkout form"

### Rejected Patterns

🚨 **NEVER use theseβ€”they signal an epic, not a task:**

| Pattern | Why It's Wrong |
|---------|----------------|
| "Full implementation of X" | Epic masquerading as task |
| "Build the X system" | Too vague, no specific deliverable |
| "Complete X feature" | Undefined scope |
| "Implement X" (alone) | Missing specificity |
| "X and Y" | Two tasks combined |
| "Set up X infrastructure" | Horizontal slice |

If you catch yourself writing one of these, **STOP and apply SPIDR**.

## Task Size Validation (INVEST)

Every task MUST pass INVEST before creation:

| Criterion | Question | Fail = Split |
|-----------|----------|--------------|
| **I**ndependent | Does it deliver value alone? | Depends on other incomplete tasks |
| **N**egotiable | Can scope be discussed? | Rigid, all-or-nothing |
| **V**aluable | Does user/stakeholder see benefit? | Only technical benefit |
| **E**stimable | Can you size it confidently? | "Uh... maybe 3 days?" |
| **S**mall | Fits in 1 day? | More than 1 day |
| **T**estable | Has concrete acceptance criteria? | Vague or missing criteria |

### Hard Limits

- **Max 1 day of work** β€” if longer, split it
- **Must be vertical** β€” touches all layers for ONE thing
- **Must be demoable** β€” when done, you can show it working

## Task Template

```markdown
## Deliverable: [What user/stakeholder sees]

### Context
[Where this came from and why it matters. PRD reference, bug report, conversation summaryβ€”whatever helps engineer understand WHY. You MUST provide the specific file path or URL for any referenced files like a PRD of bug report - don't assume the engineer knows where things are stored]

### Key Decisions and principles
- [Decision/Principle] β€” [rationale]

### Delivers
[Specific outcome in user terms]

### Acceptance Criteria
- Given [context] When [action] Then [outcome]

### Dependencies
- [What must exist first]

### Related Code
- `path/to/file` β€” [what pattern/code to use]

### Verification
[Specific commands/tests that prove it works]
```

## Process

1. **Slice first** β€” Apply Example Mapping. If task has >3-4 rules or fails splitting signals, use SPIDR to break it down.
2. **Discover acceptance criteria** β€” For each rule: generate happy path, edge cases, error cases using the checklist. Write as Given-When-Then. Surface questions.
3. **Name it** β€” Write a specific, action-oriented title. If you can't, the task isn't clear enough.
4. **Validate size** β€” Must pass INVEST. Max 1 day. Must be vertical slice.
5. Gather context (from PRD, conversation, bug report, etc.)
6. Identify key decisions that affect implementation
7. Find related code/patterns in the codebase
8. Specify verification commands
9. Output task using template

## Checkpoint

Before finalizing any task, verify ALL of these:

| Check | Question | If No |
|-------|----------|-------|
| **Size** | Is this ≀1 day of work? | Split using SPIDR |
| **Name** | Is the title specific and action-oriented? | Rewrite using formula |
| **Vertical** | Does it cut through all layers for ONE thing? | Restructure as vertical slice |
| **INVEST** | Does it pass all 6 criteria? | Fix the failing criterion |
| **Context** | Can an engineer implement without asking questions? | Add what's missing |

🚨 **If the PRD says "full implementation" or similar, you MUST split it. Creating such a task is a critical failure.**

Overview

This skill creates well-formed engineering tasks from PRDs, requirements, or conversations so engineers can implement work without extra clarification. It enforces slicing, vertical slices, and INVEST sizing so each task is small, testable, and demoable. The output follows a strict template that includes deliverable, context, acceptance criteria, dependencies, related code, and verification steps.

How this skill works

When triggered by phrases like 'create tasks' or 'break this down', the skill first validates the size and scope using Example Mapping and SPIDR splitting techniques. It extracts rules, generates Given-When-Then acceptance criteria (including happy paths, edge cases, and error cases), names the task with an action-oriented formula, and verifies the task passes INVEST and vertical-slice checks before emitting the final task template.

When to use it

  • Converting a PRD or feature doc into executable engineering tasks
  • Breaking a high-level requirement into 1-day implementable tasks
  • Preparing sprint-ready work items for engineers not present in prior discussions
  • Splitting epic-level deliverables into vertical slices
  • Turning ambiguous 'implement X' requests into precise, testable tasks

Best practices

  • Always slice first: validate task fits within one day and is a vertical slice
  • Use Example Mapping: story, rules (3-4 max), examples (Given-When-Then), and questions
  • Generate acceptance criteria from examples; edge cases are acceptance criteria too
  • Name tasks with the formula: [Action verb] [specific object] [outcome/constraint]
  • If scope unclear or conventions absent, ask for project conventions and document them

Example use cases

  • Turn 'User can search products' PRD into tasks like 'Add search by title' with rules for pagination and empty state
  • Convert a feature request into spikes and implementation slices using SPIDR (Paths, Interfaces, Data, Rules, Spikes)
  • Break 'Enable CSV export' into a single vertical task touching UI, API, and storage for one CSV format
  • Create verification commands and related code pointers for a new API endpoint task

FAQ

What if a PRD item looks too big?

Stop and split it using SPIDR. If you can't write a specific action-oriented title or it exceeds one day, create smaller vertical slices or a spike.

How are acceptance criteria written?

Use Given-When-Then for each rule: include happy path, edge cases, and error cases. Edge cases become acceptance checks.

What if project conventions are unknown?

Ask the requester for coding patterns, file paths, or docs before creating tasks and include that context in the task template.