[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71SF5R1XSSQDB39FS4KX448":3,"skill-same:01M71SF5R1XSSQDB39FS4KX448":46},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":20,"linkOnly":21,"markdownContent":22,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":6,"ownerHtmlUrl":29,"ownerBlogUrl":6,"ownerDescription":30,"updatedAt":31,"install":32,"resources":45},"01M71SF5R1XSSQDB39FS4KX448","composing-modules",null,"Praneeth-Suresh\u002FBeryl","Praneeth-Suresh","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F86470588?v=4","01M71SF2BCZ4JMKKYZR66WNHAF","Praneeth Suresh","01M71SF2C5JMS7B9676HSA2SG6",11,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Fblob\u002Fmain\u002F.beryl\u002Fagent\u002Fskills\u002Fcomposing-modules\u002FSKILL.md",[],[18,19],"modules","composing modules","2026-11-10 13:02:02",false,"# Composing Modules\n\n## Purpose\n\nSelect an existing package or module only after evidence establishes its exact\nidentity, reliability, compatibility, and fit. This skill prevents invented\nnames, typo-squatting, and unreviewed dependency growth; it does not install,\nclone, or import anything by itself.\n\n## Trigger\n\nUse for requests to add a dependency, reuse a module, select a library, or\ncompose a feature from existing packages. Do not use it to guess a package name\nfrom memory.\n\n## Research protocol\n\n1. Define the required public capability, runtime\u002Flanguage, license constraints,\n   security requirements, and supported-version range.\n2. Research at least three independent sources: the language's official package\n   registry, the repository host\u002Fcanonical repository, and one independent\n   source such as package dependents, security advisory database, vendor docs,\n   or a maintained ecosystem index. Record URLs and retrieval dates as facts.\n3. Verify the exact registry package identity, publisher\u002Fowner where available,\n   canonical repository URL, and release artifact. A name match alone is never\n   evidence. Reject a mismatch, transfer ambiguity, lookalike, or unverifiable\n   repository before any clone or install.\n4. Compare at least two candidates, including the option of a small local\n   implementation. Check API fit, transitive dependency cost, license,\n   supported runtimes, maintenance, security advisories, and removal path.\n\n## Hard reliability gate\n\nA package is **reliable** only when all required facts and at least three\nsignals are satisfied:\n\nRequired facts:\n\n- Registry identity and canonical repository identity match.\n- The intended version has no unresolved critical advisory in an authoritative\n  advisory source.\n- Its license is compatible with the host project.\n\nSignals (three required):\n\n- at least 500 GitHub stars;\n- at least 50 registry dependents, backlinks, or equivalent independently\n  reported adopters;\n- a stable release within the past 18 months;\n- evidence of active maintenance (reviewed issues\u002Fcommits\u002Freleases in 90 days);\n- adoption or documentation from an independent authoritative maintainer.\n\nNumbers are evidence thresholds, not a substitute for threat modelling. A\nsmaller package can be proposed as an exception, but must be labelled\n`not-qualified` with the missing facts and needs explicit user approval.\n\n## Decision record and adoption boundary\n\nPresent a compact evidence table with candidate, exact identity, sources,\nrequired facts, signal count, version, license, security state, alternatives,\nand recommendation. Preserve uncertainty rather than filling gaps with model\nknowledge.\n\nStop after the recommendation. Request explicit approval that names the package\nand version before running a package manager, cloning, changing a manifest or\nlockfile, or importing the module. After approval, use the repository's normal\nfeature workflow, pin or constrain the approved version according to local\nconvention, add a smallest behavior test, and report dependency changes.\n",{},"main","3a5bd7e327cbdad81a70b624ec3fc6e43ec91f12",".beryl\u002Fagent\u002Fskills\u002Fcomposing-modules",0,"https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl","https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh","Just built it.","2026-11-09 18:59:34",{"source":7,"skillName":5,"commands":33,"prompt":43,"zipAvailable":44},[34,37,40],{"tool":35,"command":36},"npx","npx skills add Praneeth-Suresh\u002FBeryl --skill composing-modules",{"tool":38,"command":39},"bunx","bunx skills add Praneeth-Suresh\u002FBeryl --skill composing-modules",{"tool":41,"command":42},"pnpm","pnpm dlx skills add Praneeth-Suresh\u002FBeryl --skill composing-modules","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Fblob\u002Fmain\u002F.beryl\u002Fagent\u002Fskills\u002Fcomposing-modules\u002FSKILL.md",true,[],[47,72,79,112,137,152],{"skillNo":48,"name":49,"nameZh":6,"description":50,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":51,"licenseFileUrl":52,"sourceHtmlUrl":53,"categories":54,"keywords":55,"publishedAt":20},"01M71SGEFHAT82F5TQH73XY6H8","verification-before-completion","Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always","MIT","https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Fblob\u002Fmain\u002F.beryl\u002Fagent\u002Fskills\u002Fverification-before-completion\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Fblob\u002Fmain\u002F.beryl\u002Fagent\u002Fskills\u002Fverification-before-completion\u002FSKILL.md",[],[56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71],"verification","verification before completion","committing","commands","about","work","claims","output","evidence","when","assertions","use","claim","prs","complete","running",{"skillNo":73,"name":74,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":20},"01M71SGD1DV15B9Z2S5V3M8YPH","using-beryl","https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Fblob\u002Fmain\u002F.beryl\u002Fagent\u002Fskills\u002Fusing-beryl\u002FSKILL.md",[],[78],"using beryl",{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":93,"publishedAt":20},"01M71SGAJ7D211GQR4703TTZCW","understand-codebase","Teach a developer how a repository, subsystem, execution path, migration, diff, commit, branch, or pull request works. Use when the user asks to understand, explain, map, walk through, explore, or quiz themselves on code, or asks for an interactive HTML understanding artifact.","https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Fblob\u002Fmain\u002F.beryl\u002Fagent\u002Fskills\u002Funderstand-codebase\u002FSKILL.md",[85,90],{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",{"categoryNo":91,"categoryName":92,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000039","教师与教育",[94,95,96,97,98,99,100,101,102,103,67,65,104,105,106,107,108,109,110,111],"understand","codebase","understand codebase","branch","diff","for","explore","execution","quiz","map","code","commit","interactive","explain","artifact","how","pull request","pull",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":51,"licenseFileUrl":116,"sourceHtmlUrl":117,"categories":118,"keywords":127,"publishedAt":20},"01M71SG8H7CZGRND4C2BS49RV2","test-driven-development","Use when implementing any feature or bugfix, before writing implementation code","https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Fblob\u002Fmain\u002F.beryl\u002Fagent\u002Fskills\u002Ftest-driven-development\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Fblob\u002Fmain\u002F.beryl\u002Fagent\u002Fskills\u002Ftest-driven-development\u002FSKILL.md",[119,124],{"categoryNo":120,"categoryName":121,"taxonomyType":122,"taxonomyTypeDesc":123},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":125,"categoryName":126,"taxonomyType":122,"taxonomyTypeDesc":123},"01JBSEEDCAT000000000000018","写作与文案",[128,129,130,131,132,133,134,67,65,104,135,136],"driven","test","test driven development","development","feature","implementing","writing","bugfix","implementation",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":51,"licenseFileUrl":141,"sourceHtmlUrl":142,"categories":143,"keywords":145,"publishedAt":20},"01M71SG4N855A3ASYXWFX45DH5","systematic-debugging","Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes","https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Fblob\u002Fmain\u002F.beryl\u002Fagent\u002Fskills\u002Fsystematic-debugging\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Fblob\u002Fmain\u002F.beryl\u002Fagent\u002Fskills\u002Fsystematic-debugging\u002FSKILL.md",[144],{"categoryNo":120,"categoryName":121,"taxonomyType":122,"taxonomyTypeDesc":123},[146,147,148,149,67,65,129,150,151],"systematic","debugging","systematic debugging","fixes","behavior","bug",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":159,"publishedAt":20},"01M71SG18JMNV8ED6XQ97Z48X0","simplifying-code","Use when code in a specific module or area is hard to understand or change, when the user asks to simplify, refactor, clean up, or improve the design or architecture of some code, or when a maintenance program hands over a refactor slice. Finds unmanaged complexity from evidence and removes it with small, behavior-preserving changes.","https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Fblob\u002Fmain\u002F.beryl\u002Fagent\u002Fskills\u002Fsimplifying-code\u002FSKILL.md",[158],{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},[160,104,161,162,163,164,165,166,65,67,167,168,169,170,171,172,64,173,174,175],"simplifying code","design","change","with","architecture","program","simplify","module","changes","improve","clean","up","slice","complexity","behavior-preserving","maintenance"]