github-plan

Plan durable work in GitHub issues with sub-issues, blockers, milestones, and Projects.

5|1|Updated May 5, 2026
One-click install
npx skills add https://github.com/cbusillo/codex-skills --skill github-plan-cbusillo
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: github-plan
Source: https://github.com/cbusillo/codex-skills/tree/main/skills/github-plan
Command: npx skills add https://github.com/cbusillo/codex-skills --skill github-plan-cbusillo

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Long-running work tracked only in chat gets lost between sessions. This Skill turns GitHub issues into a durable planning database so plans, blockers, relationships, and recovery state survive across conversations and stay aligned as reality changes. ## Core Features & Use Cases - Durable Plan Issues: Create, search, update, and close canonical planning issues with structured sections like Current Status and Finish Line, using the gh-plan.py helper for compact, idempotent operations. - Issue Graph Management: Model broad workstreams with parent issues, native sub-issues, and blocked-by/blocks relationships, including cross-repository gates. - Milestones and Projects: Manage milestones as strict release gates and use GitHub Projects Focus lanes (Now, Next, Waiting, Later) as view layers over the canonical issue graph. - Use Case: A user asks "what's next in this workstream?" The Skill runs gh-plan.py next to rank actionable plans from native blockers, Focus fields, and milestone context, then updates Current Status on the canonical parent issue before continuing work. ## Quick Start Ask the agent to plan a multi-part feature as a GitHub parent issue with sub-issues and blockers using the github-plan workflow.

Frequently Asked Questions about github-plan

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I track long-running work in GitHub issues?

Create one canonical planning issue with the plan label, keep a structured Current Status section as the recovery point, and link sub-issues and native blocked-by relationships for dependencies. Update the issue graph as reality changes rather than relying on chat history.

When should I create a parent issue with sub-issues on GitHub?

Use a parent issue plus sub-issues when work touches three or more modules or repos, has independent sequencing or parallelizable tracks, or mixes research, implementation, and validation. Each child issue gets one scoped finish line and one next action.

Can I use GitHub Projects as my planning source of truth?

No. GitHub Projects and similar surfaces are view layers only; GitHub issues remain canonical for plan prose, relationships, blockers, labels, and completion state. Project fields like Focus (Now, Next, Waiting, Later) provide prioritization context but never override native blockers.

Why does closing a completed plan issue fail with open blockers?

Completed closure requires every native blocked-by target and sub-issue to be closed first; the helper runs a relationship preflight and fails before any mutation. Use --reason not_planned for superseded work, which retains and reports open blockers instead.

What is the difference between plan:blocked and plan:waiting labels?

plan:blocked means a real current dependency exists, preferably a native blocked-by relationship to an open issue. plan:waiting means work is parked on a non-issue condition like a decision or external event, recorded as Waiting for: in Current Status.