gh-advancelisted
Install: claude install-skill fadymondy/gh-pms
# gh-advance
Move an issue forward through its lifecycle, enforcing the gate.
## What it does
1. Read target issue: `mcp__github__issue_read({issue_number})`
2. Determine current status from labels (the unique `status:*` label)
3. Determine target status:
- If user specifies one ("move to in-testing"), use it
- Otherwise advance to the natural next status per workflow:
- in-progress → ready-for-testing (Gate 1)
- in-testing → ready-for-docs (Gate 2)
- in-docs → documented (Gate 3, auto-skipped for bug/hotfix/testcase — go straight to documented with placeholder comment)
- documented → in-review (Gate 4, requires PR)
- in-review → done (Gate 5, requires user approval)
4. Look up the gate for `from → to` in `workflows/default.yaml`
5. **If free transition**: update via the unified setter (updates Project Status field + status:* label):
```bash
${CLAUDE_PLUGIN_ROOT}/lib/ghcall.sh set-status {N} "{Target Status Name}"
```
Done.
6. **Branch-policy pre-check (Gate 1 only)**: per `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-r