home / skills / dedalus-erp-pas / foundation-skills / github-issues

github-issues skill

/skills/github-issues

npx playbooks add skill dedalus-erp-pas/foundation-skills --skill github-issues

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

Files (1)
SKILL.md
11.4 KB
---
name: GitHub Issues
description: Creates, retrieves, updates, and manages GitHub issues with comprehensive context gathering. Use when the user wants to create a new issue, view issue details, update existing issues, list project issues, add comments, or manage issue workflows in GitHub.
allowed-tools: github-mcp(create_issue), github-mcp(get_issue), github-mcp(list_issues), github-mcp(update_issue), github-mcp(search_issues), github-mcp(add_issue_comment)
license: MIT
metadata:
  author: Foundation Skills
  version: 1.0.0
  mcp-server: github-mcp
---

# GitHub Issues Management

Create, retrieve, update, and manage GitHub issues with comprehensive context integration and structured workflows.

## When to Use This Skill

Activate this skill when:
- The user wants to create a new GitHub issue
- The user asks to view or retrieve issue details
- The user needs to update an existing issue
- The user wants to list issues in a repository
- The user mentions managing issues, bug reports, or feature requests in GitHub
- The user wants to close, reopen, or modify issue properties
- The user needs to add comments or labels to issues
- The user wants to search for issues

## Critical Rules

**IMPORTANT: Always confirm owner/repo before creating or modifying issues**

**Always use descriptive issue titles and provide structured descriptions**

**Never create duplicate issues - search existing issues first when appropriate**

## Available MCP Tools

| Tool | Purpose |
|------|---------|
| `github-mcp(create_issue)` | Create new issues |
| `github-mcp(update_issue)` | Update existing issues |
| `github-mcp(get_issue)` | Fetch issue details |
| `github-mcp(search_issues)` | Search issues |
| `github-mcp(add_issue_comment)` | Add comments |
| `github-mcp(list_issues)` | List repository issues |

## Workflow

### 1. Gather Context

First, collect information about the current repository and context:

- Identify the repository (owner and repo name)
- Understand the type of issue (bug, feature, task, etc.)
- Gather relevant labels, milestones, and assignees if applicable

### 2. Repository Verification

Before any operation, verify you have the correct repository identifier:

- Confirm repository exists
- Understand repository structure
- Check available labels and milestones

### 3. Issue Operations

#### Creating a New Issue

When creating issues, gather complete context:

**Required Information:**
- `owner`: Repository owner (organization or user)
- `repo`: Repository name
- `title`: Clear, descriptive issue title

**Optional but Recommended:**
- `body`: Detailed description in Markdown format
- `labels`: Array of label names (e.g., ["bug", "enhancement"])
- `assignees`: Array of usernames to assign
- `milestone`: Milestone number (integer)

**Human-in-the-Loop - Ask for Context**

Always ask to clarify issue details:

```
Question: "What type of issue is this?"
Options:
- "Bug report - something is not working correctly"
- "Feature request - new functionality needed"
- "Task - work item to complete"
- "Documentation - documentation needs update"
- "Other - let me describe it"
```

**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`

**Issue Description Template:**

Structure descriptions for clarity:

```markdown
## Summary
[Brief description of the issue]

## Current Behavior
[What is happening now - for bugs]

## Expected Behavior
[What should happen - for bugs]

## Steps to Reproduce
[For bugs - numbered steps]

## Acceptance Criteria
[For features/tasks - what defines "done"]

## Additional Context
[Screenshots, logs, related issues, etc.]
```

#### Retrieving Issue Details

Use `github-mcp(get_issue)` with:
- `owner`: Repository owner
- `repo`: Repository name
- `issue_number`: Issue number (e.g., 42)

This returns complete issue information including:
- Title and body
- State (open/closed)
- Labels and milestone
- Assignees and author
- Created/updated timestamps

#### Listing Issues

Use `github-mcp(list_issues)` with filters:
- `owner`: Repository owner
- `repo`: Repository name
- `state`: "open", "closed", or "all"
- `labels`: Filter by labels (comma-separated)
- `assignee`: Filter by assignee username
- `sort`: Sort by "created", "updated", "comments"
- `direction`: "asc" or "desc"
- `per_page`: Results per page (max 100)

#### Searching Issues

Use `github-mcp(search_issues)` for advanced queries:
- Search across repositories
- Use GitHub search qualifiers (is:open, label:bug, etc.)
- Full-text search in titles and bodies

#### Updating an Issue

When updating issues, only provide changed fields:

Use `github-mcp(update_issue)` with:
- `owner`: Repository owner
- `repo`: Repository name
- `issue_number`: Issue number
- Plus any fields to update (title, body, labels, state, etc.)

**State Changes:**
- `state: "open"` - Open/reopen the issue
- `state: "closed"` - Close the issue

#### Adding Comments

Use `github-mcp(add_issue_comment)` with:
- `owner`: Repository owner
- `repo`: Repository name
- `issue_number`: Issue number
- `body`: Comment content in Markdown

### 4. Execute Operations (Requires Confirmation)

**CRITICAL: Confirm with user before creating or modifying issues**

After gathering all information, present a summary for user approval:

```
Creating issue in repository: owner/repo
Title: [title]
Description: [summary]
Labels: [labels]
Assignee: [assignee]

