From gh-pms
Advance an issue to the next workflow status with evidence. Validates the gate per `workflows/default.yaml` — required `## Sections`, file paths, cooldown, kind-specific skips. Mirrors Orchestra MCP's `advance_feature`. Auto-invoke when the user says "tests pass for
How this skill is triggered — by the user, by Claude, or both
Slash command
/gh-pms:gh-advanceThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Move an issue forward through its lifecycle, enforcing the gate.
Move an issue forward through its lifecycle, enforcing the gate.
mcp__github__issue_read({issue_number})status:* label)from → to in workflows/default.yaml${CLAUDE_PLUGIN_ROOT}/lib/ghcall.sh set-status {N} "{Target Status Name}"
Done.workflows/default.yaml#branching.gate1_refuses_protected_base, before validating Gate 1 evidence, check the current git branch. If it is in branching.protected_base (default: main / master) AND the issue's kind is in branching.pr_required_kinds, REJECT:
Gate 1 BLOCKED: feature work must be on a branch, not on `{base}`.
Run: git checkout -b {kind_short}/{N}-{slug}
git cherry-pick / git reset to move your commits onto the branch.
Re-run /gh-pms:gh-advance #{N} from the branch.
Skip this check only if the issue body or a comment contains the literal string [gh-pms: branch-exception] (a one-off escape hatch — should be rare).~/.cache/gh-pms/state.json[issue_key].last_transition_at. If < 30s ago, REJECT:
Gate cooldown: last transition was {N}s ago. Wait {30-N}s and verify your evidence is real, not boilerplate.
b. Build the evidence comment from the user's input. The user provides evidence either inline or as a structured payload. Format MUST be:
## {Section1}
{content, ≥10 chars}
## {Section2}
{content, ≥10 chars, with file paths if required}
c. Run lib/validate-evidence.sh (via Bash tool) — passes evidence + gate spec, returns { valid: bool, errors: [...] }
d. If invalid, STOP and report each error:
Gate {gate_id} BLOCKED:
✗ Missing section: ## Verification
✗ ## Changes has only 4 chars (min 10)
✗ ## Changes has no file paths (require_file_paths: true)
Fix the evidence and re-run.
e. If valid:
mcp__github__add_issue_comment${CLAUDE_PLUGIN_ROOT}/lib/ghcall.sh set-status {N} "{Target Status Name}"
~/.cache/gh-pms/state.json[issue_key].last_transition_at = now()current_status = to✓ Gate {gate_id} passed
#{N} {title}: status:{from} → status:{to}
Evidence: {comment_url}
Next: {next-action-hint}
Closes #{N} in body. Use mcp__github__list_pull_requests to find any PR mentioning the issue number. If no PR exists, route the user to /gh-pms:gh-push #{N} which handles push + PR creation + review-request in one shot. Then run the CI check:
${CLAUDE_PLUGIN_ROOT}/lib/check-pr-checks.sh <PR-number>
--ignore-checks "<reason>", skip the refusal but append a ## Check overrides section to the gate evidence comment with the reason. This is for cases like "flaky linter, will fix in follow-up #123" — the audit trail is the point. Don't let it become a habit; the cooldown won't help here./gh-pms:gh-review's submit_review step. Return:
Cannot advance to status:done directly. Use /gh-pms:gh-review to request user approval, then submit the decision.
Per workflows/default.yaml gates[*].skip_for_kinds:
bug, hotfix, testcase → skip Gate 3 (docs)Gate 3 auto-skipped (kind: bug) and proceed ready-for-docs → documented in one move.gh-current not here (advance assumes you're already current)## Changes and ## Checklist must contain at least one path that exists in the repo (- prefix list, validate via Bash test -f)lib/validate-evidence.sh uses bash 4+ associative arrays. On systems with only bash 3 (default on macOS), the validator errors with declare: -A: invalid option. Until the script is rewritten, fall back to a manual section-length + file-existence check before posting evidence; this is a known plugin issue tracked separately.After Gate 4 passes, the agent calls AskUserQuestion to ask: "Approve PR #X / Closes #N?" with options Approve / Needs Edits. Then runs /gh-pms:gh-review with the decision.
npx claudepluginhub fadymondy/gh-pms --plugin gh-pmsGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.