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:
- 1. 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
- 3. 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
- 4. 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.
CODEBLOCK0
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.
- 1. 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 INLINECODE12
- 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
- 10. Update the proposal doc with issue links for each phase
- Commit to a new branch and push
Proposal Quality Checklist
Before committing, verify:
- - [ ] Summary is one clear paragraph
- [ ] Motivation explains why now
- [ ] Design covers user experience AND technical approach
- [ ] Every phase is independently shippable
- [ ] Acceptance criteria are testable (not vague)
- [ ] Open questions section exists (even if empty)
- [ ] Related section links to relevant docs, issues, or design docs
- [ ] Status is set to "Ready" (if issues created) or "Draft" (if not)
Workflow: Feature Issue
For small, self-contained enhancements.
- 1. 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
- 3. Report the issue number and URL to the user
Workflow: Bug Report
For problems and broken behavior.
- 1. 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
- 4. 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
项目规划器
前置条件
- - git
- gh(GitHub CLI,通过 gh auth login 进行身份验证)
将用户输入分类到正确的项目工件中:提案(包含阶段的大创意)、功能问题(小型增强)或缺陷报告(某些功能异常)。
仓库发现
在执行任何操作前,发现当前仓库的配置:
- 1. 运行 git rev-parse --show-toplevel 查找仓库根目录
- 检查仓库根目录是否存在 .project-planner.yml —— 如果存在,读取并使用其值作为所有路径、标签和约定的依据
- 如果没有配置文件,回退到自动发现:
- 提案模板:查找 docs/proposals/TEMPLATE.md
- 问题模板:查找 .github/ISSUE_TEMPLATE/
- 文档目录:查找 docs/、mkdocs.yml
- 如果未找到任何内容,使用技能自带的回退格式
- 4. 如果仓库包含 CLAUDE.md 或 CONTRIBUTING.md,读取其中的约定
- 运行 gh repo view --json name,owner 确认用于创建问题的仓库
配置文件:.project-planner.yml
位于仓库根目录的可选配置文件。所有字段均为可选 —— 自动发现会填补空缺。
请参阅技能目录中的 project-planner.yml 获取可直接复制使用的入门模板。
yaml
project: MyProject # 项目名称(用于问题标题)
repo: owner/repo # GitHub 仓库(通常自动检测)
proposals:
dir: docs/proposals # 提案文档存放目录
template: docs/proposals/TEMPLATE.md # 要遵循的提案模板
index: docs/proposals/index.md # 用于更新新提案的索引文件
mkdocs_nav: true # 创建提案时更新 mkdocs.yml 导航
issues:
labels:
feature: enhancement # 功能问题的标签
bug: bug # 缺陷问题的标签
# branch_prefix: feature/ # 分支命名前缀
conventions:
docs: docs # 项目文档存放位置
分类规则
通过询问确定类型:这需要设计工作或多个阶段吗?
- - 需要设计决策、多个阶段或架构思考 → 提案
- 单一、明确的变更 —— 无需设计 → 功能问题
- 某些功能异常或行为错误 → 缺陷报告
如果不明确,询问用户:这是一个快速修复还是需要设计文档?
工作流程:提案
适用于需要阶段和设计的大创意。
- 1. 发现提案模板(参见上述仓库发现)
- 研究代码库和任何 docs/ 目录以获取相关上下文
- 思考设计 —— 动机、方法、权衡
- 拆分为可交付的阶段(每个阶段交付用户价值)
- 在两个层级(整体 + 每个阶段)编写验收标准
- 在 docs/proposals/<名称>.md 创建提案文档
- 如果存在 mkdocs.yml,将提案添加到导航的 Proposals 部分
- 如果存在 docs/proposals/index.md,添加到活跃提案列表
- 使用 gh issue create 为每个阶段创建 GitHub 问题:
- 标题:<提案名称>: 阶段 N — <阶段名称>
- 正文:阶段目标、验收标准、任务清单、提案链接
- 标签:enhancement
- 10. 使用每个阶段的问题链接更新提案文档
- 提交到新分支并推送
提案质量检查清单
在提交前,验证:
- - [ ] 摘要是一个清晰的段落
- [ ] 动机解释了为什么是现在
- [ ] 设计涵盖用户体验和技术方案
- [ ] 每个阶段均可独立交付
- [ ] 验收标准是可测试的(不模糊)
- [ ] 存在开放问题部分(即使为空)
- [ ] 相关部分链接到相关文档、问题或设计文档
- [ ] 状态设置为就绪(如果已创建问题)或草稿(如果未创建)
工作流程:功能问题
适用于小型、独立的功能增强。
- 1. 发现功能模板(参见上述仓库发现)
- 使用 gh issue create 创建 GitHub 问题:
- 标题:清晰、以行动为导向
- 正文:摘要、验收标准清单、相关文档引用(如有)
- 如果存在,遵循仓库的模板格式
- 标签:enhancement
- 3. 向用户报告问题编号和 URL
工作流程:缺陷报告
适用于问题和异常行为。
- 1. 发现缺陷模板(参见上述仓库发现)
- 尝试通过搜索代码库识别相关代码
- 使用 gh issue create 创建 GitHub 问题:
- 标题:缺陷:<简洁描述>
- 正文:描述、复现步骤(如已知)、预期与实际结果、相关代码文件/行、相关文档
- 如果存在,遵循仓库的模板格式
- 标签:bug
- 4. 向用户报告问题编号和 URL
重要规则
- - 始终使用 gh issue create —— 它能感知仓库、处理身份验证
- 始终建立链接 —— 问题引用提案,提案引用问题
- 提案永久保留 —— 状态变更,文档永不移动或删除
- 每个功能一个提案 —— 不要将多个想法塞入一个文档
- 阶段必须可交付 —— 每个阶段交付用户价值,而不仅仅是后端工作
- 提交到分支 —— 永远不要直接推送到主分支
- 尊重仓库约定 —— 如果仓库包含 CLAUDE.md 或 CONTRIBUTING.md,阅读并遵循其分支命名、提交消息和 PR 约定