GitHub Issues Planning
Establish a repeatable GitHub-native planning model with typed issues, explicit priorities, and parent-child relationships.
Requirements (Mandatory)
- GitHub CLI installed and reachable in PATH (
gh --version).
- GitHub authentication completed (
gh auth status).
- Python 3 launcher selected:
- macOS/Linux:
python3
- Windows (PowerShell/CMD):
py -3
- Target repository available:
- explicit
--repo owner/repo, or
- infer from current upstream repo via
gh repo view.
Triggering
Use this skill when the user asks for GitHub issue planning or taxonomy work.
Use this skill when requests include:
- Create GitHub epics, stories, bugs, findings, or work-items
- Set up issue labels and priorities for planning/tracking
- Define parent-child issue relationships in GitHub
- Use gh CLI to create and organize project issues
Do not use this skill when requests are unrelated to issue planning:
- Fix implementation code bugs without issue management changes
- Perform UI design-only work
- Configure CI runners or deployment infrastructure
Acceptance Tests
| Test ID |
Type |
Prompt / Condition |
Expected Result |
| GIP-T1 |
Positive trigger |
"Set up GitHub issue taxonomy for epics and stories" |
Skill triggers |
| GIP-T2 |
Positive trigger |
"Create a bug issue with priority and parent in GitHub" |
Skill triggers |
| GIP-T3 |
Negative trigger |
"Fix this TypeScript null check bug" |
Skill does not trigger |
| GIP-T4 |
Negative trigger |
"Create a landing page hero section" |
Skill does not trigger |
| GIP-T5 |
Behavior |
Skill is triggered for GitHub planning/tracking |
Prefer gh CLI/scripts for token efficiency; resolve target repo from user input or current upstream repo; optionally use MCP proxy + GitHub MCP tools; enforce labels/priorities/parent-child linkage; communicate requirements and platform-specific run commands clearly; verify native parent/child links |
Workflow
- Select transport first (
gh preferred).
- Preferred: use
gh CLI and local helper scripts for token-efficient execution.
- Optional fallback: use GitHub MCP tools when MCP is already configured or required by environment policy.
- Reference
skills/mcp-proxy/SKILL.md for centralized auth and token handling.
- Reference
skills/mcp-config/SKILL.md if MCP server discovery/config is needed.
- Reference
skills/mcp-client/SKILL.md when discovering/calling MCP tools dynamically.
- Verify prerequisites for the chosen transport.
- Set
<PYTHON> launcher first:
- macOS/Linux:
python3
- Windows:
py -3
- CLI path (default): run
<PYTHON> skills/github-issues-planning/scripts/gh_preflight.py.
- If CLI auth is missing, run
gh auth login (correct command) or <PYTHON> skills/github-issues-planning/scripts/gh_preflight.py --auto-login.
- MCP fallback path: ensure GitHub MCP server is available and authenticated via MCP proxy.
- Never ask for raw tokens in chat; use interactive login/proxy flows only.
- Resolve the target project/repository.
- If the user specifies a target repo, use it.
- Otherwise default to the current repo from
gh repo view --json nameWithOwner --jq .nameWithOwner.
- If resolution fails, ask for
owner/repo explicitly.
- Align issue taxonomy before creating items.
- Use these type labels:
type/epic, type/story, type/bug, type/finding, type/work-item.
- Use these priority labels:
priority/p0, priority/p1, priority/p2, priority/p3.
- Optional lifecycle labels:
status/backlog, status/in-progress, status/done.
- Create typed issues deterministically.
- CLI path (default): run
<PYTHON> skills/github-issues-planning/scripts/gh_issue_create.py --type <epic|story|bug|finding|work-item> --title \"...\" --priority <p0|p1|p2|p3> --parent <issue-number-optional>.
- Add
--repo <owner/repo> only when targeting a repo different from current upstream.
- MCP fallback path: use GitHub MCP issue creation/update tools with explicit type/priority labels and optional parent marker.
- Use dry-run and minimal field selection for sensitive repos.
- Enforce explicit TDD phase work items when applicable.
- If TDD is being performed for the scoped implementation, create explicit issues for:
[RED] ...
[GREEN] ...
[REFACTOR] ...
- These MUST be separate work items (usually
type/work-item) and MUST be executed in order.
- Link each phase natively to the parent story/feature/bug item, and capture dependency order:
GREEN blocked by RED
REFACTOR blocked by GREEN
- Encode parent-child relationship correctly.
- Always include
Parent: #<number> in child issue body when --parent is provided for human traceability.
- Treat body marker as trace text only; it is not a native GitHub relationship.
- Create native GitHub parent-child relationship via GitHub UI or API workflow supported by your environment.
- Verify native link exists before reporting hierarchy creation success.
- For epic parents, you may additionally maintain a child checklist in the epic body.
- Apply token-usage discipline.
- Fetch only required fields (avoid large body payloads unless parent parsing is required).
- Bound retrieval sizes (
per_page/limit) and scope (state, labels, assignee) before broad queries.
- Prefer incremental sync (
since-style filters) for repeated runs.
- Return a concise planning summary.
- Confirm requirements status (
gh, auth, Python launcher, target repo).
- Report created issue URL/number.
- Report resolved target repo and why (explicit vs inferred).
- Report issue type, priority, and parent reference.
- Report TDD phase issue creation and execution-order wiring status when applicable.
- Report whether MCP or CLI transport was used and why.
- Run backend-aware tracking verification before declaring planning complete.
- Verify using backend-native checks (no script dependency):
- GitHub: verify native parent/sub-issue relationships and expected item states from issue data.
- File-based: verify
.agent/queue item naming/state integrity.
- Resolve backend from config-first policy.
- If backend is
github, enforce native hierarchy + optional TDD chain via GitHub issue data.
- If backend is
file-based, validate .agent/queue/ filename/state integrity instead.
- Do not force GitHub verification when a non-GitHub backend is selected.
MCP Proxy And Tool References
- Proxy skill:
skills/mcp-proxy/SKILL.md
- MCP setup skill:
skills/mcp-config/SKILL.md
- MCP invocation skill:
skills/mcp-client/SKILL.md
- GitHub MCP tools to use when on MCP path:
mcp__github__create_issue
mcp__github__update_issue
mcp__github__list_issues
mcp__github__get_issue
mcp__github__add_issue_comment
Issue Conventions
| Concept |
GitHub Representation |
| Epic |
Issue with type/epic label |
| Story |
Issue with type/story label |
| Bug |
Issue with type/bug label |
| Finding |
Issue with type/finding label |
| Work-Item |
Issue with type/work-item label |
| Priority |
priority/p0 (highest) to priority/p3 |
| Parent-child |
Native GitHub parent-child link (required) + optional Parent: #<number> body marker |
Detailed examples: skills/github-issues-planning/references/issue-taxonomy.md
Validation Checklist
Output Contract
When this skill runs, produce:
- Transport status (MCP or CLI + auth state)
- Requirements status (
gh, auth, Python launcher, target repo)
- Exact command(s) used (or dry-run command)
- Created/updated issue IDs and URLs
- Type/priority/parent-child summary (including native-link verification status)
- Tracking verification result (backend-aware gate)
- Any blockers (missing permissions, missing repo access, auth failures)
1---2name: "github-issues-planning"3description: "Plan and structure GitHub Issues work for epics, stories, bugs, findings, and work-items with consistent labels, priorities, and parent-child links. Use when users ask to set up GitHub planning/tracking, create typed issues, define issue hierarchies, or enforce issue taxonomy via gh CLI (preferred for token efficiency) with optional GitHub MCP fallback."4category: "process"5scope: "development"6subcategory: "planning"7tags:8 - github9 - issues10 - planning11 - prioritization12 - tracking13version: "1.0.0"14author: "Karsten Samaschke"15contact-email: "karsten@vanillacore.net"16website: "https://vanillacore.net"17---1819# GitHub Issues Planning2021Establish a repeatable GitHub-native planning model with typed issues, explicit priorities, and parent-child relationships.2223## Requirements (Mandatory)2425- GitHub CLI installed and reachable in PATH (`gh --version`).26- GitHub authentication completed (`gh auth status`).27- Python 3 launcher selected:28 - macOS/Linux: `python3`29 - Windows (PowerShell/CMD): `py -3`30- Target repository available:31 - explicit `--repo owner/repo`, or32 - infer from current upstream repo via `gh repo view`.3334## Triggering3536Use this skill when the user asks for GitHub issue planning or taxonomy work.3738Use this skill when requests include:39- Create GitHub epics, stories, bugs, findings, or work-items40- Set up issue labels and priorities for planning/tracking41- Define parent-child issue relationships in GitHub42- Use gh CLI to create and organize project issues4344Do not use this skill when requests are unrelated to issue planning:45- Fix implementation code bugs without issue management changes46- Perform UI design-only work47- Configure CI runners or deployment infrastructure4849## Acceptance Tests5051| Test ID | Type | Prompt / Condition | Expected Result |52| --- | --- | --- | --- |53| GIP-T1 | Positive trigger | "Set up GitHub issue taxonomy for epics and stories" | Skill triggers |54| GIP-T2 | Positive trigger | "Create a bug issue with priority and parent in GitHub" | Skill triggers |55| GIP-T3 | Negative trigger | "Fix this TypeScript null check bug" | Skill does not trigger |56| GIP-T4 | Negative trigger | "Create a landing page hero section" | Skill does not trigger |57| GIP-T5 | Behavior | Skill is triggered for GitHub planning/tracking | Prefer gh CLI/scripts for token efficiency; resolve target repo from user input or current upstream repo; optionally use MCP proxy + GitHub MCP tools; enforce labels/priorities/parent-child linkage; communicate requirements and platform-specific run commands clearly; verify native parent/child links |5859## Workflow60611. Select transport first (`gh` preferred).62- Preferred: use `gh` CLI and local helper scripts for token-efficient execution.63- Optional fallback: use GitHub MCP tools when MCP is already configured or required by environment policy.64- Reference `skills/mcp-proxy/SKILL.md` for centralized auth and token handling.65- Reference `skills/mcp-config/SKILL.md` if MCP server discovery/config is needed.66- Reference `skills/mcp-client/SKILL.md` when discovering/calling MCP tools dynamically.67682. Verify prerequisites for the chosen transport.69- Set `<PYTHON>` launcher first:70 - macOS/Linux: `python3`71 - Windows: `py -3`72- CLI path (default): run `<PYTHON> skills/github-issues-planning/scripts/gh_preflight.py`.73- If CLI auth is missing, run `gh auth login` (correct command) or `<PYTHON> skills/github-issues-planning/scripts/gh_preflight.py --auto-login`.74- MCP fallback path: ensure GitHub MCP server is available and authenticated via MCP proxy.75- Never ask for raw tokens in chat; use interactive login/proxy flows only.76773. Resolve the target project/repository.78- If the user specifies a target repo, use it.79- Otherwise default to the current repo from `gh repo view --json nameWithOwner --jq .nameWithOwner`.80- If resolution fails, ask for `owner/repo` explicitly.81824. Align issue taxonomy before creating items.83- Use these type labels: `type/epic`, `type/story`, `type/bug`, `type/finding`, `type/work-item`.84- Use these priority labels: `priority/p0`, `priority/p1`, `priority/p2`, `priority/p3`.85- Optional lifecycle labels: `status/backlog`, `status/in-progress`, `status/done`.86875. Create typed issues deterministically.88- CLI path (default): run `<PYTHON> skills/github-issues-planning/scripts/gh_issue_create.py --type <epic|story|bug|finding|work-item> --title \"...\" --priority <p0|p1|p2|p3> --parent <issue-number-optional>`.89- Add `--repo <owner/repo>` only when targeting a repo different from current upstream.90- MCP fallback path: use GitHub MCP issue creation/update tools with explicit type/priority labels and optional parent marker.91- Use dry-run and minimal field selection for sensitive repos.92936. Enforce explicit TDD phase work items when applicable.94- If TDD is being performed for the scoped implementation, create explicit issues for:95 - `[RED] ...`96 - `[GREEN] ...`97 - `[REFACTOR] ...`98- These MUST be separate work items (usually `type/work-item`) and MUST be executed in order.99- Link each phase natively to the parent story/feature/bug item, and capture dependency order:100 - `GREEN` blocked by `RED`101 - `REFACTOR` blocked by `GREEN`1021037. Encode parent-child relationship correctly.104- Always include `Parent: #<number>` in child issue body when `--parent` is provided for human traceability.105- Treat body marker as trace text only; it is not a native GitHub relationship.106- Create native GitHub parent-child relationship via GitHub UI or API workflow supported by your environment.107- Verify native link exists before reporting hierarchy creation success.108- For epic parents, you may additionally maintain a child checklist in the epic body.1091108. Apply token-usage discipline.111- Fetch only required fields (avoid large body payloads unless parent parsing is required).112- Bound retrieval sizes (`per_page`/`limit`) and scope (`state`, labels, assignee) before broad queries.113- Prefer incremental sync (`since`-style filters) for repeated runs.1141159. Return a concise planning summary.116- Confirm requirements status (`gh`, auth, Python launcher, target repo).117- Report created issue URL/number.118- Report resolved target repo and why (explicit vs inferred).119- Report issue type, priority, and parent reference.120- Report TDD phase issue creation and execution-order wiring status when applicable.121- Report whether MCP or CLI transport was used and why.12212310. Run backend-aware tracking verification before declaring planning complete.124- Verify using backend-native checks (no script dependency):125 - GitHub: verify native parent/sub-issue relationships and expected item states from issue data.126 - File-based: verify `.agent/queue` item naming/state integrity.127- Resolve backend from config-first policy.128- If backend is `github`, enforce native hierarchy + optional TDD chain via GitHub issue data.129- If backend is `file-based`, validate `.agent/queue/` filename/state integrity instead.130- Do not force GitHub verification when a non-GitHub backend is selected.131132## MCP Proxy And Tool References133134- Proxy skill: `skills/mcp-proxy/SKILL.md`135- MCP setup skill: `skills/mcp-config/SKILL.md`136- MCP invocation skill: `skills/mcp-client/SKILL.md`137- GitHub MCP tools to use when on MCP path:138 - `mcp__github__create_issue`139 - `mcp__github__update_issue`140 - `mcp__github__list_issues`141 - `mcp__github__get_issue`142 - `mcp__github__add_issue_comment`143144## Issue Conventions145146| Concept | GitHub Representation |147| --- | --- |148| Epic | Issue with `type/epic` label |149| Story | Issue with `type/story` label |150| Bug | Issue with `type/bug` label |151| Finding | Issue with `type/finding` label |152| Work-Item | Issue with `type/work-item` label |153| Priority | `priority/p0` (highest) to `priority/p3` |154| Parent-child | Native GitHub parent-child link (required) + optional `Parent: #<number>` body marker |155156Detailed examples: `skills/github-issues-planning/references/issue-taxonomy.md`157158## Validation Checklist159160- [ ] `gh` CLI installed161- [ ] MCP proxy path validated, or `gh auth status` succeeds (fallback)162- [ ] Target repo resolved (explicit input or current upstream)163- [ ] Issue has one valid type label164- [ ] Issue has one valid priority label165- [ ] Parent trace marker is present when requested166- [ ] Native GitHub parent-child relationship is created and verified when requested167- [ ] Explicit TDD phase issues (`RED`/`GREEN`/`REFACTOR`) exist when TDD applies168- [ ] TDD phase dependencies enforce `RED -> GREEN -> REFACTOR`169- [ ] Backend-aware tracking verification executed (backend-native)170- [ ] Retrieval/creation scope is bounded for token efficiency171- [ ] Final response includes issue URL and metadata summary172173## Output Contract174175When this skill runs, produce:1761771. Transport status (MCP or CLI + auth state)1782. Requirements status (`gh`, auth, Python launcher, target repo)1793. Exact command(s) used (or dry-run command)1804. Created/updated issue IDs and URLs1815. Type/priority/parent-child summary (including native-link verification status)1826. Tracking verification result (backend-aware gate)1837. Any blockers (missing permissions, missing repo access, auth failures)