Project Planner
Prerequisites
- git
- gh (GitHub CLI, authenticated via
gh auth login)
Triage user input into the right project artifact: a proposal (big idea with phases),
a feature issue (small enhancement), or a bug report (something's broken).
Repo Discovery
Before doing anything, discover the current repo's configuration:
- Run
git rev-parse --show-toplevel to find the repo root
- Check for
.project-planner.yml at the repo root — if it exists, read it and
use its values for all paths, labels, and conventions
- If no config file, fall back to auto-discovery:
- Proposal template: look for
docs/proposals/TEMPLATE.md
- Issue templates: look in
.github/ISSUE_TEMPLATE/
- Docs directory: look for
docs/, mkdocs.yml
- If nothing found, use the fallback formats bundled with the skill
- If the repo has
CLAUDE.md or CONTRIBUTING.md, read for conventions
- Run
gh repo view --json name,owner to confirm the repo for issue creation
Config File: .project-planner.yml
Optional config file at repo root. All fields are optional — auto-discovery fills gaps.
See project-planner.yml in the skill directory for a copy-paste starter.
project: MyProject # project name (for issue titles)
repo: owner/repo # GitHub repo (usually auto-detected)
proposals:
dir: docs/proposals # where proposal docs live
template: docs/proposals/TEMPLATE.md # proposal template to follow
index: docs/proposals/index.md # index file to update with new proposals
mkdocs_nav: true # update mkdocs.yml nav when creating proposals
issues:
labels:
feature: enhancement # label for feature issues
bug: bug # label for bug issues
# branch_prefix: feature/ # branch naming prefix
# conventions:
# docs: docs # where project docs live
Triage Rules
Determine the type by asking: does this need design work or multiple phases?
- Needs design decisions, multiple phases, or architectural thought → Proposal
- Single, obvious change — no design needed → Feature issue
- Something is broken or behaving wrong → Bug report
If unclear, ask the user: "Is this a quick fix or does it need a design doc?"
Workflow: Proposal
For big ideas that need phases and design.
- Discover proposal template (see Repo Discovery above)
- Research the codebase and any docs/ directory for relevant context
- Think through the design — motivation, approach, trade-offs
- Break into shippable phases (each phase delivers user value)
- Write acceptance criteria at both levels (overall + per-phase)
- Create the proposal doc at
docs/proposals/<name>.md
- If
mkdocs.yml exists, add the proposal to the nav under Proposals
- If
docs/proposals/index.md exists, add to the Active Proposals list
- Create a GitHub issue for each phase using
gh issue create:
- Title:
<Proposal name>: Phase N — <phase name>
- Body: phase goal, acceptance criteria, tasks as checklist, link to proposal
- Label:
enhancement
- Update the proposal doc with issue links for each phase
- Commit to a new branch and push
Proposal Quality Checklist
Before committing, verify:
Workflow: Feature Issue
For small, self-contained enhancements.
- Discover feature template (see Repo Discovery above)
- Create a GitHub issue using
gh issue create:
- Title: clear, action-oriented
- Body: summary, acceptance criteria as checklist, doc references if relevant
- Follow the repo's template format if one exists
- Label:
enhancement
- Report the issue number and URL to the user
Workflow: Bug Report
For problems and broken behavior.
- Discover bug template (see Repo Discovery above)
- Try to identify the relevant code by searching the codebase
- Create a GitHub issue using
gh issue create:
- Title:
Bug: <concise description>
- Body: description, steps to reproduce (if known), expected vs actual,
relevant code files/lines, related docs
- Follow the repo's template format if one exists
- Label:
bug
- Report the issue number and URL to the user
Important Rules
- Always use
gh issue create — it's repo-aware, handles auth
- Always link back — issues reference proposals, proposals reference issues
- Proposals stay forever — status changes, docs never move or get deleted
- One proposal per feature — don't cram multiple ideas into one doc
- Phases must be shippable — each delivers user value, not just "backend work"
- Commit to a branch — never push directly to main
- Respect repo conventions — if the repo has CLAUDE.md or CONTRIBUTING.md, read
and follow its branch naming, commit message, and PR conventions
1---2name: project-planner3description: Triage ideas, problems, and feature requests into the right format: proposal doc, feature issue, or bug report. Repo-aware — discovers templates and docs structure from the current repository. Use when: (1) the user describes an idea, feature, or problem they want to track, (2) the user says "file a bug", "I have an idea", "let's plan this feature", or similar, (3) the user wants to break down a large feature into phases with GitHub issues. NOT for: actually implementing code (use coding-agent), reviewing PRs, or general questions about the codebase.4---56# Project Planner78## Prerequisites910- git11- gh (GitHub CLI, authenticated via `gh auth login`)1213Triage user input into the right project artifact: a **proposal** (big idea with phases),14a **feature issue** (small enhancement), or a **bug report** (something's broken).1516## Repo Discovery1718Before doing anything, discover the current repo's configuration:19201. Run `git rev-parse --show-toplevel` to find the repo root212. Check for `.project-planner.yml` at the repo root — if it exists, read it and22 use its values for all paths, labels, and conventions233. If no config file, fall back to auto-discovery:24 - Proposal template: look for `docs/proposals/TEMPLATE.md`25 - Issue templates: look in `.github/ISSUE_TEMPLATE/`26 - Docs directory: look for `docs/`, `mkdocs.yml`27 - If nothing found, use the fallback formats bundled with the skill284. If the repo has `CLAUDE.md` or `CONTRIBUTING.md`, read for conventions295. Run `gh repo view --json name,owner` to confirm the repo for issue creation3031### Config File: `.project-planner.yml`3233Optional config file at repo root. All fields are optional — auto-discovery fills gaps.34See `project-planner.yml` in the skill directory for a copy-paste starter.3536```yaml37project: MyProject # project name (for issue titles)38repo: owner/repo # GitHub repo (usually auto-detected)3940proposals:41 dir: docs/proposals # where proposal docs live42 template: docs/proposals/TEMPLATE.md # proposal template to follow43 index: docs/proposals/index.md # index file to update with new proposals44 mkdocs_nav: true # update mkdocs.yml nav when creating proposals4546issues:47 labels:48 feature: enhancement # label for feature issues49 bug: bug # label for bug issues50 # branch_prefix: feature/ # branch naming prefix5152# conventions:53# docs: docs # where project docs live54```5556## Triage Rules5758Determine the type by asking: **does this need design work or multiple phases?**5960- Needs design decisions, multiple phases, or architectural thought → **Proposal**61- Single, obvious change — no design needed → **Feature issue**62- Something is broken or behaving wrong → **Bug report**6364If unclear, ask the user: "Is this a quick fix or does it need a design doc?"6566## Workflow: Proposal6768For big ideas that need phases and design.69701. Discover proposal template (see Repo Discovery above)712. Research the codebase and any docs/ directory for relevant context723. Think through the design — motivation, approach, trade-offs734. Break into shippable phases (each phase delivers user value)745. Write acceptance criteria at both levels (overall + per-phase)756. Create the proposal doc at `docs/proposals/<name>.md`767. If `mkdocs.yml` exists, add the proposal to the nav under Proposals778. If `docs/proposals/index.md` exists, add to the Active Proposals list789. Create a GitHub issue for each phase using `gh issue create`:79 - Title: `<Proposal name>: Phase N — <phase name>`80 - Body: phase goal, acceptance criteria, tasks as checklist, link to proposal81 - Label: `enhancement`8210. Update the proposal doc with issue links for each phase8311. Commit to a new branch and push8485### Proposal Quality Checklist8687Before committing, verify:8889- [ ] Summary is one clear paragraph90- [ ] Motivation explains why now91- [ ] Design covers user experience AND technical approach92- [ ] Every phase is independently shippable93- [ ] Acceptance criteria are testable (not vague)94- [ ] Open questions section exists (even if empty)95- [ ] Related section links to relevant docs, issues, or design docs96- [ ] Status is set to "Ready" (if issues created) or "Draft" (if not)9798## Workflow: Feature Issue99100For small, self-contained enhancements.1011021. Discover feature template (see Repo Discovery above)1032. Create a GitHub issue using `gh issue create`:104 - Title: clear, action-oriented105 - Body: summary, acceptance criteria as checklist, doc references if relevant106 - Follow the repo's template format if one exists107 - Label: `enhancement`1083. Report the issue number and URL to the user109110## Workflow: Bug Report111112For problems and broken behavior.1131141. Discover bug template (see Repo Discovery above)1152. Try to identify the relevant code by searching the codebase1163. Create a GitHub issue using `gh issue create`:117 - Title: `Bug: <concise description>`118 - Body: description, steps to reproduce (if known), expected vs actual,119 relevant code files/lines, related docs120 - Follow the repo's template format if one exists121 - Label: `bug`1224. Report the issue number and URL to the user123124## Important Rules125126- **Always use `gh issue create`** — it's repo-aware, handles auth127- **Always link back** — issues reference proposals, proposals reference issues128- **Proposals stay forever** — status changes, docs never move or get deleted129- **One proposal per feature** — don't cram multiple ideas into one doc130- **Phases must be shippable** — each delivers user value, not just "backend work"131- **Commit to a branch** — never push directly to main132- **Respect repo conventions** — if the repo has CLAUDE.md or CONTRIBUTING.md, read133 and follow its branch naming, commit message, and PR conventions