Help us improve
Share bugs, ideas, or general feedback.
From github
This skill should be used when the user wants to manage GitHub issues and project boards: creating issues (including Epics), expanding Epics into sub-issues, triaging issues with missing fields, or listing/filtering the project board. Activates on: "issue", "create issue", "new issue", "epic", "task", "bug", "feature issue", "project board", "board", "triage", "backlog", "pm", "expand epic", "sub-issue", "issue management", "creare issue", "nuova issue", "gestione progetto", "bacheca", "backlog".
npx claudepluginhub fabn/claude-plugins --plugin githubHow this skill is triggered — by the user, by Claude, or both
Slash command
/github:pmThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Project management workflow for GitHub issues and project boards. Supports four operations: **Create Issue**, **Expand Epic**, **Triage / Fix**, and **List / Explore Board**. Reads project config from CLAUDE.md; works without a board configured (skips board steps silently).
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.
Project management workflow for GitHub issues and project boards. Supports four operations: Create Issue, Expand Epic, Triage / Fix, and List / Explore Board. Reads project config from CLAUDE.md; works without a board configured (skips board steps silently).
mcp__github__*): issue_write, issue_read, list_issues, search_issues, list_issue_types, projects_list, projects_get, projects_write, sub_issue_writegh project item-add, gh project item-edit, gh repo viewgithub_project_number, github_project_owner)Read from the project's CLAUDE.md <!-- github-plugin-config --> block:
<!-- github_project_number: 2 -->
<!-- github_project_owner: fabn -->
If these keys are missing, the skill works without a project board — it creates issues but skips all board steps.
Ask the user which operation to perform via AskUserQuestion:
Then follow the workflow for the chosen operation.
Read the project's CLAUDE.md and extract github_project_number and github_project_owner from the <!-- github-plugin-config --> block. If missing, proceed without board — note this silently.
Run via Bash:
gh repo view --json owner,name
Extract owner and name for all subsequent GitHub MCP calls.
Ask via AskUserQuestion:
Before collecting fields, call mcp__github__search_issues with key words from the user's initial description to detect potential duplicates.
Gather issue details via AskUserQuestion (ask in batches, not one field at a time):
Always required:
Conditional:
Show a preview of the issue and ask the user to confirm via AskUserQuestion before creating anything.
Call mcp__github__issue_write to create the issue with the collected title and body.
If github_project_number is set:
Add the issue to the project:
gh project item-add <project_number> --owner <owner> --url <issue_url>
Capture the returned item-id from the output.
Discover field IDs — call mcp__github__projects_list with list_project_fields to get the node IDs for Priority and Size fields (do NOT cache these — discover fresh each time).
Set Priority:
gh project item-edit --project-id <project_id> --id <item_id> --field-id <priority_field_id> --single-select-option-id <option_id>
Set Size using the same pattern.
If the user specified a parent issue number, call mcp__github__sub_issue_write to link this issue as a sub-issue of the parent.
Report:
Ask the user for an Epic issue number, or search mcp__github__search_issues with is:open plus a label or type filter to find Epics. Present matches and ask the user to confirm which Epic to expand.
Call mcp__github__issue_read to get the Epic's title, body, and existing sub-issues.
Read the Epic body and suggest a breakdown of tasks. Ask the user to confirm, add, or remove tasks. Each task should be one sentence describing a specific deliverable.
Present a numbered preview list of all sub-issues to be created. Ask for confirmation before creating anything.
For each task in the confirmed list:
mcp__github__issue_write (inherit Epic's repo)mcp__github__sub_issue_write(epic_number, new_issue_number)Report a list of created issue URLs and their sub-issue links to the Epic.
Call mcp__github__list_issues to get open issues. Paginate if needed (batches of 10).
For each issue, check:
Present a table:
| # | Title | Missing |
|---|---|---|
| 12 | Add dark mode toggle | Priority, Size |
| 18 | Fix login redirect | Not on board |
| 23 | Refactor auth service | No parent |
Ask the user: "Fix all of these, or select specific ones?" Let the user choose via AskUserQuestion.
For each selected issue:
gh project item-add <project_number> --owner <owner> --url <issue_url>gh project item-edit with the appropriate field and option IDsmcp__github__sub_issue_writeReport how many issues were fixed and what was changed.
Read github_project_number from CLAUDE.md. If missing, fall back to mcp__github__list_issues and note that project board fields (Priority, Size, Status) will not be shown.
Ask via AskUserQuestion whether the user wants to filter by:
Call mcp__github__projects_list with list_project_items using the selected filters. If no project is configured, use mcp__github__list_issues.
Display results in a readable table:
| # | Title | Type | Status | Priority | Size |
|---|---|---|---|---|---|
| 7 | Add dark mode toggle | Feature | In progress | P1 | M |
| 12 | Fix login redirect | Bug | Ready | P0 | XS |
After displaying the board, ask via AskUserQuestion:
| Situation | Action |
|---|---|
No github_project_number in config | Work without board — offer to run /github:setup to configure one |
| Duplicate issue found | Show existing issue, ask whether to continue or abort |
gh project item-edit fails (field ID changed) | Re-discover field IDs via list_project_fields, retry once |
sub_issue_write fails (cross-repo) | Fall back to gh api GraphQL, note in summary |
| Issue type not available in repo | Use label as fallback, warn user |
list_project_items returns empty | Check project number and owner, suggest re-running /github:setup |
gh project item-add returns no item-id | Parse output carefully; retry with --format json flag |
| Board fields (Priority, Size) not found | Warn that the project may use different field names; show available fields |
/github:setup — Configure project defaults including github_project_number/github:feature — Feature branch workflow; conditionally moves linked issues to "In review"/github:release — Publish draft releases