About this skill
This skill empowers an AI agent to manage GitHub issues within a repository. It allows users to create new issues with specified titles, bodies, and optional labels; list open issues to quickly see their status and basic details; and view comprehensive information for a specific issue. By leveraging the `gh` command-line tool, the skill provides a seamless and conversational interface for interacting with GitHub's issue tracking system, enhancing an agent's ability to support development and project management workflows.
Best use case
Developers, project managers, and team members can use this skill to streamline their workflow by managing GitHub issues directly from their AI agent environment. It's ideal for quickly reporting bugs, tracking tasks, reviewing project progress, or getting details on specific issues during a conversation, without needing to switch contexts to the GitHub web interface.
Interact with GitHub issues - create, list, and view issues.
Users can expect to successfully create new GitHub issues with specified details, receive a clear and concise list of open issues in the current repository, or get comprehensive information about a specific issue. The agent will guide the user through the necessary inputs for each action, providing confirmation or requested data upon completion.
Practical example
Example input
User: "Hey agent, I need to create a new GitHub issue." Agent: "What would you like to do with GitHub issues? (Create new issue, List issues, View issue)" User: "Create new issue." Agent: "Please provide the title for the new issue." User: "Bug: Login button unresponsive." Agent: "Do you want to add a body or any labels?" User: "Yes, the body should be 'When clicking login, nothing happens.' and label it 'bug'."
Example output
Agent: "New issue 'Bug: Login button unresponsive' created successfully at [GitHub Issue URL]." (Alternatively, for listing) Agent: "Here are the open issues: 1. Bug: Login button unresponsive (open) 2. Feature Request: Dark mode (open) ..." (Alternatively, for viewing) Agent: "Issue #1: Bug: Login button unresponsive. Description: When clicking login, nothing happens. Labels: bug. Status: open. Assignee: (unassigned)."
When to use this skill
- Use this skill when you need to quickly log a bug, create a new task, check the status of an open issue, or review the details of a task directly from your AI agent. It's particularly useful during coding sessions, project discussions, or stand-ups where immediate access to issue management is beneficial and efficient.
When not to use this skill
- This skill is not suitable for complex issue management workflows that require advanced filtering capabilities, bulk operations, or highly specific GitHub features not covered by the `gh` CLI (e.g., managing project boards, pull requests, or extensive label customization). It's also not ideal for deeply collaborative discussions within an issue (e.g., extensive commenting, assigning multiple people, or reviewing linked pull requests) where the full GitHub web interface or a dedicated desktop client would offer a richer experience.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/issues/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How issues Compares
| Feature / Agent | issues | Standard Approach |
|---|---|---|
| Platform Support | Claude | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | medium | N/A |
Frequently Asked Questions
What does this skill do?
Interact with GitHub issues - create, list, and view issues.
Which AI agents support this skill?
This skill is designed for Claude.
How difficult is it to install?
The installation complexity is rated as medium. You can find the installation instructions above.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
Best AI Skills for Claude
Explore the best AI skills for Claude and Claude Code across coding, research, workflow automation, documentation, and agent operations.
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
ChatGPT vs Claude for Agent Skills
Compare ChatGPT and Claude for AI agent skills across coding, writing, research, and reusable workflow execution.
SKILL.md Source
Interact with GitHub issues - create, list, and view issues.
## When to Use
- The user wants to create, list, inspect, or otherwise work with GitHub issues.
- The task involves issue intake or repository issue management through the GitHub CLI workflow.
- You need a guided issue flow that gathers titles, descriptions, and action selection before running commands.
## Instructions
This command helps you work with GitHub issues using the `gh` CLI.
### Step 1: Determine Action
Use AskUserQuestion to ask what the user wants to do:
**Question:**
- question: "What would you like to do with GitHub issues?"
- header: "Action"
- multiSelect: false
- options:
- label: "Create new issue"
description: "Open a new issue with title, body, and optional labels"
- label: "List issues"
description: "View open issues in the current repository"
- label: "View issue"
description: "See details of a specific issue by number"
---
## If "Create new issue" selected:
### Step 2a: Get Issue Title
Use AskUserQuestion to get the issue title:
**Question:**
- question: "What's a short, scannable title for this issue? Keep it brief (5-10 words max) - details go in the body. (Use 'Other' to type your title)"
- header: "Title"
- multiSelect: false
- options:
- label: "I'll type a title"
description: "Enter a concise title like 'Login button unresponsive' or 'Add dark mode support'"
**Title guidelines:**
- Keep titles SHORT and scannable (5-10 words max)
- Good: "Fix broken password reset flow"
- Bad: "When I try to reset my password and click the button nothing happens and I get an error"
- The description/body is where details belong, not the title
If the user provides a long title, help them shorten it and move the details to the body.
### Step 3a: Get Issue Body
Use AskUserQuestion to gather the issue body content:
**Question 1 - Issue type context:**
- question: "What type of issue is this?"
- header: "Type"
- multiSelect: false
- options:
- label: "Bug"
description: "Something broken that needs fixing"
- label: "Enhancement"
description: "Improvement to existing functionality"
- label: "New feature"
description: "Brand new functionality"
- label: "Task"
description: "General work item or chore"
**Question 2 - Description:**
- question: "Now provide the full details. This is where you explain context, background, and specifics that didn't fit in the title. (Use 'Other' to type your description)"
- header: "Description"
- multiSelect: false
- options:
- label: "I'll describe it in detail"
description: "Provide context, steps, examples, and any relevant information"
The user will select "Other" here to provide their full description.
**Description guidelines:**
- This is where ALL the detail goes - be thorough
- Include context: what were you doing, what's the background?
- Include specifics: error messages, URLs, versions, etc.
- The more detail here, the better - unlike the title which should be brief
**Question 3 - For bugs, ask about reproduction:**
If issue type is "Bug", use AskUserQuestion:
- question: "Can you provide steps to reproduce this bug? (Use 'Other' to type steps)"
- header: "Repro steps"
- multiSelect: false
- options:
- label: "Provide steps"
description: "I'll describe how to reproduce the issue"
- label: "Not reproducible"
description: "The bug is intermittent or hard to reproduce"
**Question 4 - Expected vs actual behavior (for bugs):**
If issue type is "Bug", use AskUserQuestion:
- question: "What did you expect to happen vs what actually happened? (Use 'Other' to describe)"
- header: "Behavior"
- multiSelect: false
- options:
- label: "Describe behavior"
description: "I'll explain expected vs actual behavior"
### Step 4a: Get Labels (Optional)
Use AskUserQuestion to select labels:
- question: "Which labels should we add? (if any)"
- header: "Labels"
- multiSelect: true
- options:
- label: "bug"
description: "Something isn't working"
- label: "enhancement"
description: "New feature or request"
- label: "documentation"
description: "Improvements to docs"
- label: "good first issue"
description: "Good for newcomers"
### Step 5a: Create the Issue
Construct the issue body based on the type:
**For Bug reports:**
```
## Description
[User's description]
## Steps to Reproduce
[User's reproduction steps or "Not easily reproducible"]
## Expected Behavior
[What should happen]
## Actual Behavior
[What actually happens]
```
**For Feature requests/Enhancements:**
```
## Description
[User's description]
## Use Case
[Why this would be useful]
```
**For Tasks/Other:**
```
## Description
[User's description]
```
Run the gh command to create the issue:
```bash
gh issue create --title "[title]" --body "[constructed body]" --label "[labels]"
```
Report the issue URL back to the user.
---
## If "List issues" selected:
### Step 2b: Filter Options
Use AskUserQuestion to determine filtering:
- question: "How would you like to filter issues?"
- header: "Filter"
- multiSelect: false
- options:
- label: "All open issues"
description: "Show all open issues"
- label: "Assigned to me"
description: "Issues assigned to the current user"
- label: "Created by me"
description: "Issues I created"
- label: "With specific label"
description: "Filter by a label"
If "With specific label" selected, use AskUserQuestion:
- question: "Which label to filter by? (Use 'Other' for custom label)"
- header: "Label"
- multiSelect: false
- options:
- label: "bug"
description: "Bug reports"
- label: "enhancement"
description: "Feature requests"
- label: "documentation"
description: "Documentation issues"
### Step 3b: List Issues
Run the appropriate gh command:
- All open: `gh issue list`
- Assigned to me: `gh issue list --assignee @me`
- Created by me: `gh issue list --author @me`
- With label: `gh issue list --label "[label]"`
Display the results in a clean format.
---
## If "View issue" selected:
### Step 2c: Get Issue Number
Use AskUserQuestion:
- question: "Which issue number would you like to view? (Use 'Other' to enter the number)"
- header: "Issue #"
- multiSelect: false
- options:
- label: "Enter issue number"
description: "I'll type the issue number"
### Step 3c: View Issue
Run: `gh issue view [number]`
Display the issue details including title, body, labels, assignees, and comments.
---
## Error Handling
If `gh` command fails:
1. Check if user is authenticated: `gh auth status`
2. If not authenticated, inform user to run `gh auth login`
3. Check if in a git repository with a GitHub remote
4. Report specific error message to user
## Important Notes
- **Titles should be succinct** (5-10 words) - if a user provides a long title, help shorten it and move details to body
- **Bodies should be detailed** - encourage users to provide thorough context, steps, and specifics
- Always confirm the issue was created successfully by showing the URL
- For issue bodies, preserve user's formatting and newlines
- If the user provides minimal information, that's okay - create the issue with what they gave
- Use HEREDOC for the body to preserve formatting:
```bash
gh issue create --title "Title" --body "$(cat <<'EOF'
Body content here
EOF
)"
```Related Skills
n8n-expression-syntax
Validate n8n expression syntax and fix common errors. Use when writing n8n expressions, using {{}} syntax, accessing $json/$node variables, troubleshooting expression errors, or working with webhook data in workflows.
mermaid-expert
Create Mermaid diagrams for flowcharts, sequences, ERDs, and architectures. Masters syntax for all diagram types and styling.
mcp-builder-ms
Use this skill when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).
makepad-deployment
CRITICAL: Use for Makepad packaging and deployment. Triggers on: deploy, package, APK, IPA, 打包, 部署, cargo-packager, cargo-makepad, WASM, Android, iOS, distribution, installer, .deb, .dmg, .nsis, GitHub Actions, CI, action, marketplace
macos-menubar-tuist-app
Build, refactor, or review SwiftUI macOS menubar apps that use Tuist.
kaizen
Guide for continuous improvement, error proofing, and standardization. Use this skill when the user wants to improve code quality, refactor, or discuss process improvements.
hugging-face-tool-builder
Your purpose is now is to create reusable command line scripts and utilities for using the Hugging Face API, allowing chaining, piping and intermediate processing where helpful. You can access the API directly, as well as use the hf command line tool.
git-pushing
Stage all changes, create a conventional commit, and push to the remote branch. Use when explicitly asks to push changes ("push this", "commit and push"), mentions saving work to remote ("save to github", "push to remote"), or completes a feature and wants to share it.
git-hooks-automation
Master Git hooks setup with Husky, lint-staged, pre-commit framework, and commitlint. Automate code quality gates, formatting, linting, and commit message enforcement before code reaches CI.
gh-review-requests
Fetch unread GitHub notifications for open PRs where review is requested from a specified team or opened by a team member. Use when asked to "find PRs I need to review", "show my review requests", "what needs my review", "fetch GitHub review requests", or "check team review queue".
fp-types-ref
Quick reference for fp-ts types. Use when user asks which type to use, needs Option/Either/Task decision help, or wants fp-ts imports.
fp-taskeither-ref
Quick reference for TaskEither. Use when user needs async error handling, API calls, or Promise-based operations that can fail.