home / skills / dedalus-erp-pas / foundation-skills / github-issues
npx playbooks add skill dedalus-erp-pas/foundation-skills --skill github-issuesReview the files below or copy the command above to add this skill to your agents.
---
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"