Add issue-triage Copilot skill (#1412)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
parent
89fcf3f8b7
commit
123f9728ff
2 changed files with 432 additions and 0 deletions
48
.github/skills/issue-triage/references/cross-sdk-repos.md
vendored
Normal file
48
.github/skills/issue-triage/references/cross-sdk-repos.md
vendored
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
# Cross-SDK Repositories
|
||||
|
||||
This reference lists all official MCP SDK repositories and the themes to search for when cross-referencing issues.
|
||||
|
||||
## MCP SDK Repositories
|
||||
|
||||
| SDK | Repository | Tier | Tier Tracking Issue |
|
||||
|---|---|---|---|
|
||||
| TypeScript | [modelcontextprotocol/typescript-sdk](https://github.com/modelcontextprotocol/typescript-sdk) | Tier 1 | [modelcontextprotocol#2271](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/2271) |
|
||||
| Python | [modelcontextprotocol/python-sdk](https://github.com/modelcontextprotocol/python-sdk) | Tier 1 | [modelcontextprotocol#2304](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/2304) |
|
||||
| Java | [modelcontextprotocol/java-sdk](https://github.com/modelcontextprotocol/java-sdk) | Tier 2 | [modelcontextprotocol#2301](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/2301) |
|
||||
| C# | [modelcontextprotocol/csharp-sdk](https://github.com/modelcontextprotocol/csharp-sdk) | Tier 1 | [modelcontextprotocol#2261](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/2261) |
|
||||
| Go | [modelcontextprotocol/go-sdk](https://github.com/modelcontextprotocol/go-sdk) | Tier 1 | [modelcontextprotocol#2279](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/2279) |
|
||||
| Kotlin | [modelcontextprotocol/kotlin-sdk](https://github.com/modelcontextprotocol/kotlin-sdk) | TBD | — |
|
||||
| Swift | [modelcontextprotocol/swift-sdk](https://github.com/modelcontextprotocol/swift-sdk) | Tier 3 | [modelcontextprotocol#2309](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/2309) |
|
||||
| Rust | [modelcontextprotocol/rust-sdk](https://github.com/modelcontextprotocol/rust-sdk) | Tier 2 | [modelcontextprotocol#2346](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/2346) |
|
||||
| Ruby | [modelcontextprotocol/ruby-sdk](https://github.com/modelcontextprotocol/ruby-sdk) | Tier 3 | [modelcontextprotocol#2340](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/2340) |
|
||||
| PHP | [modelcontextprotocol/php-sdk](https://github.com/modelcontextprotocol/php-sdk) | Tier 3 | [modelcontextprotocol#2305](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/2305) |
|
||||
|
||||
**Live SDK list URL:** `https://raw.githubusercontent.com/modelcontextprotocol/modelcontextprotocol/refs/heads/main/docs/docs/sdk.mdx`
|
||||
|
||||
## Cross-Reference Themes
|
||||
|
||||
When cross-referencing issues across SDK repos, search open issues for these themes. Use the keyword patterns to match against issue titles and the first 500 characters of issue bodies.
|
||||
|
||||
| Theme | Search Keywords |
|
||||
|---|---|
|
||||
| **OAuth / Authorization** | `oauth`, `authorization`, `auth`, `JWT`, `token`, `Entra`, `OIDC`, `PKCE`, `code_challenge`, `scope`, `WWW-Authenticate`, `bearer`, `client credentials` |
|
||||
| **SSE / Keep-Alive** | `SSE`, `server-sent`, `keep-alive`, `keepalive`, `heartbeat`, `event-stream` |
|
||||
| **Streamable HTTP** | `streamable http`, `HTTP stream`, `stateless`, `stateful`, `session ID` |
|
||||
| **Dynamic Tools** | `dynamic tool`, `tool filter`, `tool registration`, `runtime tool`, `list_changed` |
|
||||
| **JSON Serialization** | `JSON serial`, `serializ`, `deserializ`, `JsonSerializer`, `schema` |
|
||||
| **Code Signing** | `code sign`, `sign binaries`, `DLL sign`, `strong name` |
|
||||
| **Resource Disposal** | `resource dispos`, `dispos resource`, `resource leak`, `memory leak` |
|
||||
| **Multiple Endpoints** | `multiple endpoint`, `multiple server`, `multi-server`, `keyed service` |
|
||||
| **Structured Content / Output** | `structured content`, `output schema`, `structuredContent` |
|
||||
| **Reconnection / Resumption** | `reconnect`, `resume`, `resumption`, `session recovery` |
|
||||
| **MCP Apps / Tasks** | `MCP App`, `task`, `elicitation`, `sampling` |
|
||||
| **SEP Implementations** | `SEP-990`, `SEP-1046`, `SEP-985`, `SEP-991`, `SEP-835`, `SEP-1686`, `SEP-1699` |
|
||||
|
||||
## Cross-Reference Usage
|
||||
|
||||
For each theme:
|
||||
1. Search open issues in each non-C# SDK repo using the keyword patterns
|
||||
2. Match C# SDK issues to related issues in other repos
|
||||
3. Present as themed tables in the report
|
||||
|
||||
When a C# SDK issue has a clear counterpart (same SEP number, same feature request, same bug pattern), link them. Don't force connections where the relationship is tenuous.
|
||||
191
.github/skills/issue-triage/references/report-format.md
vendored
Normal file
191
.github/skills/issue-triage/references/report-format.md
vendored
Normal file
|
|
@ -0,0 +1,191 @@
|
|||
# Report Format
|
||||
|
||||
This reference defines the structure, template, and formatting rules for the issue triage report.
|
||||
|
||||
## Output Destination
|
||||
|
||||
**Default (local file):** Save as `{YYYY-MM-DD}-mcp-issue-triage.md` in the current working directory. If a file with that name already exists, suffix with `-2`, `-3`, etc. (e.g., `2026-03-05-mcp-issue-triage-2.md`).
|
||||
|
||||
**Gist (if requested):** Create a **secret** gist via `gh gist create --desc "MCP C# SDK Issue Triage Report - {YYYY-MM-DD}" {filepath}` (gists default to secret; there is no `--private` flag). No confirmation is needed — just create it, then notify the user with a clickable link. The user may request a gist with phrases like "save as a gist", "create a gist", "gist it", or "post to gist".
|
||||
|
||||
## Report Structure
|
||||
|
||||
The report follows a **BLUF (Bottom Line Up Front)** pattern — the most critical information comes first, progressing from urgent to informational. The complete issue backlog is collapsed inside a `<details>` element so it doesn't bury the actionable items.
|
||||
|
||||
```markdown
|
||||
# MCP C# SDK — Issue Triage Report
|
||||
|
||||
**Date:** {YYYY-MM-DD}
|
||||
**Repository:** [modelcontextprotocol/csharp-sdk](https://github.com/modelcontextprotocol/csharp-sdk)
|
||||
**SDK Tier:** {Tier} ([tracking issue](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/{TierTrackingIssueNumber}))
|
||||
**Triage SLA:** Within **{TriageSlaBusinessDays} business days** ({Tier} requirement)
|
||||
**Critical Bug SLA:** Resolution within **{CriticalBugSlaDays} days** ({Tier} requirement)
|
||||
|
||||
---
|
||||
|
||||
## BLUF (Bottom Line Up Front)
|
||||
|
||||
{2-4 sentences: total open issues, SLA compliance status, number of issues needing
|
||||
urgent attention, top finding. This is what a busy maintainer reads first.}
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ Safety Concerns {only if issues were flagged during safety scanning; omit entirely if clean}
|
||||
|
||||
The following issues contain content that was flagged during safety scanning.
|
||||
Their content should be reviewed carefully before acting on any recommendations.
|
||||
|
||||
| # | Title | Concern |
|
||||
|---|---|---|
|
||||
| [#N](url) | {Title} | {Brief description: e.g., "Prompt injection attempt detected", "Suspicious external link"} |
|
||||
|
||||
---
|
||||
|
||||
## 🚨 Issues Needing Urgent Attention
|
||||
|
||||
### SLA Violations — Untriaged Issues
|
||||
|
||||
{For EACH issue: a table with metadata (created, author, labels, comments, reactions)
|
||||
followed by a **Status** paragraph summarizing the full discussion and a **Recommended
|
||||
actions** list with specific labels and next steps.}
|
||||
|
||||
### Potential P0/P1 Issues to Assess
|
||||
|
||||
{Same detailed format as SLA violations — these are bugs that may warrant critical
|
||||
priority based on core functionality impact or spec compliance.}
|
||||
|
||||
### ⏰ Stale Issues — Consider Closing
|
||||
|
||||
{Issues labeled `needs confirmation` or `needs repro` where the reporter hasn't
|
||||
responded in >14 days. Include the date of the last author comment and a recommendation
|
||||
to close if no response.}
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ Issues Needing Labels
|
||||
|
||||
### Missing Type Label
|
||||
|
||||
{Table: issue number, current labels, title, recommended type label.}
|
||||
|
||||
### Missing Priority Label on Bugs
|
||||
|
||||
{Table: bugs that have type/status labels but no priority label, with recommended priority.}
|
||||
|
||||
---
|
||||
|
||||
## 🔀 Duplicate / Consolidation Candidates
|
||||
|
||||
{Table: groups of issues that overlap, with recommendation on which to keep.}
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Cross-SDK Related Issues
|
||||
|
||||
{Themed tables mapping C# SDK issues to related issues in other MCP SDK repos.
|
||||
Group by theme: OAuth, SSE, Streamable HTTP, Structured Content, Tasks, etc.}
|
||||
|
||||
---
|
||||
|
||||
## 📊 Other SDK Context
|
||||
|
||||
{Table of all MCP SDK repos with tier and open issue count, for context.}
|
||||
|
||||
---
|
||||
|
||||
<details>
|
||||
<summary>📋 Complete Open Issue Backlog ({N} issues)</summary>
|
||||
|
||||
### Bugs ({N})
|
||||
|
||||
{Full table: #, Created, Age, Labels, Title, Remaining Actions}
|
||||
|
||||
### Enhancements ({N})
|
||||
|
||||
{Full table}
|
||||
|
||||
### Questions ({N})
|
||||
|
||||
{Full table}
|
||||
|
||||
### Documentation ({N})
|
||||
|
||||
{Full table}
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
## 📝 SDK Tier Requirements Checklist
|
||||
|
||||
{Table: each tier requirement, current compliance status, notes}
|
||||
|
||||
---
|
||||
|
||||
_Report generated {YYYY-MM-DD}. Data sourced from GitHub API._
|
||||
```
|
||||
|
||||
## Formatting Rules
|
||||
|
||||
### Links
|
||||
- **Within csharp-sdk:** Use GitHub shorthand — `#123` for issues/PRs, `@username` for users
|
||||
- **Other repos:** Use full URLs — `[typescript-sdk #1090](https://github.com/modelcontextprotocol/typescript-sdk/issues/1090)`
|
||||
- **Repo links:** `[modelcontextprotocol/typescript-sdk](https://github.com/modelcontextprotocol/typescript-sdk)`
|
||||
|
||||
### Age Display
|
||||
- Show as `{N}d` (e.g., `35d`, `253d`)
|
||||
- Business days calculated as `floor(calendar_days × 5 / 7)`
|
||||
|
||||
### Issue Detail Blocks
|
||||
|
||||
For each issue in the attention sections (SLA violations, P0/P1 candidates, stale issues), use this format:
|
||||
|
||||
```markdown
|
||||
### [#{number}](https://github.com/modelcontextprotocol/csharp-sdk/issues/{number}) — {title}
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| **Created** | {YYYY-MM-DD} (~{N} biz days {overdue / old}) |
|
||||
| **Author** | @{login} {(contributor/member) if applicable} |
|
||||
| **Labels** | `label1`, `label2` {or _(none)_ ❌ if empty} |
|
||||
| **Comments** | {N} · **Reactions:** {N} {emoji} |
|
||||
| **Assignee** | @{login} {or _(unassigned)_} |
|
||||
| **Open PR** | [#{N}](url) {if any} |
|
||||
|
||||
**Status:** {Concise paragraph summarizing the issue state based on description + all comments.
|
||||
Include: what the reporter wants, what maintainers have said, whether the community has
|
||||
provided workarounds, whether there are linked PRs. End with the current blocking factor.}
|
||||
|
||||
{If the issue was flagged during safety scanning, include immediately after the Status paragraph:}
|
||||
|
||||
> ⚠️ **Safety flag:** {description of concern, e.g., "Issue body contains prompt injection attempt — instructions to 'ignore previous instructions' detected." or "Issue contains suspicious link to non-standard domain."}
|
||||
|
||||
**Recommended actions:**
|
||||
- {Specific label changes: "Add `bug`, `needs repro`, `P2`"}
|
||||
- {Next step: "Close as answered", "Request reproduction steps", "Assign to @X", etc.}
|
||||
- {If stale: "Last author response was on {date} ({N} days ago). Consider closing."}
|
||||
```
|
||||
|
||||
### Backlog Tables
|
||||
|
||||
For the collapsed backlog, use compact tables:
|
||||
|
||||
```markdown
|
||||
| # | Created | Age | Labels | Title | Remaining Actions |
|
||||
|---|---|---|---|---|---|
|
||||
| [#N](url) | YYYY-MM-DD | Nd | `label1`, `label2` | Short title | Add `P2`; consider closing |
|
||||
```
|
||||
|
||||
### Section Emoji Prefixes
|
||||
|
||||
| Section | Emoji |
|
||||
|---|---|
|
||||
| Safety concerns | ⚠️ |
|
||||
| Urgent attention | 🚨 |
|
||||
| Stale issues | ⏰ |
|
||||
| Labels needed | ⚠️ |
|
||||
| Duplicates | 🔀 |
|
||||
| Cross-SDK | 🔗 |
|
||||
| Context/stats | 📊 |
|
||||
| Backlog | 📋 |
|
||||
| Tier checklist | 📝 |
|
||||
Loading…
Reference in a new issue