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-planning3description: 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.4---56# GitHub Issues Planning78Establish a repeatable GitHub-native planning model with typed issues, explicit priorities, and parent-child relationships.910## Requirements (Mandatory)1112- GitHub CLI installed and reachable in PATH (`gh --version`).13- GitHub authentication completed (`gh auth status`).14- Python 3 launcher selected:15 - macOS/Linux: `python3`16 - Windows (PowerShell/CMD): `py -3`17- Target repository available:18 - explicit `--repo owner/repo`, or19 - infer from current upstream repo via `gh repo view`.2021## Triggering2223Use this skill when the user asks for GitHub issue planning or taxonomy work.2425Use this skill when requests include:26- Create GitHub epics, stories, bugs, findings, or work-items27- Set up issue labels and priorities for planning/tracking28- Define parent-child issue relationships in GitHub29- Use gh CLI to create and organize project issues3031Do not use this skill when requests are unrelated to issue planning:32- Fix implementation code bugs without issue management changes33- Perform UI design-only work34- Configure CI runners or deployment infrastructure3536## Acceptance Tests3738| Test ID | Type | Prompt / Condition | Expected Result |39| --- | --- | --- | --- |40| GIP-T1 | Positive trigger | "Set up GitHub issue taxonomy for epics and stories" | Skill triggers |41| GIP-T2 | Positive trigger | "Create a bug issue with priority and parent in GitHub" | Skill triggers |42| GIP-T3 | Negative trigger | "Fix this TypeScript null check bug" | Skill does not trigger |43| GIP-T4 | Negative trigger | "Create a landing page hero section" | Skill does not trigger |44| 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 |4546## Workflow47481. Select transport first (`gh` preferred).49- Preferred: use `gh` CLI and local helper scripts for token-efficient execution.50- Optional fallback: use GitHub MCP tools when MCP is already configured or required by environment policy.51- Reference `skills/mcp-proxy/SKILL.md` for centralized auth and token handling.52- Reference `skills/mcp-config/SKILL.md` if MCP server discovery/config is needed.53- Reference `skills/mcp-client/SKILL.md` when discovering/calling MCP tools dynamically.54552. Verify prerequisites for the chosen transport.56- Set `<PYTHON>` launcher first:57 - macOS/Linux: `python3`58 - Windows: `py -3`59- CLI path (default): run `<PYTHON> skills/github-issues-planning/scripts/gh_preflight.py`.60- If CLI auth is missing, run `gh auth login` (correct command) or `<PYTHON> skills/github-issues-planning/scripts/gh_preflight.py --auto-login`.61- MCP fallback path: ensure GitHub MCP server is available and authenticated via MCP proxy.62- Never ask for raw tokens in chat; use interactive login/proxy flows only.63643. Resolve the target project/repository.65- If the user specifies a target repo, use it.66- Otherwise default to the current repo from `gh repo view --json nameWithOwner --jq .nameWithOwner`.67- If resolution fails, ask for `owner/repo` explicitly.68694. Align issue taxonomy before creating items.70- Use these type labels: `type/epic`, `type/story`, `type/bug`, `type/finding`, `type/work-item`.71- Use these priority labels: `priority/p0`, `priority/p1`, `priority/p2`, `priority/p3`.72- Optional lifecycle labels: `status/backlog`, `status/in-progress`, `status/done`.73745. Create typed issues deterministically.75- 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>`.76- Add `--repo <owner/repo>` only when targeting a repo different from current upstream.77- MCP fallback path: use GitHub MCP issue creation/update tools with explicit type/priority labels and optional parent marker.78- Use dry-run and minimal field selection for sensitive repos.79806. Enforce explicit TDD phase work items when applicable.81- If TDD is being performed for the scoped implementation, create explicit issues for:82 - `[RED] ...`83 - `[GREEN] ...`84 - `[REFACTOR] ...`85- These MUST be separate work items (usually `type/work-item`) and MUST be executed in order.86- Link each phase natively to the parent story/feature/bug item, and capture dependency order:87 - `GREEN` blocked by `RED`88 - `REFACTOR` blocked by `GREEN`89907. Encode parent-child relationship correctly.91- Always include `Parent: #<number>` in child issue body when `--parent` is provided for human traceability.92- Treat body marker as trace text only; it is not a native GitHub relationship.93- Create native GitHub parent-child relationship via GitHub UI or API workflow supported by your environment.94- Verify native link exists before reporting hierarchy creation success.95- For epic parents, you may additionally maintain a child checklist in the epic body.96978. Apply token-usage discipline.98- Fetch only required fields (avoid large body payloads unless parent parsing is required).99- Bound retrieval sizes (`per_page`/`limit`) and scope (`state`, labels, assignee) before broad queries.100- Prefer incremental sync (`since`-style filters) for repeated runs.1011029. Return a concise planning summary.103- Confirm requirements status (`gh`, auth, Python launcher, target repo).104- Report created issue URL/number.105- Report resolved target repo and why (explicit vs inferred).106- Report issue type, priority, and parent reference.107- Report TDD phase issue creation and execution-order wiring status when applicable.108- Report whether MCP or CLI transport was used and why.10911010. Run backend-aware tracking verification before declaring planning complete.111- Verify using backend-native checks (no script dependency):112 - GitHub: verify native parent/sub-issue relationships and expected item states from issue data.113 - File-based: verify `.agent/queue` item naming/state integrity.114- Resolve backend from config-first policy.115- If backend is `github`, enforce native hierarchy + optional TDD chain via GitHub issue data.116- If backend is `file-based`, validate `.agent/queue/` filename/state integrity instead.117- Do not force GitHub verification when a non-GitHub backend is selected.118119## MCP Proxy And Tool References120121- Proxy skill: `skills/mcp-proxy/SKILL.md`122- MCP setup skill: `skills/mcp-config/SKILL.md`123- MCP invocation skill: `skills/mcp-client/SKILL.md`124- GitHub MCP tools to use when on MCP path:125 - `mcp__github__create_issue`126 - `mcp__github__update_issue`127 - `mcp__github__list_issues`128 - `mcp__github__get_issue`129 - `mcp__github__add_issue_comment`130131## Issue Conventions132133| Concept | GitHub Representation |134| --- | --- |135| Epic | Issue with `type/epic` label |136| Story | Issue with `type/story` label |137| Bug | Issue with `type/bug` label |138| Finding | Issue with `type/finding` label |139| Work-Item | Issue with `type/work-item` label |140| Priority | `priority/p0` (highest) to `priority/p3` |141| Parent-child | Native GitHub parent-child link (required) + optional `Parent: #<number>` body marker |142143Detailed examples: `skills/github-issues-planning/references/issue-taxonomy.md`144145## Validation Checklist146147- [ ] `gh` CLI installed148- [ ] MCP proxy path validated, or `gh auth status` succeeds (fallback)149- [ ] Target repo resolved (explicit input or current upstream)150- [ ] Issue has one valid type label151- [ ] Issue has one valid priority label152- [ ] Parent trace marker is present when requested153- [ ] Native GitHub parent-child relationship is created and verified when requested154- [ ] Explicit TDD phase issues (`RED`/`GREEN`/`REFACTOR`) exist when TDD applies155- [ ] TDD phase dependencies enforce `RED -> GREEN -> REFACTOR`156- [ ] Backend-aware tracking verification executed (backend-native)157- [ ] Retrieval/creation scope is bounded for token efficiency158- [ ] Final response includes issue URL and metadata summary159160## Output Contract161162When this skill runs, produce:1631641. Transport status (MCP or CLI + auth state)1652. Requirements status (`gh`, auth, Python launcher, target repo)1663. Exact command(s) used (or dry-run command)1674. Created/updated issue IDs and URLs1685. Type/priority/parent-child summary (including native-link verification status)1696. Tracking verification result (backend-aware gate)1707. Any blockers (missing permissions, missing repo access, auth failures)