CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl-labs/fastify-best-practices

Fastify patterns — always apply schema-first validation, plugin encapsulation, structured error handling, hooks lifecycle, decorators, TypeScript type providers, production hardening (CORS, helmet, rate limiting), pino logging, graceful shutdown, and correct async handler patterns

89

2.75x
Quality

89%

Does it follow best practices?

Impact

91%

2.75x

Average score across 5 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

Quality

Discovery

100%

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

This is an excellent skill description that comprehensively covers Fastify-specific patterns and capabilities with concrete, actionable items. It includes a well-structured 'Use when' clause with multiple natural trigger scenarios and uses proper third-person voice throughout. The description effectively balances technical depth with accessibility.

DimensionReasoningScore

Specificity

Lists multiple specific concrete actions and patterns: schema-first validation, encapsulated plugins, hooks lifecycle, decorators, structured error handling, TypeScript type providers, async handler patterns, and production hardening with specific tools (CORS, helmet, rate limiting, logging, graceful shutdown).

3 / 3

Completeness

Clearly answers both what (Fastify patterns with comprehensive list of capabilities) AND when with explicit triggers: 'Use when building or reviewing Fastify APIs, when migrating from Express, or when setting up a new Node.js API with Fastify.'

3 / 3

Trigger Term Quality

Excellent coverage of natural terms users would say: 'Fastify', 'APIs', 'Express', 'Node.js API', 'TypeScript', 'CORS', 'helmet', 'rate limiting', 'logging', 'graceful shutdown', 'migrating from Express'. These are terms developers naturally use when working with Fastify.

3 / 3

Distinctiveness Conflict Risk

Clear niche focused specifically on Fastify framework with distinct triggers. The mention of 'migrating from Express' and Fastify-specific concepts (encapsulated plugins, hooks lifecycle, decorators) clearly distinguishes it from generic Node.js or Express skills.

3 / 3

Total

12

/

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 Fastify skill with excellent executable code examples and clear workflow guidance. The main weakness is verbosity—some introductory explanations and rule preambles explain concepts Claude already knows, and the document length suggests some content could be split into referenced files for better progressive disclosure.

Suggestions

Trim introductory paragraphs that explain what Fastify is or why its features matter—start directly with the actionable guidance

Consider splitting production hardening (CORS, helmet, rate limiting) and TypeScript type providers into separate referenced files to reduce main document length

Remove explanatory comments in code that state the obvious (e.g., '// No validation, no types' after showing untyped code)

DimensionReasoningScore

Conciseness

The skill is mostly efficient with good code examples, but includes some unnecessary explanation (e.g., 'Fastify is built around three ideas that distinguish it from Express' preamble, explanations of what hooks do that Claude would know). The opening paragraph and some rule introductions could be tightened.

2 / 3

Actionability

Excellent actionability with fully executable TypeScript code examples throughout. Every rule includes copy-paste ready code, correct/wrong patterns clearly labeled, and specific package names (@fastify/cors, @fastify/helmet, etc.). The checklist at the end provides concrete verification steps.

3 / 3

Workflow Clarity

Clear sequencing throughout: hooks lifecycle table shows exact order, plugin registration order is explicit ('register auth first, OUTSIDE route plugins'), graceful shutdown has numbered implicit steps. The checklist serves as a validation checkpoint for the entire setup process.

3 / 3

Progressive Disclosure

Content is well-organized with clear rule-based sections and a summary checklist. However, this is a long monolithic document (~400 lines) that could benefit from splitting advanced topics (TypeScript type providers, production hardening) into separate referenced files. The verifiers section references external files appropriately.

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.

Validation9 / 11 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (515 lines); consider splitting into references/ and linking

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

9

/

11

Passed

Reviewed

Table of Contents