Pages · Claude Github PMS
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.8.0] — 2026-04-29
Added
- gh-test-plan skill — generate testcase sub-issues from acceptance criteria (#17, PR #31)
- gh-search skill — ad-hoc issue queries beyond gh-status (#16, PR #30)
- gh-bulk skill — safe batch label / close / reassign / set-severity (#15, PR #29)
- Cross-repo plans — milestones spanning multiple repos (#14, PR #28)
Changed
- Per-kind gate evidence sections (bug-specific Reproduction + Regression test) (#18, PR #32)
[0.7.0] — 2026-04-29
Added
- gh-metrics skill — time-in-status, gate failure rate, throughput (#13, PR #27)
- Optional AI reviewer on Gate 4 (sub-agent code review before user approval) (#12, PR #26)
- Wire Effort field end-to-end (gh-feature input + gh-status velocity) (#11, PR #25)
- gh-reopen skill — re-enter a done issue at in-progress (#10, PR #24)
[0.6.0] — 2026-04-29
Added
- gh-triage skill — accept/reject/dedupe the type:request inbox (#8, PR #23)
- CI gate on Gate 4 — refuse review-ready when checks are red (#7, PR #22)
- Per-repo config in .github/gh-pms.yaml (#6, PR #21)
[0.5.0] — 2026-04-29
Added
- gh-release skill — bundle issues, bump version, generate changelog, tag (#5, PR #20)
- gh-context — summarize repo history at session start (#9, PR #19)
[0.4.0] — 2026-04-29
Added — Severity is first-class on every issue kind
Severity (critical | high | medium | low) was bug-only in v0.3. v0.4 makes it a first-class dimension on every issue kind so a P0 feature blocking launch is meaningfully different from a polish item — that signal is no longer lost. Closes #2.
- Canonical scale in
workflows/default.yaml#severities— single source of truth (default: medium+ four-value list with label + Project field mapping). All severity-aware skills reference this list, so per-repo severity scales become a config-only change. gh-featureskill — accepts an optionalseverityinput on every kind (not just hotfix). Defaults tomedium. Applies both theseverity:*label and (when a Project v2 board is attached) theSeverityfield. Hotfixes still default tocritical.gh-taskskill — sub-issue tasks inherit the parent feature's severity by default; can be overridden when the task is meaningfully more or less urgent than its parent. Checkbox tasks inherit implicitly.gh-bugskill — drops its privatecritical | high | medium | lowdefinition; references the workflow file instead. Same defaults, same behavior, one source of truth.gh-statusskill — within each Status bucket on the dashboard, issues are sorted by severity (Critical → Low) so urgent items surface first regardless of kind. Legend added to the example output.- Templates —
feature.md,chore.md, andtestcase.mdgain a## Severitysection.plan.mdandprd.mdstay exempt (they aggregate child severities). gh-pms-orchestratoragent — skill-routing table calls outseverityas an optional input on the relevant skills, plus a paragraph noting severity is first-class across kinds.
Changed
- Plugin manifest —
version: 0.3.0 → 0.4.0.
Backwards compatibility
- Existing issues without a
severity:*label remain valid. - Skills called without
severitygetmediumand are not blocked. gh-bugconsumers see no behavior change.gh-init bootstrap-labelsalready creates the four severity labels; no re-bootstrapping needed.
[0.3.0] — 2026-04-29
Added — gh-push skill + branching policy
gh-pushskill — Ship completed work in one command. Composes commit (with conventional prefix and(#N)issue reference), branch push, PR open withCloses #N, Gate 4 self-review evidence,AskUserQuestionapproval gate, andgh pr merge(configurable style). Auto-flips statusdocumented → in-review → doneon approval; routes back toin-progressonNeeds edits. Mirrors the popular/pushskill but PR-aware and lifecycle-integrated. Supports--message,--no-merge,--admin,--squash/--merge/--rebase,--dry,--forceflags.- Branching policy — New
branchingblock inworkflows/default.yamlenforcing the rule every feature must end with a linked PR.protected_base(default:main/master) andpr_required_kinds(default: feature / bug / hotfix / chore / testcase) define what cannot be committed directly to the base.branch_template(default:{kind_short}/{number}-{slug}) controls auto-generated branch names.pr_must_close_issue: truerequiresCloses #Nin every PR body.
Changed
gh-current— Now creates the feature branch automatically when starting apr_required_kindsissue from aprotected_basecheckout. Recordsbranch+basein the per-issue state file sogh-pushcan find them later. The "🚧 Work started" comment now mentions the branch name.gh-advance— Gate 1 (in-progress → ready-for-testing) refuses to advance feature work that is still on the protected base branch. The error message walks the user throughgit switch -c …rescue. Bypassable per-issue with the[gh-pms: branch-exception]marker for legacy state.gh-pms-orchestratoragent — Skill-routing table now includesgh-push. Hard-rules section adds "never commit feature work directly to aprotected_basebranch" and "every feature must end with a linked PR containingCloses #N".- Plugin manifest —
version: 0.2.0 → 0.3.0.
Known issues
lib/validate-evidence.shuses bash 4+ associative arrays (declare -A); macOS ships bash 3.2.57 by default and the script errors withdeclare: -A: invalid option. Skills currently fall back to manual section-length + file-existence checks on macOS. Tracked separately for a portability rewrite.
[0.2.0] — 2026-04-29
Added — GitHub-native primitives
The plugin now uses GitHub's first-class project-management features rather than leaning on labels for everything.
- Issue Types — When the repo's owner is an organization with Issue Types enabled (Feature, Bug, Task), the plugin sets the native type via GraphQL
updateIssue.issueTypeIdinstead of (or in addition to)type:*labels. User-account repos and orgs without types fall back to labels seamlessly. - Projects v2 —
gh-init --with-projectprovisions agh-pmsproject with custom fields (Status, Severity, Effort, Service). All issue creation skills add new issues to the project;gh-currentandgh-advanceupdate the project'sStatusfield as the canonical source of truth. - Milestones for plans —
gh-plannow creates a GitHub Milestone (with optional due date) as the primary plan primitive. The tracker issue still exists for narrative context, but progress and grouping live on the milestone.gh-breakdownattaches every child issue to the milestone via--milestoneso GitHub's native progress bar reflects work completion. gh-relateskill — New skill for managing relationships:depends_on,blocks,related_to,duplicate_of. Encodes both ends (e.g.## Depends onon source,## Blockson target) and uses GitHub's native cross-reference timeline.duplicate_ofauto-closes the source with thenot plannedreason.- Auto-detection — New
lib/ghcall.sh detect-featuressubcommand reports which native primitives are available in the current repo.gh-inituses this to decide what to provision. set-statusunified setter —lib/ghcall.sh set-status <issue> "<Status Name>"updates BOTH thestatus:*label AND the Project v2 Status field atomically. Skills no longer touch labels directly for status.
Changed
workflows/default.yaml— addedgithub_featuresblock (issue_types,projects,milestones,fallback_to_labels,project_name,project_fields),kind_to_issue_typemapping, andrelationshipsdefinitions.lib/ghcall.sh— gained 14 new subcommands:detect-features,ensure-project,ensure-project-field,project-item-add,project-item-set-field,ensure-milestone,issue-set-milestone,close-milestone,set-issue-type,resolve-issue-type-id,issue-node-id,issue-relate,duplicate-of,set-status.gh-init— now performs feature detection, optionally creates a Project, and provisions custom fields. Old label-only path is preserved as fallback.gh-plan— creates a Milestone first; the tracker issue links to it.gh-feature/gh-bug— set native Issue Type after creation when available; add to project; attach to milestone if working under a plan.gh-breakdown— attaches every child to the parent plan's milestone and to the project board.gh-current/gh-advance— update the Project Status field via the unified setter (label + project field, atomic).gh-status— reads from the Project board first when one exists; shows milestone progress bars for plans.
Notes
- Token scope: Projects v2 features require the
projectscope.gh-initchecks for it and instructs the user to rungh auth refresh -s projectif missing. - Org vs user accounts: Issue Types are an org-level GitHub feature. Repos under user accounts fall back to
type:*labels — no change in behavior, just no native types available. - Backwards compatible: All changes preserve the v0.1 label-only flow as a fallback. Existing repos that bootstrapped with v0.1 keep working without re-running
gh-init.
[0.1.0] — 2026-04-29
Added — Initial release
- Marketplace + plugin manifests
- 12 skills:
gh-init,gh-plan,gh-breakdown,gh-feature,gh-bug,gh-task,gh-current,gh-advance,gh-validate,gh-review,gh-request,gh-status gh-pms-orchestratoragent for full-lifecycle delegation- 3 hooks:
UserPromptSubmit(classify + remind),PreToolUseon PR create (enforceCloses #N),Stop(stale-issue surface) - 5-gate workflow with kind-specific skips, WIP guardrail, gate cooldown
- 7 issue templates + PR template
- Lib scripts:
classify.sh,validate-evidence.sh,ghcall.sh