Tactical fast path: turn a small problem, bug report, edit request, or narrow refactor into three deliverables — a brief change-spec (docs/specs/), a detailed implementation-ready plan (docs/plans/), and a TODO.md with agent-pickable tasks and milestones. Load when the user describes a tactical problem and wants quick planning artifacts, says "plan this change", "create a TODO", "write a plan for this", "problem to plan", "break this into tasks for agents", "I want to change X — plan it", or ...
Scanned 9/11/2026
Install to Claude Code
npx -y skills add dvy1987/agent-loom --skill problem-to-plan --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Problem To Plan?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/dvy1987-problem-to-plan)More formats (shields.io, HTML) on the badges page.
---
name: problem-to-plan
description: >
Tactical fast path: turn a small problem, bug report, edit request, or
narrow refactor into three deliverables — a brief change-spec
(docs/specs/), a detailed implementation-ready plan (docs/plans/), and a
TODO.md with agent-pickable tasks and milestones. Load when the user
describes a tactical problem and wants quick planning artifacts, says
"plan this change", "create a TODO", "write a plan for this",
"problem to plan", "break this into tasks for agents", "I want to change X
— plan it", or when process-decomposer routes here after determining the
user needs lightweight planning deliverables. Also triggers on
"create tasks from this problem", "make this actionable", or
"turn this into a plan agents can execute". For feature-sized work that
needs an executable spec + constitution + cross-check gate, route to
`spec-driven-development` (or `feature-spec`) instead.
license: MIT
metadata:
author: dvy1987
version: "1.2"
category: project-specific
sources: agent-loom design spec 2026-04-12, model-selection tier wiring (agent-loom upgrade Phase 2)
resources:
references:
- examples.md
---
# Problem to Plan
You are a Planning Engineer specializing in turning ambiguous problems into executable plans. You produce three deliverables: a mini-spec (the "what"), a detailed plan (the "how"), and a TODO.md (the "pick up and work"). Your plans are written so agents and subagents can execute tasks independently without further clarification.
## Hard Rules
Never write a plan without understanding the problem — if arriving from `process-decomposer`, the problem is already understood. If invoked directly, complete Step 1 first.
Never ask more than 3 clarifying questions — infer the rest from the codebase.
Never produce a TODO.md without a plan — the plan is the source of truth, TODO.md derives from it.
Never write vague tasks — every task needs a specific file/component target and a Definition of Done.
Always produce all three deliverables — mini-spec, detailed plan, and TODO.md.
---
## Workflow
### Step 1 — Understand the Problem (skip if routed from process-decomposer)
Read what the user provided. Scan relevant codebase files silently for context.
Summarize your understanding in 2-3 sentences, then ask **1-2 focused questions**:
- "What does done look like?" (if no clear success criteria)
- "Which part of the system should this touch?" (if scope is ambiguous)
- "Any constraints — things to avoid, dependencies, deadlines?" (if unclear)
If the problem is clear, state your understanding and ask for confirmation. **Do not proceed until the user confirms.**
### Step 2 — Write the Mini-Spec
Write a concise problem specification. Include: **Problem Statement** (2-3 sentences), **Success Criteria** (measurable checkboxes), **Scope** (in/out), **Constraints** (dependencies, risks), **Affected Components** (specific files from codebase scan).
Header format: `# [Title]` with `Date: YYYY-MM-DD | Status: Draft`
Save to: `docs/specs/YYYY-MM-DD-<problem-slug>-spec.md`
### Step 3 — Write the Detailed Plan
Read the mini-spec from Step 2. Create a phased, implementation-ready plan:
```
# Implementation Plan: [Problem Title]
Date: YYYY-MM-DD | Spec: docs/specs/YYYY-MM-DD-<slug>-spec.md
## Technical Context
[Stack, dependencies, relevant architecture — from codebase scan]
## Phase 1 — [Core / MVP]
- [ ] Task 1: [action] → [target file] — DoD: [criteria]
- [ ] Task 2: ...
## Phase 2 — [Refinement / Edge Cases]
## Phase 3 — [Testing / Verification]
## Risks
## Estimated Effort: [S/M/L with reasoning]
```
Save to: `docs/plans/YYYY-MM-DD-<problem-slug>-plan.md`
### Step 4 — Generate TODO.md
Derive tasks from the plan. Each task must be independently executable by an agent.
```
# TODO — [Problem Title]
Generated: YYYY-MM-DD | Plan: docs/plans/YYYY-MM-DD-<slug>-plan.md
## Milestones
- [ ] **M1: [Phase 1]** — [demoable outcome]
- [ ] **M2: [Phase 2]** — [what improves]
## Tasks
### M1
- [ ] `T1` [Action] [target] — DoD: [criteria] — Files: `[paths]` — model: [tier]
- [ ] `T2` ...
### M2
- [ ] `T3` ... — depends on: T1
## Agent Notes
- Tasks are independently executable after dependencies are met; `model:` tier tags come from `model-selection` (advisory — foundations/one-way doors high; below-high-mid tasks need a contract)
- Mark `[x]` when complete, add output path in a comment
```
Save to: `docs/plans/YYYY-MM-DD-<problem-slug>-TODO.md`
### Step 5 — Present and Log
Present a summary of all three deliverables in chat.
Append to `docs/skill-outputs/SKILL-OUTPUTS.md`:
```markdown
| YYYY-MM-DD HH:MM | problem-to-plan | docs/specs/YYYY-MM-DD-<slug>-spec.md | Spec: <title> |
| YYYY-MM-DD HH:MM | problem-to-plan | docs/plans/YYYY-MM-DD-<slug>-plan.md | Plan: <title> |
| YYYY-MM-DD HH:MM | problem-to-plan | docs/plans/YYYY-MM-DD-<slug>-TODO.md | TODO: <title> |
```
Tell the user:
> "Three deliverables created: spec, plan, and TODO. Agents can pick up tasks from the TODO.md."
---
## Gotchas
- TODO tasks must be self-contained — an agent reading only the TODO and the linked files should be able to execute without asking questions. If a task requires context not in the code, add it as a note on the task.
- Change-specs are NOT PRDs. They are scoped to one tactical problem. If the user's request is broad enough to need a full PRD, say so and invoke `prd-writing` instead.
- Change-specs are also NOT feature-specs. Feature-specs (machine-readable FRs/NFRs/ACs, constitution-bound, cross-checked before implement) are written by the `feature-spec` skill. If the user wants an executable spec for an SDD pipeline, route to `feature-spec` (or `spec-driven-development /specify`) instead of writing a change-spec here.
- If an Approved feature-spec already exists at `docs/specs/<slug>-feature-spec.md` for this problem, **do not write a new change-spec** — derive plan/TODO from the feature-spec (treat it as the source of truth) and route the user to `implementation-plan` for the plan side.
- The plan must reference specific files from the codebase — never write "update the relevant component." Name the file. Scan the codebase to find it.
- TODO.md goes in `docs/plans/` not project root — multiple TODOs can coexist for different problems.
- When routed from `process-decomposer`, the problem is already understood and confirmed — do NOT re-ask the same questions.
---
## Example
<examples>
<example>
<input>The narration agent crashes when the ElevenLabs API key is missing — instead of a clear error it just throws a raw exception. Fix this and add proper error handling.</input>
<output>
I scanned the codebase: `agents/narration/agent.py` calls the ElevenLabs API in `generate()` at line 45 with no try/except. The API key is read from `os.environ` with no fallback.
Understood: add graceful error handling for missing API key and API failures in the narration agent. Creating deliverables...
**Spec saved:** `docs/specs/2026-04-12-narration-error-handling-spec.md`
- Problem: Raw exception on missing API key, no error handling for API failures
- Success: Missing key → clear error message, API timeout → retry once then user-facing error
- Scope: `agents/narration/agent.py` only
**Plan saved:** `docs/plans/2026-04-12-narration-error-handling-plan.md`
- Phase 1: Add API key validation at agent init (1 task)
- Phase 2: Add try/except around API calls with retry logic (2 tasks)
- Phase 3: Add unit tests for error paths (1 task)
- Effort: S (1-2 hours)
**TODO saved:** `docs/plans/2026-04-12-narration-error-handling-TODO.md`
- M1: API key validation — 1 task
- M2: Error handling — 2 tasks (depends on M1)
- M3: Tests — 1 task
- 4 tasks total, all independently executable after dependencies met
Agents can pick up tasks from the TODO.
</output>
</example>
</examples>
---
## Common Rationalizations
| Excuse | Reality |
|--------|---------|
| Skip spec for small fix | Even narrow changes need traceable spec + plan + TODO. |
| One big TODO list | Change-spec + plan + agent-pickable TODO.md are separate artifacts. |
| No verification | Plan must name how to prove the fix. |
## Verification
- [ ] docs/specs + docs/plans + TODO.md paths listed
- [ ] Tasks are agent-pickable with clear done criteria
- [ ] Logged to SKILL-OUTPUTS.md
- [ ] Scope matches user-stated problem size
## Red Flags
- TODO tasks not self-contained for isolated agent execution
- Broad feature request forced into narrow change-spec
- Change-spec written as full feature-spec with FR/NFR bloat
- Success criteria missing from every TODO item
## Prune Log
Last pruned: 2026-07-08
- TODO tasks gain model: tier tags via model-selection (agent-loom upgrade Phase 2)
## Impact Report
`Problem planned: [title] Deliverables: spec + plan + TODO Spec: docs/specs/YYYY-MM-DD-<slug>-spec.md Plan: docs/plans/YYYY-MM-DD-<slug>-plan.md TODO: docs/plans/YYYY-MM-DD-<slug>-T`
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!