Skip to content

@tank/github-issues

0.1.0

GitHub Issues expert via gh CLI. Full issue lifecycle, templates/forms (.yml/.md), search, labels/milestones/Projects v2, gh api scripting, bulk ops, Actions automation, issue-driven development. Triggers: github issue, gh issue, issue template, issue form, create issue, close issue, triage, label, milestone, stale issues, bulk close, search issues, ISSUE_TEMPLATE, config.yml, issue-driven development, gh search issues, gh label, sub-issues, gh issue develop.


name: "@tank/github-issues" description: | Expert management of GitHub Issues via the gh CLI and GitHub platform. Covers the full issue lifecycle: creating, triaging, editing, closing, and linking issues to PRs. Includes issue templates (classic .md and modern YAML forms), search and filtering, label taxonomy design, milestones, Projects v2 integration, gh api scripting for bulk operations, GitHub Actions automation (stale, labeler, auto-assign, welcome bot), and issue-driven development workflows. Synthesizes GitHub CLI documentation, GitHub REST/GraphQL API reference, GitHub Actions marketplace, and production OSS issue management patterns.

Trigger phrases: "github issue", "gh issue", "create issue", "close issue", "issue template", "issue form", "ISSUE_TEMPLATE", "triage issue", "label issue", "milestone", "stale issues", "bulk close issues", "search issues", "gh search issues", "issue automation", "config.yml blank issues", "issue-driven", "sub-issues", "gh issue develop", "gh label", "issue workflow", "gh api issues", "bulk operations issues", "issue forms yaml", "closing keywords fixes closes resolves"

GitHub Issues

Core Philosophy

  1. Issues are the unit of work -- Every code change traces back to an issue. No issue, no PR. This creates accountability and traceability.
  2. Triage within 48 hours -- Every new issue gets classified, labeled, and either accepted, closed, or flagged for more info within 2 days.
  3. Structure beats freedom -- Use Issue Forms (.yml) over classic templates. Enforce required fields. Disable blank issues. Structured input produces actionable issues.
  4. Automate the boring parts -- Labeling, staleness, assignment, and project routing belong in GitHub Actions, not human checklists.
  5. gh CLI is the primary interface -- Every issue operation is faster from the terminal. Master gh issue, gh search issues, and gh api.

Quick-Start: What Do You Need?

TaskStart Here
Create, view, edit, close an issueSee references/gh-issue-commands.md
Find issues matching specific criteriaSee references/search-and-filter.md
Set up issue templates for a repoSee references/issue-templates.md
Design label taxonomy, manage milestones/projectsSee references/labels-milestones-projects.md
Bulk operations, API scripting, CSV exportSee references/api-and-scripting.md
Set up GitHub Actions for issue automationSee references/automation-actions.md
Issue-driven development, triage, linking patternsSee references/workflows-and-patterns.md

Command Routing Table

IntentCommand
List open issuesgh issue list
List with filtersgh issue list -l bug -a @me -s open
Create an issuegh issue create -t "Title" -b "Body" -l bug
View issue detailsgh issue view 123
Edit issue metadatagh issue edit 123 --add-label "priority/high"
Close with reasongh issue close 123 -r completed -c "Fixed in #456"
Reopen an issuegh issue reopen 123
Comment on issuegh issue comment 123 -b "Thanks for reporting"
Create branch from issuegh issue develop 123 --checkout
Search across reposgh search issues "bug" --owner myorg --state open
Transfer to another repogh issue transfer 123 owner/other-repo
Pin important issuegh issue pin 123
Lock conversationgh issue lock 123 -r resolved
Delete issuegh issue delete 123 --yes
Bulk close by labelgh issue list -l stale --json number -q '.[].number' | xargs -I{} gh issue close {}

Decision Trees

Issue Template Format

SignalUse
Need structured fields with validationIssue Form (.yml)
Need free-form markdown bodyClassic template (.md)
Need to enforce required fieldsIssue Form (.yml)
Need code input with syntax highlightingIssue Form with render attribute
Migrating from existing .md templatesConvert to .yml for better UX

Close or Keep Open?

SignalDecision
Fixed by merged PRClose with --reason completed
Won't implement, by designClose with --reason "not planned"
Duplicate of existing issueClose, comment with link to original
Can't reproduce, no response in 14 daysClose with --reason "not planned"
Needs more info, reporter activeKeep open, add status/needs-info label
Valid but low priorityKeep open, add to Backlog milestone
Security vulnerabilityDo NOT use public issue. Use security advisory.

When to Use Sub-Issues vs Task Lists

SignalUse
Multiple distinct work items, separate assigneesSub-issues
Simple checklist within one person's workTask list (markdown checkboxes)
Cross-repo breakdown of an epicSub-issues (same org)
Progress tracking visible in ProjectsSub-issues
Quick TODO within an issue bodyTask list

Issue Lifecycle Keywords

Auto-close an issue when a PR merges to the default branch:

Fixes #42        Closes #42        Resolves #42
fixes #42        closes #42        resolves #42
Fixed #42        Closed #42        Resolved #42

Multiple issues: Fixes #42, closes #43, resolves #100

Cross-repo: Fixes owner/other-repo#42

Anti-Patterns

Do NotDo Instead
Report security bugs as public issuesUse private vulnerability reporting
Close issues without explanationAlways add closing comment with reason
Create labels without descriptionsAdd description to every label
Assign 5+ people to one issueMax 1-2 assignees; mention teams in comments
Use blank issues when templates existSet blank_issues_enabled: false in config.yml
Manually add issues to projectsUse auto-add project workflows
Create one giant issue for a featureBreak into sub-issues with parent epic
Use closing keywords in non-default branch PRsKeywords only auto-close from default branch

Reference Files

FileContents
references/gh-issue-commands.mdComplete gh issue subcommand reference: status, list, create, view, edit, close, reopen, comment, delete, transfer, lock, unlock, pin, unpin, develop — all flags, JSON fields, examples
references/search-and-filter.mdgh search issues and gh issue list --search — all qualifiers, cross-repo search, common search recipes, JSON/JQ extraction
references/issue-templates.mdClassic templates (.md) and Issue Forms (.yml) — all YAML fields, form element types, config.yml, URL pre-filling, validation errors, production examples
references/labels-milestones-projects.mdLabel taxonomy design, gh label commands, milestone strategies, Projects v2 integration, custom fields, issue types, hierarchy view
references/api-and-scripting.mdgh api REST and GraphQL patterns, pagination, JQ recipes, bulk operations, CSV export, aliases, authentication, rate limits
references/automation-actions.mdGitHub Actions workflows: auto-label, stale management, auto-assign, welcome bot, lock threads, add-to-project, template validation — complete YAML
references/workflows-and-patterns.mdIssue-Driven Development lifecycle, triage workflow, cross-referencing, sub-issues, Discussion-to-Issue, security advisories, monorepo patterns, anti-patterns

Command Palette

Search skills, docs, and navigate Tank