[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6HR37KF0C9PD1E98QHCYAX1":3,"skill-same:01M6HR37KF0C9PD1E98QHCYAX1":84},{"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":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":38,"commitSha":39,"skillDirectory":40,"forksCount":14,"repositoryHtmlUrl":41,"repositoryHomepageUrl":6,"ownerHtmlUrl":42,"ownerBlogUrl":43,"ownerDescription":44,"updatedAt":45,"install":46,"resources":59},"01M6HR37KF0C9PD1E98QHCYAX1","validate-links",null,"Scan markdown for broken relative links across the repo. Run via npm run check:links or the registry hard skill.","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-links\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32],"validate","links","validate links","run","registry","npm","markdown","repo","check","broken","scan","across","via","for","2026-11-10 10:12:30",false,"---\nname: validate-links\ndescription: Scan markdown for broken relative links across the repo. Run via npm run check:links or the registry hard skill.\n---\n\n# validate-links (soft)\n\nUse before large doc moves or when CI reports broken links. The **hard** implementation walks `*.md` files and checks `[text](relative)` targets resolve.\n\nSee **[hard\u002FREADME.md](hard\u002FREADME.md)** for flags, exit codes, and exclusions.\n","# validate-links (soft)\n\nUse before large doc moves or when CI reports broken links. The **hard** implementation walks `*.md` files and checks `[text](relative)` targets resolve.\n\nSee **[hard\u002FREADME.md](hard\u002FREADME.md)** for flags, exit codes, and exclusions.\n",{"name":5,"description":7},"main","52fb76f2f2a48e8f95c02b4e0ae1e134b167b84b",".agents\u002Fskills\u002Fvalidate-links","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":47,"prompt":57,"zipAvailable":58},[48,51,54],{"tool":49,"command":50},"npx","npx skills add midyan\u002Fskissue --skill validate-links",{"tool":52,"command":53},"bunx","bunx skills add midyan\u002Fskissue --skill validate-links",{"tool":55,"command":56},"pnpm","pnpm dlx skills add midyan\u002Fskissue --skill validate-links","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fvalidate-links\u002FSKILL.md",true,[60,66,72,76,80],{"path":61,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":64,"sourceHtmlUrl":65},"hard\u002FINDEX.md","REFERENCE","参考文档",563,"https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fvalidate-links\u002Fhard\u002FINDEX.md",{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"hard\u002Findex.test.ts","SCRIPT","脚本",3366,"https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fvalidate-links\u002Fhard\u002Findex.test.ts",{"path":73,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":74,"sourceHtmlUrl":75},"hard\u002Findex.ts",3261,"https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fvalidate-links\u002Fhard\u002Findex.ts",{"path":77,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":78,"sourceHtmlUrl":79},"hard\u002FREADME.md",1085,"https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fvalidate-links\u002Fhard\u002FREADME.md",{"path":81,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":82,"sourceHtmlUrl":83},"INDEX.md",306,"https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fvalidate-links\u002FINDEX.md",[85,101,115,128,143,157],{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":33},"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,92,93,94,95,96,97,98,99,100],"shell","exec","validate shell exec","tmux","spawn","process","modules","usage","subprocess",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":33},"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,23,108,109,110,111,112,113,114],"validate registry","validate registry hard","json","shape","root","at","path",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":121,"publishedAt":33},"01M6HR5GF9YJD8Z6J0Q460BCMB","validate-registry","Keep root registry.json consistent with on-disk skill folders so installs and docs do not drift.","https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002Fharness\u002Fvalidate-registry\u002FSKILL.md",[],[108,19,23,122,123,124,125,112,110,126,127],"do","keep","drift","with","docs","disk",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":134,"publishedAt":33},"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,135,136,32,137,138,124,139,140,141,142],"naming","validate naming","src","reports","enforce","type","case","consistency",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":149,"publishedAt":33},"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",[],[150,151,19,152,153,154,155,156],"validate logging","logging","console","cli","observability","structured","structured logging",{"skillNo":158,"name":5,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":162,"publishedAt":33},"01M6HR59251M2QP9BTCG1831B7","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",[],[21,20,19,22,163,24,25,26,27,28,29,30,31,32],"harness"]