Converts planning documents or ADRs into a source-of-truth GitHub issue and linked, actionable work beads.
Install
mkdir -p .claude/skills/plan-to-beads && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/19049" && unzip -o skill.zip -d .claude/skills/plan-to-beads && rm skill.zipInstalls to .claude/skills/plan-to-beads
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
MUST use this skill whenever creating multiple beads from a plan, design doc, ADR, roadmap, or feature description. Raises the design as a GitHub issue (the source of truth), then creates lightweight beads that link to it. Trigger on: 'break down', 'create beads for', 'turn this into beads/tasks', 'set up the work for', 'populate the backlog', or any request to decompose a document into work items.Key capabilities
- →Read source material like plans, ADRs, or inline text.
- →Raise the design as a GitHub issue using `file-issue` or `gh issue create`.
- →Structure the GitHub issue with context, design, scope, phases, and acceptance criteria.
- →Design a two-level bead hierarchy of epics and tasks.
- →Map dependencies between beads.
- →Create lightweight beads linked to the GitHub issue with specific priorities and labels.
How it works
The skill reads a design document, creates a GitHub issue to serve as the source of truth for the design, and then generates a hierarchy of lightweight beads that link back to the GitHub issue for detailed context.
Inputs & outputs
When to use plan-to-beads
- →Creating project backlogs
- →Decomposing feature plans
- →Linking tasks to design docs
- →Setting up work items from ADRs
About this skill
Plan to Beads
Turn a plan into a GitHub issue (the design home) and lightweight beads that link to it.
Philosophy
Beads track what to do and dependencies. The how and why live in the GitHub issue body — never in a committed spec file. Spec files in the repo rot faster than the code and mislead future readers; GitHub issues close when the work ships and stay searchable forever. (Yegge, Issue #976)
Hard rule: never create docs/specs/*.md or any committed spec/plan markdown. If a worker needs context, the GitHub issue is where it lives.
Workflow
1. Read the source material
The user will provide a plan, ADR, inline text, or file path. Read it carefully. If it references other documents (ADRs, product overview), read those too for context.
2. Raise the design as a GitHub issue
Use the file-issue skill (or gh issue create directly) to capture the full design context in the issue body. The issue is the source of truth for how and why. Structure it for the agent who'll implement the work:
## Context
Why this work exists and what problem it solves.
## Design
How it should be built — architecture, patterns, constraints, key decisions.
Reference ADRs where applicable (e.g., "See ADR-0006 for polling model").
## Scope
What's in and out.
## Phases / Steps
Each phase is a sub-section that beads will link to via `#phase-1`-style anchors.
### Phase 1: <name>
What to build, key constraints, what done looks like.
### Phase 2: <name>
...
## Acceptance criteria
Testable checkboxes.
Capture the issue number/URL — every bead will reference it.
3. Design the bead hierarchy
Flat two-level: epics contain tasks. Each task = smallest scope producing a testable, meaningful outcome.
Consolidation pass
Merge plan items into a single bead when:
- Same files touched
- Thin slices of one concept
- Meaningless in isolation
- Shared setup dominates (80%+)
Do NOT merge when:
- Stories span different tech areas (different workers)
- Different dependency chains
- Combined scope too large (~3+ test cases = consider splitting)
4. Map dependencies
Data flow, API contracts, infrastructure, shared domain models. Wire with bd dep add <issue> <depends-on>.
5. Create lightweight beads
Present the hierarchy to the user for confirmation, then create:
bd create --title="<concise title>" \
--description="GH: https://github.com/<org>/<repo>/issues/<n>#phase-1" \
--type=task --priority=2 --parent=<epic-id> \
--labels=api
Bead descriptions are one line — the GitHub issue reference (with anchor when there are multiple phases). The worker runs gh issue view <n> for full context.
Use --priority: P1 (foundational, blocks everything), P2 (default), P3 (nice-to-have).
Use --labels for tech area routing: api, ios, web, infra, data.
6. Verify
bd list --status=open — show what was created. Call out the dependency chain and the linked GitHub issue.
Example
Given a plan for "PlanIt Polling Service" with 4 items:
- Raise GitHub issue:
feat: PlanIt polling servicewith the full design (Context, Design, Scope, Phases). Suppose it gets number#234. - Create beads:
Epic: "PlanIt polling service" (type=epic, P2)
desc: "GH: https://github.com/<org>/town-crier/issues/234"
|- Task: "PlanIt API client with response mapping and backoff" (P1, labels: api)
| desc: "GH: https://github.com/<org>/town-crier/issues/234#phase-1-api-client"
|- Task: "Cosmos DB application upsert, idempotent on PlanIt name" (P1, labels: api,data)
| desc: "GH: https://github.com/<org>/town-crier/issues/234#phase-2-persistence"
+- Task: "Background polling loop with configurable interval" (P2, labels: api)
desc: "GH: https://github.com/<org>/town-crier/issues/234#phase-3-polling-loop"
depends on: API client + persistence
Three lightweight beads, one GitHub issue with all the context.
Constraints
- Never create a spec file in the repo (
docs/specs/*.mdor anywhere else). - Always raise the GitHub issue before creating beads.
- Always get user confirmation before creating beads.
- Priority is 0-4 numeric, not "high"/"medium"/"low".
- If the plan references ADRs, read them for context on constraints.
When not to use it
- →When creating `docs/specs/*.md` or any committed spec/plan markdown.
- →When not needing to decompose a document into work items.
Limitations
- →Never create a spec file in the repository.
- →Always raise the GitHub issue before creating beads.
- →Always get user confirmation before creating beads.
How it compares
This skill centralizes design context in a GitHub issue and creates minimal, linked tracking items, preventing spec file proliferation and ensuring traceability, unlike creating separate spec files and unlinked tasks.
Compared to similar skills
plan-to-beads side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| plan-to-beads (this skill) | 0 | 2mo | Review | Intermediate |
| planning-with-files | 233 | 6mo | Review | Intermediate |
| product-requirements | 8 | 7mo | No flags | Intermediate |
| ticket-manager | 1 | 5mo | No flags | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
planning-with-files
davila7
Implements Manus-style file-based planning for complex tasks. Creates task_plan.md, findings.md, and progress.md. Use when starting complex multi-step tasks, research projects, or any task requiring >5 tool calls.
product-requirements
cexll
Interactive Product Owner skill for requirements gathering, analysis, and PRD generation. Triggers when users request product requirements, feature specification, PRD creation, or need help understanding and documenting project requirements. Uses quality scoring and iterative dialogue to ensure comprehensive requirements before generating professional PRD documents.
ticket-manager
galz10
Expertise in managing Linear tickets locally using Markdown files. Use when you need to create, update, search, or break down features into atomic implementation tickets.
master-plan-manager
ananddtyagi
Safe MASTER_PLAN.md management with backup, validation, and intelligent updates. Use when updating task tracking, adding features to roadmap, or modifying project documentation.
concise-planning
davila7
Use when a user asks for a plan for a coding task, to generate a clear, actionable, and atomic checklist.
planning-with-files-de
OthmanAdi
Manus-artiges Dateiplanungssystem zur Organisation und Verfolgung des Fortschritts komplexer Aufgaben. Erstellt task_plan.md, findings.md und progress.md. Wird verwendet, wenn der Benutzer plant, zerlegt oder organisiert: mehrstufige Projekte, Forschungsaufgaben oder Arbeiten mit über 5 Tool-Aufrufe