CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

fastify-project-starter

Scaffold a production-ready Fastify 5.x API with TypeScript, plugin architecture, JSON Schema validation, and auto-generated Swagger docs.

Quality

78%

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 ./backend-node/fastify-project-starter/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

78%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 highly actionable, well-structured scaffold skill whose code examples are complete and executable with only minor token waste in trivial plugin wrappers and editorial asides. The main structural weakness is that all file templates live inline in a single 376-line SKILL.md instead of being split into a bundle, and the workflow has one validation checkpoint but no error-recovery loops.

Suggestions

Move the complete file templates (app.ts, plugins/*, routes/*, services/*) into a templates/ or references/ bundle directory and keep SKILL.md as a concise overview with clearly signaled one-level-deep references — this also makes templates directly copyable rather than retyped.

Trim the trivial full-code sections (sensible plugin wrapper, health check) to one-line mentions, and cut marketing asides ("killer testing feature", "~15k req/s") that add tokens without guidance.

Add brief error-recovery guidance to the first-steps workflow (e.g., what to check when `pnpm tsc --noEmit` fails or the port is already in use) to close the validation feedback loop.

DimensionReasoningScore

Conciseness

The body is dominated by lean, purposeful code with terse conventions ("Everything is a plugin", "No `any`"), assuming Claude's competence — e.g., comments are reduced to one-line pointers like "# Provides: fastify.httpErrors.notFound(), .badRequest(), etc.". Not anchor 5 because a few sections could be trimmed: trivial wrapper plugins (sensible.ts, health check) are shown in full, and editorial asides like "This is Fastify's killer testing feature" and "~15k req/s ... ideal for containerized microservices" add tokens without guidance.

4 / 5

Actionability

Everything is copy-paste executable: a complete scaffold command (pnpm add list, tsc --init flags, directory creation), full implementations for app.ts, server.ts, env/swagger/sensible plugins, TypeBox schemas, routes, service, auth decorator, and an error handler. The few placeholders ("Replace with real JWT verification", "Replace with real database client") are explicitly justified, and "First Steps After Scaffold" gives runnable commands.

5 / 5

Workflow Clarity

The sequence is clear and well-ordered — scaffold command → project structure → key conventions → essential patterns → numbered "First Steps After Scaffold" (copy .env, install, start dev server, test with `curl http://localhost:3000/api/health`) → common commands. The curl health check is an explicit validation checkpoint, but the workflow lacks error-recovery guidance (what to do on validation/type failures, port conflicts), which keeps it below anchor 5. No destructive or batch operations, so no cap applies.

4 / 5

Progressive Disclosure

Section structure is clear (## scaffold / structure / conventions / patterns / commands / integrations), but the entire ~250 lines of file templates are inlined in SKILL.md with no bundle files at all — no references/, scripts/, or assets/ exist. Content that clearly belongs in separate files (the complete plugin and route templates, and the Integration Notes) is inline; a templates/ or references/ bundle would let SKILL.md stay an overview and make the templates directly copyable.

3 / 5

Total

16

/

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 specific, distinctive description that clearly states what the skill does, anchored by framework-specific terminology. Its main weakness is the complete absence of a "Use when..." clause, which both caps completeness and leaves natural trigger phrases ("scaffold", "boilerplate", "set up a Fastify project") implicit rather than explicit.

Suggestions

Append a 'Use when...' clause with concrete trigger phrases, e.g., "Use when the user asks to scaffold, bootstrap, or set up a new Fastify / Node.js API project, or requests a TypeScript API boilerplate with Swagger docs."

Add natural synonyms users might say — "boilerplate", "starter", "project setup", "Node.js backend", "REST API" — to improve trigger-term coverage from good to comprehensive.

State the trigger conditions in third person to match the rest of the description (e.g., "Use when scaffolding a new Fastify project...").

DimensionReasoningScore

Specificity

The description lists several specific, concrete capabilities — "Scaffold a production-ready Fastify 5.x API with TypeScript, plugin architecture, JSON Schema validation, and auto-generated Swagger docs" — naming the exact framework version and four concrete features. It falls short of anchor 5 because it describes a single action (scaffold) with feature attributes rather than multiple distinct actions, and it omits steps like project setup commands or testing.

4 / 5

Completeness

The "what" is clear and concrete (scaffolds a Fastify 5.x API with the listed features), but there is no "Use when..." clause or any explicit trigger guidance, capping completeness at 3 per the rubric guideline. The "when" can only be weakly inferred from the domain terms.

3 / 5

Trigger Term Quality

Good keyword coverage: "Fastify 5.x", "API", "TypeScript", "JSON Schema validation", "Swagger docs", "scaffold" are all terms a user would naturally say when needing this skill. Not anchor 5 because common variations and synonyms are missing — e.g., "boilerplate", "starter", "project setup", "Node.js", "backend", "REST API".

4 / 5

Distinctiveness Conflict Risk

"Fastify 5.x" with "@fastify"-specific vocabulary (plugin architecture, TypeBox-style JSON Schema validation, auto-generated Swagger docs) carves out a clear niche with minimal overlap risk — only a closely related Fastify skill could conflict, and the version pin makes even that unlikely.

5 / 5

Total

16

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

Total

15

/

16

Passed

Repository

achreftlili/deep-dev-skills

Path

backend-node/fastify-project-starter/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.