[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6HR59251M2QP9BTCG1831B7":3,"skill-same:01M6HR59251M2QP9BTCG1831B7":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},"01M6HR59251M2QP9BTCG1831B7","validate-links",null,"Scan markdown for broken relative links across the repo. Run via npm run check:links or the harness 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\u002Fharness\u002Fvalidate-links\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32],"validate","links","validate links","run","harness","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 harness 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","harness\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\u002Fharness\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\u002Fharness\u002Fvalidate-links\u002Fhard\u002FINDEX.md",{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"hard\u002Findex.test.ts","SCRIPT","脚本",3484,"https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002Fharness\u002Fvalidate-links\u002Fhard\u002Findex.test.ts",{"path":73,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":74,"sourceHtmlUrl":75},"hard\u002Findex.ts",3192,"https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002Fharness\u002Fvalidate-links\u002Fhard\u002Findex.ts",{"path":77,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":78,"sourceHtmlUrl":79},"hard\u002FREADME.md",1084,"https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002Fharness\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\u002Fharness\u002Fvalidate-links\u002FINDEX.md",[85,101,116,129,144,158],{"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",[],[92,93,94,19,95,96,97,98,99,100],"validate shell exec","exec","shell","subprocess","usage","modules","tmux","spawn","process",{"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",[],[108,109,110,19,111,112,113,114,115],"validate registry hard","validate registry","registry","json","shape","root","at","path",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":122,"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",[],[19,109,110,113,123,124,111,125,126,127,128],"docs","disk","do","drift","keep","with",{"skillNo":130,"name":131,"nameZh":6,"description":132,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":135,"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",[],[136,137,19,32,138,139,126,140,141,142,143],"validate naming","naming","src","reports","enforce","type","case","consistency",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":150,"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",[],[151,152,19,153,154,155,156,157],"validate logging","logging","structured","observability","cli","console","structured logging",{"skillNo":159,"name":160,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":164,"publishedAt":33},"01M6HR55033EC8NJCPM5R0H56T","validate-indexes-hard","Executable validation for INDEX.md \u002F AGENTS.md — implementation contract and invocation.","https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002Fharness\u002Fvalidate-indexes\u002Fhard\u002FSKILL.md",[],[19,165,166,167,32,168,169,170,171],"validate indexes hard","validate indexes","indexes","validation","contract","index","implementation"]