CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

api-and-interface-design

Guides stable API and interface design. Use when designing APIs, module boundaries, or any public interface. Use when creating REST or GraphQL endpoints, defining type contracts between modules, or establishing boundaries between frontend and backend.

58

Quality

73%

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 ./skills/api-and-interface-design/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.

The body delivers genuinely expert, actionable guidance — the idempotency section, rationalizations table, and verification checklist are well above typical skill quality. It is held back by token inefficiency (standard REST/TypeScript patterns Claude already knows restate at length) and a monolithic structure with a dangling cross-reference instead of a properly split reference bundle.

Suggestions

Move the idempotency deep dive (§6) and the TypeScript Interface Patterns section into a `references/` file (e.g., `references/idempotency.md`, `references/ts-patterns.md`), keeping only the core principles and red flags inline in SKILL.md.

Cut or compress the 'REST API Patterns' section (resource URL table, pagination, filtering, PATCH) — this is material Claude already knows — down to the non-obvious parts, e.g., the PATCH-vs-PUT rationalization row.

Fix the dangling `deprecation-and-migration` reference: either add the referenced file to the bundle or inline a one-line summary of the deprecation guidance instead of pointing at a nonexistent document.

DimensionReasoningScore

Conciseness

The core material (Hyrum's Law implications, idempotency key handling, rationalizations table) is dense and high-value, but sections like 'REST API Patterns' (resource URLs, pagination shape, camelCase query params) and 'TypeScript Interface Patterns' (discriminated unions, branded types, input/output separation) restate concepts Claude already knows at length. This matches anchor 3 ('mostly efficient but includes some unnecessary explanation or could be tightened') — the known-material sections pad the token budget without adding much.

3 / 5

Actionability

Guidance is largely concrete and executable: typed interface definitions, a status-code mapping, boundary validation code with Zod-safeParse, atomic idempotency-key claiming via unique constraint, a payload-hash guard, and a decision table for in-flight duplicates. It falls short of anchor 5 only in minor gaps — some snippets are illustrative fragments (e.g., `replayOrReject(key)` and `hash(req.body)` are referenced but never defined), fitting anchor 4 ('mostly executable guidance... with minor gaps').

4 / 5

Workflow Clarity

The design process is well sequenced: numbered core principles (contract first → error semantics → boundary validation → additive evolution → naming → idempotency), followed by a 'Verification' section with a 12-item checklist that functions as explicit validation checkpoints, plus 'Red Flags' for error recognition. Anchor 5 would require feedback loops for error recovery during execution; the checklist verifies a design but offers no 'if this fails, do X' loop, so anchor 4 is the best fit.

4 / 5

Progressive Disclosure

The file is well-sectioned and easy to navigate internally, but it is a ~365-line monolith with no bundle files at all, and substantial deep-dive content (the full idempotency implementation guide, the TypeScript patterns section) is inlined where anchor 5 expects it split into clearly signaled one-level-deep references. It also contains a dangling reference — 'See `deprecation-and-migration`' points to no file in this bundle — matching anchor 3 ('some structure but could be better organized... content that should be separate is inline') rather than anchor 2, since section organization within the file is good.

3 / 5

Total

14

/

20

Passed

Description

70%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 solid, well-formed description in third-person voice with an explicit and specific 'Use when' trigger set covering REST, GraphQL, module boundaries, and frontend/backend contracts. Its main weakness is a generic 'what' — 'Guides stable API and interface design' says little about what the skill actually provides (principles, error semantics, idempotency, naming conventions).

Suggestions

Replace the generic opening verb with 2-3 concrete capabilities, e.g. 'Applies API design principles — contract-first interfaces, consistent error semantics, idempotency key handling, and naming conventions — for stable public interfaces.'

Trim the catch-all 'or any public interface' or ground it with examples (component props, service boundaries) to reduce overlap risk with component-design skills while keeping trigger breadth.

DimensionReasoningScore

Specificity

The description names the domain ('API and interface design') with one action ('Guides stable API and interface design') but never lists concrete capabilities like 'define contracts', 'design error semantics', or 'apply naming conventions'. This matches anchor 3 ('names domain and 1-2 concrete actions, but not comprehensive') and falls short of anchor 4, which expects several specific actions listed.

3 / 5

Completeness

Both 'what' ('Guides stable API and interface design') and 'when' (two explicit 'Use when...' clauses with concrete triggers) are present, and the 'when' is highly explicit. The 'what' is thinner than anchor 5 expects — a single generic verb ('Guides') rather than enumerating capabilities — so it sits between anchors 4 and 5, closer to 4.

4 / 5

Trigger Term Quality

Natural trigger terms are well covered: 'designing APIs', 'module boundaries', 'public interface', 'REST or GraphQL endpoints', 'type contracts', 'boundaries between frontend and backend'. Good coverage but a few natural variations users might say are missing (e.g., 'endpoints', 'SDK design', 'schema design'), fitting anchor 4 rather than the comprehensive synonym coverage of anchor 5.

4 / 5

Distinctiveness Conflict Risk

The API/interface design niche is clear with specific triggers (REST/GraphQL endpoints, module boundaries, type contracts) that are unlikely to fire for unrelated skills. However, the broad catch-all 'or any public interface' creates minor overlap risk with closely related skills (component props, database schema design), matching anchor 4 rather than the minimal conflict of anchor 5.

4 / 5

Total

15

/

20

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 — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

addyosmani/agent-skills

Path

skills/api-and-interface-design/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.