home / skills / github / awesome-copilot / github-issues

github-issues skill

/skills/github-issues

This skill helps you create, update, and manage GitHub issues using MCP tools for efficient bug reports, feature requests, and task tracking.

npx playbooks add skill github/awesome-copilot --skill github-issues

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
4.7 KB
---
name: github-issues
description: 'Create, update, and manage GitHub issues using MCP tools. Use this skill when users want to create bug reports, feature requests, or task issues, update existing issues, add labels/assignees/milestones, or manage issue workflows. Triggers on requests like "create an issue", "file a bug", "request a feature", "update issue X", or any GitHub issue management task.'
---

# GitHub Issues

Manage GitHub issues using the `@modelcontextprotocol/server-github` MCP server.

## Available MCP Tools

| Tool | Purpose |
|------|---------|
| `mcp__github__create_issue` | Create new issues |
| `mcp__github__update_issue` | Update existing issues |
| `mcp__github__get_issue` | Fetch issue details |
| `mcp__github__search_issues` | Search issues |
| `mcp__github__add_issue_comment` | Add comments |
| `mcp__github__list_issues` | List repository issues |

## Workflow

1. **Determine action**: Create, update, or query?
2. **Gather context**: Get repo info, existing labels, milestones if needed
3. **Structure content**: Use appropriate template from [references/templates.md](references/templates.md)
4. **Execute**: Call the appropriate MCP tool
5. **Confirm**: Report the issue URL to user

## Creating Issues

### Required Parameters

```
owner: repository owner (org or user)
repo: repository name  
title: clear, actionable title
body: structured markdown content
```

### Optional Parameters

```
labels: ["bug", "enhancement", "documentation", ...]
assignees: ["username1", "username2"]
milestone: milestone number (integer)
```

### Title Guidelines

- Start with type prefix when useful: `[Bug]`, `[Feature]`, `[Docs]`
- Be specific and actionable
- Keep under 72 characters
- Examples:
  - `[Bug] Login fails with SSO enabled`
  - `[Feature] Add dark mode support`
  - `Add unit tests for auth module`

### Body Structure

Always use the templates in [references/templates.md](references/templates.md). Choose based on issue type:

| User Request | Template |
|--------------|----------|
| Bug, error, broken, not working | Bug Report |
| Feature, enhancement, add, new | Feature Request |
| Task, chore, refactor, update | Task |

## Updating Issues

Use `mcp__github__update_issue` with:

```
owner, repo, issue_number (required)
title, body, state, labels, assignees, milestone (optional - only changed fields)
```

State values: `open`, `closed`

## Examples

### Example 1: Bug Report

**User**: "Create a bug issue - the login page crashes when using SSO"

**Action**: Call `mcp__github__create_issue` with:
```json
{
  "owner": "github",
  "repo": "awesome-copilot",
  "title": "[Bug] Login page crashes when using SSO",
  "body": "## Description\nThe login page crashes when users attempt to authenticate using SSO.\n\n## Steps to Reproduce\n1. Navigate to login page\n2. Click 'Sign in with SSO'\n3. Page crashes\n\n## Expected Behavior\nSSO authentication should complete and redirect to dashboard.\n\n## Actual Behavior\nPage becomes unresponsive and displays error.\n\n## Environment\n- Browser: [To be filled]\n- OS: [To be filled]\n\n## Additional Context\nReported by user.",
  "labels": ["bug"]
}
```

### Example 2: Feature Request

**User**: "Create a feature request for dark mode with high priority"

**Action**: Call `mcp__github__create_issue` with:
```json
{
  "owner": "github",
  "repo": "awesome-copilot",
  "title": "[Feature] Add dark mode support",
  "body": "## Summary\nAdd dark mode theme option for improved user experience and accessibility.\n\n## Motivation\n- Reduces eye strain in low-light environments\n- Increasingly expected by users\n- Improves accessibility\n\n## Proposed Solution\nImplement theme toggle with system preference detection.\n\n## Acceptance Criteria\n- [ ] Toggle switch in settings\n- [ ] Persists user preference\n- [ ] Respects system preference by default\n- [ ] All UI components support both themes\n\n## Alternatives Considered\nNone specified.\n\n## Additional Context\nHigh priority request.",
  "labels": ["enhancement", "high-priority"]
}
```

## Common Labels

Use these standard labels when applicable:

| Label | Use For |
|-------|---------|
| `bug` | Something isn't working |
| `enhancement` | New feature or improvement |
| `documentation` | Documentation updates |
| `good first issue` | Good for newcomers |
| `help wanted` | Extra attention needed |
| `question` | Further information requested |
| `wontfix` | Will not be addressed |
| `duplicate` | Already exists |
| `high-priority` | Urgent issues |

## Tips

- Always confirm the repository context before creating issues
- Ask for missing critical information rather than guessing
- Link related issues when known: `Related to #123`
- For updates, fetch current issue first to preserve unchanged fields

Overview

This skill lets you create, update, and manage GitHub issues using MCP tools for clear, trackable issue workflows. Use it to file bug reports, propose features, assign work, add labels or milestones, and query existing issues. It enforces structured titles and templated bodies to improve triage and resolution. Actions return issue URLs and confirmations after execution.

How this skill works

The skill inspects your intent (create, update, search, comment, or list) and gathers repository context like owner, repo, labels, and milestones when needed. It formats the issue content using established templates (bug, feature, task) and calls the appropriate MCP tool to perform the action. For updates, it fetches the current issue to avoid overwriting unchanged fields and then applies only the requested changes. After execution it reports the resulting issue URL and status.

When to use it

  • Create a new bug report, feature request, or task issue in a repository
  • Update an existing issue’s title, body, labels, assignees, milestone, or state
  • Add comments to an issue or link related issues
  • Search or list issues to find duplicates or open work
  • Prepare labeled issues for newcomers (good first issue, help wanted)

Best practices

  • Confirm repository owner and repo before creating or updating issues
  • Use type prefixes in titles (e.g., [Bug], [Feature], [Docs]) and keep titles under 72 characters
  • Choose the correct template for body content: Bug Report, Feature Request, or Task
  • Ask for missing critical info (environment, steps to reproduce) rather than guessing
  • Fetch the current issue when updating to preserve unchanged fields and avoid data loss

Example use cases

  • File a bug: create an issue with reproduction steps, expected vs actual behavior, and labels
  • Request a feature: open an enhancement issue with summary, motivation, proposed solution, and acceptance criteria
  • Triage: search and list issues to identify duplicates and apply standard labels
  • Update workflow: add assignees and milestone to an existing issue and change its state to closed
  • Commenting: add a clarification or link related issues to provide context

FAQ

What parameters are required to create an issue?

You must supply owner, repo, title, and a structured markdown body. Labels, assignees, and milestone are optional.

How do I update only specific fields of an issue?

Provide owner, repo, issue_number and only the fields to change (title, body, state, labels, assignees, or milestone). The skill fetches the current issue to avoid overwriting unchanged data.