mirror of
https://github.com/github/awesome-copilot.git
synced 2026-02-20 02:15:12 +00:00
Merge branch 'main' into feature/add-web-design-reviewer-skill
This commit is contained in:
132
skills/github-issues/SKILL.md
Normal file
132
skills/github-issues/SKILL.md
Normal file
@@ -0,0 +1,132 @@
|
||||
---
|
||||
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
|
||||
90
skills/github-issues/references/templates.md
Normal file
90
skills/github-issues/references/templates.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# Issue Templates
|
||||
|
||||
Copy and customize these templates for issue bodies.
|
||||
|
||||
## Bug Report Template
|
||||
|
||||
```markdown
|
||||
## Description
|
||||
[Clear description of the bug]
|
||||
|
||||
## Steps to Reproduce
|
||||
1. [First step]
|
||||
2. [Second step]
|
||||
3. [And so on...]
|
||||
|
||||
## Expected Behavior
|
||||
[What should happen]
|
||||
|
||||
## Actual Behavior
|
||||
[What actually happens]
|
||||
|
||||
## Environment
|
||||
- Browser: [e.g., Chrome 120]
|
||||
- OS: [e.g., macOS 14.0]
|
||||
- Version: [e.g., v1.2.3]
|
||||
|
||||
## Screenshots/Logs
|
||||
[If applicable]
|
||||
|
||||
## Additional Context
|
||||
[Any other relevant information]
|
||||
```
|
||||
|
||||
## Feature Request Template
|
||||
|
||||
```markdown
|
||||
## Summary
|
||||
[One-line description of the feature]
|
||||
|
||||
## Motivation
|
||||
[Why is this feature needed? What problem does it solve?]
|
||||
|
||||
## Proposed Solution
|
||||
[How should this feature work?]
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] [Criterion 1]
|
||||
- [ ] [Criterion 2]
|
||||
- [ ] [Criterion 3]
|
||||
|
||||
## Alternatives Considered
|
||||
[Other approaches considered and why they weren't chosen]
|
||||
|
||||
## Additional Context
|
||||
[Mockups, examples, or related issues]
|
||||
```
|
||||
|
||||
## Task Template
|
||||
|
||||
```markdown
|
||||
## Objective
|
||||
[What needs to be accomplished]
|
||||
|
||||
## Details
|
||||
[Detailed description of the work]
|
||||
|
||||
## Checklist
|
||||
- [ ] [Subtask 1]
|
||||
- [ ] [Subtask 2]
|
||||
- [ ] [Subtask 3]
|
||||
|
||||
## Dependencies
|
||||
[Any blockers or related work]
|
||||
|
||||
## Notes
|
||||
[Additional context or considerations]
|
||||
```
|
||||
|
||||
## Minimal Template
|
||||
|
||||
For simple issues:
|
||||
|
||||
```markdown
|
||||
## Description
|
||||
[What and why]
|
||||
|
||||
## Tasks
|
||||
- [ ] [Task 1]
|
||||
- [ ] [Task 2]
|
||||
```
|
||||
68
skills/nuget-manager/SKILL.md
Normal file
68
skills/nuget-manager/SKILL.md
Normal file
@@ -0,0 +1,68 @@
|
||||
---
|
||||
name: nuget-manager
|
||||
description: 'Manage NuGet packages in .NET projects/solutions. Use this skill when adding, removing, or updating NuGet package versions. It enforces using `dotnet` CLI for package management and provides strict procedures for direct file edits only when updating versions.'
|
||||
---
|
||||
|
||||
# NuGet Manager
|
||||
|
||||
## Overview
|
||||
|
||||
This skill ensures consistent and safe management of NuGet packages across .NET projects. It prioritizes using the `dotnet` CLI to maintain project integrity and enforces a strict verification and restoration workflow for version updates.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- .NET SDK installed (typically .NET 8.0 SDK or later, or a version compatible with the target solution).
|
||||
- `dotnet` CLI available on your `PATH`.
|
||||
- `jq` (JSON processor) OR PowerShell (for version verification using `dotnet package search`).
|
||||
|
||||
## Core Rules
|
||||
|
||||
1. **NEVER** directly edit `.csproj`, `.props`, or `Directory.Packages.props` files to **add** or **remove** packages. Always use `dotnet add package` and `dotnet remove package` commands.
|
||||
2. **DIRECT EDITING** is ONLY permitted for **changing versions** of existing packages.
|
||||
3. **VERSION UPDATES** must follow the mandatory workflow:
|
||||
- Verify the target version exists on NuGet.
|
||||
- Determine if versions are managed per-project (`.csproj`) or centrally (`Directory.Packages.props`).
|
||||
- Update the version string in the appropriate file.
|
||||
- Immediately run `dotnet restore` to verify compatibility.
|
||||
|
||||
## Workflows
|
||||
|
||||
### Adding a Package
|
||||
Use `dotnet add [<PROJECT>] package <PACKAGE_NAME> [--version <VERSION>]`.
|
||||
Example: `dotnet add src/MyProject/MyProject.csproj package Newtonsoft.Json`
|
||||
|
||||
### Removing a Package
|
||||
Use `dotnet remove [<PROJECT>] package <PACKAGE_NAME>`.
|
||||
Example: `dotnet remove src/MyProject/MyProject.csproj package Newtonsoft.Json`
|
||||
|
||||
### Updating Package Versions
|
||||
When updating a version, follow these steps:
|
||||
|
||||
1. **Verify Version Existence**:
|
||||
Check if the version exists using the `dotnet package search` command with exact match and JSON formatting.
|
||||
Using `jq`:
|
||||
`dotnet package search <PACKAGE_NAME> --exact-match --format json | jq -e '.searchResult[].packages[] | select(.version == "<VERSION>")'`
|
||||
Using PowerShell:
|
||||
`(dotnet package search <PACKAGE_NAME> --exact-match --format json | ConvertFrom-Json).searchResult.packages | Where-Object { $_.version -eq "<VERSION>" }`
|
||||
|
||||
2. **Determine Version Management**:
|
||||
- Search for `Directory.Packages.props` in the solution root. If present, versions should be managed there via `<PackageVersion Include="Package.Name" Version="1.2.3" />`.
|
||||
- If absent, check individual `.csproj` files for `<PackageReference Include="Package.Name" Version="1.2.3" />`.
|
||||
|
||||
3. **Apply Changes**:
|
||||
Modify the identified file with the new version string.
|
||||
|
||||
4. **Verify Stability**:
|
||||
Run `dotnet restore` on the project or solution. If errors occur, revert the change and investigate.
|
||||
|
||||
## Examples
|
||||
|
||||
### User: "Add Serilog to the WebApi project"
|
||||
**Action**: Execute `dotnet add src/WebApi/WebApi.csproj package Serilog`.
|
||||
|
||||
### User: "Update Newtonsoft.Json to 13.0.3 in the whole solution"
|
||||
**Action**:
|
||||
1. Verify 13.0.3 exists: `dotnet package search Newtonsoft.Json --exact-match --format json` (and parse output to confirm "13.0.3" is present).
|
||||
2. Find where it's defined (e.g., `Directory.Packages.props`).
|
||||
3. Edit the file to update the version.
|
||||
4. Run `dotnet restore`.
|
||||
Reference in New Issue
Block a user