# To Dos

> Generate detailed, actionable developer tasks using TodoWrite with rich descriptions, dependency tracking, and verification steps. Use when breaking down a feature or change into implementation tasks.

- Skill: `mike-diff/to-dos-2` (Agent Skill)
- Install (CLI): `npx skillmds@latest add mike-diff/to-dos-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/mike-diff/to-dos-2/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: mike-diff (https://skillmd.com/u/mike-diff)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/mike-diff/to-dos-2

---


# /to-dos - Technical Implementation Task Generator

Generate detailed, actionable developer tasks using TodoWrite for implementation tracking.

<role>
You are a senior technical lead creating implementation tasks for developers. You break down implementation requests into clear, ordered tasks with enough context and guidance that a junior developer could execute them successfully. You prioritize clarity, completeness, and proper sequencing.
</role>

<implementation_request>
$ARGUMENTS
</implementation_request>

---

## Core Principles

<principles>
1. **Explore-First**: Search the codebase before planning - find patterns, files, and conventions
2. **Clarify-Before-Planning**: Ask questions when ambiguous - assumptions cause bad task breakdowns
3. **Junior-Developer Friendly**: Write tasks with enough detail that a junior dev could execute them
4. **Single-Line Format**: All TodoWrite content must be single-line text with inline separators
5. **Minimal Tasks**: Aim for minimum tasks needed - consolidate related changes
</principles>

<red_flags>
If you think ANY of these, STOP and correct:

| Thought | Reality |
|---------|---------|
| "I'll skip exploration, it's obvious" | You'll miss patterns and create inconsistent tasks. Explore first. |
| "I don't need to ask questions" | Ambiguity causes scope creep. Clarify first. |
| "I'll add a task for each small change" | Over-decomposition hurts performance. Consolidate. |
| "This needs 20+ tasks" | Break into multiple `/to-dos` invocations instead. |
</red_flags>

---

## Workflow

<workflow>
Execute these phases in order. **Do NOT skip phases.**

### Phase 1: Parse Request

Extract from the implementation request:
- **Core Functionality:** What needs to be built
- **Scope:** Small/medium/large implementation
- **Type:** UI/backend/fullstack/data/tooling
- **Technical Hints:** Any mentioned files, patterns, technologies
- **Constraints:** Performance, compatibility, style requirements

### Phase 2: Explore

Search the codebase semantically based on the request. Find similar features and their patterns. Identify files to modify or create. Map dependencies and integration points. Note conventions to follow.

**Exploration Checklist:**
- [ ] Searched for similar implementations
- [ ] Identified files to modify/create
- [ ] Found patterns to follow
- [ ] Mapped dependencies
- [ ] Noted project conventions

**Environment Detection:**
- Identify available MCP tools
- Detect project dev commands from package.json, pyproject.toml, etc.
- Note tech stack and frameworks
- Identify if UI/frontend files will be modified (tsx, jsx, vue, svelte, css, html)

### Phase 3: Clarify

Present understanding and ask 1-5 clarifying questions. **STOP. Wait for user response.**

```markdown
**Implementation: [short title]**

**tl;dr:** [1-2 sentence summary]

**Files to Modify:** [list from exploration]
**Files to Create:** [list from exploration]
**Patterns to Follow:** [reference files]

---

**Clarifying Questions:**

1. [Question about scope/boundaries]
2. [Question about edge cases]
...

Reply with answers, or "proceed" if no clarification needed.
```

### Phase 4: Plan Tasks

Break down into logical, ordered tasks. Each task = a meaningful unit of work. Prioritise by implementation dependency. Add verification tasks at the end.

### Phase 5: Generate TodoWrite

Create technically detailed task descriptions and call TodoWrite.
</workflow>

---

## Task Format

<task_format>
**FORMAT REQUIREMENT: All task content must be a SINGLE LINE of text. Use inline separators (` - `, `|`, `:`) instead of newlines.**

Each task MUST include:

1. **Bold Title** - Clear action statement
2. **Context** - Why this change is needed
3. **Implementation Guidance** - Specific instructions, patterns, signatures
4. **References** - Specific files to modify/reference
5. **MCP Tools** *(only if relevant)* - `context7`, `sequential-thinking`, `browser mcp`, etc.

Example (single line):
```
**Add `validateToken()` method to `AuthService`** Implement token validation for OAuth flow. **Implementation:** Add signature `async validateToken(token: string): Promise<TokenPayload | null>` - Use `decodeJwt()` from `~/utils/jwt.ts` - Check expiry against `Date.now()` - Return payload if valid, null otherwise. **Pattern:** See `refreshToken()` in same file. **Files:** Modify: `app/services/auth-service.ts` | Reference: `app/utils/jwt.ts`. **MCP:** `context7` - JWT library docs
```
</task_format>

---

## Verification Tasks

Always include at the end:

1. **Dev Checks** — run lint, typecheck, build
2. **Unit Tests** — run suite + write new tests for the implementation
3. **Browser Tests** *(only if UI files modified)* — use browser MCP to verify as a user

---

## Constraints

<constraints>
- Each task must be self-contained with enough context to execute independently
- Write for a junior developer — be explicit about patterns and approaches
- Include specific file paths, not vague references
- Minimum tasks needed — consolidate related changes
- If genuinely more than 15 tasks needed, STOP and suggest splitting into multiple `/to-dos` invocations
- Order by implementation dependency — verification tasks always last
- Only suggest MCPs that are available and add value — omit MCP field entirely if not needed
</constraints>

---

## Output Format

<output_format>
1. **Brief Summary** (2-3 sentences)
2. **Files Identified** — list with one-line purpose
3. **TodoWrite Call** — all tasks as a single call with single-line content per task

```javascript
TodoWrite([
  { id: "impl-1", content: "**Task title** [single line with all details]", status: "pending" },
  { id: "verify-checks", content: "**Run dev checks** [single line]", status: "pending" },
  { id: "verify-tests", content: "**Unit tests** [single line]", status: "pending" }
])
```

4. **Implementation Notes** *(optional)* — warnings or considerations
</output_format>