Proceed with issue creation?
```

## Issue Type Templates

### Bug Report

```markdown
## Description
The [component] is experiencing [issue] when [condition].

## Steps to Reproduce
1. [First step]
2. [Second step]
3. [See error]

## Expected Behavior
[What should happen]

## Actual Behavior
[What actually happens]

## Environment
- Application Version: [version]

## Screenshots/Logs
[Attach relevant files]

## Possible Solution
[Optional: if you have ideas]
```

### Feature Request

```markdown
## Summary
[One-line description of the feature]

## Motivation
[Why is this feature needed? What problem does it solve?]

## Proposed Solution
[How should this work?]

## Acceptance Criteria
- [ ] [Criterion 1]
- [ ] [Criterion 2]
- [ ] [Criterion 3]

## Alternatives Considered
[Other approaches considered]

## Additional Context
[Mockups, examples, references]
```

### Task

```markdown
## Task Description
[What needs to be done]

## Background
[Why is this needed?]

## Requirements
- [ ] [Requirement 1]
- [ ] [Requirement 2]

## Definition of Done
- [ ] [Criterion 1]
- [ ] [Criterion 2]

## Dependencies
[Related issues, blockers]
```

## Examples

### Example 1: Creating a Bug Report

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

**AI Workflow:**
1. Ask for repository (owner/repo) if not known
2. Ask clarifying questions about the bug
3. Generate structured description
4. Present summary for confirmation
5. Create issue with github-mcp(create_issue)

**Result:**
```json
{
  "owner": "myorg",
  "repo": "webapp",
  "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]",
  "labels": ["bug"]
}
```

### Example 2: Feature Request with Priority

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

**AI Workflow:**
1. Gather feature details
2. Structure the request
3. Add appropriate labels
4. Confirm and create

**Result:**
```json
{
  "owner": "myorg",
  "repo": "webapp",
  "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",
  "labels": ["enhancement", "high-priority"]
}
```

### Example 3: Listing and Filtering Issues

**User:** "Show me all open bugs assigned to me"

**AI Workflow:**
1. Use github-mcp(list_issues) with filters:
   - state: "open"
   - labels: "bug"
   - assignee: [current user]

**Result:**
```
Found 3 open bug issues assigned to you:

#142 - [Bug] API timeout on large file uploads
      Labels: bug, priority-medium
      Created: 2024-01-15

#138 - [Bug] Dashboard graphs not rendering on Safari
      Labels: bug, frontend
      Created: 2024-01-12

#125 - [Bug] Email notifications delayed by 30+ minutes
      Labels: bug, priority-high
      Created: 2024-01-08
```

### Example 4: Closing an Issue with Comment

**User:** "Close issue #142 and add a comment that it's fixed in v2.4.0"

**AI Workflow:**
1. First, add a comment to the issue
2. Then update issue state to closed

**Using github-mcp(add_issue_comment):**
```json
{
  "owner": "myorg",
  "repo": "webapp",
  "issue_number": 142,
  "body": "Fixed in v2.4.0. Closing this issue."
}
```

**Using github-mcp(update_issue):**
```json
{
  "owner": "myorg",
  "repo": "webapp",
  "issue_number": 142,
  "state": "closed"
}
```

## 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 |
| `invalid` | Not a valid issue |

## Important Notes

- **Always verify repository access** - Ensure you have permission to create/modify issues
- **Use labels consistently** - Follow repository labeling conventions
- **Be specific in titles** - Prefix with [Bug], [Feature], [Task] for clarity
- **Include reproduction steps** - Essential for bug reports
- **Define acceptance criteria** - Clear "definition of done" for features/tasks
- **Link related issues** - Use "Related to #XX" or "Blocks #XX" in descriptions
- **Mention users with @username** - For visibility and notifications
- **Use milestones** - Associate issues with releases when applicable

## GitHub Issue Best Practices

### Writing Effective Titles
- Be concise but descriptive
- Include issue type prefix: [Bug], [Feature], [Task], [Docs]
- Mention affected component if applicable
- Avoid vague titles like "Fix bug" or "Update code"

### Structuring Descriptions
- Use Markdown formatting for readability
- Include all relevant context upfront
- Add screenshots or logs when helpful
- Link to related issues, PRs, or documentation
- Use task lists for trackable sub-items

### Label Strategy
- Combine type labels (`bug`, `enhancement`) with area labels (`frontend`, `api`)
- Use priority labels when needed (`priority-high`, `priority-low`)
- Keep label taxonomy consistent across repositories

### Assignment and Workflow
- Assign issues to specific team members
- Use milestones for release planning
- Update issue status as work progresses
- Close issues with reference to fixing PR: "Fixes #XX"