[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6HR4BQ7FMR8SPPQ2TGZCAXG":3,"skill-same:01M6HR4BQ7FMR8SPPQ2TGZCAXG":87},{"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":31,"linkOnly":32,"markdownContent":33,"markdownBody":34,"frontMatter":35,"refName":36,"commitSha":37,"skillDirectory":38,"forksCount":14,"repositoryHtmlUrl":39,"repositoryHomepageUrl":6,"ownerHtmlUrl":40,"ownerBlogUrl":41,"ownerDescription":42,"updatedAt":43,"install":44,"resources":57},"01M6HR4BQ7FMR8SPPQ2TGZCAXG","repo-verify-hard",null,"Executable — discover harness hard skills; run verify or fallback static\u002Ftest\u002Fharness\u002Fbuild chain.","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\u002Frepo-verify\u002Fhard\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30],"verify","repo","repo verify","repo verify hard","test","run","harness","fallback","build","discover","chain","hard skills","2026-11-10 10:12:30",false,"---\nname: repo-verify-hard\ndescription: Executable — discover harness hard skills; run verify or fallback static\u002Ftest\u002Fharness\u002Fbuild chain.\n---\n\n# repo-verify (`hard\u002F`)\n\n## Contract\n\n- **Exit 0** — discovery printed; all executed steps succeeded (or dry-run \u002F discover-only).\n- **Exit 1** — a subprocess failed, or no verification steps could be resolved.\n\n## Implementation notes\n\n- Discovery reads **`harness\u002F\u003Cid>\u002Fhard\u002Findex.ts`** presence and **`hard\u002F.no-auto-run`** (same semantics as `harness\u002Frunner.ts`).\n- **`resolveVerifyPlan`** returns **`npm run verify`** when `package.json` has **`scripts.verify`**.\n- **Pre-commit:** **`.husky\u002Fpre-commit`** invokes **`npm run verify`** (Husky); document in soft **SKILL.md** so consumers wire the same gate locally.\n","# repo-verify (`hard\u002F`)\n\n## Contract\n\n- **Exit 0** — discovery printed; all executed steps succeeded (or dry-run \u002F discover-only).\n- **Exit 1** — a subprocess failed, or no verification steps could be resolved.\n\n## Implementation notes\n\n- Discovery reads **`harness\u002F\u003Cid>\u002Fhard\u002Findex.ts`** presence and **`hard\u002F.no-auto-run`** (same semantics as `harness\u002Frunner.ts`).\n- **`resolveVerifyPlan`** returns **`npm run verify`** when `package.json` has **`scripts.verify`**.\n- **Pre-commit:** **`.husky\u002Fpre-commit`** invokes **`npm run verify`** (Husky); document in soft **SKILL.md** so consumers wire the same gate locally.\n",{"name":5,"description":7},"main","52fb76f2f2a48e8f95c02b4e0ae1e134b167b84b","harness\u002Frepo-verify\u002Fhard","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":45,"prompt":55,"zipAvailable":56},[46,49,52],{"tool":47,"command":48},"npx","npx skills add midyan\u002Fskissue --skill repo-verify-hard",{"tool":50,"command":51},"bunx","bunx skills add midyan\u002Fskissue --skill repo-verify-hard",{"tool":53,"command":54},"pnpm","pnpm dlx skills add midyan\u002Fskissue --skill repo-verify-hard","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002Fharness\u002Frepo-verify\u002Fhard\u002FSKILL.md",true,[58,63,69,75,79,83],{"path":59,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":14,"sourceHtmlUrl":62},".no-auto-run","OTHER","其他","https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002Fharness\u002Frepo-verify\u002Fhard\u002F.no-auto-run",{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},"INDEX.md","REFERENCE","参考文档",950,"https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002Fharness\u002Frepo-verify\u002Fhard\u002FINDEX.md",{"path":70,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":73,"sourceHtmlUrl":74},"index.test.ts","SCRIPT","脚本",14976,"https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002Fharness\u002Frepo-verify\u002Fhard\u002Findex.test.ts",{"path":76,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":77,"sourceHtmlUrl":78},"index.ts",5554,"https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002Fharness\u002Frepo-verify\u002Fhard\u002Findex.ts",{"path":80,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":81,"sourceHtmlUrl":82},"README.md",1341,"https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002Fharness\u002Frepo-verify\u002Fhard\u002FREADME.md",{"path":84,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":85,"sourceHtmlUrl":86},"run-plan.test.ts",1720,"https:\u002F\u002Fgithub.com\u002Fmidyan\u002Fskissue\u002Fblob\u002Fmain\u002Fharness\u002Frepo-verify\u002Fhard\u002Frun-plan.test.ts",[88,105,120,133,149,163],{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":31},"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",[],[95,96,97,98,99,100,101,102,103,104],"validate","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":31},"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",[],[95,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":31},"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,95,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":31},"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",[],[95,140,141,142,143,144,129,145,146,147,148],"naming","validate naming","for","src","reports","enforce","type","case","consistency",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":155,"publishedAt":31},"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",[],[156,157,95,158,159,160,161,162],"validate logging","logging","console","cli","observability","structured","structured logging",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":169,"publishedAt":31},"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",[],[170,171,95,24,25,172,173,20,174,175,176,177,178,142],"validate links","links","npm","markdown","check","broken","scan","across","via"]