This skill helps with GitHub Copilot SDK work across Node.js/TypeScript, Python, Go, .NET, and Java. It covers setup, authentication, permissions, streaming events, custom tools, custom agents, MCP servers, hooks, skills, and session persistence.
71
63%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/copilot-sdk/SKILL.mdQuality
Discovery
54%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
The description effectively identifies a clear niche (GitHub Copilot SDK) and includes many relevant trigger terms across multiple programming languages and SDK concepts. However, it uses the phrase 'helps with' (vague) rather than listing concrete actions, and critically lacks any 'Use when...' clause to guide skill selection. The topic enumeration is useful but would benefit from being framed as actionable capabilities.
Suggestions
Add an explicit 'Use when...' clause, e.g., 'Use when the user asks about building with the GitHub Copilot SDK, integrating Copilot into applications, or implementing Copilot extensions.'
Replace 'helps with GitHub Copilot SDK work' with concrete action verbs, e.g., 'Configures authentication, implements streaming event handlers, builds custom tools and agents, and sets up MCP servers for the GitHub Copilot SDK.'
Rephrase to third-person active voice throughout—change 'This skill helps with' to action-oriented phrasing like 'Guides setup, authentication, and implementation of...'
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | The description names the domain (GitHub Copilot SDK) and lists several topic areas (setup, authentication, streaming events, custom tools, etc.), but these read more like a topic list than concrete actions. It doesn't describe what specific actions are performed (e.g., 'configure authentication flows', 'implement streaming event handlers'). | 2 / 3 |
Completeness | The description answers 'what' (covers various Copilot SDK topics) but completely lacks a 'Use when...' clause or any explicit trigger guidance for when Claude should select this skill. Per the rubric, a missing 'Use when...' clause caps completeness at 2, and the 'what' itself is also somewhat weak (topic list rather than clear capabilities), bringing it to 1. | 1 / 3 |
Trigger Term Quality | Includes strong natural keywords users would say: 'GitHub Copilot SDK', 'Node.js', 'TypeScript', 'Python', 'Go', '.NET', 'Java', 'authentication', 'streaming events', 'custom tools', 'custom agents', 'MCP servers', 'hooks', 'session persistence'. These cover many terms a developer would naturally use. | 3 / 3 |
Distinctiveness Conflict Risk | The description targets a very specific niche—GitHub Copilot SDK development—which is unlikely to conflict with other skills. The combination of 'GitHub Copilot SDK' with specific language ecosystems and SDK-specific concepts like 'hooks', 'skills', and 'session persistence' makes it clearly distinguishable. | 3 / 3 |
Total | 9 / 12 Passed |
Implementation
72%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a well-structured, comprehensive skill that covers the GitHub Copilot SDK across five languages with strong actionability through concrete examples, API names, and installation commands. Its main weaknesses are the lengthy list of external URLs that Claude cannot access at runtime (adding token cost without proportional value) and the lack of validation/error-recovery steps in the workflow. The progressive disclosure is excellent with clear local reference file pointers.
Suggestions
Trim the 'Current source of truth' external links section significantly—Claude cannot browse these URLs, so consolidate to just the top 3-5 most important references and note the docs structure pattern instead.
Add validation checkpoints to the quick start pattern, such as checking client.getStatus() after start(), handling connection errors, and verifying session state before sending messages.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is fairly comprehensive but includes some content that could be tightened—the massive list of external doc links (30+) adds bulk without much value since Claude can't browse them, and some sections like 'SDK vs CLI-only features' are somewhat verbose. However, the tables and quick-reference sections are efficient. | 2 / 3 |
Actionability | Provides executable TypeScript example, concrete install commands for all 5 languages, specific API method names, exact permission handler names per language, and precise event names. The language conventions table and gotchas section give highly specific, copy-paste-ready guidance. | 3 / 3 |
Workflow Clarity | The quick start pattern provides a clear 6-step sequence, and the TypeScript example demonstrates it well. However, there are no validation checkpoints or error recovery steps—e.g., no guidance on what to do if start() fails, no verification that the session is actually connected, and no feedback loops for common failure modes. | 2 / 3 |
Progressive Disclosure | Excellent structure with a clear overview, well-organized sections progressing from setup to advanced features, and four clearly signaled local reference files for deeper topics (working examples, event system, CLI/agents/MCP, troubleshooting). References are one level deep and well-labeled. | 3 / 3 |
Total | 10 / 12 Passed |
Validation
100%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 11 / 11 Passed
Validation for skill structure
No warnings or errors.
9b0e00a
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.