From cornerman
Ranks open issues by user impact for "what to work on next" planning. Mutates the repo — leaves a resurface comment + impact-ranking label on each existing issue it surfaces, and creates a Feature issue for any net-new idea. Optionally accepts a count argument (default 5).
How this skill is triggered — by the user, by Claude, or both
Slash command
/cornerman:feature-impact-rankingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You're producing an "N most impactful features" ranking for the project, and you'll **mutate the repo** as a side effect — every item that surfaces gets either a resurface comment on its existing issue or a new `Feature` issue if no matching one exists. Output: a markdown report the human can read for the synthesized reasoning.
You're producing an "N most impactful features" ranking for the project, and you'll mutate the repo as a side effect — every item that surfaces gets either a resurface comment on its existing issue or a new Feature issue if no matching one exists. Output: a markdown report the human can read for the synthesized reasoning.
Read .claude/project.yaml. You need:
project.repo — split into <owner>/<repo>github.issue_types.feature — the org-level Feature type node ID (used when filing net-new)github.milestones — the allowed milestone list (highest urgency first, conventionally)github.project_board.* — project board IDs + status field + status options (for board placement, if applicable)product.prd — PRD path (for canonical priority signal)github.token_env_var — the env var holding the GitHub tokenIf .claude/project.yaml doesn't exist, stop and surface — direct the user to run /bootstrap-project first.
N — number of top features to surface
5 (weekly "what next" scan)10 for a quarterly-ish planning viewmcp__github__*) per CLAUDE.md § "GitHub tooling"product.prd — read the Functional Requirements (with P0/P1 priority) and Non-Functional Requirements for canonical priority signalgithub.milestones — treat their listed order as urgency (manifest convention: highest urgency first)github.project_board.id is set): Backlog / Ready / In Progress / In Review / DoneTask / Bug / Feature (org-level types, not labels)mcp__github__issue_read (method: "get") and look at issue_dependencies_summary.blocked_byimpact-ranking — apply to every issue this skill touches (existing or new). If the label doesn't yet exist in the repo, create it before tagging.For each item in the top-N ranking, you MUST:
mcp__github__search_issues with broad keywords from the feature (scope to repo:<owner>/<repo> in the query), then inspect titles + bodies of the top hits. Be liberal in considering matches — if 80% of the scope overlaps, treat it as the same feature (don't split). Also scan closed issues for cases where something was deferred or punted.mcp__github__add_issue_comment with the resurface rationale (see comment template below)impact-ranking label via mcp__github__issue_write (method: "update", labels: [...existing, "impact-ranking"] — fetch existing first via issue_read since MCP replaces the full label set)mcp__github__issue_write (method: "create")Feature — set via the updateIssueIssueType GraphQL mutation after creation, using the type ID from github.issue_types.featureimpact-ranking plus anything else applicablespec-issue-file skill if you want the full metadata pipeline (type + milestone + board placement) applied at create timeFor cut-list items: do not mutate. The cut list exists only to give the human context on what didn't make the cut and why.
## Resurfaced by impact-ranking — YYYY-MM-DD
**Rank in this run: #X of N.**
<one paragraph from the per-item reasoning — anchored in PRD or
user-flow consequences, not vague>
_Posted by the `feature-impact-ranking` skill. To exclude this issue
from future runs, remove the `impact-ranking` label._
min(N, 8) runners-up with one-line "didn't make the cut because…" reasons.Anchor primarily on:
github.milestones are higher impact for now than later-listed onesDe-prioritize:
question label (those are waiting on a human, not on engineering)deferred label (explicitly deprioritized — leave alone)N=10, under 800 for N=5Markdown, paste-ready into a GitHub issue comment. End with a short Mutations performed summary so the human can scan what landed in the repo without re-reading the per-item entries:
## Mutations performed
- Commented + labeled #N (rank 1)
- Commented + labeled #N (rank 2)
- Created new issue #N (rank 5) — Feature, milestone <name>
- ...
npx claudepluginhub boutlabs/claude-plugins --plugin cornermanCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.