[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6HR3R4170MEF87QHHCMPEPC":3,"skill-same:01M6HR3R4170MEF87QHHCMPEPC":63},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":30,"linkOnly":31,"markdownContent":32,"markdownBody":33,"frontMatter":34,"refName":35,"commitSha":36,"skillDirectory":37,"forksCount":14,"repositoryHtmlUrl":38,"repositoryHomepageUrl":6,"ownerHtmlUrl":39,"ownerBlogUrl":40,"ownerDescription":41,"updatedAt":42,"install":43,"resources":56},"01M6HR3R4170MEF87QHHCMPEPC","validate-registry",null,"Keep root registry.json consistent with on-disk skill folders so installs and docs do not drift.","midyan\u002Fskissue","midyan","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F13965184?v=4","01M6HR129RJC96XEWYHVR936QW","Yan Nunes","01M6HR12DGZWQT00J351M1HZB3",0,"MIT","https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fvalidate-registry\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29],"validate","registry","validate registry","docs","disk","json","do","drift","keep","with","root","2026-11-10 10:12:30",false,"---\nname: validate-registry\ndescription: Keep root registry.json consistent with on-disk skill folders so installs and docs do not drift.\n---\n\n# validate-registry (soft)\n\nUse when **editing `registry.json`** or **adding\u002Fremoving skills** under **`registry\u002F`**.\n\n## Why\n\nConsumers and **`skill-issue install`** rely on paths in **`registry.json`**. The **hard** component verifies JSON shape and that each path exists with a root **`SKILL.md`** (soft component for that skill).\n\nSee **`hard\u002FSKILL.md`** for the executable contract.\n","# validate-registry (soft)\n\nUse when **editing `registry.json`** or **adding\u002Fremoving skills** under **`registry\u002F`**.\n\n## Why\n\nConsumers and **`skill-issue install`** rely on paths in **`registry.json`**. The **hard** component verifies JSON shape and that each path exists with a root **`SKILL.md`** (soft component for that skill).\n\nSee **`hard\u002FSKILL.md`** for the executable contract.\n",{"name":5,"description":7},"main","52fb76f2f2a48e8f95c02b4e0ae1e134b167b84b",".agents\u002Fskills\u002Fvalidate-registry","https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue","https:\u002F\u002Fgithub.com\u002Fmidyan","https:\u002F\u002Fyannunes.com.br","?‍??","2026-05-18 22:37:05",{"source":8,"skillName":5,"commands":44,"prompt":54,"zipAvailable":55},[45,48,51],{"tool":46,"command":47},"npx","npx skills add midyan\u002Fskissue --skill validate-registry",{"tool":49,"command":50},"bunx","bunx skills add midyan\u002Fskissue --skill validate-registry",{"tool":52,"command":53},"pnpm","pnpm dlx skills add midyan\u002Fskissue --skill validate-registry","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fvalidate-registry\u002FSKILL.md",true,[57],{"path":58,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":61,"sourceHtmlUrl":62},"INDEX.md","REFERENCE","参考文档",434,"https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fvalidate-registry\u002FINDEX.md",[64,80,91,96,112,126],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":30},"01M6HR5R1RJAWKHHGEDWJRX763","validate-shell-exec","Restrict child_process.spawn\u002Fexec to approved modules (e.g. shell\u002Ftmux helpers) so subprocess usage stays centralized.","https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002Fharness\u002Fvalidate-shell-exec\u002FSKILL.md",[],[19,71,72,73,74,75,76,77,78,79],"shell","exec","validate shell exec","tmux","spawn","process","modules","usage","subprocess",{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":30},"01M6HR5KZ9HVXZ305J8WCKRYQS","validate-registry-hard","Validates registry.json shape and that each skill path contains SKILL.md at the skill root.","https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002Fharness\u002Fvalidate-registry\u002Fhard\u002FSKILL.md",[],[19,20,21,87,24,88,29,89,90],"validate registry hard","shape","at","path",{"skillNo":92,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":30},"01M6HR5GF9YJD8Z6J0Q460BCMB","https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002Fharness\u002Fvalidate-registry\u002FSKILL.md",[],[21,19,20,25,27,26,28,29,24,22,23],{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":30},"01M6HR5DMXBXXJ8TXDMNB9ECKJ","validate-naming","Enforce kebab-case filenames and PascalCase type names under src\u002F; reports naming drift for consistency.","https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002Fharness\u002Fvalidate-naming\u002FSKILL.md",[],[19,103,104,105,106,107,26,108,109,110,111],"naming","validate naming","for","src","reports","enforce","type","case","consistency",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":118,"publishedAt":30},"01M6HR5BB44E1J7V342BNR89RW","validate-logging","Prefer structured logging over raw console.* outside approved CLI entrypoints; keeps observability consistent.","https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002Fharness\u002Fvalidate-logging\u002FSKILL.md",[],[119,120,19,121,122,123,124,125],"validate logging","logging","console","cli","observability","structured","structured logging",{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":132,"publishedAt":30},"01M6HR59251M2QP9BTCG1831B7","validate-links","Scan markdown for broken relative links across the repo. Run via npm run check:links or the harness hard skill.","https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002Fharness\u002Fvalidate-links\u002FSKILL.md",[],[133,134,19,135,136,137,138,139,140,141,142,143,144,105],"validate links","links","run","harness","npm","markdown","repo","check","broken","scan","across","via"]