[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-mcollina-fastify-best-practices-ko":3,"guides-for-mcollina-fastify-best-practices":220,"similar-k17ed9jy1nygmcqva51bkzyyyd866r6h":221},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":22,"identity":185,"isFallback":190,"parentExtension":191,"providers":192,"relations":197,"repo":199,"workflow":217},1778054711476.0596,"k17ed9jy1nygmcqva51bkzyyyd866r6h",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":12,"sourceUrl":13,"tags":14},"Guides development of Fastify Node.js backend servers and REST APIs using TypeScript or JavaScript. Use when building, configuring, or debugging a Fastify application — including defining routes, implementing plugins, setting up JSON Schema validation, handling errors, optimising performance, managing authentication, configuring CORS and security headers, integrating databases, working with WebSockets, and deploying to production. Covers the full Fastify request lifecycle (hooks, serialization, logging with Pino) and TypeScript integration via strip types. Trigger terms: Fastify, Node.js server, REST API, API routes, backend framework, fastify.config, server.ts, app.ts.",{},"Fastify Best Practices","https://github.com/mcollina/skills/tree/HEAD/skills/fastify",[15,16,17,18,19,20,21],"fastify","nodejs","typescript","backend","api","server","http",{"_creationTime":23,"_id":24,"extensionId":5,"locale":25,"result":26,"trustSignals":174,"workflow":183},1778054745098.2305,"kn71xepjynkey4c0x6my1atp3h867cjf","en",{"checks":27,"evaluatedAt":164,"extensionSummary":165,"promptVersionExtension":166,"promptVersionScoring":167,"rationale":168,"score":169,"summary":170,"tags":171,"targetMarket":172,"tier":173},[28,33,36,39,43,46,51,55,58,61,65,69,72,76,79,82,85,88,91,94,97,101,105,109,113,116,119,122,126,129,132,135,138,141,145,148,151,154,157,161],{"category":29,"check":30,"severity":31,"summary":32},"Practical Utility","Problem relevance","pass","The description clearly identifies the problem space of building and debugging Fastify Node.js backend servers and REST APIs.",{"category":29,"check":34,"severity":31,"summary":35},"Unique selling proposition","The skill provides specific guidance on various aspects of Fastify development, including plugins, validation, error handling, and deployment, going beyond basic Fastify usage.",{"category":29,"check":37,"severity":31,"summary":38},"Production readiness","The skill covers a comprehensive lifecycle for Fastify applications, from initial development to deployment, including important details like performance optimization and security headers.",{"category":40,"check":41,"severity":31,"summary":42},"Scope","Single responsibility principle","The skill focuses solely on Fastify best practices, covering a coherent domain of backend development without straying into unrelated areas.",{"category":40,"check":44,"severity":31,"summary":45},"Description quality","The description is detailed, readable, and accurately reflects the content found across the various rule files.",{"category":47,"check":48,"severity":49,"summary":50},"Invocation","Scoped tools","not_applicable","This skill does not expose specific tools but rather provides guidance through markdown files, so the concept of scoped tools does not apply.",{"category":52,"check":53,"severity":31,"summary":54},"Documentation","Configuration & parameter reference","Configuration is primarily driven by environment variables, with clear examples provided in the relevant files (e.g., rules/configuration.md), and Fastify's defaults are well-known.",{"category":40,"check":56,"severity":49,"summary":57},"Tool naming","This skill does not expose tools with specific names, operating through documentation files instead.",{"category":40,"check":59,"severity":49,"summary":60},"Minimal I/O surface","The skill provides documentation and examples, not executable tools with I/O surfaces.",{"category":62,"check":63,"severity":31,"summary":64},"License","License usability","The repository includes an MIT license, which is a permissive open-source license.",{"category":66,"check":67,"severity":49,"summary":68},"Maintenance","Commit recency","No commit date is available for this specific skill file, making recency assessment impossible.",{"category":66,"check":70,"severity":49,"summary":71},"Dependency Management","The skill itself does not introduce dependencies; it relies on Fastify and its ecosystem, which are assumed to be managed by the user.",{"category":73,"check":74,"severity":31,"summary":75},"Security","Secret Management","The documentation correctly advises against hardcoding secrets and emphasizes using environment variables and secure secret managers.",{"category":73,"check":77,"severity":31,"summary":78},"Injection","The skill provides examples of using validation schemas (TypeBox) and parameterized queries, which are key defenses against injection attacks.",{"category":73,"check":80,"severity":31,"summary":81},"Transitive Supply-Chain Grenades","All code examples are self-contained within the skill's files and do not rely on runtime downloads or external script execution.",{"category":73,"check":83,"severity":31,"summary":84},"Sandbox Isolation","The provided code examples and documentation do not suggest any operations that would affect files outside the project's scope.",{"category":73,"check":86,"severity":31,"summary":87},"Sandbox escape primitives","No detached processes or retry loops around denied calls are present in the documentation or examples.",{"category":73,"check":89,"severity":31,"summary":90},"Data Exfiltration","The documentation emphasizes redacting sensitive data in logs and does not include any instructions for submitting confidential data to third parties.",{"category":73,"check":92,"severity":31,"summary":93},"Hidden Text Tricks","The bundled files and documentation do not contain any hidden text, invisible characters, or obfuscation techniques.",{"category":73,"check":95,"severity":31,"summary":96},"Opaque code execution","All code examples are provided as plain, readable TypeScript and do not involve obfuscation, base64 encoding, or runtime script fetching.",{"category":98,"check":99,"severity":31,"summary":100},"Portability","Structural Assumption","The documentation correctly uses relative paths for modules and does not make assumptions about user project structures beyond standard Fastify conventions.",{"category":102,"check":103,"severity":49,"summary":104},"Trust","Issues Attention","No issue data is available for this skill.",{"category":106,"check":107,"severity":49,"summary":108},"Versioning","Release Management","No version information is present in the metadata or files, and no install instructions reference a specific version or branch.",{"category":110,"check":111,"severity":31,"summary":112},"Code Execution","Validation","The skill strongly promotes and demonstrates schema validation using TypeBox, covering request parameters, body, and responses.",{"category":73,"check":114,"severity":31,"summary":115},"Unguarded Destructive Operations","The documentation focuses on best practices and does not contain examples of unguarded destructive operations.",{"category":110,"check":117,"severity":31,"summary":118},"Error Handling","The skill provides comprehensive guidance on Fastify's error handling mechanisms, including custom error classes, centralized handlers, and proper logging.",{"category":110,"check":120,"severity":31,"summary":121},"Logging","The skill details logging best practices using Pino, emphasizing structured logging, redaction, and environment-specific configurations.",{"category":123,"check":124,"severity":31,"summary":125},"Compliance","GDPR","The documentation does not indicate operations on personal data without sanitization and advises on redacting sensitive information.",{"category":123,"check":127,"severity":31,"summary":128},"Target market","The skill provides general Fastify best practices applicable to any geography; no regional restrictions are detected, and the target market is global.",{"category":98,"check":130,"severity":31,"summary":131},"Runtime stability","The skill demonstrates using standard Node.js and Fastify patterns, promoting portability across different environments and shells.",{"category":47,"check":133,"severity":31,"summary":134},"Precise Purpose","The description clearly states the skill's purpose: guiding Fastify development, and provides a good 'When to use' section with positive triggers and implied boundaries.",{"category":47,"check":136,"severity":31,"summary":137},"Concise Frontmatter","The frontmatter is concise, self-contained, and accurately summarizes the core capability and trigger terms.",{"category":52,"check":139,"severity":31,"summary":140},"Concise Body","The main SKILL.md is concise, outlining the structure and linking to detailed rule files, effectively using progressive disclosure.",{"category":142,"check":143,"severity":31,"summary":144},"Context","Progressive Disclosure","The main SKILL.md effectively uses progressive disclosure by linking to individual rule files for specific topics, keeping the main file clean.",{"category":142,"check":146,"severity":49,"summary":147},"Forked exploration","This skill provides guidance and examples, not exploration-heavy workflows, so `context: fork` is not applicable.",{"category":29,"check":149,"severity":31,"summary":150},"Usage examples","The skill includes a 'Quick Start' example and numerous code examples within its various rule files, illustrating common Fastify patterns.",{"category":29,"check":152,"severity":31,"summary":153},"Edge cases","The documentation addresses edge cases and failure modes, particularly in error handling, validation, and security sections, providing recovery paths or best practices.",{"category":110,"check":155,"severity":49,"summary":156},"Tool Fallback","This skill does not rely on external tools that would require fallbacks.",{"category":158,"check":159,"severity":31,"summary":160},"Safety","Halt on unexpected state","While not explicitly listing preconditions in a machine-readable checklist, the documentation implicitly guides users to set up Fastify correctly and addresses error states.",{"category":98,"check":162,"severity":31,"summary":163},"Cross-skill coupling","The skill is self-contained and focused on Fastify; it does not implicitly rely on other skills.",1778054728901,"This skill offers detailed explanations and code examples for building Fastify applications, covering core concepts like plugins, routing, validation, error handling, authentication, and deployment. It leverages TypeBox for schema validation and provides insights into performance optimization and security headers.","2.0.0","3.4.0","The skill provides excellent, comprehensive guidance on Fastify best practices, covering the full development lifecycle. It effectively uses progressive disclosure and includes numerous code examples. Minor points like the lack of explicit versioning or commit recency for individual files do not detract from its overall high quality and applicability.",98,"A comprehensive guide to Fastify development, covering best practices from setup to deployment.",[15,16,17,18,19,20,21],"global","verified",{"codeQuality":175,"collectedAt":176,"documentation":177,"maintenance":179,"security":180,"testCoverage":182},{},1778054717159,{"descriptionLength":178,"readmeSize":8},678,{},{"hasNpmPackage":181,"smitheryVerified":181},false,{"hasCi":181,"hasTests":181},{"updatedAt":184},1778054745098,{"githubOwner":186,"githubRepo":187,"locale":25,"slug":188,"type":189},"mcollina","skills","fastify-best-practices","skill",true,null,{"extract":193,"llm":196},{"commitSha":194,"license":195},"5b2a81354b6d10325da0db9decc9ce5ecc714138","MIT",{"promptVersionExtension":166,"promptVersionScoring":167,"score":169,"targetMarket":172,"tier":173},{"repoId":198},"kd7a9jywzfe3c5g5r1a62htmrn865rt1",{"_creationTime":200,"_id":198,"identity":201,"providers":203,"workflow":214},1777995558409.8955,{"githubOwner":186,"githubRepo":187,"sourceUrl":202},"https://github.com/mcollina/skills",{"discover":204,"github":207},{"sources":205},[206],"skills-sh",{"closedIssues90d":208,"forks":209,"license":195,"openIssues90d":208,"pushedAt":210,"readmeSize":211,"stars":212,"topics":213},4,133,1776438002000,1400,1772,[],{"discoverAt":215,"extractAt":216,"githubAt":216,"updatedAt":216},1777995558409,1778054712462,{"anyEnrichmentAt":218,"extractAt":219,"githubAt":218,"llmAt":184,"updatedAt":184},1778054711844,1778054711476,[],[222,251,278,301,329,357],{"_creationTime":223,"_id":224,"community":225,"display":226,"identity":238,"providers":240,"relations":245,"workflow":247},1778053689272.9238,"k17a5hw81fhwybk1wxavs6mvjs8676ca",{"reviewCount":8},{"description":227,"installMethods":228,"name":229,"sourceUrl":230,"tags":231},"Set up a new Prisma Postgres database and connect it to a local project using the Management API. Use when asked to \"set up a database\", \"create a Prisma Postgres project\", \"get a connection string\", \"connect my app to Prisma Postgres\", or \"provision a database\".",{},"Prisma Postgres Setup","https://github.com/prisma/skills/tree/HEAD/prisma-postgres-setup",[232,233,234,235,236,19,17,237],"prisma","postgres","database","setup","connection","node-js",{"githubOwner":232,"githubRepo":187,"locale":25,"slug":239,"type":189},"prisma-postgres-setup",{"extract":241,"llm":243},{"commitSha":242,"license":195},"741a74fdafc1bf61fa208c2f73878be688cba263",{"promptVersionExtension":166,"promptVersionScoring":167,"score":244,"targetMarket":172,"tier":173},99,{"repoId":246},"kd76h7swxyhk8405svecsqq7gh864y5s",{"anyEnrichmentAt":248,"extractAt":249,"githubAt":248,"llmAt":250,"updatedAt":250},1778053689723,1778053689272,1778053716548,{"_creationTime":252,"_id":253,"community":254,"display":255,"identity":265,"providers":268,"relations":272,"workflow":274},1778054052548.222,"k17fard3a1kf7n7ybxjexq5k2h866rf5",{"reviewCount":8},{"description":256,"installMethods":257,"name":258,"sourceUrl":259,"tags":260},"Discord adapter for chat",{},"Discord Adapter","https://github.com/vercel/chat/tree/HEAD/packages/adapter-discord",[261,262,263,264,17,16],"discord","adapter","chat","sdk",{"githubOwner":266,"githubRepo":263,"locale":25,"slug":267,"type":189},"vercel","chat-adapter-discord",{"extract":269,"llm":271},{"commitSha":270,"license":195},"3e4764db4d5c826cd0938cdcd0130d14eb8ed992",{"promptVersionExtension":166,"promptVersionScoring":167,"score":169,"targetMarket":172,"tier":173},{"repoId":273},"kd7ds766kaxjjf3s3hr8y7z2t9865yn3",{"anyEnrichmentAt":275,"extractAt":276,"githubAt":275,"llmAt":277,"updatedAt":277},1778054054404,1778054052548,1778054107364,{"_creationTime":279,"_id":280,"community":281,"display":282,"identity":290,"providers":291,"relations":295,"workflow":297},1778054720904.8545,"k1720r77wqyk9n0dfd4zk3e7k58678fe",{"reviewCount":8},{"description":283,"name":284,"sourceUrl":285,"tags":286},"Create backend with ElysiaJS, a type-safe, high-performance framework.","ElysiaJS Development Skill","https://github.com/elysiajs/skills/tree/HEAD/elysia",[287,18,17,288,289],"elysiajs","web-framework","api-development",{"githubOwner":287,"githubRepo":187,"locale":25,"slug":287,"type":189},{"extract":292,"llm":294},{"commitSha":293,"license":195},"8fd8031b83bce42e903ed0e38e6170213876c20e",{"promptVersionExtension":166,"promptVersionScoring":167,"score":169,"targetMarket":172,"tier":173},{"repoId":296},"kd7a4589jr46h4ew1xzp5b8v69865e3b",{"anyEnrichmentAt":298,"extractAt":299,"githubAt":298,"llmAt":300,"updatedAt":300},1778054721176,1778054720904,1778054735222,{"_creationTime":302,"_id":303,"community":304,"display":305,"identity":314,"providers":318,"relations":323,"workflow":325},1778054663200.048,"k179757g2vjtqh0xgvene7ebr18676fz",{"reviewCount":8},{"description":306,"installMethods":307,"name":308,"sourceUrl":309,"tags":310},"Generate REST API endpoints with proper structure, validation, error handling, and types. Use when creating new API routes, endpoints, or backend services.",{},"API Endpoint Scaffolder","https://github.com/onewave-ai/claude-skills/tree/HEAD/api-endpoint-scaffolder",[19,17,311,312,313,18],"next-js","express","code-generation",{"githubOwner":315,"githubRepo":316,"locale":25,"slug":317,"type":189},"onewave-ai","claude-skills","api-endpoint-scaffolder",{"extract":319,"llm":321},{"commitSha":320,"license":195},"eb3d80be32b6cafcf0d5df1c1b8a95df75838271",{"promptVersionExtension":166,"promptVersionScoring":167,"score":322,"targetMarket":172,"tier":173},96,{"repoId":324},"kd71e43dj0b7ak5e55pyshxp4n864t6p",{"anyEnrichmentAt":326,"extractAt":327,"githubAt":326,"llmAt":328,"updatedAt":328},1778054667983,1778054663200,1778055270278,{"_creationTime":330,"_id":331,"community":332,"display":333,"identity":344,"providers":346,"relations":350,"workflow":353},1778053930836.1157,"k178e8c43g9ejqr4yhe4r4r7jn8672nz",{"reviewCount":8},{"description":334,"installMethods":335,"name":336,"sourceUrl":337,"tags":338},"Clerk Backend REST API explorer and executor. Browse tags, inspect endpoint schemas, and execute authenticated requests. Use when listing users, managing organizations, or calling any Clerk API endpoint.",{},"Clerk Backend API","https://github.com/clerk/skills/tree/HEAD/skills/core/clerk-backend-api",[339,19,340,341,18,342,343],"clerk","rest","authentication","user-management","organization-management",{"githubOwner":339,"githubRepo":187,"locale":25,"slug":345,"type":189},"clerk-backend-api",{"extract":347,"llm":349},{"commitSha":348,"license":195},"c1f6afc82a165988421166e68872cb41b892c0b0",{"promptVersionExtension":166,"promptVersionScoring":167,"score":322,"targetMarket":172,"tier":173},{"parentExtensionId":351,"repoId":352},"k172gaengd5qyr6gnkq7aq3291866mfa","kd77f99t2sa8rvy3sj7yn73zp1864abx",{"anyEnrichmentAt":354,"extractAt":355,"githubAt":354,"llmAt":356,"updatedAt":356},1778053933098,1778053930836,1778054020038,{"_creationTime":358,"_id":359,"community":360,"display":361,"identity":372,"providers":376,"relations":383,"workflow":385},1777995614337.9844,"k17f0xfg2pkfqd1p5jjzh8sswh8645px",{"reviewCount":8},{"description":362,"installMethods":363,"name":364,"sourceUrl":365,"tags":366},"Scaffold an editable Tandem control panel app",{},"Tandem Panel Scaffold","https://github.com/frumu-ai/tandem/tree/HEAD/packages/create-tandem-panel",[367,368,369,17,370,371],"scaffolding","cli","react","vite","ui",{"githubOwner":373,"githubRepo":374,"locale":25,"slug":375,"type":189},"frumu-ai","tandem","create-tandem-panel",{"extract":377,"llm":380,"smithery":382},{"commitSha":378,"license":379},"25c8ae7c2f8b20d576a2b8d44946ac2e0ff9408d","MIT OR Apache-2.0",{"promptVersionExtension":166,"promptVersionScoring":167,"score":381,"targetMarket":172,"tier":173},100,{"qualityScore":8,"totalActivations":8,"uniqueUsers":8,"useCount":8,"verified":181},{"repoId":384},"kd72pd305er4m7vecv9p6mnd4s865kea",{"anyEnrichmentAt":386,"extractAt":387,"githubAt":388,"llmAt":389,"smitheryAt":386,"updatedAt":389},1777995723550,1777995614338,1777995614791,1777995897177]