Reusable patterns for the Gamma REST API (no SDK exists). Use when building typed wrappers, generation helpers, template factories, or error handling for Gamma. Trigger: "gamma patterns", "gamma client wrapper", "gamma best practices", "gamma API helper", "gamma code structure".
79
76%
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 ./plugins/saas-packs/gamma-pack/skills/gamma-sdk-patterns/SKILL.mdQuality
Discovery
75%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 is well-structured with explicit 'Use when' and 'Trigger' clauses, making it complete and distinctive. However, the capabilities listed are somewhat abstract (e.g., 'generation helpers', 'template factories') rather than concrete actions, and the trigger terms lean toward developer jargon rather than natural user language. It would benefit from more specific action descriptions and broader natural-language trigger coverage.
Suggestions
Replace abstract categories like 'generation helpers' and 'template factories' with concrete actions such as 'generate presentations via API', 'list and apply templates', 'handle pagination and rate limits'.
Add more natural trigger terms users might say, such as 'gamma API', 'gamma integration', 'create gamma presentation', 'gamma REST', or 'call gamma endpoint'.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (Gamma REST API) and some actions ('typed wrappers, generation helpers, template factories, error handling'), but these are somewhat abstract categories rather than concrete specific actions like 'create presentation' or 'send API request with retry logic'. | 2 / 3 |
Completeness | Clearly answers both 'what' (reusable patterns for Gamma REST API including typed wrappers, generation helpers, template factories, error handling) and 'when' (explicit 'Use when' clause and a 'Trigger' list with specific phrases). | 3 / 3 |
Trigger Term Quality | Includes explicit trigger terms like 'gamma patterns', 'gamma client wrapper', 'gamma API helper', which are relevant but somewhat niche. Missing more natural user phrases like 'gamma API', 'gamma integration', 'gamma presentation API', or 'create gamma presentation'. The listed triggers feel more like developer jargon than natural user queries. | 2 / 3 |
Distinctiveness Conflict Risk | Very distinct niche — specifically targets the Gamma REST API with no SDK. The trigger terms are all Gamma-specific, making it highly unlikely to conflict with other skills. | 3 / 3 |
Total | 10 / 12 Passed |
Implementation
77%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a strong, highly actionable skill with production-ready TypeScript patterns for a REST API that lacks an SDK. The workflow is well-sequenced with proper error handling and polling validation. The main weakness is length — the full inline code makes it token-heavy, and some content could be split into referenced files for better progressive disclosure.
Suggestions
Consider moving the full client implementation code into a referenced file (e.g., `gamma-client-reference.ts`) and keeping only a condensed usage example in the SKILL.md body to improve conciseness.
Split detailed type definitions (GenerateRequest, TemplateRequest) into a separate types reference file, keeping only the most essential interfaces inline.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill provides substantial executable code which is valuable since no SDK exists, but it's quite long (~200+ lines of code). Some type definitions (like the full GenerateRequest interface) could be trimmed, and the step-by-step structure adds overhead. The overview paragraph explaining what the skill provides is slightly redundant given the content speaks for itself. | 2 / 3 |
Actionability | Fully executable TypeScript code throughout — complete client singleton, error class, polling helper, retry logic, and template generation are all copy-paste ready with file path comments. Usage examples are concrete with realistic parameters. | 3 / 3 |
Workflow Clarity | The steps are clearly sequenced (client → errors → polling → generate-and-wait → templates → retry), building on each other logically. The polling helper includes timeout-based validation, the retry logic explicitly skips non-retryable errors, and the generate-and-wait pattern provides a clear feedback loop for the async generation workflow. | 3 / 3 |
Progressive Disclosure | The skill references external resources and a next-step skill (`gamma-core-workflow-a`), and uses a summary API reference table. However, the inline code is quite extensive — the typed client, error class, polling, retry, and template patterns could be split into referenced files rather than all living in the SKILL.md body. The endpoint and error handling summary tables at the end are good but the body is monolithic. | 2 / 3 |
Total | 10 / 12 Passed |
Validation
81%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 9 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
allowed_tools_field | 'allowed-tools' contains unusual tool name(s) | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 9 / 11 Passed | |
c8a915c
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.