[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6HR2QCFQAN8STF9ABDMV298":3,"skill-same:01M6HR2QCFQAN8STF9ABDMV298":88},{"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":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":14,"repositoryHtmlUrl":45,"repositoryHomepageUrl":6,"ownerHtmlUrl":46,"ownerBlogUrl":47,"ownerDescription":48,"updatedAt":49,"install":50,"resources":63},"01M6HR2QCFQAN8STF9ABDMV298","validate-deps",null,"Enforce allowed import directions between top-level src\u002F layers (default skill-issue CLI graph). Edit ALLOWED_IMPORTS in hard\u002Findex.ts for your repo.","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-deps\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"validate","validate deps","deps","graph","index","src","repo","edit","default skill","issue","default","enforce","import","directions","top","layers","for","cli","2026-11-10 10:12:30",false,"---\nname: validate-deps\ndescription: Enforce allowed import directions between top-level src\u002F layers (default skill-issue CLI graph). Edit ALLOWED_IMPORTS in hard\u002Findex.ts for your repo.\n---\n\n# validate-deps (soft)\n\nPrevents accidental **wrong-direction** imports between architecture layers. The bundled rules match the **skill-issue** `src\u002F` layout (`core`, `commands`, `git`, `registry`); edit **`hard\u002Findex.ts`** for other projects.\n\nSee **[hard\u002FREADME.md](hard\u002FREADME.md)** for the contract and how to customize layers.\n","# validate-deps (soft)\n\nPrevents accidental **wrong-direction** imports between architecture layers. The bundled rules match the **skill-issue** `src\u002F` layout (`core`, `commands`, `git`, `registry`); edit **`hard\u002Findex.ts`** for other projects.\n\nSee **[hard\u002FREADME.md](hard\u002FREADME.md)** for the contract and how to customize layers.\n",{"name":5,"description":7},"main","52fb76f2f2a48e8f95c02b4e0ae1e134b167b84b",".agents\u002Fskills\u002Fvalidate-deps","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":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add midyan\u002Fskissue --skill validate-deps",{"tool":56,"command":57},"bunx","bunx skills add midyan\u002Fskissue --skill validate-deps",{"tool":59,"command":60},"pnpm","pnpm dlx skills add midyan\u002Fskissue --skill validate-deps","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fvalidate-deps\u002FSKILL.md",true,[64,70,76,80,84],{"path":65,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":68,"sourceHtmlUrl":69},"hard\u002FINDEX.md","REFERENCE","参考文档",588,"https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fvalidate-deps\u002Fhard\u002FINDEX.md",{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},"hard\u002Findex.test.ts","SCRIPT","脚本",3648,"https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fvalidate-deps\u002Fhard\u002Findex.test.ts",{"path":77,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":78,"sourceHtmlUrl":79},"hard\u002Findex.ts",4258,"https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fvalidate-deps\u002Fhard\u002Findex.ts",{"path":81,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":82,"sourceHtmlUrl":83},"hard\u002FREADME.md",1349,"https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fvalidate-deps\u002Fhard\u002FREADME.md",{"path":85,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":86,"sourceHtmlUrl":87},"INDEX.md",325,"https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fvalidate-deps\u002FINDEX.md",[89,105,120,133,146,159],{"skillNo":90,"name":91,"nameZh":6,"description":92,"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":37},"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,96,97,98,99,100,101,102,103,104],"shell","exec","validate shell exec","tmux","spawn","process","modules","usage","subprocess",{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":37},"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,112,113,114,115,116,117,118,119],"registry","validate registry","validate registry hard","json","shape","root","at","path",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":126,"publishedAt":37},"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",[],[113,19,112,127,128,129,130,117,115,131,132],"do","keep","drift","with","docs","disk",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":139,"publishedAt":37},"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,140,141,35,24,142,129,30,143,144,145],"naming","validate naming","reports","type","case","consistency",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":152,"publishedAt":37},"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",[],[153,154,19,155,36,156,157,158],"validate logging","logging","console","observability","structured","structured logging",{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":165,"publishedAt":37},"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",[],[166,167,19,168,169,170,171,25,172,173,174,175,176,35],"validate links","links","run","harness","npm","markdown","check","broken","scan","across","via"]