[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-clerk-clerk-webhooks-pl":3,"guides-for-clerk-clerk-webhooks":271,"similar-k1792g3k2xz6wm5q236ph2fspd866rcc":272},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":21,"identity":190,"isFallback":194,"parentExtension":195,"providers":250,"relations":253,"repo":254,"workflow":270},1778053930836.1226,"k1792g3k2xz6wm5q236ph2fspd866rcc",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":12,"sourceUrl":13,"tags":14},"Clerk webhooks for real-time events and data syncing. Always output complete, copy-paste-ready webhook handlers with verifyWebhook(req) verification. Listen for user creation, updates, deletion, and organization events. Build event-driven features like database sync, notifications, integrations.",{},"Clerk Webhooks","https://github.com/clerk/skills/tree/HEAD/skills/features/clerk-webhooks",[15,16,17,18,19,20],"clerk","webhooks","nextjs","express","typescript","api",{"_creationTime":22,"_id":23,"extensionId":5,"locale":24,"result":25,"trustSignals":178,"workflow":188},1778054020038.7024,"kn76k6d6e0twhd87hh7rkemjed8674qd","en",{"checks":26,"evaluatedAt":168,"extensionSummary":169,"promptVersionExtension":170,"promptVersionScoring":171,"rationale":172,"score":173,"summary":174,"tags":175,"targetMarket":176,"tier":177},[27,32,35,38,42,45,50,54,57,60,64,68,71,75,78,81,84,87,90,93,97,101,105,109,113,116,119,123,127,130,133,136,139,142,146,149,152,155,158,161,165],{"category":28,"check":29,"severity":30,"summary":31},"Practical Utility","Problem relevance","pass","The description clearly names a concrete user problem: integrating real-time events from Clerk into an application via webhooks for data syncing and event-driven features.",{"category":28,"check":33,"severity":30,"summary":34},"Unique selling proposition","The skill provides complete, copy-paste-ready webhook handlers with explicit verification steps, going beyond a simple API wrapper by offering pre-built, secure integration patterns.",{"category":28,"check":36,"severity":30,"summary":37},"Production readiness","The skill provides complete webhook handler examples for various scenarios (user events, org events, notifications) with clear instructions for Next.js and Express.js, covering the full lifecycle of webhook integration.",{"category":39,"check":40,"severity":30,"summary":41},"Scope","Single responsibility principle","The extension focuses solely on Clerk webhooks and their integration, without extending into unrelated domains.",{"category":39,"check":43,"severity":30,"summary":44},"Description quality","The description is accurate, concise, and clearly explains the purpose of the skill, including the critical requirement for webhook verification.",{"category":46,"check":47,"severity":48,"summary":49},"Invocation","Scoped tools","not_applicable","This skill primarily provides code examples and patterns rather than exposing distinct tools for the agent to select. The `WebFetch` tool is listed as allowed but not directly used by the provided code snippets for core webhook handling.",{"category":51,"check":52,"severity":30,"summary":53},"Documentation","Configuration & parameter reference","The required `CLERK_WEBHOOK_SECRET` environment variable is clearly documented, and its usage with `verifyWebhook` is demonstrated. No implicit parameters are used.",{"category":39,"check":55,"severity":48,"summary":56},"Tool naming","The skill does not expose distinct user-facing tools with names, relying on code examples instead.",{"category":39,"check":58,"severity":30,"summary":59},"Minimal I/O surface","The provided code examples demonstrate minimal and focused I/O by handling specific webhook events and performing targeted database operations or external API calls as shown in the examples.",{"category":61,"check":62,"severity":30,"summary":63},"License","License usability","The license is clearly stated as MIT in the SKILL.md frontmatter and the README, which is a permissive open-source license.",{"category":65,"check":66,"severity":48,"summary":67},"Maintenance","Commit recency","No commit date is available from the provided metadata to assess recency.",{"category":65,"check":69,"severity":48,"summary":70},"Dependency Management","The skill itself does not appear to have external dependencies that require management beyond standard Node.js/Next.js project dependencies, which are assumed to be handled by the user's project.",{"category":72,"check":73,"severity":30,"summary":74},"Security","Secret Management","Secrets are managed via environment variables (`CLERK_WEBHOOK_SECRET`, `RESEND_API_KEY`, `SLACK_WEBHOOK_URL`), and the code correctly uses these without echoing them to stdout or stderr.",{"category":72,"check":76,"severity":30,"summary":77},"Injection","The skill correctly emphasizes and demonstrates webhook signature verification using `@clerk/nextjs/webhooks` and Svix, treating incoming data as untrusted until verified.",{"category":72,"check":79,"severity":30,"summary":80},"Transitive Supply-Chain Grenades","The skill does not fetch remote code or data at runtime for execution or instruction following. All provided code is bundled, and external dependencies like `@clerk/nextjs/webhooks` and `svix` are standard npm packages.",{"category":72,"check":82,"severity":30,"summary":83},"Sandbox Isolation","The skill provides code examples for webhook handlers that operate within the user's application context and do not attempt to modify files outside of the project's scope.",{"category":72,"check":85,"severity":30,"summary":86},"Sandbox escape primitives","No sandbox escape primitives like detached processes or retry loops on denied calls are present in the provided code examples.",{"category":72,"check":88,"severity":30,"summary":89},"Data Exfiltration","The skill focuses on processing webhook data within the user's application and does not include instructions for exfiltrating confidential data to third parties.",{"category":72,"check":91,"severity":30,"summary":92},"Hidden Text Tricks","The bundled content appears to be free of hidden-steering tricks, invisible characters, or other obfuscation methods.",{"category":94,"check":95,"severity":30,"summary":96},"Hooks","Opaque code execution","The provided code examples are clear, readable TypeScript and do not involve obfuscation, base64 payloads, or runtime code fetching.",{"category":98,"check":99,"severity":30,"summary":100},"Portability","Structural Assumption","The examples assume standard Next.js App Router or Express.js project structures, which are common. Clear instructions are given for file placement and middleware configuration.",{"category":102,"check":103,"severity":48,"summary":104},"Trust","Issues Attention","Issue data is not available in the provided metadata.",{"category":106,"check":107,"severity":30,"summary":108},"Versioning","Release Management","The `Manifest Version` field in SKILL.md frontmatter shows `1.2.0`, indicating a clear version signal.",{"category":110,"check":111,"severity":30,"summary":112},"Code Execution","Validation","The skill emphasizes and demonstrates webhook signature verification, which serves as a critical validation step for incoming data. The examples also show basic validation of incoming event types.",{"category":72,"check":114,"severity":30,"summary":115},"Unguarded Destructive Operations","The provided examples demonstrate database operations (create, update, delete) but do not involve inherently destructive operations like file deletion or infrastructure changes without user confirmation.",{"category":110,"check":117,"severity":30,"summary":118},"Error Handling","The examples include try-catch blocks for webhook verification and explicit error handling for verification failures, returning appropriate HTTP status codes.",{"category":110,"check":120,"severity":121,"summary":122},"Logging","info","The provided examples include console logging for errors and basic event information, but do not implement a structured local audit file.",{"category":124,"check":125,"severity":121,"summary":126},"Compliance","GDPR","The skill processes personal data (email, name, user ID) as part of webhook payloads. While it doesn't submit this data to a third party for non-Clerk purposes, it does not include explicit stripping or anonymization beyond what Clerk provides, and personal data is sent to the LLM for processing within the handler.",{"category":124,"check":128,"severity":30,"summary":129},"Target market","The extension focuses on Clerk webhooks, which are a global service, and the provided examples use standard web technologies and common database interactions, indicating a global target market.",{"category":98,"check":131,"severity":30,"summary":132},"Runtime stability","The examples are written in TypeScript and demonstrate compatibility with common Node.js runtimes (Next.js App Router, Express.js), with clear instructions on environment variable setup.",{"category":46,"check":134,"severity":30,"summary":135},"Precise Purpose","The description clearly states the purpose (Clerk webhooks for real-time events and data syncing) and provides explicit use cases (database sync, notifications, integrations) and critical instructions (verify webhooks, public routes).",{"category":46,"check":137,"severity":30,"summary":138},"Concise Frontmatter","The frontmatter is concise and effectively summarizes the skill's core capability and requirements.",{"category":51,"check":140,"severity":30,"summary":141},"Concise Body","The SKILL.md content is well-structured, uses code fences for examples, and keeps the main body concise, delegating detailed event types to lists rather than embedding extensive documentation.",{"category":143,"check":144,"severity":30,"summary":145},"Context","Progressive Disclosure","The SKILL.md outlines the main concepts and then provides distinct code examples for different scenarios (Next.js, Express, specific event handling) rather than embedding all possibilities inline.",{"category":143,"check":147,"severity":48,"summary":148},"Forked exploration","This skill provides code examples and patterns, not a deep exploration workflow that would benefit from 'context: fork'.",{"category":28,"check":150,"severity":30,"summary":151},"Usage examples","Multiple complete, ready-to-use examples are provided for Next.js, Express.js, various event types, and integrations like Resend and Slack, demonstrating input, invocation, and expected outcome.",{"category":28,"check":153,"severity":30,"summary":154},"Edge cases","The skill explicitly documents critical edge cases like verification failures, making webhook routes public, and the importance of not skipping verification, providing clear symptom and fix.",{"category":110,"check":156,"severity":48,"summary":157},"Tool Fallback","The skill does not rely on external tools like MCP servers; it provides code examples that use standard Node.js libraries and Clerk's SDK.",{"category":98,"check":159,"severity":30,"summary":160},"Stack assumptions","The skill clearly states its stack assumptions (Next.js App Router, Express.js, Node.js) and preconditions (CLERK_WEBHOOK_SECRET env var) upfront.",{"category":162,"check":163,"severity":30,"summary":164},"Safety","Halt on unexpected state","The skill mandates that webhook verification must not be skipped and clearly outlines how to handle verification failures by returning a 400 status code, ensuring unexpected states halt the process gracefully.",{"category":98,"check":166,"severity":30,"summary":167},"Cross-skill coupling","The skill is self-contained and focuses on Clerk webhooks. While it mentions related Clerk skills, it does not implicitly rely on them being loaded in the same session.",1778053990398,"This skill offers ready-to-use TypeScript code examples for handling Clerk webhook events, including user, organization, and membership changes. It demonstrates how to implement secure webhook verification, integrate with databases via ORMs like Prisma, and send notifications using services like Resend and Slack.","2.0.0","3.4.0","The clerk-webhooks skill is exceptionally well-documented and provides robust, production-ready examples for integrating Clerk webhooks. It strongly emphasizes security through verification and clear error handling. The only minor points are the lack of a structured audit log and the inherent processing of personal data within handlers, which are acceptable trade-offs for this type of integration.",95,"Provides comprehensive, secure, and production-ready examples for integrating Clerk webhooks into Next.js and Express.js applications.",[15,16,17,18,19,20],"global","verified",{"codeQuality":179,"collectedAt":180,"documentation":181,"maintenance":183,"security":184,"testCoverage":187},{},1778053976683,{"descriptionLength":182,"readmeSize":8},296,{},{"hasNpmPackage":185,"license":186,"smitheryVerified":185},false,"MIT",{"hasCi":185,"hasTests":185},{"updatedAt":189},1778054020038,{"githubOwner":15,"githubRepo":191,"locale":24,"slug":192,"type":193},"skills","clerk-webhooks","skill",true,{"_creationTime":196,"_id":197,"community":198,"display":199,"identity":214,"parentExtension":217,"providers":245,"relations":248,"workflow":249},1778053930836.121,"k172frdvq0x6yj945vg2ce7z9s867rrz",{"reviewCount":8},{"description":200,"installMethods":201,"name":202,"sourceUrl":203,"tags":204},"Clerk feature skills: organizations, billing, webhooks, and testing",{},"Clerk Skills","https://github.com/clerk/skills",[15,205,17,206,207,208,209,210,211,212,16,213,20,19],"authentication","react","vue","expo","ios","android","billing","organizations","testing",{"githubOwner":15,"githubRepo":191,"locale":24,"slug":215,"type":216},"features","plugin",{"_creationTime":218,"_id":219,"community":220,"display":221,"identity":229,"providers":232,"relations":240,"workflow":242},1778053930836.1133,"k176xntnjb9e2mv2a7hqvgmy7h866yhy",{"reviewCount":8},{"description":222,"installMethods":223,"name":202,"sourceUrl":203,"tags":224},"Official Clerk skills for AI coding agents",{},[15,205,225,226,227,228],"auth","developer-tools","ai-agent","coding",{"githubOwner":15,"githubRepo":191,"locale":24,"slug":230,"type":231},"clerk-skills","marketplace",{"extract":233,"llm":238},{"commitSha":234,"license":186,"marketplace":235},"c1f6afc82a165988421166e68872cb41b892c0b0",{"name":230,"pluginCount":236,"version":237},4,"1.0.0",{"promptVersionExtension":170,"promptVersionScoring":171,"score":239,"targetMarket":176,"tier":177},85,{"repoId":241},"kd77f99t2sa8rvy3sj7yn73zp1864abx",{"anyEnrichmentAt":243,"extractAt":244,"githubAt":243,"llmAt":189,"updatedAt":189},1778053933098,1778053930836,{"extract":246,"llm":247},{"commitSha":234,"license":186},{"promptVersionExtension":170,"promptVersionScoring":171,"score":239,"targetMarket":176,"tier":177},{"parentExtensionId":219,"repoId":241},{"anyEnrichmentAt":243,"extractAt":244,"githubAt":243,"llmAt":189,"updatedAt":189},{"extract":251,"llm":252},{"commitSha":234,"license":186},{"promptVersionExtension":170,"promptVersionScoring":171,"score":173,"targetMarket":176,"tier":177},{"parentExtensionId":197,"repoId":241},{"_creationTime":255,"_id":241,"identity":256,"providers":257,"workflow":267},1777995558409.8354,{"githubOwner":15,"githubRepo":191,"sourceUrl":203},{"discover":258,"github":261},{"sources":259},[260],"skills-sh",{"closedIssues90d":8,"forks":262,"openIssues90d":8,"pushedAt":263,"readmeSize":264,"stars":265,"topics":266},2,1778011344000,5449,40,[],{"discoverAt":268,"extractAt":269,"githubAt":269,"updatedAt":269},1777995558409,1778053934643,{"anyEnrichmentAt":243,"extractAt":244,"githubAt":243,"llmAt":189,"updatedAt":189},[],[273,296,325,347,369,396],{"_creationTime":274,"_id":275,"community":276,"display":277,"identity":289,"providers":290,"relations":293,"workflow":295},1778053930836.1143,"k17dagbzjys9k0k8gw8jmg2awd866a80",{"reviewCount":8},{"description":278,"installMethods":279,"name":280,"sourceUrl":281,"tags":282},"Clerk authentication router. Use when user asks about adding authentication, setting up Clerk, custom sign-in flows, Swift or native iOS auth, native Android auth, Next.js patterns, React patterns, Vue patterns, Nuxt patterns, Astro patterns, TanStack Start patterns, Expo patterns, React Router patterns, Chrome Extension patterns, organizations, billing, subscriptions, payments, pricing, plans, seat-based pricing, feature entitlements, syncing users, or testing. Automatically routes to the specific skill based on their task.",{},"Clerk Skills Router","https://github.com/clerk/skills/tree/HEAD/skills/core/clerk",[205,15,283,17,206,207,284,285,286,208,287,212,211,16,213,209,210,288],"router","nuxt","astro","tanstack","chrome-extension","backend-api",{"githubOwner":15,"githubRepo":191,"locale":24,"slug":15,"type":193},{"extract":291,"llm":292},{"commitSha":234,"license":186},{"promptVersionExtension":170,"promptVersionScoring":171,"score":173,"targetMarket":176,"tier":177},{"parentExtensionId":294,"repoId":241},"k172gaengd5qyr6gnkq7aq3291866mfa",{"anyEnrichmentAt":243,"extractAt":244,"githubAt":243,"llmAt":189,"updatedAt":189},{"_creationTime":297,"_id":298,"community":299,"display":300,"identity":312,"providers":314,"relations":319,"workflow":321},1778053689272.9238,"k17a5hw81fhwybk1wxavs6mvjs8676ca",{"reviewCount":8},{"description":301,"installMethods":302,"name":303,"sourceUrl":304,"tags":305},"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",[306,307,308,309,310,20,19,311],"prisma","postgres","database","setup","connection","node-js",{"githubOwner":306,"githubRepo":191,"locale":24,"slug":313,"type":193},"prisma-postgres-setup",{"extract":315,"llm":317},{"commitSha":316,"license":186},"741a74fdafc1bf61fa208c2f73878be688cba263",{"promptVersionExtension":170,"promptVersionScoring":171,"score":318,"targetMarket":176,"tier":177},99,{"repoId":320},"kd76h7swxyhk8405svecsqq7gh864y5s",{"anyEnrichmentAt":322,"extractAt":323,"githubAt":322,"llmAt":324,"updatedAt":324},1778053689723,1778053689272,1778053716548,{"_creationTime":326,"_id":327,"community":328,"display":329,"identity":339,"providers":341,"relations":345,"workflow":346},1778053930836.1216,"k179vaekcmae3hrhq6rhxzc03d86616j",{"reviewCount":8},{"description":330,"installMethods":331,"name":332,"sourceUrl":333,"tags":334},"Clerk Organizations for B2B SaaS - create multi-tenant apps with org switching, role-based access, verified domains, and enterprise SSO. Use for team workspaces, RBAC, org-based routing, member management.",{},"Clerk Organizations","https://github.com/clerk/skills/tree/HEAD/skills/features/clerk-orgs",[15,205,335,336,212,337,338,17],"b2b","saas","rbac","sso",{"githubOwner":15,"githubRepo":191,"locale":24,"slug":340,"type":193},"clerk-orgs",{"extract":342,"llm":343},{"commitSha":234,"license":186},{"promptVersionExtension":170,"promptVersionScoring":171,"score":344,"targetMarket":176,"tier":177},98,{"parentExtensionId":197,"repoId":241},{"anyEnrichmentAt":243,"extractAt":244,"githubAt":243,"llmAt":189,"updatedAt":189},{"_creationTime":348,"_id":349,"community":350,"display":351,"identity":361,"providers":363,"relations":366,"workflow":368},1778053930836.1196,"k17ak27g3g09fy7wf40a461jmh866tny",{"reviewCount":8},{"description":352,"installMethods":353,"name":354,"sourceUrl":355,"tags":356},"TanStack React Start auth patterns with @clerk/tanstack-react-start - createServerFn, beforeLoad guards, loaders, Vinxi server. Triggers on: TanStack auth, createServerFn clerk, beforeLoad protection, TanStack Start middleware.",{},"TanStack React Start Patterns","https://github.com/clerk/skills/tree/HEAD/skills/frameworks/clerk-tanstack-patterns",[286,206,15,205,17,357,358,359,360],"server","routes","guards","middleware",{"githubOwner":15,"githubRepo":191,"locale":24,"slug":362,"type":193},"clerk-tanstack-patterns",{"extract":364,"llm":365},{"commitSha":234,"license":186},{"promptVersionExtension":170,"promptVersionScoring":171,"score":344,"targetMarket":176,"tier":177},{"parentExtensionId":367,"repoId":241},"k1743f7ms46548z8nzj1s5afxd866ek0",{"anyEnrichmentAt":243,"extractAt":244,"githubAt":243,"llmAt":189,"updatedAt":189},{"_creationTime":370,"_id":371,"community":372,"display":373,"identity":383,"providers":386,"relations":390,"workflow":392},1778054711476.0596,"k17ed9jy1nygmcqva51bkzyyyd866r6h",{"reviewCount":8},{"description":374,"installMethods":375,"name":376,"sourceUrl":377,"tags":378},"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",[379,380,19,381,20,357,382],"fastify","nodejs","backend","http",{"githubOwner":384,"githubRepo":191,"locale":24,"slug":385,"type":193},"mcollina","fastify-best-practices",{"extract":387,"llm":389},{"commitSha":388,"license":186},"5b2a81354b6d10325da0db9decc9ce5ecc714138",{"promptVersionExtension":170,"promptVersionScoring":171,"score":344,"targetMarket":176,"tier":177},{"repoId":391},"kd7a9jywzfe3c5g5r1a62htmrn865rt1",{"anyEnrichmentAt":393,"extractAt":394,"githubAt":393,"llmAt":395,"updatedAt":395},1778054711844,1778054711476,1778054745098,{"_creationTime":397,"_id":398,"community":399,"display":400,"identity":411,"providers":413,"relations":417,"workflow":418},1778053930836.1147,"k172fdk15qkgavq40ypr1pntcn866vss",{"reviewCount":8},{"description":401,"installMethods":402,"name":403,"sourceUrl":404,"tags":405},"Add Clerk authentication to any project by following the official quickstart guides.",{},"Clerk Setup","https://github.com/clerk/skills/tree/HEAD/skills/core/clerk-setup",[205,15,406,309,407,408,206,18,285,207,284,409,410],"web","framework","next-js","remix","documentation",{"githubOwner":15,"githubRepo":191,"locale":24,"slug":412,"type":193},"clerk-setup",{"extract":414,"llm":415},{"commitSha":234,"license":186},{"promptVersionExtension":170,"promptVersionScoring":171,"score":416,"targetMarket":176,"tier":177},97,{"parentExtensionId":294,"repoId":241},{"anyEnrichmentAt":243,"extractAt":244,"githubAt":243,"llmAt":189,"updatedAt":189}]