Task Creation Skill
Converts conversational task descriptions into structured work items (beads) with automatic categorization, priority assignment, and dependency tracking.
When to Use
Activate this skill when users ask to:
- Create or add a new task or issue
- Track work that needs to be done
- Convert conversational descriptions into structured work items
- Document something to remember or do later
- Set up tasks with blocking relationships
- Categorize and prioritize work
Required Information
Gather from conversation:
| Field | Type | Example | Notes |
|---|---|---|---|
| Title | String | "Fix blog pagination bug" | Clear, specific task name |
| Description | String | "The blog archive page shows 404 on pages 2+ after deployment" | Detailed context and acceptance criteria |
Optional Information
| Field | Type | Example | Notes |
|---|---|---|---|
| Tags | Array | ["bug", "urgent", "frontend"] | For categorization and filtering |
| Blocking | Array | ["task-id-123"] | Task IDs this blocks (dependent tasks) |
| BlockedBy | Array | ["task-id-456"] | Task IDs that block this one |
| Priority | Number | 1-5 | 1=critical, 5=low (inferred if not provided) |
Auto-Categorization Rules
The system automatically determines task type and priority from natural language patterns:
Task Type Detection
| Pattern | Type | Emoji |
|---|---|---|
| "fix", "resolve", "patch", "bug" | bug | 🐛 |
| "add", "create", "implement", "build" | feature | ✨ |
| "improve", "enhance", "optimize", "refactor" | enhancement | 🔧 |
| "update", "upgrade", "bump", "patch version" | chore | ⚙️ |
| "document", "write", "add docs", "update README" | documentation | 📝 |
| "investigate", "research", "explore", "investigate" | research | 🔍 |
Priority Inference
| Pattern | Priority | Rationale |
|---|---|---|
| "critical", "urgent", "blocking", "ASAP", "now" | 1 (P0) | Immediate action needed |
| "important", "high", "soon", "before release" | 2 (P1) | Next cycle priority |
| "normal", "should", "eventually" | 3 (P2) | Standard priority |
| "nice-to-have", "consider", "backlog" | 4 (P3) | Lower priority |
| "someday", "maybe", "if time" | 5 (P4) | Lowest priority |
Generation Process
Step 1: Gather Task Information
Collect through conversation:
- "What needs to be done?" (Title)
- "Can you describe more details?" (Description)
- "Any context on why or when?" (Optional tags/priority hints)
If user provides conversational description like "The blog is broken on mobile", extract and clarify:
- Title: "Fix mobile layout on blog pages"
- Description: Expanded context about the issue
Step 2: Auto-Detect Category and Priority
Parse the description and title for keywords:
- Identify task type from verb patterns
- Infer priority from urgency keywords
- Extract dependencies if mentioned
Step 3: Invoke Task Agent
Run the TypeScript agent to create the task:
bun run packages/agents/src/cli/agent-cli.ts task-create \
--title "{{title}}" \
--description "{{description}}" \
--type {{type}} \
--priority {{priority}} \
--tags "{{tags}}" \
--blocking "{{blocking}}" \
--blocked-by "{{blocked_by}}"
The agent will:
- Parse natural language input
- Create a structured bead in
.beads/issues.jsonl - Assign a unique task ID
- Set up blocking relationships if provided
- Return task details and confirmation
Example output:
--- Task Agent ---
Creating task from description...
[SUCCESS] Task created
Task ID: PROJ-123
Title: Fix blog pagination bug
Type: bug (🐛)
Priority: P1 (High)
Status: pending
Description:
The blog archive page shows 404 on pages 2+ after deployment.
Root cause appears to be missing pagination handler in router.
URL: [task details URL]
Step 4: Display and Confirm
Show the user:
- Generated task ID
- Auto-detected category and priority
- Full description as it was stored
- Any blocking relationships
- Next steps for the task (assignment, workflow)
Task Type Definitions
Bug (🐛)
Something is broken or not working as expected.
- Markers: "fix", "broken", "bug", "error", "issue", "not working"
- Default Priority: P1 or P2 depending on urgency keywords
Feature (✨)
New functionality to add.
- Markers: "add", "create", "implement", "build", "new"
- Default Priority: P2 or P3 (features are typically planned)
Enhancement (🔧)
Improving existing functionality.
- Markers: "improve", "enhance", "optimize", "refactor", "speed up", "better"
- Default Priority: P2 or P3
Chore (⚙️)
Maintenance, dependency updates, configuration changes.
- Markers: "update", "upgrade", "bump", "version", "dependencies"
- Default Priority: P3 (non-blocking)
Documentation (📝)
Writing or updating documentation.
- Markers: "document", "write docs", "add README", "update guide"
- Default Priority: P3 (can document in parallel)
Research (🔍)
Investigation or evaluation needed.
- Markers: "investigate", "research", "explore", "evaluate", "compare"
- Default Priority: P3 or P4 (time-bounded research)
Dependency Management
Setting Up Blocking Relationships
If a task depends on another or blocks others, express as:
User: "I need to refactor the API before we can optimize the cache layer"
Response: Extract two tasks:
- Task A: "Refactor the API" → Type: enhancement, Priority: P1
- Task B: "Optimize cache layer" → Type: enhancement, Priority: P2
- Set: Task B is blocked by Task A
bun run packages/agents/src/cli/agent-cli.ts task-create \
--title "Optimize cache layer" \
--description "..." \
--type enhancement \
--blocked-by "{{task-a-id}}"
Querying Blockers
After creating tasks, show dependencies:
Task PROJ-124 (Optimize cache) is blocked by:
└─ PROJ-123 (Refactor API) - pending
Cannot start until PROJ-123 is completed.
Writing Task Descriptions
Do:
- Be specific about what needs to happen
- Include context: why, where, what problem it solves
- Add acceptance criteria if applicable ("The page should load in < 1s")
- Mention any related tasks or tickets
- Include error messages or reproduction steps for bugs
Avoid:
- Generic descriptions like "fix stuff"
- Assumptions about implementation details (let the executor decide)
- Combining multiple unrelated tasks in one item
- Vague impact statements ("make it better")
Example Interactions
Example 1: Simple Bug Report
User: "The checkout button on the homepage is broken"
Response:
- Clarify: "Can you describe what's broken? Is it not clickable, hidden, or showing an error?"
- Gather details about browser, reproduction steps
- Create task:
Task ID: PROJ-201 Title: Fix checkout button functionality on homepage Type: bug (🐛) Priority: P1 (Critical - affects conversions)
Example 2: Feature Request with Dependencies
User: "I want to add an analytics dashboard, but first we need to set up event tracking"
Response:
- Create two tasks:
Task ID: PROJ-301 Title: Implement event tracking infrastructure Type: feature (✨) Priority: P1 Task ID: PROJ-302 Title: Build analytics dashboard Type: feature (✨) Priority: P2 Blocked By: PROJ-301 - Show the dependency chain
- Explain that PROJ-302 cannot start until PROJ-301 is completed
Example 3: Enhancement with Optimization Context
User: "We should optimize the blog query performance, it's getting slow with more posts"
Response:
- Gather: "How slow? Do you have metrics? Which queries are slow?"
- Create task:
Task ID: PROJ-401 Title: Optimize blog query performance Type: enhancement (🔧) Priority: P2 Description: Blog queries are getting slower as post count increases. Goal: Sub-100ms response time for archive pages. Consider indexing strategy, caching layer, and query optimization.
File Locations
| Purpose | Path |
|---|---|
| Task tracking | .beads/issues.jsonl |
| Task agent | packages/agents/src/task/task-agent.ts |
| CLI handler | packages/agents/src/cli/agent-cli.ts |
| Type definitions | packages/agents/src/types/index.ts |
Task Lifecycle
Tasks created with this skill start in pending status:
pending → in_progress → completed
↓
(if issues)
resolved
Use beads commands to manage lifecycle:
bd update <task-id> --status in_progress
bd update <task-id> --status completed
bd close <task-id>
Common Patterns
Multi-step Breakdown
If user describes complex work, offer to break into subtasks:
User: "Redesign the checkout flow"
Suggest:
- Task 1: "Design checkout wireframes"
- Task 2: "Implement checkout form component"
- Task 3: "Integrate payment processing"
- Task 4: "Add order confirmation page"
Set dependencies so they work in sequence.
Adding Context from Errors
For bug reports, include error messages and logs in description:
Task: Fix authentication redirect loop
Description:
Users report infinite redirect when accessing /dashboard after login.
Error log:
[ERROR] /auth/callback → /dashboard → /login → /auth/callback
Environment: Production
Affected users: ~15% of login attempts
First reported: 2026-01-24
Voice Learning
Record feedback on task creation for improvement:
Location: .cody/project/library/style-docs/task-style.json
Track:
- Effective task titles (what works)
- Common categorization errors (what to fix)
- Useful description patterns (what to encourage)
Integration with Workflows
After task creation, users can:
- Assign -
bd update <task-id> --owner <name> - Add labels -
bd label add <task-id> bug frontend - Link dependencies -
bd dep add <task-a> --blocks <task-b> - Start working -
bd update <task-id> --status in_progress