[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6HR534GPK04QXDV66KC5ZY2":3,"skill-same:01M6HR534GPK04QXDV66KC5ZY2":62},{"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":29,"linkOnly":30,"markdownContent":31,"markdownBody":32,"frontMatter":33,"refName":34,"commitSha":35,"skillDirectory":36,"forksCount":14,"repositoryHtmlUrl":37,"repositoryHomepageUrl":6,"ownerHtmlUrl":38,"ownerBlogUrl":39,"ownerDescription":40,"updatedAt":41,"install":42,"resources":55},"01M6HR534GPK04QXDV66KC5ZY2","validate-indexes",null,"Keep INDEX.md and AGENTS.md navigation accurate so agents can use progressive disclosure instead of scanning the tree.","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-indexes\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28],"validate","indexes","validate indexes","index","use","scanning","navigation","keep","tree","can","2026-11-10 10:12:30",false,"---\nname: validate-indexes\ndescription: Keep INDEX.md and AGENTS.md navigation accurate so agents can use progressive disclosure instead of scanning the tree.\n---\n\n# validate-indexes (soft)\n\nUse this skill when **adding, renaming, or removing** files or directories anywhere in the repo.\n\n## Why\n\nStale indexes mislead agents. The **hard** component under **`hard\u002F`** mechanically verifies that directories with 2+ children have an index and that tables match the filesystem.\n\n## When to run\n\n- After structural changes, before committing.\n- As part of **`npm run check:all`**.\n\nSee **`hard\u002FSKILL.md`** for how the check works and how to extend it.\n","# validate-indexes (soft)\n\nUse this skill when **adding, renaming, or removing** files or directories anywhere in the repo.\n\n## Why\n\nStale indexes mislead agents. The **hard** component under **`hard\u002F`** mechanically verifies that directories with 2+ children have an index and that tables match the filesystem.\n\n## When to run\n\n- After structural changes, before committing.\n- As part of **`npm run check:all`**.\n\nSee **`hard\u002FSKILL.md`** for how the check works and how to extend it.\n",{"name":5,"description":7},"main","52fb76f2f2a48e8f95c02b4e0ae1e134b167b84b","harness\u002Fvalidate-indexes","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":43,"prompt":53,"zipAvailable":54},[44,47,50],{"tool":45,"command":46},"npx","npx skills add midyan\u002Fskissue --skill validate-indexes",{"tool":48,"command":49},"bunx","bunx skills add midyan\u002Fskissue --skill validate-indexes",{"tool":51,"command":52},"pnpm","pnpm dlx skills add midyan\u002Fskissue --skill validate-indexes","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002Fharness\u002Fvalidate-indexes\u002FSKILL.md",true,[56],{"path":57,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":60,"sourceHtmlUrl":61},"INDEX.md","REFERENCE","参考文档",460,"https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002Fharness\u002Fvalidate-indexes\u002FINDEX.md",[63,79,94,106,122,136],{"skillNo":64,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":69,"publishedAt":29},"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,70,71,72,73,74,75,76,77,78],"shell","exec","validate shell exec","tmux","spawn","process","modules","usage","subprocess",{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":29},"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,86,87,88,89,90,91,92,93],"registry","validate registry","validate registry hard","json","shape","root","at","path",{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":100,"publishedAt":29},"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",[],[87,19,86,101,26,102,103,91,89,104,105],"do","drift","with","docs","disk",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":29},"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,113,114,115,116,117,102,118,119,120,121],"naming","validate naming","for","src","reports","enforce","type","case","consistency",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":29},"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",[],[129,130,19,131,132,133,134,135],"validate logging","logging","console","cli","observability","structured","structured logging",{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":142,"publishedAt":29},"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",[],[143,144,19,145,146,147,148,149,150,151,152,153,154,115],"validate links","links","run","harness","npm","markdown","repo","check","broken","scan","across","via"]