Agent skill
write-atomic-tasks
Writes precise, autonomous-execution-ready tasks using the SMART+ framework (Specific, Measurable, Actionable, Referenced, Testable, +Context). Transforms vague task descriptions into detailed specifications with file paths, verification commands, and clear success criteria. Use when writing tasks for any agent, creating todos, planning features, decomposing work, or when tasks lack precision. Triggers on "write task", "create todo", "break down feature", "make task precise", "task is vague", or when task descriptions are missing file paths, verification steps, or clear success criteria. Works with todo.md, task lists, project planning documents, and agent instructions.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/write-atomic-tasks
SKILL.md
Write Atomic Tasks
Quick Start
Transform vague task descriptions into precise, autonomous-execution-ready specifications:
❌ BEFORE (vague):
- [ ] Add error handling
✅ AFTER (precise):
- [ ] Task 1: Add ConnectionError and TimeoutError handling to ClaudeAgentClient.query()
- Retry 3 times with exponential backoff (1s, 2s, 4s)
- Raise AgentConnectionError after retries exhausted
- Location: src/temet_run/agent/client.py:ClaudeAgentClient.query
- Verify: pytest tests/unit/agent/test_client.py passes
Table of Contents
- When to Use This Skill
- What This Skill Does
- The SMART+ Framework
- Task Template
- Precision Checklist
- Forbidden Vague Patterns
- Task Decomposition Rules
- Examples: Vague → Precise Transformation
- Validation Process
- Supporting Files
- Expected Outcomes
- Requirements
- Red Flags to Avoid
When to Use This Skill
Explicit Triggers:
- "Write a task for..."
- "Create todo items for..."
- "Break down this feature into tasks"
- "Make this task more precise"
- "How should I write this as a task?"
Implicit Triggers:
- Task description lacks file paths
- No verification command specified
- Vague action verbs ("fix", "add", "update" without specifics)
- Missing success criteria
- Task would require clarifying questions before starting
Debugging/Quality Scenarios:
- Reviewing task list for autonomous execution readiness
- Agent keeps asking clarifying questions about tasks
- Tasks take longer than expected due to ambiguity
- Post-mortem reveals task interpretation issues
What This Skill Does
This skill transforms vague task descriptions into precise, autonomous-execution-ready specifications by:
- Applying SMART+ Framework - Ensuring every task is Specific, Measurable, Actionable, Referenced, Testable, with Context
- Adding Critical Metadata - File paths, verification commands, success criteria
- Decomposing Large Work - Breaking complex tasks into 30-minute chunks
- Eliminating Vague Patterns - Replacing forbidden phrases with precise alternatives
- Validating Precision - Checking that tasks answer all 6 precision questions
The SMART+ Framework
Every task MUST include these components:
| Component | Description | Example |
|---|---|---|
| Specific | What exactly to do | "Add retry logic to ClaudeAgentClient.query()" not "Add retry logic" |
| Measurable | How to verify completion | "Tests pass, mypy clean" |
| Actionable | Clear first step | "Create file src/temet_run/agent/retry.py" |
| Referenced | File paths, functions, classes | "in agent/client.py:ClaudeAgentClient" |
| Testable | Success criteria | "3 retries with exponential backoff, circuit breaker after 5 failures" |
| +Context | Why this matters (optional) | "Needed for ADR-016 conversation persistence" |
Task Template
- [ ] Task N: [ACTION VERB] [SPECIFIC TARGET] [SUCCESS CRITERIA]
Location: [file paths or module names]
Verify: [how to confirm completion]
Complete Example:
- [ ] Task 1: Add ConversationError exception hierarchy to agent/errors.py
- Create: ConversationError(base), MessageError, StateError
- Location: src/temet_run/agent/errors.py
- Verify: mypy passes, errors importable from temet_run.agent
Precision Checklist
Before writing a task, verify it answers ALL these questions:
- ✅ WHAT file(s)? → Include full path from project root
- ✅ WHAT function/class? → Name the specific target
- ✅ WHAT action? → Use precise verbs: Create, Add, Modify, Remove, Rename, Extract, Move
- ✅ WHAT inputs/outputs? → Specify types, fields, parameters
- ✅ HOW to verify? → Command to run:
pytest path,mypy src/,uv run temet-run ... - ✅ WHY doing this? → Link to ADR, issue, or parent task (optional but helpful)
Forbidden Vague Patterns
NEVER write tasks containing these vague phrases:
| ❌ Forbidden Pattern | ✅ Precise Alternative |
|---|---|
| "Implement the feature" | "Implement X method in Y class with Z behavior" |
| "Add tests" | "Add unit tests for X covering cases A, B, C" |
| "Fix the bug" | "Fix TypeError in X:line Y caused by Z" |
| "Update the code" | "Update X function to accept Y parameter" |
| "Handle errors" | "Add try/except for ConnectionError in X, retry 3 times" |
| "Refactor" | "Extract X logic from Y into new Z class" |
| "Improve performance" | "Reduce X function runtime from 500ms to <100ms by caching Y" |
| "Add logging" | "Add structlog info-level logging to X function for events A, B, C" |
| "Document the code" | "Add Google-style docstring to X function with Args, Returns, Raises" |
Task Decomposition Rules
Large tasks MUST be broken down:
- One concern per task - Don't mix "create model AND write tests AND add CLI"
- Max 30 minutes of work - If longer, split it
- Dependencies explicit - "Task 3 depends on Task 2" or use sub-numbering (2.1, 2.2)
- Verification per task - Each task independently verifiable
Decomposition Example:
## Feature: Add conversation history command
- [ ] Task 1: Create ConversationRepository protocol
Location: src/temet_run/domain/repositories.py
Verify: mypy passes
- [ ] Task 2: Implement JsonlConversationRepository
Location: src/temet_run/infrastructure/repositories/conversation.py
Verify: Unit tests pass (create tests/unit/infrastructure/test_conversation_repo.py)
- [ ] Task 3: Add `history` subcommand to CLI
Location: src/temet_run/main.py (add to agents group)
Verify: `uv run temet-run agents history --help` shows usage
- [ ] Task 4: Integration test for history command
Location: tests/integration/test_cli_history.py
Verify: pytest tests/integration/test_cli_history.py passes
Examples: Vague → Precise Transformation
See examples/transformation-examples.md for comprehensive examples covering:
- Error handling tasks
- Data model implementation
- Test writing tasks
- Bug fixes
- Feature additions
- Refactoring work
Inline Example:
❌ VAGUE:
- [ ] Add error handling to the client
✅ PRECISE:
- [ ] Add ConnectionError and TimeoutError handling to ClaudeAgentClient.query()
- Retry 3 times with exponential backoff (1s, 2s, 4s)
- Raise AgentConnectionError after retries exhausted
- Location: src/temet_run/agent/client.py:ClaudeAgentClient.query
- Verify: pytest tests/unit/agent/test_client.py passes
Validation Process
To validate a task for precision:
- Read the task description
- Apply the 6-question checklist (Section 5)
- Check for forbidden vague patterns (Section 6)
- Verify SMART+ components present (Section 3)
- Confirm task is <30 minutes of work
Validation Script (if available):
python ~/.claude/skills/write-atomic-tasks/scripts/validate_task.py "task description"
Manual Validation Output:
Task: "Add error handling to the client"
❌ FAILED Precision Check:
- Missing: Specific file path
- Missing: Function/class name
- Missing: Verification command
- Vague pattern: "Add error handling" (see Section 6)
Suggested rewrite:
- [ ] Add ConnectionError handling to ClaudeAgentClient.query()
Location: src/temet_run/agent/client.py:ClaudeAgentClient.query
Verify: pytest tests/unit/agent/test_client.py passes
Supporting Files
- examples/transformation-examples.md - 10+ examples of vague → precise transformations
- references/smart-framework-deep-dive.md - Detailed explanation of SMART+ components
- scripts/validate_task.py - Automated task precision validator
- templates/task-template.md - Copy-paste task template with placeholders
Expected Outcomes
Successful Task Writing
When tasks are written with this skill:
✅ Agents can execute autonomously - No clarifying questions needed ✅ Clear verification - Unambiguous success/failure determination ✅ Predictable effort - Tasks complete in <30 minutes ✅ Reduced rework - Fewer interpretation errors ✅ Better planning - Accurate time estimates from precise scoping
Before/After Metrics
| Metric | Before (Vague Tasks) | After (Precise Tasks) |
|---|---|---|
| Clarifying questions per task | 2-5 questions | 0 questions |
| Task completion time variance | ±200% | ±20% |
| Rework due to misunderstanding | 30% of tasks | <5% of tasks |
| Autonomous execution success | 40% | 95% |
| Time spent planning vs doing | 20/80 | 40/60 |
Requirements
Knowledge:
- Understanding of SMART goal framework
- Familiarity with project file structure
- Awareness of verification commands (pytest, mypy, etc.)
Tools:
- None (skill is language/framework agnostic)
Environment:
- Works with any task management system
- Compatible with todo.md, Jira, GitHub Issues, etc.
Red Flags to Avoid
Red Flags Checklist:
- ❌ Task description fits on one line but has no metadata
- ❌ No file path mentioned
- ❌ Action verb is generic ("fix", "update", "add")
- ❌ No verification command provided
- ❌ Success criteria is subjective ("make it better")
- ❌ Task mixes multiple concerns (AND, THEN, ALSO in description)
- ❌ Task would take >30 minutes but isn't decomposed
- ❌ Contains forbidden vague patterns (Section 6)
- ❌ Missing inputs/outputs specification for data operations
- ❌ No link to parent task/ADR/issue for context
Common Mistakes:
- Too granular - "Add import statement" is usually too small, combine with actual work
- Too high-level - "Implement authentication" needs 10+ subtasks
- Technology assumption - "Add React component" when framework not decided
- Implicit dependencies - "Write tests" assumes code exists, make dependency explicit
Notes
- This skill is framework-agnostic - Works for any programming language or project type
- Precision scales with task complexity - Simple tasks need less metadata than complex ones
- Context determines precision level - Solo developer vs distributed team changes requirements
- Tasks are living documents - Update tasks when requirements change, don't let them drift
- Autonomous execution is the goal - If a task requires synchronous communication, it's not precise enough
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?