home / skills / eljun / workflow-skills / task
This skill creates detailed task documents and updates tracking, enabling clear planning and automated handoffs for new features, fixes, or updates.
npx playbooks add skill eljun/workflow-skills --skill taskReview the files below or copy the command above to add this skill to your agents.
---
name: task
description: Create task documents for new features, updates, or fixes. Creates detailed specs in docs/task/*.md with full implementation context. Updates TASKS.md for tracking. Use when starting any new work.
model: opus
---
# /task - Task Planning Agent
> **Model:** opus (complex planning requires advanced reasoning)
## Command Flags
| Flag | Short | Description |
|------|-------|-------------|
| `--help` | `-h` | Show available commands and options |
| `--version` | `-v` | Show workflow skills version |
| `auto` | | Enable automated pipeline (implement → test → document → ship) |
### Flag Handling
**On `-h` or `--help`:**
```
/task - Task Planning Agent
Usage:
/task Create a new task (manual mode)
/task auto Create task with auto-pipeline enabled
/task -h, --help Show this help message
/task -v, --version Show version
Options:
auto After task approval, automatically chain through:
implement → test → document → ship
Examples:
/task # Interactive task creation
/task auto # Task with full automation
Next: /implement {ID}
```
**On `-v` or `--version`:**
Display:
```
Workflow Skills v1.4.1
https://github.com/eljun/claude-skills
```
---
## When to Use
Invoke `/task` when:
- Starting a new feature or enhancement
- Planning a bug fix that requires multiple changes
- User says "I want to add...", "Let's implement...", "Can we build..."
- Discussing requirements before coding
- Creating implementation specs for future work
## Invocation Options
| Command | Mode | Behavior |
|---------|------|----------|
| `/task` | Manual | You control each step: implement → test → document → ship |
| `/task auto` | Automated | After task approval, all steps run autonomously |
### Auto Mode Workflow
```
/task auto → User approves task
↓
/implement
↓
/test (Playwright E2E)
│
PASS → /document
FAIL → /implement (with test report)
│
▼
/ship → PR + notify
```
**Auto mode notes:**
- **Full automation:** Runs through implement → test → document → ship
- **Test failures:** Auto-retries by sending test report back to implement agent
- **Unexpected errors:** Stops and notifies you
## Workflow
```
User Request
↓
1. Discuss & clarify requirements
2. Research codebase for context
3. Generate Task ID (next available number)
4. Create docs/task/{ID}-{task-name}.md
5. Add to TASKS.md under "## Planned" with ID
6. User can /clear and start fresh
↓
Ready for /implement {ID}
```
## What This Skill Does
### 1. Requirements Gathering
Ask clarifying questions:
- What is the expected behavior?
- Any UI/UX preferences?
- Priority level?
### Version Impact Guidelines
Set the `Version Impact` field based on the type of change:
| Type | Default Impact | When to Use |
|------|----------------|-------------|
| `feature` | `minor` | New functionality, backwards compatible |
| `bugfix` | `patch` | Bug fixes, no new features |
| `enhancement` | `patch` | Improvements to existing features |
| `documentation` | `patch` | Doc updates only |
| `chore` | `patch` | Maintenance, refactoring |
**Override to `major`** when:
- Breaking API changes
- Database schema changes requiring migration
- Removing deprecated features
- Changes that require user action
### 2. Codebase Research
Before creating the task document:
- Check existing similar implementations
- Identify files to modify
- Find reusable components/hooks
- Note potential pitfalls
> **Note:** Specialized skills (vercel-react-best-practices, supabase-postgres-best-practices) are invoked during `/implement`, not during task planning. This keeps planning focused on requirements and architecture.
### 3. Generate Task ID
Before creating the task document, generate the next available Task ID:
1. Read TASKS.md to find all existing task IDs
2. Find the highest ID number across all sections (Planned, In Progress, Testing, etc.)
3. Assign next ID = highest + 1
4. If no tasks exist, start with ID = 1
**ID Format:** Simple integers (1, 2, 3, ...)
```bash
# Example: If TASKS.md has tasks with IDs 1, 2, 5
# Next ID = 6 (highest + 1)
```
### 4. Create Task Document
**Location:** `docs/task/{ID}-{task-name}.md`
**Naming:** Zero-padded ID prefix + kebab-case descriptive name:
- `001-user-dashboard-redesign.md`
- `002-lead-auto-tagging.md`
- `003-booking-calendar-view.md`
**ID Padding:** Use 3 digits (001, 002, ... 999) for consistent sorting.
### 5. Update TASKS.md
Add the task to the "## Planned" section with ID and link to task document.
**If TASKS.md doesn't exist, create it first** with this structure:
```markdown
# Tasks
Task tracking for the development workflow.
---
## Planned
Tasks ready for `/implement {ID}`.
| ID | Task | Priority | Task Doc | Created |
|----|------|----------|----------|---------|
---
## In Progress
| ID | Task | Started | Task Doc | Status |
|----|------|---------|----------|--------|
---
## Testing
Tasks being tested via `/test`.
| ID | Task | Task Doc | Test Report | Status |
|----|------|----------|-------------|--------|
---
## Approved
Tested and approved. Ready for `/document` then `/ship`.
| ID | Task | Task Doc | Feature Doc | Test Report | Approved |
|----|------|----------|-------------|-------------|----------|
---
## Ready to Ship
PRs created via `/ship`. **Items stay here until `/release` is run** (even after merge).
| ID | Task | Branch | PR | Merged | Task Doc |
|----|------|--------|----|--------|----------|
---
## Shipped
Released items. Only `/release` moves items here with version number.
| ID | Task | PR | Release | Shipped |
|----|------|-----|---------|---------|
```
---
## Task Document Template
Create this structure in `docs/task/{ID}-{task-name}.md`:
```markdown
# {Task Title}
> **ID:** {number}
> **Status:** PLANNED
> **Priority:** HIGH | MEDIUM | LOW
> **Type:** feature | bugfix | enhancement | documentation | chore
> **Version Impact:** minor | patch | major
> **Created:** {Date}
> **Platform:** Web
> **Automation:** manual | auto
## Overview
{2-3 sentence description of what we're building and why}
## Requirements
### Must Have
- [ ] Requirement 1
- [ ] Requirement 2
### Nice to Have
- [ ] Optional requirement
## Current State
{Description of how things work now, if applicable}
**Current Files:**
| File | Purpose |
|------|---------|
| `path/to/file.tsx` | Description |
## Proposed Solution
{Description of the implementation approach}
### Architecture
{High-level design decisions}
### File Changes
| Action | File | Description |
|--------|------|-------------|
| CREATE | `path/to/new.tsx` | New component for X |
| MODIFY | `path/to/existing.tsx` | Add Y functionality |
| DELETE | `path/to/old.tsx` | No longer needed |
## Implementation Steps
### Step 1: {Title}
{Detailed instructions with code snippets if needed}
### Step 2: {Title}
{Detailed instructions}
## Code Examples
{Include specific code changes when helpful}
```typescript
// Example of key implementation
```
## Testing Checklist
- [ ] Test case 1
- [ ] Test case 2
- [ ] Edge case handling
## Dependencies
- Required packages: {list any new deps}
- Required APIs: {list endpoints needed}
- Blocked by: {any dependencies on other tasks}
## Notes for Implementation Agent
{Any important context the /implement agent needs to know}
## Related
- Similar feature: [link to docs]
- Design reference: [link if applicable]
```
---
## TASKS.md Integration
After creating the task document, add an entry with the ID:
```markdown
## Planned
| ID | Task | Priority | Task Doc | Created |
|----|------|----------|----------|---------|
| 1 | Dashboard Redesign | HIGH | [001-dashboard-redesign.md](docs/task/001-dashboard-redesign.md) | Jan 25 |
| 2 | Fix Login Bug | MEDIUM | [002-fix-login-bug.md](docs/task/002-fix-login-bug.md) | Jan 26 |
```
---
## Output Checklist
Before completing `/task`:
- [ ] Task document created in `docs/task/`
- [ ] Document has all required sections filled
- [ ] Implementation steps are clear and actionable
- [ ] File paths verified to exist (for modifications)
- [ ] Added to TASKS.md "## Planned" section
- [ ] User understands the task and approves
---
## Handoff to /implement
When planning is complete, inform the user:
### Manual Mode
```
Task created: #{ID} - {Task Title}
Document: docs/task/{ID}-{task-name}.md
Added to TASKS.md under "Planned"
Next Steps:
/implement {ID} # e.g., /implement 1
/implement {ID}-{task-name} # e.g., /implement 001-auth-jwt
(Optional: /clear first to start fresh session)
```
### Auto Mode
When `/task auto` was invoked and user approves the task:
1. Set `Automation: auto` in the task document
2. Use Task tool to spawn `/implement {ID}` with **model: opus**
3. The implement skill will chain to subsequent skills automatically
```
Task approved! Starting automated pipeline...
Task: #{ID} - {Task Title}
Spawning /implement {ID} with opus model...
```
**IMPORTANT:** In auto mode, after user approves the task:
- Do NOT wait for user to invoke /implement
- Use Task tool to spawn implement agent with model: opus
- Example: `Task({ subagent_type: "general-purpose", model: "opus", prompt: "/implement {ID}" })`
- The automation flag in the task doc controls subsequent chaining
---
## Related Skills
| Skill | When to Use |
|-------|-------------|
| `/implement` | After task is approved, to start coding |
| `/test` | After implementation, to verify the feature |
| `/document` | After tests pass, to create documentation |
| `/ship` | After documentation, to create PR |
| `/release` | After multiple items shipped, to create release |
**Note:** Specialized skills (vercel-react-best-practices, supabase-postgres-best-practices) are invoked during `/implement`, not during `/task`. Install them separately from their respective repos.
This skill creates formal task documents for new features, updates, or fixes and updates TASKS.md for tracking. It generates a zero-padded task ID, writes a complete docs/task/{ID}-{task-name}.md spec with implementation context, and registers the task under "Planned" so work can move to /implement or an automated pipeline.
I gather requirements, research the codebase to identify files and reusable components, then generate the next available integer ID and create a task document from a standard template. The tool updates TASKS.md under the "Planned" section and can optionally launch an automated implement→test→document→ship pipeline when run in auto mode.
How is the next Task ID determined?
I read TASKS.md, find the highest integer ID across sections, and assign next ID = highest + 1. If TASKS.md is missing, I create it and start at 1.
What does auto mode do?
In auto mode, after you approve the created task I spawn /implement with model: opus and chain implement→test→document→ship. Test failures loop back to implement with a report.
What should go in the 'Version Impact' field?
Use minor for new backwards-compatible features, patch for bugfixes/enhancements/docs, and major only for breaking changes like API or schema migrations.