Help us improve
Share bugs, ideas, or general feedback.
From plangate
Phase lifecycle management. Use 'start N [description]' to begin a phase (branch + PLAN.md update) or 'finish [N]' to complete it (gate + PR creation).
npx claudepluginhub bishnubista/plangate --plugin plangateHow this skill is triggered — by the user, by Claude, or both
Slash command
/plangate:phaseThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Manages the lifecycle of PLAN.md phases: starting a phase (creating a branch, updating status) and finishing it (running gates, creating PRs). Enforces the branch-per-phase convention and ensures PRs are never created without validation.
Implements the next incomplete phase of a plan by reading a plan file, finding unchecked items, implementing them, running feedback loops, and offering to commit. One phase per invocation.
Executes multi-phase implementation plans by dispatching tasks to sub-agents, tracking progress per-task in plan.json, and coordinating sequential phases.
Guides technical evaluation of code review feedback: read fully, restate for understanding, verify against codebase, respond with reasoning or pushback before implementing.
Share bugs, ideas, or general feedback.
Manages the lifecycle of PLAN.md phases: starting a phase (creating a branch, updating status) and finishing it (running gates, creating PRs). Enforces the branch-per-phase convention and ensures PRs are never created without validation.
/plangate:phase start N [description] — Start phase N with optional description/plangate:phase finish [N] — Finish current or specified phasegit status
Verify:
main or a base branchIf working tree is dirty, warn the user and ask whether to stash or commit first.
Read PLAN.md and find Phase {N}. Extract:
If the argument doesn't include a description, derive one from the phase title in PLAN.md.
Generate branch name following convention:
feat/phase-{N}-{kebab-case-description}
Examples:
feat/phase-1-foundation-and-setupfeat/phase-2-core-api-endpointsfeat/phase-3-auth-and-permissionsgit checkout -b feat/phase-{N}-{description}
Check if .plangate/ is in .gitignore. If not, add it:
grep -q '\.plangate/' .gitignore 2>/dev/null || echo -e '\n# Plangate orchestration state\n.plangate/' >> .gitignore
This prevents checkpoint files from being committed. Stage the .gitignore change if modified.
Change the phase status to "In Progress":
**Status: In Progress**)git commit -m "chore: start phase {N} — {description}"Phase {N} started.
Branch: feat/phase-{N}-{description}
Tasks: {count} tasks to complete
Ready to implement. Use /plangate:orchestrate {N} to begin task execution.
If phase number is provided, use it. Otherwise, detect from current branch name:
git branch --show-current
Parse feat/phase-{N}-... to extract N.
Read PLAN.md and check that ALL tasks for this phase are checked off (- [x]).
If any tasks are unchecked (- [ ]), warn:
Phase {N} has {count} uncompleted tasks:
- [ ] {task 1}
- [ ] {task 2}
Complete all tasks before finishing the phase.
STOP — do not proceed with incomplete tasks.
Invoke the plangate:gate skill. This runs typecheck + lint + build + tests.
If the gate fails, STOP. Report the failures and do not proceed to PR creation.
Update the phase status to "Complete":
**Status: Complete**git commit -m "chore: complete phase {N}"First, verify a remote exists:
git remote get-url origin 2>/dev/null
If no remote is configured:
gh repo create, or skip the PR step?"gh repo create {project-name} --private --source=. --push, then push main separately (git push origin main)If remote exists, push:
git push -u origin feat/phase-{N}-{description}
Create PR using the user's template:
gh pr create --base main --head feat/phase-{N}-{description} \
--title "feat(phase-{N}): {phase title}" \
--body "$(cat <<'EOF'
## Summary
{2-3 bullet points summarizing what this phase implemented}
## Implementation
{Key technical decisions and approaches}
## Testing
{What was tested and how}
## Technical Details
{Architecture notes, migration details, etc.}
## Next Phase
{What Phase N+1 will cover, if applicable}
🤖 Generated with [Claude Code](https://claude.com/claude-code)
EOF
)"
Phase {N} complete!
PR: {PR_URL}
Branch: feat/phase-{N}-{description}
Summary:
- {count} tasks completed
- All gates passed (typecheck, lint, build, tests)
- PR created and ready for review
The pre-PR gate is mandatory. Even if you "just ran it" during orchestration, run it again. Code may have changed.
Phase start and finish get their own clean commits (chore: prefix). Implementation commits use feat: or fix: prefixes.
Each phase gets its own branch. Never mix phases on a single branch.
plangate:orchestrate for task execution within a phaseplangate:gate for validation before PR creation