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 githubThis skill uses the workspace's default tool permissions.
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).
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
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