[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-rivet-dev-rivetkit-client-javascript-vi":3,"guides-for-rivet-dev-rivetkit-client-javascript":223,"similar-k172tftm6a0qyg98pv5x3qj1yx866q2s":224},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":23,"identity":190,"isFallback":195,"parentExtension":196,"providers":197,"relations":201,"repo":203,"workflow":220},1778053871632.6,"k172tftm6a0qyg98pv5x3qj1yx866q2s",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":12,"sourceUrl":13,"tags":14},"RivetKit JavaScript client guidance. Use for browser, Node.js, or Bun clients that connect to Rivet Actors with rivetkit/client, create clients, call actions, or manage connections.",{},"RivetKit JavaScript Client","https://github.com/rivet-dev/skills/tree/HEAD/rivetkit-client-javascript",[15,16,17,18,19,20,21,22],"javascript","typescript","rivetkit","client","guidance","node-js","bun","browser",{"_creationTime":24,"_id":25,"extensionId":5,"locale":26,"result":27,"trustSignals":179,"workflow":188},1778053906431.235,"kn7dgk4xr199phyq1awkf261dn867pqq","en",{"checks":28,"evaluatedAt":169,"extensionSummary":170,"promptVersionExtension":171,"promptVersionScoring":172,"rationale":173,"score":174,"summary":175,"tags":176,"targetMarket":177,"tier":178},[29,34,37,40,44,47,51,55,59,62,66,70,73,77,80,83,86,89,92,95,98,102,106,111,115,118,121,124,128,131,134,137,140,143,147,150,153,156,159,162,166],{"category":30,"check":31,"severity":32,"summary":33},"Practical Utility","Problem relevance","pass","The description clearly names the problem: guiding JavaScript clients for Rivet Actors, which is a concrete and bounded user problem.",{"category":30,"check":35,"severity":32,"summary":36},"Unique selling proposition","The extension provides specific guidance on using the RivetKit client library for various scenarios like creating clients, calling actions, and managing connections, which goes beyond a simple API wrapper.",{"category":30,"check":38,"severity":32,"summary":39},"Production readiness","The extension covers the complete lifecycle of using the RivetKit JavaScript client, including installation, client creation, action calling, connection management, and error handling, making it production-ready.",{"category":41,"check":42,"severity":32,"summary":43},"Scope","Single responsibility principle","The extension focuses solely on guiding the use of the RivetKit JavaScript client, staying within its declared scope without extending into unrelated domains like deployment or testing.",{"category":41,"check":45,"severity":32,"summary":46},"Description quality","The provided description accurately and concisely reflects the skill's functionality, clearly stating its purpose and target audience.",{"category":48,"check":49,"severity":32,"summary":50},"Invocation","Scoped tools","The extension doesn't expose explicit tools in the typical sense; its functionality is demonstrated through code examples and guidance rather than discrete, callable actions.",{"category":52,"check":53,"severity":32,"summary":54},"Documentation","Configuration & parameter reference","The documentation clearly explains connection parameters like `endpoint`, `params`, and `getParams`, including how they are read from environment variables and their default values.",{"category":41,"check":56,"severity":57,"summary":58},"Tool naming","not_applicable","This extension does not expose explicit tools with names; its functionality is presented through code examples and documentation.",{"category":41,"check":60,"severity":32,"summary":61},"Minimal I/O surface","The extension guides the use of client methods, which are inherently designed to have minimal and well-defined I/O surfaces based on the RivetKit client library's design.",{"category":63,"check":64,"severity":57,"summary":65},"License","License usability","No license information is available in the repository files or metadata.",{"category":67,"check":68,"severity":57,"summary":69},"Maintenance","Commit recency","No commit history is available for this repository.",{"category":67,"check":71,"severity":32,"summary":72},"Dependency Management","The extension explicitly states the version of the `rivetkit` dependency to use, managing its dependencies effectively.",{"category":74,"check":75,"severity":32,"summary":76},"Security","Secret Management","The documentation shows how to use environment variables and suggests passing tokens via `params` or `getParams`, which is a secure way to handle secrets.",{"category":74,"check":78,"severity":32,"summary":79},"Injection","The documentation warns against string interpolation for keys and recommends using arrays to prevent key injection attacks.",{"category":74,"check":81,"severity":32,"summary":82},"Transitive Supply-Chain Grenades","The extension does not fetch remote content or execute external scripts, thus avoiding supply-chain risks.",{"category":74,"check":84,"severity":32,"summary":85},"Sandbox Isolation","The extension guides client-side JavaScript usage, which inherently runs in a sandboxed environment and does not involve file system operations outside its scope.",{"category":74,"check":87,"severity":32,"summary":88},"Sandbox escape primitives","As this extension is focused on client-side JavaScript guidance and does not involve running arbitrary scripts or detached processes, there are no sandbox escape primitives.",{"category":74,"check":90,"severity":32,"summary":91},"Data Exfiltration","The extension's purpose is to guide client usage and does not involve making outbound calls to submit confidential data. It demonstrates secure handling of tokens.",{"category":74,"check":93,"severity":32,"summary":94},"Hidden Text Tricks","The bundled files do not contain any hidden text tricks or obfuscated instructions.",{"category":74,"check":96,"severity":32,"summary":97},"Opaque code execution","The provided code examples are plain, readable TypeScript and do not involve obfuscation, base64 decoding, or runtime script fetching.",{"category":99,"check":100,"severity":32,"summary":101},"Portability","Structural Assumption","The code examples provided are self-contained and do not make assumptions about user-specific project organization outside of standard JavaScript/Node.js project structures.",{"category":103,"check":104,"severity":57,"summary":105},"Trust","Issues Attention","No issue data is available for this repository.",{"category":107,"check":108,"severity":109,"summary":110},"Versioning","Release Management","warning","The extension specifies a version for the rivetkit dependency (2.3.0-rc.5) but does not declare its own version in the manifest or any other standard location.",{"category":112,"check":113,"severity":32,"summary":114},"Code Execution","Validation","The extension guides the use of the RivetKit client library, which is expected to handle its own input validation. The documentation for key creation warns against string interpolation, promoting safer practices.",{"category":74,"check":116,"severity":32,"summary":117},"Unguarded Destructive Operations","The extension provides guidance on client-side operations, which are not inherently destructive in the context of server-side actions that would require guards.",{"category":112,"check":119,"severity":32,"summary":120},"Error Handling","The documentation explicitly outlines an error handling policy preferring fail-fast behavior and handling caught errors by logging them, with examples demonstrating `try/catch` blocks and checking for `ActorError`.",{"category":112,"check":122,"severity":57,"summary":123},"Logging","This extension is a guide for client-side JavaScript and does not perform server-side actions that would typically require local audit logging.",{"category":125,"check":126,"severity":32,"summary":127},"Compliance","GDPR","The extension guides client usage and warns against using user data in keys, indirectly promoting privacy.",{"category":125,"check":129,"severity":32,"summary":130},"Target market","The extension is general guidance for JavaScript clients and does not appear to have any regional or jurisdictional limitations.",{"category":99,"check":132,"severity":32,"summary":133},"Runtime stability","The extension provides guidance for browser, Node.js, and Bun clients, indicating broad runtime stability across common JavaScript environments.",{"category":48,"check":135,"severity":32,"summary":136},"Precise Purpose","The description clearly states the extension's purpose: guiding JavaScript clients for Rivet Actors, and provides specific use cases like connecting, creating clients, and calling actions.",{"category":48,"check":138,"severity":32,"summary":139},"Concise Frontmatter","The frontmatter is concise and effectively summarizes the core capability and target audience for the extension.",{"category":52,"check":141,"severity":32,"summary":142},"Concise Body","The skill body is well-structured and concise, using relative paths to link to external documentation for deeper material, adhering to progressive disclosure.",{"category":144,"check":145,"severity":32,"summary":146},"Context","Progressive Disclosure","The documentation uses relative paths to link to external guides and API references, effectively implementing progressive disclosure.",{"category":144,"check":148,"severity":57,"summary":149},"Forked exploration","This skill is guidance-based and does not involve deep exploration or code review that would necessitate `context: fork`.",{"category":30,"check":151,"severity":32,"summary":152},"Usage examples","The extension provides multiple, ready-to-use TypeScript examples demonstrating various aspects of the RivetKit client, including basic usage, stateful connections, and error handling.",{"category":30,"check":154,"severity":32,"summary":155},"Edge cases","The documentation covers error handling, including specific `ActorError` types and the importance of logging, as well as discusses stateless vs. stateful connections and their implications.",{"category":112,"check":157,"severity":57,"summary":158},"Tool Fallback","This extension is a guide for client-side JavaScript usage and does not rely on or declare any optional tools with fallbacks.",{"category":99,"check":160,"severity":32,"summary":161},"Stack assumptions","The skill explicitly states support for browser, Node.js, and Bun clients, and the TypeScript examples are standard and portable across these environments.",{"category":163,"check":164,"severity":32,"summary":165},"Safety","Halt on unexpected state","The 'Error Handling Policy' section in the SKILL.md mandates fail-fast behavior and explicit error handling, implying that unexpected states should halt the workflow.",{"category":99,"check":167,"severity":32,"summary":168},"Cross-skill coupling","The skill is self-contained, focusing solely on the RivetKit JavaScript client, and does not implicitly or explicitly rely on other skills.",1778053893009,"This extension demonstrates how to create and manage clients, call actor actions, handle connections, and manage errors when using the RivetKit JavaScript library in browser, Node.js, or Bun environments. It emphasizes secure practices like using environment variables for tokens and warns against key injection attacks.","2.0.0","3.4.0","The extension is well-documented, provides clear examples, and covers its scope effectively. The only warning is for missing release management, as its own version is not declared.",95,"This skill provides comprehensive guidance and examples for using the RivetKit JavaScript client library.",[15,16,17,18,19,20,21,22],"global","verified",{"codeQuality":180,"collectedAt":181,"documentation":182,"maintenance":184,"security":185,"testCoverage":187},{},1778053876650,{"descriptionLength":183,"readmeSize":8},181,{},{"hasNpmPackage":186,"smitheryVerified":186},false,{"hasCi":186,"hasTests":186},{"updatedAt":189},1778053906431,{"githubOwner":191,"githubRepo":192,"locale":26,"slug":193,"type":194},"rivet-dev","skills","rivetkit-client-javascript","skill",true,null,{"extract":198,"llm":200},{"commitSha":199,"license":57},"c626b57a1c4d4e6aeaf5a847eacc7f7c935f7400",{"promptVersionExtension":171,"promptVersionScoring":172,"score":174,"targetMarket":177,"tier":178},{"repoId":202},"kd7ep76bhx2vtmzfmawky8y1qn864yta",{"_creationTime":204,"_id":202,"identity":205,"providers":207,"workflow":217},1777995558409.8484,{"githubOwner":191,"githubRepo":192,"sourceUrl":206},"https://github.com/rivet-dev/skills",{"discover":208,"github":211},{"sources":209},[210],"skills-sh",{"closedIssues90d":8,"forks":212,"openIssues90d":213,"pushedAt":214,"readmeSize":8,"stars":215,"topics":216},2,1,1778025044000,14,[],{"discoverAt":218,"extractAt":219,"githubAt":219,"updatedAt":219},1777995558409,1778053875188,{"anyEnrichmentAt":221,"extractAt":222,"githubAt":221,"llmAt":189,"updatedAt":189},1778053874346,1778053871632,[],[225,244,271,299,327,349],{"_creationTime":226,"_id":227,"community":228,"display":229,"identity":237,"providers":239,"relations":242,"workflow":243},1778053871632.6006,"k1735mp8tmh8kwzjmvhs1p235d866a8n",{"reviewCount":8},{"description":230,"installMethods":231,"name":232,"sourceUrl":233,"tags":234},"RivetKit React client guidance. Use for React apps that connect to Rivet Actors with @rivetkit/react, create hooks with createRivetKit, or manage realtime state with useActor.",{},"RivetKit React Client","https://github.com/rivet-dev/skills/tree/HEAD/rivetkit-client-react",[235,15,16,236,17,19],"react","web-development",{"githubOwner":191,"githubRepo":192,"locale":26,"slug":238,"type":194},"rivetkit-client-react",{"extract":240,"llm":241},{"commitSha":199,"license":57},{"promptVersionExtension":171,"promptVersionScoring":172,"score":174,"targetMarket":177,"tier":178},{"repoId":202},{"anyEnrichmentAt":221,"extractAt":222,"githubAt":221,"llmAt":189,"updatedAt":189},{"_creationTime":245,"_id":246,"community":247,"display":248,"identity":256,"providers":259,"relations":265,"workflow":267},1778054425877.1958,"k171ck7gyw157xcvkrk6k0r9y1866w01",{"reviewCount":8},{"description":249,"name":250,"sourceUrl":251,"tags":252},"ESLint rules for React Hooks","ESLint Plugin React Hooks","https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks",[235,253,254,255,15,16],"eslint","linting","hooks",{"githubOwner":257,"githubRepo":235,"locale":26,"slug":258,"type":194},"facebook","eslint-plugin-react-hooks",{"extract":260,"llm":263},{"commitSha":261,"license":262},"9635257c1b557acc81f95b1e974a54c752e703a2","MIT",{"promptVersionExtension":171,"promptVersionScoring":172,"score":264,"targetMarket":177,"tier":178},99,{"repoId":266},"kd73v9dy7vwq94hgzc7eh43b9s865rhq",{"anyEnrichmentAt":268,"extractAt":269,"githubAt":268,"llmAt":270,"updatedAt":270},1778054428301,1778054425877,1778054588390,{"_creationTime":272,"_id":273,"community":274,"display":275,"identity":287,"providers":289,"relations":293,"workflow":295},1778053689272.9238,"k17a5hw81fhwybk1wxavs6mvjs8676ca",{"reviewCount":8},{"description":276,"installMethods":277,"name":278,"sourceUrl":279,"tags":280},"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",[281,282,283,284,285,286,16,20],"prisma","postgres","database","setup","connection","api",{"githubOwner":281,"githubRepo":192,"locale":26,"slug":288,"type":194},"prisma-postgres-setup",{"extract":290,"llm":292},{"commitSha":291,"license":262},"741a74fdafc1bf61fa208c2f73878be688cba263",{"promptVersionExtension":171,"promptVersionScoring":172,"score":264,"targetMarket":177,"tier":178},{"repoId":294},"kd76h7swxyhk8405svecsqq7gh864y5s",{"anyEnrichmentAt":296,"extractAt":297,"githubAt":296,"llmAt":298,"updatedAt":298},1778053689723,1778053689272,1778053716548,{"_creationTime":300,"_id":301,"community":302,"display":303,"identity":312,"providers":316,"relations":321,"workflow":323},1778053622473.6711,"k176a0bfcr2ba1tesnxq87tpkd867bnw",{"reviewCount":8},{"description":304,"installMethods":305,"name":306,"sourceUrl":307,"tags":308},"Extension from jwynia/agent-skills",{},"React PWA","https://github.com/jwynia/agent-skills/tree/HEAD/skills/tech/frontend/pwa/react-pwa",[309,235,310,15,16,311,236],"pwa","vite","service-worker",{"githubOwner":313,"githubRepo":314,"locale":26,"slug":315,"type":194},"jwynia","agent-skills","react-pwa",{"extract":317,"llm":319},{"commitSha":318,"license":262},"e02ec7e226a6e4f8419fd3b88a1d8e472d421b32",{"promptVersionExtension":171,"promptVersionScoring":172,"score":320,"targetMarket":177,"tier":178},98,{"repoId":322},"kd7efn3mprpa8rd8vm5hw5ebzx864fph",{"anyEnrichmentAt":324,"extractAt":325,"githubAt":324,"llmAt":326,"updatedAt":326},1778053625386,1778053622473,1778054012696,{"_creationTime":328,"_id":329,"community":330,"display":331,"identity":342,"providers":344,"relations":347,"workflow":348},1778053622473.6658,"k17bbjjk7fn3ngqhcnvx7d97y9867yk9",{"reviewCount":8},{"description":332,"installMethods":333,"name":334,"sourceUrl":335,"tags":336},"Build and publish npx-executable CLI tools using Bun as the primary toolchain with npm-compatible output. Use when the user wants to create a new CLI tool, set up a command-line package for npx execution, configure argument parsing and terminal output, or publish a CLI to npm. Covers scaffolding, citty arg parsing, sub-commands, terminal UX, strict TypeScript, Biome + ESLint linting, Vitest testing, Bunup bundling, and publishing workflows. Keywords: npx, cli, command-line, binary, bin, tool, bun, citty, commander, terminal, publish, typescript, biome, vitest.",{},"npx CLI Tool Development (Bun-First)","https://github.com/jwynia/agent-skills/tree/HEAD/skills/tech/development/tooling/npx-cli",[337,21,16,338,339,340,341],"cli","npm","scaffolding","tooling","development",{"githubOwner":313,"githubRepo":314,"locale":26,"slug":343,"type":194},"npx-cli",{"extract":345,"llm":346},{"commitSha":318,"license":262},{"promptVersionExtension":171,"promptVersionScoring":172,"score":320,"targetMarket":177,"tier":178},{"repoId":322},{"anyEnrichmentAt":324,"extractAt":325,"githubAt":324,"llmAt":326,"updatedAt":326},{"_creationTime":350,"_id":351,"community":352,"display":353,"identity":361,"providers":364,"relations":369,"workflow":371},1777995614337.9856,"k177fpj38ebtn9tkr8x4kx39xd864dvz",{"reviewCount":8},{"description":354,"name":355,"sourceUrl":356,"tags":357},"TypeScript client for the Tandem autonomous agent engine HTTP + SSE API","Tandem TypeScript Client","https://github.com/frumu-ai/tandem/tree/HEAD/packages/tandem-client-ts",[16,18,286,358,359,360,20],"tandem","agent","sdk",{"githubOwner":362,"githubRepo":358,"locale":26,"slug":363,"type":194},"frumu-ai","frumu-tandem-client",{"extract":365,"llm":367,"smithery":368},{"commitSha":366,"license":262},"25c8ae7c2f8b20d576a2b8d44946ac2e0ff9408d",{"promptVersionExtension":171,"promptVersionScoring":172,"score":320,"targetMarket":177,"tier":178},{"qualityScore":8,"totalActivations":8,"uniqueUsers":8,"useCount":8,"verified":186},{"repoId":370},"kd72pd305er4m7vecv9p6mnd4s865kea",{"anyEnrichmentAt":372,"extractAt":373,"githubAt":374,"llmAt":375,"smitheryAt":372,"updatedAt":375},1777995723550,1777995614338,1777995614791,1777995897177]