CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

api

Add or modify API endpoints using TypeSpec. Use when adding new API routes, modifying request/response types, or changing the OpenAPI spec.

Quality

75%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./.agents/skills/api/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

63%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured, highly actionable skill with a clear five-step workflow, exact commands, and thoughtful validation checkpoints (especially the openmeter/konnect drift check). Its main weaknesses are redundancy between the structure section, workflow steps, and reminders; a long templated code example that duplicates its own reference implementation; and a rules index whose 19 referenced files are absent from the bundle.

Suggestions

Remove the duplicated content: state the konnect drift rule once (in Step 1) and trim Important Reminders entries that restate the Context section, keeping the full handler example only as a pointer to api/v3/handlers/llmcost/list_prices.go with a leaner skeleton inline.

Ship the rules/ directory referenced by the rule index table (or inline the few most-used rules) — 19 referenced files are missing from the bundle, so progressive disclosure currently bottoms out.

Add an explicit error-recovery loop for Step 2 (e.g., 'if make gen-api fails, fix TypeSpec diagnostics and re-run before proceeding') so validation failures have a defined retry path.

DimensionReasoningScore

Conciseness

The body is dense with repo-specific, non-obvious guidance, but has noticeable redundancy: the konnect drift guidance appears in both the structure section and Step 1, "All new APIs go in the AIP package" is repeated in Important Reminders, and the 75-line full List handler example duplicates the cited llmcost reference implementation. This is more than the 'minor instances' of the anchor above.

3 / 5

Actionability

Concrete commands (make gen-api, make generate), exact file paths, a five-step workflow, and a three-file wiring checklist make the guidance mostly executable; the Go templates use <Resource>/<domain> placeholders requiring substitution, keeping it short of copy-paste ready.

4 / 5

Workflow Clarity

A clear, ordered five-step workflow with explicit validation checkpoints ("Check that it completes without errors", the openmeter/konnect diff check, Step 5 review of generated output), but no explicit error-recovery loop for failed generation or failed validation.

4 / 5

Progressive Disclosure

The design intent is good — a descriptive index table pointing one level deep to 19 rules/ files plus pointers to the /api-filters skill and service-patterns docs — but no rules/ directory or any bundle files exist alongside SKILL.md, so none of the 19 referenced rule files are verifiable, and large handler/validation code blocks are inlined that would fit better in reference files.

3 / 5

Total

14

/

20

Passed

Description

78%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description with an explicit, concrete 'Use when...' clause covering both what the skill does and when to invoke it. Trigger terms are natural and domain-specific. It could be slightly more comprehensive on the action side, since the skill actually covers generation, handler implementation, and server wiring beyond just spec editing.

DimensionReasoningScore

Specificity

"Add or modify API endpoints using TypeSpec" names the domain and two concrete actions, but does not cover the broader scope the skill body handles (code generation, handler implementation, server wiring), matching the '1-2 concrete actions, not comprehensive' anchor rather than the 'several specific actions' anchor above.

3 / 5

Completeness

Explicitly answers both what ("Add or modify API endpoints using TypeSpec") and when ("Use when adding new API routes, modifying request/response types, or changing the OpenAPI spec") with concrete trigger phrases, matching the top anchor exactly.

5 / 5

Trigger Term Quality

Includes natural phrases users would say — "adding new API routes", "modifying request/response types", "changing the OpenAPI spec" — with good keyword coverage, though a few natural variations (e.g., "spec", "handlers", "SDK") are missing.

4 / 5

Distinctiveness Conflict Risk

Anchored to TypeSpec and OpenAPI spec work, giving it a clear niche with mostly distinct triggers; minor overlap risk with the closely related /api-filters skill referenced in the body.

4 / 5

Total

16

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

allowed_tools_field

'allowed-tools' contains unusual tool name(s)

Warning

relative_links

Relative link issues: 2 missing

Warning

Total

14

/

16

Passed

Repository

openmeterio/openmeter

Path

.agents/skills/api/SKILL.md

Reviewed

Table of Contents

Is this your skill?

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.