Orchestrate the planning workflow (Idea → Plan → VD → WO → TASK/FIX) for SUM Platform releases and infrastructure initiatives. Use when starting a new version or initiative, creating planning artifacts, or generating GitHub issues from planning markdown. Follows PROJECT-PLANNING-GUIDELINES.md and creates deterministic, AI-executable TASK tickets.
Orchestrate version planning for SUM Platform releases and infrastructure initiatives.
This skill guides you through the complete planning workflow from initial idea to GitHub issues, ensuring all planning artifacts follow PROJECT-PLANNING-GUIDELINES.md and creating AI-executable TASK tickets.
/plan or $plan — Direct skill invocationThe skill should auto-activate when the user's prompt matches these patterns:
Disambiguation: If user says "start a release" without "planning", ASK: "Do you want to (A) plan the release (create VD/WO/TASK), or (B) execute the release (run RELEASE_AGENT_PROMPT)?"
This skill implements a 7-stage workflow mapped to docs/dev/planning/PROJECT-PLANNING-GUIDELINES.md:
Stage 1: Version Identification
├─ Determine flow type: release/* or infra/*
├─ Gather required inputs
└─ Verify/create parent VD branch
Stage 2: Author Planning Markdown on docs/planning-* (SSOT)
├─ Create docs/planning-* branch from VD branch
├─ Write planning files (VD/IMPLEMENTATION_PLAN/WO/TASK)
├─ Run RCI quality gate for all TASKs
├─ Commit planning markdown
└─ Open DRAFT PR with Bypass Justification
Stage 3: Review Planning PR (Draft)
├─ Verify all planning files exist
├─ Verify Branch tables populated
├─ Verify RCI passed for all TASKs
└─ Keep PR in draft until approved
Stage 4: Create GitHub Issues (after approval, PR still draft)
├─ Create VD issue
├─ Create WO issues (with component labels)
├─ Create TASK issues (with component labels)
├─ Link hierarchy: gh sub-issue add
└─ Assign to project board (manual via UI)
Stage 5: Backfill Issue Numbers + Sync Bodies + Mark PR Ready
├─ Build Issue Index in IMPLEMENTATION_PLAN.md
├─ Replace #TBD with real issue numbers
├─ Commit backfill changes on docs/planning-* branch
├─ Sync ALL issue bodies: gh issue edit --body-file
└─ Mark PR ready for review
Stage 6: Merge Planning PR + Final Verification
├─ Merge planning PR into VD branch
├─ Verify zero #TBD remaining
├─ Verify sub-issue hierarchy matches
├─ Verify Branch tables accurate
└─ Verify issue bodies match planning files
Stage 7: Execution Handoff (Feature Branch Pre-Create)
├─ PM/admin pre-creates feature/* branches before first task
└─ Tasks branch from feature/* per Branch tables
Key Principle: Planning markdown is authored on a docs/planning-* branch, reviewed and approved before issues are created, then backfilled and merged. Planning markdown is the SSOT; issue bodies are copies.
Stop gate: Cannot proceed without all required inputs.
| Input | Required | When | Stop Gate |
|---|---|---|---|
| Flow type | Yes | Always | Ask if ambiguous: "release or infra?" |
| Version number | Yes (if release/*) | Release planning | Ask if missing |
| Initiative name | Yes (if infra/*) | Infrastructure planning | Ask if missing |
| Parent VD branch | Check | Always | Create if missing |
Release planning (release/*):
sum-core versionInfrastructure planning (infra/*):
Commands:
# Release planning
git checkout develop
git pull origin develop
git checkout -b release/0.8.0
git push -u origin release/0.8.0
# Infrastructure planning
git checkout develop
git pull origin develop
git checkout -b infra/scale-infrastructure
git push -u origin infra/scale-infrastructure
Path A (Rigorous) — Use when ANY apply:
Path B (Lightweight) — Use ONLY when ALL true:
Upgrade rule: If Path B reveals unexpected complexity, upgrade to Path A BEFORE creating GitHub issues.
Default: When in doubt, use Path A.
Infrastructure planning: Always uses dynamic planning (similar to Path A).
Rule: Planning markdown is authored on a docs/planning-* branch and reviewed in a draft PR before issue creation.
For releases:
planning/releases/<version>/
├── VD.md
├── IMPLEMENTATION_PLAN.md
└── WO/
├── <work-order-slug>.md
└── <work-order-slug>/
└── TASK/
└── <task-slug>.md
For infrastructure:
planning/infra/<initiative>/
├── VD.md
├── IMPLEMENTATION_PLAN.md
└── WO/
├── <work-order-slug>.md
└── <work-order-slug>/
└── TASK/
└── <task-slug>.md
VD.md:
.github/ISSUE_TEMPLATE/version-declaration-template.md (exclude YAML frontmatter)#TBD for issue numbers (not yet created)references/template-field-checklist.md for complete field listIMPLEMENTATION_PLAN.md:
WO/<slug>.md:
.github/ISSUE_TEMPLATE/work-order-template.md (exclude YAML frontmatter)#TBD for parent VD issue numberreferences/template-field-checklist.md for complete field listTASK/<slug>.md:
.github/ISSUE_TEMPLATE/task-template.md (exclude YAML frontmatter)#TBD for parent WO issue numberreferences/template-field-checklist.md for complete field listPurpose: Ensure every TASK is AI-executable (not "human nice").
Process:
references/rci-critique-prompts.md)Stop gate questions (all must be "yes"):
If any answer is "no": Revise the TASK before moving to Stage 3.
Full RCI details: See references/rci-critique-prompts.md
# Release planning
git checkout release/<version>
git pull origin release/<version>
git checkout -b docs/planning-<version>
git add planning/releases/<version>/
git commit -m "chore(plan): initialize v<version> planning"
git push -u origin docs/planning-<version>
gh pr create --base release/<version> --head docs/planning-<version> --draft \
--title "docs(planning): initialize v<version> plan" \
--body "$(cat <<'EOF'
## Summary
- Initialize planning docs for v<version>
## Testing
- N/A (planning docs only)
## Bypass Justification
Planning docs must be reviewed and approved before issue creation.
EOF
)"
# Infrastructure planning
git checkout infra/<initiative>
git pull origin infra/<initiative>
git checkout -b docs/planning-<initiative>
git add planning/infra/<initiative>/
git commit -m "chore(plan): initialize <initiative> planning"
git push -u origin docs/planning-<initiative>
gh pr create --base infra/<initiative> --head docs/planning-<initiative> --draft \
--title "docs(planning): initialize <initiative> plan" \
--body "$(cat <<'EOF'
## Summary
- Initialize planning docs for <initiative>
## Testing
- N/A (planning docs only)
## Bypass Justification
Planning docs must be reviewed and approved before issue creation.
EOF
)"
Checklist:
<parent-branch>)Stop gate: If any checkbox unchecked, return to Stage 2 and fix before proceeding.
Prerequisites:
docs/planning-* branch with the planning filesImportant: gh sub-issue create does not support --body-file. Use two-step flow: create issue, then link to parent.
Full command blocks: See references/github-issue-commands.md for copy/paste-ready commands for both release and infra flows.
gh issue create --body-file VD.md (no component label)gh issue create --body-file WO/<slug>.md (with component label)gh issue create --body-file TASK/<slug>.md (with component label)gh sub-issue add <parent> <child> (VD→WO, WO→TASK)Release: VD: v<version> - <title> (with leading v)
Infrastructure: VD: <Initiative Title> (no version prefix)
Valid values: component:core, component:cli, component:boilerplate, component:themes, component:docs
Rule: VD issues do NOT require component labels. WO and TASK issues MUST have exactly one.
Full command blocks: See references/github-issue-commands.md for copy/paste-ready commands for both release and infra flows.
IMPLEMENTATION_PLAN.md (table: Type | # | Planning File)#TBD placeholders with real issue numbers in all planning markdowndocs/planning-*): chore(plan): link v<version> issues (or link <initiative> issues)gh issue edit <num> --body-file <file>.md for each issuegh pr ready <PR_NUMBER>Merge step:
Checklist:
#TBD remaining: grep -r "#TBD" planning/ returns nothingContract 5 check (per issue):
ISSUE=123
FILE=planning/releases/0.8.0/WO/dynamic-forms/TASK/add-form-serializer.md
gh issue view "$ISSUE" --json body -q .body > /tmp/issue-body.md
diff -u "$FILE" /tmp/issue-body.md && echo "✓ In sync" || echo "✗ MISMATCH"
If mismatch found: STOP, reconcile planning file and issue body, then resume.
Optional verification script (run from repo root):
~/.claude/skills/plan/scripts/verify-planning-tree.sh planning/releases/0.8.0
feature/<work-order-slug> from the VD branch before the first task starts.feature/<work-order-slug> per the Branch table.Planning markdown files are the single source of truth. GitHub issue bodies are created by copying planning markdown. If an issue body must change, update planning markdown first, then sync to GitHub.
When creating planning files, copy content from .github/ISSUE_TEMPLATE/*.md but exclude YAML frontmatter.
After creating each GitHub issue, update planning markdown with actual issue number (replace #TBD), commit on the docs/planning-* branch, then sync issue bodies.
Every planning file's Branch table must be copy/paste ready (no placeholders), verified against docs/dev/GIT_STRATEGY.md.
Before starting any TASK/FIX, verify planning file matches issue body using diff command. STOP if mismatch found.
All issues must have required labels and milestone:
type:version-declaration, milestone, project board (no component label)type:work-order, component:*, milestone, project boardtype:task, component:*, milestone, project boardreferences/planning-runbook-summary.md — Stop-gates and invariants checklistreferences/template-field-checklist.md — Required fields per issue typereferences/rci-critique-prompts.md — Quality gate prompts for TASK writingreferences/github-issue-commands.md — Copy/paste-ready commands for Stage 4 + 5scripts/verify-planning-tree.sh — Verify SSOT ↔ GitHub syncdocs/dev/planning/PROJECT-PLANNING-GUIDELINES.md — Full planning workflowdocs/dev/GIT_STRATEGY.md — Branch model + naming rulesdocs/dev/DOCUMENT_PROPAGATION_POLICY.md — SSOT + sync rules.github/ISSUE_TEMPLATE/version-declaration-template.md — VD issue template.github/ISSUE_TEMPLATE/work-order-template.md — WO issue template.github/ISSUE_TEMPLATE/task-template.md — TASK issue templateInstallation: .claude/skills/plan/ (checked into repo)
Propagation: Global operational control (SSOT: develop, propagates to all active VDs)
Compatibility: Claude Code only (user-scope installation)