@dsalazardev/ai-hub-cli 0.0.0-stage → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1296) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE.md +34 -0
  3. package/README.md +64 -2
  4. package/agents/cpp-build-resolver.md +25 -0
  5. package/agents/cpp-reviewer.md +28 -0
  6. package/agents/csharp-reviewer.md +28 -0
  7. package/agents/django-build-resolver.md +25 -0
  8. package/agents/django-reviewer.md +28 -0
  9. package/agents/explorer-domain.md +28 -0
  10. package/agents/fastapi-reviewer.md +28 -0
  11. package/agents/flutter-build-resolver.md +25 -0
  12. package/agents/flutter-reviewer.md +28 -0
  13. package/agents/go-build-resolver.md +25 -0
  14. package/agents/go-reviewer.md +28 -0
  15. package/agents/implementer-backend.md +30 -0
  16. package/agents/implementer-frontend.md +30 -0
  17. package/agents/java-build-resolver.md +26 -0
  18. package/agents/java-reviewer.md +29 -0
  19. package/agents/kotlin-build-resolver.md +25 -0
  20. package/agents/kotlin-reviewer.md +28 -0
  21. package/agents/mle-reviewer.md +28 -0
  22. package/agents/php-reviewer.md +29 -0
  23. package/agents/postgres-reviewer.md +28 -0
  24. package/agents/python-reviewer.md +28 -0
  25. package/agents/pytorch-build-resolver.md +25 -0
  26. package/agents/rag-reviewer.md +28 -0
  27. package/agents/react-build-resolver.md +26 -0
  28. package/agents/react-reviewer.md +29 -0
  29. package/agents/reviewer-architecture.md +32 -0
  30. package/agents/reviewer-tests.md +31 -0
  31. package/agents/rust-build-resolver.md +25 -0
  32. package/agents/rust-reviewer.md +28 -0
  33. package/agents/spec-author.md +36 -0
  34. package/agents/spec-miner.md +14 -0
  35. package/agents/swift-build-resolver.md +25 -0
  36. package/agents/swift-reviewer.md +28 -0
  37. package/agents/typescript-reviewer.md +28 -0
  38. package/agents/vue-reviewer.md +28 -0
  39. package/dist/backup/snapshots.d.ts +24 -0
  40. package/dist/backup/snapshots.js +171 -0
  41. package/dist/bin/ai-hub.d.ts +2 -0
  42. package/dist/bin/ai-hub.js +11 -0
  43. package/dist/catalog.d.ts +76 -0
  44. package/dist/catalog.js +321 -0
  45. package/dist/cli/args.d.ts +4 -0
  46. package/dist/cli/args.js +63 -0
  47. package/dist/cli/context.d.ts +7 -0
  48. package/dist/cli/context.js +79 -0
  49. package/dist/cli/doctor.d.ts +14 -0
  50. package/dist/cli/doctor.js +282 -0
  51. package/dist/cli/drift.d.ts +2 -0
  52. package/dist/cli/drift.js +34 -0
  53. package/dist/cli/items.d.ts +5 -0
  54. package/dist/cli/items.js +10 -0
  55. package/dist/cli/legacy.d.ts +3 -0
  56. package/dist/cli/legacy.js +18 -0
  57. package/dist/cli/maintenance.d.ts +8 -0
  58. package/dist/cli/maintenance.js +334 -0
  59. package/dist/cli/memory.d.ts +2 -0
  60. package/dist/cli/memory.js +89 -0
  61. package/dist/cli/onboarding.d.ts +36 -0
  62. package/dist/cli/onboarding.js +516 -0
  63. package/dist/cli/run.d.ts +15 -0
  64. package/dist/cli/run.js +185 -0
  65. package/dist/cli/source.d.ts +5 -0
  66. package/dist/cli/source.js +22 -0
  67. package/dist/cli/trunk.d.ts +8 -0
  68. package/dist/cli/trunk.js +54 -0
  69. package/dist/cli/types.d.ts +17 -0
  70. package/dist/cli/types.js +4 -0
  71. package/dist/cli/worktrees.d.ts +11 -0
  72. package/dist/cli/worktrees.js +141 -0
  73. package/dist/concurrency.d.ts +5 -0
  74. package/dist/concurrency.js +23 -0
  75. package/dist/engine/engine.d.ts +48 -0
  76. package/dist/engine/engine.js +114 -0
  77. package/dist/engine/gates.d.ts +2 -0
  78. package/dist/engine/gates.js +131 -0
  79. package/dist/frontmatter.d.ts +11 -0
  80. package/dist/frontmatter.js +30 -0
  81. package/dist/harness/guards/adapters/context.d.ts +19 -0
  82. package/dist/harness/guards/adapters/context.js +153 -0
  83. package/dist/harness/guards/adapters/hermes.d.ts +13 -0
  84. package/dist/harness/guards/adapters/hermes.js +18 -0
  85. package/dist/harness/guards/adapters/hooks.d.ts +25 -0
  86. package/dist/harness/guards/adapters/hooks.js +52 -0
  87. package/dist/harness/guards/branch.d.ts +5 -0
  88. package/dist/harness/guards/branch.js +43 -0
  89. package/dist/harness/guards/danger.d.ts +13 -0
  90. package/dist/harness/guards/danger.js +157 -0
  91. package/dist/harness/guards/index.d.ts +6 -0
  92. package/dist/harness/guards/index.js +6 -0
  93. package/dist/harness/guards/preflight.d.ts +14 -0
  94. package/dist/harness/guards/preflight.js +37 -0
  95. package/dist/harness/guards/ship.d.ts +2 -0
  96. package/dist/harness/guards/ship.js +35 -0
  97. package/dist/harness/guards/trunk.d.ts +5 -0
  98. package/dist/harness/guards/trunk.js +41 -0
  99. package/dist/harness/guards/types.d.ts +50 -0
  100. package/dist/harness/guards/types.js +1 -0
  101. package/dist/harness/memory/ledger.d.ts +53 -0
  102. package/dist/harness/memory/ledger.js +136 -0
  103. package/dist/harness/memory/state.d.ts +35 -0
  104. package/dist/harness/memory/state.js +121 -0
  105. package/dist/harness/worktree/reaper.d.ts +32 -0
  106. package/dist/harness/worktree/reaper.js +54 -0
  107. package/dist/manifest/build.d.ts +1 -0
  108. package/dist/manifest/build.js +1 -0
  109. package/dist/manifest/cli.d.ts +2 -0
  110. package/dist/manifest/cli.js +44 -0
  111. package/dist/manifest/dispatch.d.ts +13 -0
  112. package/dist/manifest/dispatch.js +36 -0
  113. package/dist/manifest/labels.d.ts +15 -0
  114. package/dist/manifest/labels.js +70 -0
  115. package/dist/manifest/manifest.d.ts +130 -0
  116. package/dist/manifest/manifest.js +220 -0
  117. package/dist/package-info.d.ts +4 -0
  118. package/dist/package-info.js +7 -0
  119. package/dist/paths.d.ts +33 -0
  120. package/dist/paths.js +123 -0
  121. package/dist/presets/detect.d.ts +24 -0
  122. package/dist/presets/detect.js +116 -0
  123. package/dist/presets/materialize.d.ts +26 -0
  124. package/dist/presets/materialize.js +192 -0
  125. package/dist/presets/resolve.d.ts +37 -0
  126. package/dist/presets/resolve.js +83 -0
  127. package/dist/presets/schema.d.ts +57 -0
  128. package/dist/presets/schema.js +68 -0
  129. package/dist/source-checkout.d.ts +8 -0
  130. package/dist/source-checkout.js +19 -0
  131. package/dist/sync/config.d.ts +47 -0
  132. package/dist/sync/config.js +85 -0
  133. package/dist/sync/lock.d.ts +16 -0
  134. package/dist/sync/lock.js +43 -0
  135. package/dist/sync/render.d.ts +18 -0
  136. package/dist/sync/render.js +259 -0
  137. package/dist/sync/sync.d.ts +38 -0
  138. package/dist/sync/sync.js +288 -0
  139. package/dist/sync/targets.d.ts +24 -0
  140. package/dist/sync/targets.js +78 -0
  141. package/engine/coupling.json +4 -0
  142. package/engine/engine.yaml +250 -0
  143. package/engine/legacy-paths.json +4 -0
  144. package/engine/preflight.md +11 -0
  145. package/manifest.json +402 -0
  146. package/package.json +62 -4
  147. package/presets/angular-express/harness/rules/01-zero-any.sh +25 -0
  148. package/presets/angular-express/harness/rules/02-no-ng-module.sh +21 -0
  149. package/presets/angular-express/harness/rules/03-no-constructor-injection.sh +21 -0
  150. package/presets/angular-express/harness/rules/04-no-legacy-directives.sh +21 -0
  151. package/presets/angular-express/harness/rules/05-no-dolibarrdal-inheritance.sh +25 -0
  152. package/presets/angular-express/harness/rules/06-no-todos.sh +22 -0
  153. package/presets/angular-express/harness/run-all.sh +13 -0
  154. package/presets/angular-express/preset.yaml +53 -0
  155. package/presets/angular-express/references/common-imports-catalog.md +146 -0
  156. package/presets/angular-express/references/fichajes-migration-notes.md +57 -0
  157. package/presets/angular-express/references/module-implementation-flow.md +260 -0
  158. package/presets/angular-express/references/products-coding-standard.md +143 -0
  159. package/presets/angular-express/references/products-module-blueprint.md +860 -0
  160. package/presets/angular-express/references/replicate-module-checklist.md +72 -0
  161. package/presets/angular-express/references/users-migration-notes.md +172 -0
  162. package/presets/angular-express/rules/architecture.md +8 -0
  163. package/presets/angular-express/rules/backend.md +4 -0
  164. package/presets/angular-express/rules/frontend.md +53 -0
  165. package/presets/angular-express/skills/angular-developer/SKILL.md +130 -0
  166. package/presets/angular-express/skills/angular-developer/references/angular-animations.md +160 -0
  167. package/presets/angular-express/skills/angular-developer/references/angular-aria.md +410 -0
  168. package/presets/angular-express/skills/angular-developer/references/cli.md +86 -0
  169. package/presets/angular-express/skills/angular-developer/references/component-harnesses.md +59 -0
  170. package/presets/angular-express/skills/angular-developer/references/component-styling.md +91 -0
  171. package/presets/angular-express/skills/angular-developer/references/components.md +117 -0
  172. package/presets/angular-express/skills/angular-developer/references/creating-services.md +97 -0
  173. package/presets/angular-express/skills/angular-developer/references/data-resolvers.md +69 -0
  174. package/presets/angular-express/skills/angular-developer/references/define-routes.md +67 -0
  175. package/presets/angular-express/skills/angular-developer/references/defining-providers.md +72 -0
  176. package/presets/angular-express/skills/angular-developer/references/di-fundamentals.md +120 -0
  177. package/presets/angular-express/skills/angular-developer/references/e2e-testing.md +66 -0
  178. package/presets/angular-express/skills/angular-developer/references/effects.md +83 -0
  179. package/presets/angular-express/skills/angular-developer/references/hierarchical-injectors.md +43 -0
  180. package/presets/angular-express/skills/angular-developer/references/host-elements.md +80 -0
  181. package/presets/angular-express/skills/angular-developer/references/injection-context.md +63 -0
  182. package/presets/angular-express/skills/angular-developer/references/inputs.md +101 -0
  183. package/presets/angular-express/skills/angular-developer/references/linked-signal.md +59 -0
  184. package/presets/angular-express/skills/angular-developer/references/loading-strategies.md +61 -0
  185. package/presets/angular-express/skills/angular-developer/references/mcp.md +106 -0
  186. package/presets/angular-express/skills/angular-developer/references/migrations.md +30 -0
  187. package/presets/angular-express/skills/angular-developer/references/navigate-to-routes.md +69 -0
  188. package/presets/angular-express/skills/angular-developer/references/outputs.md +86 -0
  189. package/presets/angular-express/skills/angular-developer/references/reactive-forms.md +122 -0
  190. package/presets/angular-express/skills/angular-developer/references/rendering-strategies.md +44 -0
  191. package/presets/angular-express/skills/angular-developer/references/resource.md +74 -0
  192. package/presets/angular-express/skills/angular-developer/references/route-animations.md +56 -0
  193. package/presets/angular-express/skills/angular-developer/references/route-guards.md +52 -0
  194. package/presets/angular-express/skills/angular-developer/references/router-lifecycle.md +45 -0
  195. package/presets/angular-express/skills/angular-developer/references/router-testing.md +87 -0
  196. package/presets/angular-express/skills/angular-developer/references/show-routes-with-outlets.md +68 -0
  197. package/presets/angular-express/skills/angular-developer/references/signal-forms.md +897 -0
  198. package/presets/angular-express/skills/angular-developer/references/signals-overview.md +94 -0
  199. package/presets/angular-express/skills/angular-developer/references/tailwind-css.md +69 -0
  200. package/presets/angular-express/skills/angular-developer/references/template-driven-forms.md +114 -0
  201. package/presets/angular-express/skills/angular-developer/references/testing-fundamentals.md +66 -0
  202. package/presets/angular-express/skills/angular-new-app/SKILL.md +62 -0
  203. package/presets/angular-express/skills/frontend-design/LICENSE.txt +177 -0
  204. package/presets/angular-express/skills/frontend-design/SKILL.md +55 -0
  205. package/presets/angular-express/skills/onna-architecture-angular/SKILL.md +229 -0
  206. package/presets/angular-express/skills/onna-architecture-bff/SKILL.md +446 -0
  207. package/presets/angular-express/skills/onna-architecture-common/SKILL.md +313 -0
  208. package/presets/angular-express/skills/onna-design-system/SKILL.md +615 -0
  209. package/presets/base/preset.yaml +25 -0
  210. package/presets/base/rules/core.md +35 -0
  211. package/presets/generic-ts/preset.yaml +44 -0
  212. package/presets/python/preset.yaml +45 -0
  213. package/presets/python/rules/python.md +10 -0
  214. package/rules/skill-quality/skill-behavior-rubric.md +63 -0
  215. package/rules/skill-quality/skill-harden-rubric.md +102 -0
  216. package/rules/skill-quality/skill-migration-brief.md +200 -0
  217. package/rules/skill-quality/skill-rubric.md +40 -0
  218. package/schema/engine.schema.json +73 -0
  219. package/schema/manifest.schema.json +152 -0
  220. package/schema/preset.schema.json +98 -0
  221. package/schema/state.schema.json +27 -0
  222. package/skills/shared/ab-testing/SKILL.md +159 -0
  223. package/skills/shared/ab-testing/evals/README.md +8 -0
  224. package/skills/shared/ab-testing/evals/cases.yaml +49 -0
  225. package/skills/shared/ab-testing/references/pitfalls.md +74 -0
  226. package/skills/shared/ab-testing/references/sample-size-and-cuped.md +128 -0
  227. package/skills/shared/ab-testing/scripts/verify.sh +89 -0
  228. package/skills/shared/accessibility/SKILL.md +216 -0
  229. package/skills/shared/accessibility/evals/README.md +3 -0
  230. package/skills/shared/accessibility/evals/cases.yaml +47 -0
  231. package/skills/shared/accessibility/references/aria-patterns.md +113 -0
  232. package/skills/shared/accessibility/references/wcag22-checklist.md +83 -0
  233. package/skills/shared/accessibility/scripts/verify.sh +103 -0
  234. package/skills/shared/agent-eval/SKILL.md +187 -0
  235. package/skills/shared/agent-eval/evals/README.md +12 -0
  236. package/skills/shared/agent-eval/evals/cases.yaml +45 -0
  237. package/skills/shared/agent-eval/references/judge-design.md +118 -0
  238. package/skills/shared/agent-eval/references/runner-and-gate.md +183 -0
  239. package/skills/shared/agent-eval/scripts/verify.sh +161 -0
  240. package/skills/shared/agent-safety/SKILL.md +169 -0
  241. package/skills/shared/agent-safety/evals/README.md +12 -0
  242. package/skills/shared/agent-safety/evals/cases.yaml +46 -0
  243. package/skills/shared/agent-safety/references/threat-model.md +51 -0
  244. package/skills/shared/analyze/SKILL.md +123 -0
  245. package/skills/shared/analyze/evals/README.md +72 -0
  246. package/skills/shared/analyze/evals/cases.yaml +74 -0
  247. package/skills/shared/angular/SKILL.md +275 -0
  248. package/skills/shared/angular/evals/README.md +3 -0
  249. package/skills/shared/angular/evals/cases.yaml +38 -0
  250. package/skills/shared/angular/references/migration.md +81 -0
  251. package/skills/shared/angular/references/signals-rxjs.md +92 -0
  252. package/skills/shared/angular/scripts/verify.sh +122 -0
  253. package/skills/shared/api-connector-builder/SKILL.md +268 -0
  254. package/skills/shared/api-connector-builder/evals/README.md +11 -0
  255. package/skills/shared/api-connector-builder/evals/cases.yaml +47 -0
  256. package/skills/shared/api-connector-builder/references/auth-flows.md +132 -0
  257. package/skills/shared/api-connector-builder/references/pagination.md +144 -0
  258. package/skills/shared/api-connector-builder/scripts/verify.sh +172 -0
  259. package/skills/shared/api-design/SKILL.md +182 -0
  260. package/skills/shared/api-design/evals/README.md +3 -0
  261. package/skills/shared/api-design/evals/cases.yaml +45 -0
  262. package/skills/shared/api-design/references/graphql-design.md +70 -0
  263. package/skills/shared/api-design/references/openapi-contract.md +86 -0
  264. package/skills/shared/api-design/references/rest-conventions.md +63 -0
  265. package/skills/shared/api-design/references/versioning-and-evolution.md +49 -0
  266. package/skills/shared/api-design/scripts/verify.sh +138 -0
  267. package/skills/shared/astro/SKILL.md +257 -0
  268. package/skills/shared/astro/evals/README.md +3 -0
  269. package/skills/shared/astro/evals/cases.yaml +41 -0
  270. package/skills/shared/astro/references/content-layer.md +118 -0
  271. package/skills/shared/astro/references/deploy-and-integrations.md +163 -0
  272. package/skills/shared/astro/scripts/verify.sh +137 -0
  273. package/skills/shared/author-skill/SKILL.md +194 -0
  274. package/skills/shared/author-skill/evals/README.md +66 -0
  275. package/skills/shared/author-skill/evals/cases.yaml +75 -0
  276. package/skills/shared/author-skill/references/description-recipe.md +85 -0
  277. package/skills/shared/author-skill/references/eval-authoring.md +108 -0
  278. package/skills/shared/author-skill/references/skill-conventions.md +95 -0
  279. package/skills/shared/automation-flows/SKILL.md +122 -0
  280. package/skills/shared/automation-flows/evals/README.md +5 -0
  281. package/skills/shared/automation-flows/evals/cases.yaml +44 -0
  282. package/skills/shared/automation-flows/references/error-handling.md +58 -0
  283. package/skills/shared/automation-flows/references/n8n-workflow-json.md +63 -0
  284. package/skills/shared/automation-flows/scripts/verify.sh +78 -0
  285. package/skills/shared/aws-essentials/SKILL.md +206 -0
  286. package/skills/shared/aws-essentials/evals/README.md +10 -0
  287. package/skills/shared/aws-essentials/evals/cases.yaml +44 -0
  288. package/skills/shared/aws-essentials/references/iam-least-privilege.md +134 -0
  289. package/skills/shared/aws-essentials/references/rds-cloudfront-recipes.md +127 -0
  290. package/skills/shared/aws-essentials/scripts/verify.sh +99 -0
  291. package/skills/shared/backups/SKILL.md +131 -0
  292. package/skills/shared/backups/evals/README.md +3 -0
  293. package/skills/shared/backups/evals/cases.yaml +42 -0
  294. package/skills/shared/backups/references/engine-recipes.md +121 -0
  295. package/skills/shared/backups/references/restore-runbook.md +65 -0
  296. package/skills/shared/backups/scripts/verify.sh +80 -0
  297. package/skills/shared/bash-scripting/SKILL.md +227 -0
  298. package/skills/shared/bash-scripting/evals/README.md +3 -0
  299. package/skills/shared/bash-scripting/evals/cases.yaml +45 -0
  300. package/skills/shared/bash-scripting/references/portability.md +97 -0
  301. package/skills/shared/bash-scripting/scripts/verify.sh +140 -0
  302. package/skills/shared/building-agents/SKILL.md +386 -0
  303. package/skills/shared/building-agents/evals/README.md +68 -0
  304. package/skills/shared/building-agents/evals/cases.yaml +60 -0
  305. package/skills/shared/building-agents/references/agent-loops-and-harness.md +371 -0
  306. package/skills/shared/building-agents/references/evals-and-observability.md +420 -0
  307. package/skills/shared/building-agents/references/mcp-servers.md +294 -0
  308. package/skills/shared/building-agents/references/provider-abstraction.md +489 -0
  309. package/skills/shared/building-agents/references/tools-and-rag.md +417 -0
  310. package/skills/shared/building-agents/scripts/verify.sh +121 -0
  311. package/skills/shared/chatbot/SKILL.md +151 -0
  312. package/skills/shared/chatbot/evals/README.md +13 -0
  313. package/skills/shared/chatbot/evals/cases.yaml +43 -0
  314. package/skills/shared/chatbot/references/handoff-and-sales.md +71 -0
  315. package/skills/shared/chatbot/references/system-prompt-and-guardrails.md +78 -0
  316. package/skills/shared/chatbot/scripts/verify.sh +162 -0
  317. package/skills/shared/chrome-extension/SKILL.md +169 -0
  318. package/skills/shared/chrome-extension/evals/README.md +12 -0
  319. package/skills/shared/chrome-extension/evals/cases.yaml +40 -0
  320. package/skills/shared/chrome-extension/references/store-and-migration.md +84 -0
  321. package/skills/shared/chrome-extension/scripts/verify.sh +62 -0
  322. package/skills/shared/clarify/SKILL.md +161 -0
  323. package/skills/shared/clarify/evals/README.md +70 -0
  324. package/skills/shared/clarify/evals/cases.yaml +71 -0
  325. package/skills/shared/clickhouse-analytics/SKILL.md +159 -0
  326. package/skills/shared/clickhouse-analytics/evals/README.md +3 -0
  327. package/skills/shared/clickhouse-analytics/evals/cases.yaml +45 -0
  328. package/skills/shared/clickhouse-analytics/references/ingestion-and-mvs.md +109 -0
  329. package/skills/shared/clickhouse-analytics/references/query-optimization.md +76 -0
  330. package/skills/shared/clickhouse-analytics/references/schema-and-engines.md +63 -0
  331. package/skills/shared/clickhouse-analytics/scripts/verify.sh +109 -0
  332. package/skills/shared/cloudflare/SKILL.md +186 -0
  333. package/skills/shared/cloudflare/evals/README.md +15 -0
  334. package/skills/shared/cloudflare/evals/cases.yaml +46 -0
  335. package/skills/shared/cloudflare/references/storage-primitives.md +104 -0
  336. package/skills/shared/cloudflare/references/wrangler-config.md +91 -0
  337. package/skills/shared/cloudflare/scripts/verify.sh +133 -0
  338. package/skills/shared/code-review/SKILL.md +132 -0
  339. package/skills/shared/code-review/evals/README.md +3 -0
  340. package/skills/shared/code-review/evals/cases.yaml +55 -0
  341. package/skills/shared/code-review/references/pr-workflow.md +67 -0
  342. package/skills/shared/codebase-onboarding/SKILL.md +128 -0
  343. package/skills/shared/codebase-onboarding/evals/README.md +3 -0
  344. package/skills/shared/codebase-onboarding/evals/cases.yaml +69 -0
  345. package/skills/shared/codebase-onboarding/references/recon-playbook.md +57 -0
  346. package/skills/shared/codebase-onboarding/scripts/verify.sh +54 -0
  347. package/skills/shared/compose-multiplatform/SKILL.md +198 -0
  348. package/skills/shared/compose-multiplatform/evals/README.md +3 -0
  349. package/skills/shared/compose-multiplatform/evals/cases.yaml +40 -0
  350. package/skills/shared/compose-multiplatform/references/ios-interop.md +91 -0
  351. package/skills/shared/compose-multiplatform/references/project-setup.md +96 -0
  352. package/skills/shared/compose-multiplatform/scripts/verify.sh +123 -0
  353. package/skills/shared/connect-tool/SKILL.md +163 -0
  354. package/skills/shared/connect-tool/evals/cases.yaml +58 -0
  355. package/skills/shared/constitution/SKILL.md +158 -0
  356. package/skills/shared/constitution/evals/README.md +68 -0
  357. package/skills/shared/constitution/evals/cases.yaml +72 -0
  358. package/skills/shared/constitution/references/constitution-template.md +100 -0
  359. package/skills/shared/context-budget/SKILL.md +114 -0
  360. package/skills/shared/context-budget/evals/README.md +11 -0
  361. package/skills/shared/context-budget/evals/cases.yaml +40 -0
  362. package/skills/shared/context-budget/references/handoff-and-compaction.md +96 -0
  363. package/skills/shared/continuous-learning/SKILL.md +106 -0
  364. package/skills/shared/continuous-learning/evals/README.md +16 -0
  365. package/skills/shared/continuous-learning/evals/cases.yaml +39 -0
  366. package/skills/shared/continuous-learning/references/lesson-routing.md +106 -0
  367. package/skills/shared/coolify/SKILL.md +194 -0
  368. package/skills/shared/coolify/evals/README.md +21 -0
  369. package/skills/shared/coolify/evals/cases.yaml +46 -0
  370. package/skills/shared/coolify/references/databases-and-backups.md +99 -0
  371. package/skills/shared/coolify/references/deploy-recipes.md +105 -0
  372. package/skills/shared/coolify/references/install-and-proxy.md +80 -0
  373. package/skills/shared/coolify/scripts/verify.sh +123 -0
  374. package/skills/shared/cost-tracking/SKILL.md +176 -0
  375. package/skills/shared/cost-tracking/evals/README.md +3 -0
  376. package/skills/shared/cost-tracking/evals/cases.yaml +45 -0
  377. package/skills/shared/cost-tracking/references/cloud-caps.md +52 -0
  378. package/skills/shared/cost-tracking/references/pricing-tables.md +51 -0
  379. package/skills/shared/cost-tracking/scripts/verify.sh +135 -0
  380. package/skills/shared/cpp/SKILL.md +302 -0
  381. package/skills/shared/cpp/evals/README.md +14 -0
  382. package/skills/shared/cpp/evals/cases.yaml +44 -0
  383. package/skills/shared/cpp/references/cmake.md +167 -0
  384. package/skills/shared/cpp/references/move-and-templates.md +130 -0
  385. package/skills/shared/cpp/references/undefined-behavior.md +86 -0
  386. package/skills/shared/cpp/scripts/verify.sh +165 -0
  387. package/skills/shared/csharp-dotnet/SKILL.md +272 -0
  388. package/skills/shared/csharp-dotnet/evals/README.md +3 -0
  389. package/skills/shared/csharp-dotnet/evals/cases.yaml +48 -0
  390. package/skills/shared/csharp-dotnet/references/aspnetcore.md +99 -0
  391. package/skills/shared/csharp-dotnet/references/async.md +82 -0
  392. package/skills/shared/csharp-dotnet/references/efcore.md +96 -0
  393. package/skills/shared/csharp-dotnet/scripts/verify.sh +90 -0
  394. package/skills/shared/data-cleaning/SKILL.md +259 -0
  395. package/skills/shared/data-cleaning/evals/README.md +16 -0
  396. package/skills/shared/data-cleaning/evals/cases.yaml +57 -0
  397. package/skills/shared/data-cleaning/references/normalization-recipes.md +136 -0
  398. package/skills/shared/data-cleaning/references/validation-patterns.md +134 -0
  399. package/skills/shared/data-cleaning/scripts/verify.sh +115 -0
  400. package/skills/shared/data-scraper/SKILL.md +130 -0
  401. package/skills/shared/data-scraper/evals/README.md +3 -0
  402. package/skills/shared/data-scraper/evals/cases.yaml +46 -0
  403. package/skills/shared/data-scraper/references/anti-bot.md +85 -0
  404. package/skills/shared/data-scraper/references/frameworks.md +116 -0
  405. package/skills/shared/data-scraper/references/legal-compliance.md +64 -0
  406. package/skills/shared/data-scraper/scripts/verify.sh +166 -0
  407. package/skills/shared/db-migrations/SKILL.md +237 -0
  408. package/skills/shared/db-migrations/evals/README.md +10 -0
  409. package/skills/shared/db-migrations/evals/cases.yaml +46 -0
  410. package/skills/shared/db-migrations/references/backfill-and-batching.md +105 -0
  411. package/skills/shared/db-migrations/references/expand-contract-playbook.md +152 -0
  412. package/skills/shared/db-migrations/references/tools-and-runners.md +88 -0
  413. package/skills/shared/db-migrations/scripts/verify.sh +112 -0
  414. package/skills/shared/debug/SKILL.md +188 -0
  415. package/skills/shared/debug/evals/README.md +88 -0
  416. package/skills/shared/debug/evals/cases.yaml +74 -0
  417. package/skills/shared/decision-challenge/SKILL.md +113 -0
  418. package/skills/shared/decision-challenge/evals/README.md +3 -0
  419. package/skills/shared/decision-challenge/evals/cases.yaml +42 -0
  420. package/skills/shared/decision-records/SKILL.md +202 -0
  421. package/skills/shared/decision-records/evals/README.md +3 -0
  422. package/skills/shared/decision-records/evals/cases.yaml +43 -0
  423. package/skills/shared/decision-records/references/templates.md +252 -0
  424. package/skills/shared/decision-records/scripts/verify.sh +105 -0
  425. package/skills/shared/deep-learning/SKILL.md +226 -0
  426. package/skills/shared/deep-learning/evals/README.md +11 -0
  427. package/skills/shared/deep-learning/evals/cases.yaml +48 -0
  428. package/skills/shared/deep-learning/references/distributed.md +105 -0
  429. package/skills/shared/deep-learning/references/training-recipes.md +135 -0
  430. package/skills/shared/deployment/SKILL.md +374 -0
  431. package/skills/shared/deployment/evals/README.md +50 -0
  432. package/skills/shared/deployment/evals/cases.yaml +53 -0
  433. package/skills/shared/deployment/references/coolify.md +216 -0
  434. package/skills/shared/deployment/references/dockerfiles-by-stack.md +319 -0
  435. package/skills/shared/deployment/references/github-actions.md +295 -0
  436. package/skills/shared/deployment/references/hosting-targets.md +272 -0
  437. package/skills/shared/deployment/scripts/verify.sh +134 -0
  438. package/skills/shared/deprecation/SKILL.md +123 -0
  439. package/skills/shared/deprecation/evals/README.md +3 -0
  440. package/skills/shared/deprecation/evals/cases.yaml +42 -0
  441. package/skills/shared/design/IMPECCABLE-LICENSE.txt +191 -0
  442. package/skills/shared/design/SKILL.md +111 -0
  443. package/skills/shared/design/THIRD_PARTY.md +26 -0
  444. package/skills/shared/design/engine/LICENSE +21 -0
  445. package/skills/shared/design/engine/RUN.md +515 -0
  446. package/skills/shared/design/engine/UPSTREAM.json +4 -0
  447. package/skills/shared/design/engine/assets/app.css +216 -0
  448. package/skills/shared/design/engine/assets/base.css +105 -0
  449. package/skills/shared/design/engine/assets/base.js +37 -0
  450. package/skills/shared/design/engine/assets/charts.js +617 -0
  451. package/skills/shared/design/engine/assets/scenes/stage.css +28 -0
  452. package/skills/shared/design/engine/assets/scenes/stage.js +133 -0
  453. package/skills/shared/design/engine/library/app.json +1327 -0
  454. package/skills/shared/design/engine/library/directions.json +1078 -0
  455. package/skills/shared/design/engine/library/heroes.json +1086 -0
  456. package/skills/shared/design/engine/library/motions.json +92 -0
  457. package/skills/shared/design/engine/library/palettes.json +1485 -0
  458. package/skills/shared/design/engine/library/photos.json +7240 -0
  459. package/skills/shared/design/engine/library/sections.json +4429 -0
  460. package/skills/shared/design/engine/library/sites.json +8350 -0
  461. package/skills/shared/design/engine/library/type.json +2024 -0
  462. package/skills/shared/design/engine/references/app-screens.md +1199 -0
  463. package/skills/shared/design/engine/references/colour.md +141 -0
  464. package/skills/shared/design/engine/references/copy.md +177 -0
  465. package/skills/shared/design/engine/references/critique.md +182 -0
  466. package/skills/shared/design/engine/references/imagery.md +791 -0
  467. package/skills/shared/design/engine/references/layout.md +292 -0
  468. package/skills/shared/design/engine/references/motion.md +980 -0
  469. package/skills/shared/design/engine/references/research.md +356 -0
  470. package/skills/shared/design/engine/references/scenes.md +174 -0
  471. package/skills/shared/design/engine/references/tells.md +115 -0
  472. package/skills/shared/design/engine/references/type.md +170 -0
  473. package/skills/shared/design/engine/scripts/assets.mjs +865 -0
  474. package/skills/shared/design/engine/scripts/draw.mjs +584 -0
  475. package/skills/shared/design/engine/scripts/inspect.mjs +303 -0
  476. package/skills/shared/design/engine/scripts/lib/app-draw.mjs +203 -0
  477. package/skills/shared/design/engine/scripts/lib/cdp.mjs +248 -0
  478. package/skills/shared/design/engine/scripts/lib/probe.mjs +909 -0
  479. package/skills/shared/design/engine/scripts/lib/rules.mjs +243 -0
  480. package/skills/shared/design/engine/scripts/lint.mjs +119 -0
  481. package/skills/shared/design/engine/scripts/scenes.mjs +124 -0
  482. package/skills/shared/design/evals/cases.yaml +45 -0
  483. package/skills/shared/design/references/design-md.md +49 -0
  484. package/skills/shared/design/references/finish-review.md +46 -0
  485. package/skills/shared/design/references/modes.md +51 -0
  486. package/skills/shared/digitalocean/SKILL.md +227 -0
  487. package/skills/shared/digitalocean/evals/README.md +10 -0
  488. package/skills/shared/digitalocean/evals/cases.yaml +37 -0
  489. package/skills/shared/digitalocean/references/app-spec.md +126 -0
  490. package/skills/shared/digitalocean/references/droplet-ops.md +95 -0
  491. package/skills/shared/digitalocean/scripts/verify.sh +102 -0
  492. package/skills/shared/django/SKILL.md +263 -0
  493. package/skills/shared/django/evals/README.md +11 -0
  494. package/skills/shared/django/evals/cases.yaml +47 -0
  495. package/skills/shared/django/references/drf.md +109 -0
  496. package/skills/shared/django/references/orm-performance.md +91 -0
  497. package/skills/shared/django/references/security.md +81 -0
  498. package/skills/shared/django/references/testing.md +86 -0
  499. package/skills/shared/django/scripts/verify.sh +115 -0
  500. package/skills/shared/docker/SKILL.md +251 -0
  501. package/skills/shared/docker/evals/README.md +10 -0
  502. package/skills/shared/docker/evals/cases.yaml +44 -0
  503. package/skills/shared/docker/references/base-images-and-stages.md +104 -0
  504. package/skills/shared/docker/references/compose-recipes.md +109 -0
  505. package/skills/shared/docker/scripts/verify.sh +149 -0
  506. package/skills/shared/domains-dns/SKILL.md +131 -0
  507. package/skills/shared/domains-dns/evals/README.md +16 -0
  508. package/skills/shared/domains-dns/evals/cases.yaml +47 -0
  509. package/skills/shared/domains-dns/references/record-cookbook.md +94 -0
  510. package/skills/shared/domains-dns/references/tls-and-acme.md +90 -0
  511. package/skills/shared/domains-dns/references/verify-and-debug.md +64 -0
  512. package/skills/shared/domains-dns/scripts/verify.sh +163 -0
  513. package/skills/shared/drizzle-orm/SKILL.md +231 -0
  514. package/skills/shared/drizzle-orm/evals/README.md +12 -0
  515. package/skills/shared/drizzle-orm/evals/cases.yaml +47 -0
  516. package/skills/shared/drizzle-orm/references/relations-and-drivers.md +118 -0
  517. package/skills/shared/drizzle-orm/scripts/verify.sh +155 -0
  518. package/skills/shared/duckdb/SKILL.md +202 -0
  519. package/skills/shared/duckdb/evals/README.md +31 -0
  520. package/skills/shared/duckdb/evals/cases.yaml +41 -0
  521. package/skills/shared/duckdb/references/python-and-interop.md +105 -0
  522. package/skills/shared/duckdb/references/remote-and-lakehouse.md +101 -0
  523. package/skills/shared/duckdb/scripts/verify.sh +71 -0
  524. package/skills/shared/dynamodb/SKILL.md +204 -0
  525. package/skills/shared/dynamodb/evals/README.md +8 -0
  526. package/skills/shared/dynamodb/evals/cases.yaml +46 -0
  527. package/skills/shared/dynamodb/references/access-patterns.md +127 -0
  528. package/skills/shared/dynamodb/references/capacity-and-limits.md +78 -0
  529. package/skills/shared/dynamodb/scripts/verify.sh +108 -0
  530. package/skills/shared/e2e-testing/SKILL.md +233 -0
  531. package/skills/shared/e2e-testing/evals/README.md +10 -0
  532. package/skills/shared/e2e-testing/evals/cases.yaml +64 -0
  533. package/skills/shared/e2e-testing/references/config-and-ci.md +156 -0
  534. package/skills/shared/e2e-testing/references/flakiness-playbook.md +124 -0
  535. package/skills/shared/e2e-testing/scripts/verify.sh +117 -0
  536. package/skills/shared/electron/SKILL.md +209 -0
  537. package/skills/shared/electron/evals/README.md +13 -0
  538. package/skills/shared/electron/evals/cases.yaml +38 -0
  539. package/skills/shared/electron/references/packaging-and-updates.md +122 -0
  540. package/skills/shared/electron/references/security-and-ipc.md +158 -0
  541. package/skills/shared/electron/scripts/verify.sh +143 -0
  542. package/skills/shared/elixir/SKILL.md +209 -0
  543. package/skills/shared/elixir/evals/README.md +3 -0
  544. package/skills/shared/elixir/evals/cases.yaml +41 -0
  545. package/skills/shared/elixir/references/mix-and-releases.md +91 -0
  546. package/skills/shared/elixir/references/otp-patterns.md +96 -0
  547. package/skills/shared/elixir/scripts/verify.sh +76 -0
  548. package/skills/shared/email-deliverability/SKILL.md +148 -0
  549. package/skills/shared/email-deliverability/evals/README.md +21 -0
  550. package/skills/shared/email-deliverability/evals/cases.yaml +45 -0
  551. package/skills/shared/email-deliverability/scripts/verify.sh +98 -0
  552. package/skills/shared/embeddings-search/SKILL.md +184 -0
  553. package/skills/shared/embeddings-search/evals/README.md +10 -0
  554. package/skills/shared/embeddings-search/evals/cases.yaml +44 -0
  555. package/skills/shared/embeddings-search/references/evaluation.md +86 -0
  556. package/skills/shared/embeddings-search/references/models.md +73 -0
  557. package/skills/shared/embeddings-search/scripts/verify.sh +103 -0
  558. package/skills/shared/error-handling/SKILL.md +273 -0
  559. package/skills/shared/error-handling/evals/README.md +12 -0
  560. package/skills/shared/error-handling/evals/cases.yaml +46 -0
  561. package/skills/shared/error-handling/references/boundaries-and-messaging.md +120 -0
  562. package/skills/shared/error-handling/references/retry-and-resilience.md +154 -0
  563. package/skills/shared/error-handling/scripts/verify.sh +110 -0
  564. package/skills/shared/expo/SKILL.md +243 -0
  565. package/skills/shared/expo/evals/README.md +13 -0
  566. package/skills/shared/expo/evals/cases.yaml +44 -0
  567. package/skills/shared/expo/references/config-plugins.md +117 -0
  568. package/skills/shared/expo/references/eas-update.md +118 -0
  569. package/skills/shared/expo/scripts/verify.sh +132 -0
  570. package/skills/shared/fal/SKILL.md +196 -0
  571. package/skills/shared/fal/evals/README.md +3 -0
  572. package/skills/shared/fal/evals/cases.yaml +42 -0
  573. package/skills/shared/fal/references/models-and-cost.md +53 -0
  574. package/skills/shared/fal/references/queue-and-webhooks.md +153 -0
  575. package/skills/shared/fal/scripts/verify.sh +72 -0
  576. package/skills/shared/fastapi/SKILL.md +469 -0
  577. package/skills/shared/fastapi/evals/README.md +50 -0
  578. package/skills/shared/fastapi/evals/cases.yaml +55 -0
  579. package/skills/shared/fastapi/references/database.md +347 -0
  580. package/skills/shared/fastapi/references/production.md +338 -0
  581. package/skills/shared/fastapi/references/security.md +330 -0
  582. package/skills/shared/fastapi/references/testing.md +349 -0
  583. package/skills/shared/fastapi/scripts/verify.sh +157 -0
  584. package/skills/shared/finetuning/SKILL.md +232 -0
  585. package/skills/shared/finetuning/evals/README.md +13 -0
  586. package/skills/shared/finetuning/evals/cases.yaml +50 -0
  587. package/skills/shared/finetuning/references/hyperparameters-and-eval.md +74 -0
  588. package/skills/shared/finetuning/references/methods.md +189 -0
  589. package/skills/shared/firebase/SKILL.md +237 -0
  590. package/skills/shared/firebase/evals/README.md +12 -0
  591. package/skills/shared/firebase/evals/cases.yaml +45 -0
  592. package/skills/shared/firebase/references/cloud-functions.md +102 -0
  593. package/skills/shared/firebase/references/data-modeling.md +108 -0
  594. package/skills/shared/firebase/references/security-rules.md +137 -0
  595. package/skills/shared/firebase/scripts/verify.sh +98 -0
  596. package/skills/shared/flutter/SKILL.md +400 -0
  597. package/skills/shared/flutter/evals/README.md +54 -0
  598. package/skills/shared/flutter/evals/cases.yaml +69 -0
  599. package/skills/shared/flutter/references/architecture-and-state.md +499 -0
  600. package/skills/shared/flutter/references/i18n-and-dependencies.md +197 -0
  601. package/skills/shared/flutter/references/performance.md +299 -0
  602. package/skills/shared/flutter/references/testing.md +385 -0
  603. package/skills/shared/flutter/references/ui-and-navigation.md +378 -0
  604. package/skills/shared/flutter/scripts/verify.sh +104 -0
  605. package/skills/shared/fly-io/SKILL.md +197 -0
  606. package/skills/shared/fly-io/evals/README.md +3 -0
  607. package/skills/shared/fly-io/evals/cases.yaml +42 -0
  608. package/skills/shared/fly-io/references/fly-toml.md +155 -0
  609. package/skills/shared/fly-io/references/multi-region.md +66 -0
  610. package/skills/shared/fly-io/scripts/verify.sh +90 -0
  611. package/skills/shared/ftd/SKILL.md +111 -0
  612. package/skills/shared/ftd/evals/cases.yaml +66 -0
  613. package/skills/shared/ftd/evals/routing.json +24 -0
  614. package/skills/shared/game-design/SKILL.md +146 -0
  615. package/skills/shared/game-design/evals/README.md +13 -0
  616. package/skills/shared/game-design/evals/cases.yaml +47 -0
  617. package/skills/shared/game-design/references/mechanics-and-loops.md +78 -0
  618. package/skills/shared/game-design/references/playtesting-and-scope.md +58 -0
  619. package/skills/shared/game-design/references/progression-and-economy.md +70 -0
  620. package/skills/shared/game-storytelling/SKILL.md +134 -0
  621. package/skills/shared/game-storytelling/evals/README.md +28 -0
  622. package/skills/shared/game-storytelling/evals/cases.yaml +51 -0
  623. package/skills/shared/game-storytelling/references/branching-and-state.md +134 -0
  624. package/skills/shared/game-storytelling/references/dialogue-tools.md +117 -0
  625. package/skills/shared/game-storytelling/references/environmental-storytelling.md +71 -0
  626. package/skills/shared/gamedev-multiplayer/SKILL.md +237 -0
  627. package/skills/shared/gamedev-multiplayer/evals/README.md +12 -0
  628. package/skills/shared/gamedev-multiplayer/evals/cases.yaml +44 -0
  629. package/skills/shared/gamedev-multiplayer/references/godot-high-level-multiplayer.md +133 -0
  630. package/skills/shared/gamedev-multiplayer/references/prediction-and-latency.md +104 -0
  631. package/skills/shared/gamedev-multiplayer/references/unity-and-unreal-netcode.md +166 -0
  632. package/skills/shared/gamedev-pathing/SKILL.md +233 -0
  633. package/skills/shared/gamedev-pathing/evals/README.md +14 -0
  634. package/skills/shared/gamedev-pathing/evals/cases.yaml +49 -0
  635. package/skills/shared/gamedev-pathing/references/navmesh-workflow.md +110 -0
  636. package/skills/shared/gamedev-pathing/references/search-algorithms.md +135 -0
  637. package/skills/shared/gamedev-pathing/references/steering-and-avoidance.md +120 -0
  638. package/skills/shared/gamedev-physics/SKILL.md +225 -0
  639. package/skills/shared/gamedev-physics/evals/README.md +12 -0
  640. package/skills/shared/gamedev-physics/evals/cases.yaml +54 -0
  641. package/skills/shared/gamedev-physics/references/character-controllers.md +120 -0
  642. package/skills/shared/gamedev-physics/references/determinism-and-queries.md +124 -0
  643. package/skills/shared/gamedev-physics/references/layers-and-masks.md +115 -0
  644. package/skills/shared/gamedev-shaders/SKILL.md +232 -0
  645. package/skills/shared/gamedev-shaders/evals/README.md +14 -0
  646. package/skills/shared/gamedev-shaders/evals/cases.yaml +45 -0
  647. package/skills/shared/gamedev-shaders/references/effect-recipes.md +205 -0
  648. package/skills/shared/gamedev-shaders/references/godot-shading-language.md +133 -0
  649. package/skills/shared/gamedev-shaders/references/unity-and-unreal-shaders.md +169 -0
  650. package/skills/shared/gamedev-shipping/SKILL.md +220 -0
  651. package/skills/shared/gamedev-shipping/evals/README.md +9 -0
  652. package/skills/shared/gamedev-shipping/evals/cases.yaml +55 -0
  653. package/skills/shared/gamedev-shipping/references/mobile-and-desktop.md +127 -0
  654. package/skills/shared/gamedev-shipping/references/stores-and-ci.md +162 -0
  655. package/skills/shared/gamedev-shipping/references/web-export-headers.md +140 -0
  656. package/skills/shared/gcp-essentials/SKILL.md +324 -0
  657. package/skills/shared/gcp-essentials/evals/README.md +12 -0
  658. package/skills/shared/gcp-essentials/evals/cases.yaml +38 -0
  659. package/skills/shared/gcp-essentials/references/deploy-recipes.md +81 -0
  660. package/skills/shared/gcp-essentials/references/iam-and-auth.md +94 -0
  661. package/skills/shared/gcp-essentials/references/networking-and-sql.md +74 -0
  662. package/skills/shared/gcp-essentials/scripts/verify.sh +158 -0
  663. package/skills/shared/git-workflow/SKILL.md +214 -0
  664. package/skills/shared/git-workflow/evals/README.md +10 -0
  665. package/skills/shared/git-workflow/evals/cases.yaml +52 -0
  666. package/skills/shared/git-workflow/references/gitmoji.md +157 -0
  667. package/skills/shared/git-workflow/references/interactive-rebase.md +89 -0
  668. package/skills/shared/github-actions/SKILL.md +244 -0
  669. package/skills/shared/github-actions/evals/README.md +3 -0
  670. package/skills/shared/github-actions/evals/cases.yaml +45 -0
  671. package/skills/shared/github-actions/references/caching-and-matrix.md +92 -0
  672. package/skills/shared/github-actions/references/oidc-deploys.md +130 -0
  673. package/skills/shared/github-actions/scripts/verify.sh +105 -0
  674. package/skills/shared/gitlab-auth/SKILL.md +99 -0
  675. package/skills/shared/gitlab-workflow/SKILL.md +138 -0
  676. package/skills/shared/go/SKILL.md +390 -0
  677. package/skills/shared/go/evals/README.md +56 -0
  678. package/skills/shared/go/evals/cases.yaml +55 -0
  679. package/skills/shared/go/references/concurrency.md +557 -0
  680. package/skills/shared/go/references/http-services.md +529 -0
  681. package/skills/shared/go/references/testing.md +338 -0
  682. package/skills/shared/go/scripts/verify.sh +134 -0
  683. package/skills/shared/godot/SKILL.md +300 -0
  684. package/skills/shared/godot/evals/README.md +13 -0
  685. package/skills/shared/godot/evals/cases.yaml +50 -0
  686. package/skills/shared/godot/references/export-and-testing.md +102 -0
  687. package/skills/shared/godot/references/gdscript-style.md +84 -0
  688. package/skills/shared/godot/references/godot3-to-4-traps.md +89 -0
  689. package/skills/shared/godot/references/nodes-scenes-resources.md +109 -0
  690. package/skills/shared/harness/SKILL.md +316 -0
  691. package/skills/shared/harness/assets/_TEMPLATE/.env.example +8 -0
  692. package/skills/shared/harness/assets/_TEMPLATE/CREDENTIALS.md +25 -0
  693. package/skills/shared/harness/assets/_TEMPLATE/README.md +25 -0
  694. package/skills/shared/harness/assets/_TEMPLATE/gitignore +10 -0
  695. package/skills/shared/harness/assets/_TEMPLATE/test_connection.sh +30 -0
  696. package/skills/shared/harness/evals/README.md +54 -0
  697. package/skills/shared/harness/evals/cases.yaml +72 -0
  698. package/skills/shared/harness/examples/audit-example.md +120 -0
  699. package/skills/shared/harness/references/agents-md-template.md +41 -0
  700. package/skills/shared/harness/references/audit-report-template.html +140 -0
  701. package/skills/shared/harness/references/audit-report-template.md +116 -0
  702. package/skills/shared/harness/references/claude-md-template.md +85 -0
  703. package/skills/shared/harness/references/daily-curation-automation.md +68 -0
  704. package/skills/shared/harness/references/inbox-readme-template.md +51 -0
  705. package/skills/shared/harness/references/ingest-formats.md +185 -0
  706. package/skills/shared/harness/references/ingest-ignore-defaults.md +48 -0
  707. package/skills/shared/harness/references/obsidian-scaffolding.md +103 -0
  708. package/skills/shared/harness/references/providers.yaml +3546 -0
  709. package/skills/shared/harness/references/tools-readme-template.md +88 -0
  710. package/skills/shared/harness/references/wiki-archive-template.html +81 -0
  711. package/skills/shared/harness/references/wiki-article-template.md +60 -0
  712. package/skills/shared/harness/references/wiki-dashboard-template.html +136 -0
  713. package/skills/shared/harness/references/wiki-deep-improve-report-template.html +126 -0
  714. package/skills/shared/harness/references/wiki-gaps-template.md +22 -0
  715. package/skills/shared/harness/references/wiki-index-template.md +32 -0
  716. package/skills/shared/harness/references/wiki-protocol.md +926 -0
  717. package/skills/shared/harness/references/wiki-raw-template.md +7 -0
  718. package/skills/shared/harness/references/wiki-worklog-template.md +60 -0
  719. package/skills/shared/hetzner/SKILL.md +203 -0
  720. package/skills/shared/hetzner/evals/README.md +35 -0
  721. package/skills/shared/hetzner/evals/cases.yaml +46 -0
  722. package/skills/shared/hetzner/references/cloud-init.md +120 -0
  723. package/skills/shared/hetzner/references/plans-and-locations.md +56 -0
  724. package/skills/shared/hetzner/scripts/verify.sh +122 -0
  725. package/skills/shared/htmx/SKILL.md +261 -0
  726. package/skills/shared/htmx/evals/README.md +3 -0
  727. package/skills/shared/htmx/evals/cases.yaml +38 -0
  728. package/skills/shared/htmx/references/patterns.md +113 -0
  729. package/skills/shared/htmx/references/server-contract.md +91 -0
  730. package/skills/shared/htmx/scripts/verify.sh +93 -0
  731. package/skills/shared/huggingface/SKILL.md +191 -0
  732. package/skills/shared/huggingface/evals/README.md +11 -0
  733. package/skills/shared/huggingface/evals/cases.yaml +41 -0
  734. package/skills/shared/huggingface/references/endpoints-and-spaces.md +99 -0
  735. package/skills/shared/huggingface/references/hub-and-cli.md +85 -0
  736. package/skills/shared/huggingface/references/inference-providers.md +115 -0
  737. package/skills/shared/huggingface/scripts/verify.sh +123 -0
  738. package/skills/shared/idea-refinement/SKILL.md +121 -0
  739. package/skills/shared/idea-refinement/evals/README.md +3 -0
  740. package/skills/shared/idea-refinement/evals/cases.yaml +42 -0
  741. package/skills/shared/implement/SKILL.md +383 -0
  742. package/skills/shared/implement/evals/README.md +56 -0
  743. package/skills/shared/implement/evals/cases.yaml +43 -0
  744. package/skills/shared/implement/references/per-task-review.md +46 -0
  745. package/skills/shared/implement/scripts/review-package +59 -0
  746. package/skills/shared/implement/scripts/sdd-workspace +47 -0
  747. package/skills/shared/implement/scripts/task-brief +77 -0
  748. package/skills/shared/init/SKILL.md +209 -0
  749. package/skills/shared/init/evals/README.md +49 -0
  750. package/skills/shared/init/evals/cases.yaml +74 -0
  751. package/skills/shared/init/references/accompaniment-and-profile.md +122 -0
  752. package/skills/shared/init/references/discovery.md +90 -0
  753. package/skills/shared/init/references/recommend-skills.md +115 -0
  754. package/skills/shared/init/scripts/verify.sh +118 -0
  755. package/skills/shared/java/SKILL.md +341 -0
  756. package/skills/shared/java/evals/README.md +23 -0
  757. package/skills/shared/java/evals/cases.yaml +43 -0
  758. package/skills/shared/java/references/builds.md +133 -0
  759. package/skills/shared/java/references/concurrency.md +108 -0
  760. package/skills/shared/java/references/streams.md +102 -0
  761. package/skills/shared/java/scripts/verify.sh +107 -0
  762. package/skills/shared/knowledge-ops/SKILL.md +122 -0
  763. package/skills/shared/knowledge-ops/evals/README.md +16 -0
  764. package/skills/shared/knowledge-ops/evals/cases.yaml +50 -0
  765. package/skills/shared/knowledge-ops/references/gardening-playbook.md +126 -0
  766. package/skills/shared/kotlin-android/SKILL.md +245 -0
  767. package/skills/shared/kotlin-android/evals/README.md +13 -0
  768. package/skills/shared/kotlin-android/evals/cases.yaml +56 -0
  769. package/skills/shared/kotlin-android/references/architecture.md +200 -0
  770. package/skills/shared/kotlin-android/references/gradle-setup.md +125 -0
  771. package/skills/shared/kotlin-android/scripts/verify.sh +109 -0
  772. package/skills/shared/laravel/SKILL.md +301 -0
  773. package/skills/shared/laravel/evals/README.md +10 -0
  774. package/skills/shared/laravel/evals/cases.yaml +45 -0
  775. package/skills/shared/laravel/references/eloquent-patterns.md +126 -0
  776. package/skills/shared/laravel/references/queues-and-scheduling.md +153 -0
  777. package/skills/shared/laravel/scripts/verify.sh +128 -0
  778. package/skills/shared/level-design/SKILL.md +143 -0
  779. package/skills/shared/level-design/evals/README.md +35 -0
  780. package/skills/shared/level-design/evals/cases.yaml +58 -0
  781. package/skills/shared/level-design/references/blockout-to-art.md +118 -0
  782. package/skills/shared/level-design/references/guidance-and-readability.md +152 -0
  783. package/skills/shared/level-design/references/pacing-and-encounters.md +142 -0
  784. package/skills/shared/llm-pipeline/SKILL.md +150 -0
  785. package/skills/shared/llm-pipeline/evals/README.md +3 -0
  786. package/skills/shared/llm-pipeline/evals/cases.yaml +44 -0
  787. package/skills/shared/llm-pipeline/references/caching-layers.md +60 -0
  788. package/skills/shared/llm-pipeline/references/litellm-router.md +101 -0
  789. package/skills/shared/llm-pipeline/scripts/verify.sh +169 -0
  790. package/skills/shared/machine-learning/SKILL.md +228 -0
  791. package/skills/shared/machine-learning/evals/README.md +15 -0
  792. package/skills/shared/machine-learning/evals/cases.yaml +54 -0
  793. package/skills/shared/machine-learning/references/gbdt-and-tuning.md +83 -0
  794. package/skills/shared/machine-learning/references/metrics-and-imbalance.md +82 -0
  795. package/skills/shared/machine-learning/references/pipelines-and-cv.md +135 -0
  796. package/skills/shared/modal/SKILL.md +290 -0
  797. package/skills/shared/modal/evals/README.md +29 -0
  798. package/skills/shared/modal/evals/cases.yaml +50 -0
  799. package/skills/shared/modal/references/images-gpu-cookbook.md +160 -0
  800. package/skills/shared/modal/references/web-and-scaling.md +138 -0
  801. package/skills/shared/modal/scripts/verify.sh +127 -0
  802. package/skills/shared/mongodb/SKILL.md +342 -0
  803. package/skills/shared/mongodb/evals/README.md +29 -0
  804. package/skills/shared/mongodb/evals/cases.yaml +41 -0
  805. package/skills/shared/mongodb/references/aggregation.md +115 -0
  806. package/skills/shared/mongodb/references/data-modeling.md +135 -0
  807. package/skills/shared/mongodb/references/transactions-and-ops.md +128 -0
  808. package/skills/shared/mongodb/scripts/verify.sh +151 -0
  809. package/skills/shared/monitoring/SKILL.md +155 -0
  810. package/skills/shared/monitoring/evals/README.md +3 -0
  811. package/skills/shared/monitoring/evals/cases.yaml +47 -0
  812. package/skills/shared/monitoring/references/burn-rate-and-oncall.md +128 -0
  813. package/skills/shared/monitoring/references/tool-setup.md +154 -0
  814. package/skills/shared/monitoring/scripts/verify.sh +145 -0
  815. package/skills/shared/mysql/SKILL.md +249 -0
  816. package/skills/shared/mysql/evals/README.md +12 -0
  817. package/skills/shared/mysql/evals/cases.yaml +49 -0
  818. package/skills/shared/mysql/references/indexing-and-explain.md +161 -0
  819. package/skills/shared/mysql/references/mysql-vs-mariadb.md +78 -0
  820. package/skills/shared/mysql/references/online-ddl-and-migrations.md +120 -0
  821. package/skills/shared/mysql/references/replication-and-ha.md +115 -0
  822. package/skills/shared/mysql/scripts/verify.sh +141 -0
  823. package/skills/shared/neon/SKILL.md +218 -0
  824. package/skills/shared/neon/evals/README.md +11 -0
  825. package/skills/shared/neon/evals/cases.yaml +45 -0
  826. package/skills/shared/neon/references/branching-ci.md +86 -0
  827. package/skills/shared/neon/scripts/verify.sh +78 -0
  828. package/skills/shared/nestjs/SKILL.md +217 -0
  829. package/skills/shared/nestjs/evals/README.md +3 -0
  830. package/skills/shared/nestjs/evals/cases.yaml +38 -0
  831. package/skills/shared/nestjs/references/cross-cutting.md +135 -0
  832. package/skills/shared/nestjs/references/testing-recipes.md +105 -0
  833. package/skills/shared/nestjs/scripts/verify.sh +98 -0
  834. package/skills/shared/netlify/SKILL.md +208 -0
  835. package/skills/shared/netlify/evals/README.md +13 -0
  836. package/skills/shared/netlify/evals/cases.yaml +43 -0
  837. package/skills/shared/netlify/references/functions.md +97 -0
  838. package/skills/shared/netlify/references/netlify-toml.md +115 -0
  839. package/skills/shared/netlify/scripts/verify.sh +95 -0
  840. package/skills/shared/nextjs/SKILL.md +400 -0
  841. package/skills/shared/nextjs/evals/README.md +59 -0
  842. package/skills/shared/nextjs/evals/cases.yaml +56 -0
  843. package/skills/shared/nextjs/references/data-and-caching.md +309 -0
  844. package/skills/shared/nextjs/references/metadata.md +208 -0
  845. package/skills/shared/nextjs/references/performance.md +325 -0
  846. package/skills/shared/nextjs/references/react.md +383 -0
  847. package/skills/shared/nextjs/references/security.md +239 -0
  848. package/skills/shared/nextjs/references/testing.md +290 -0
  849. package/skills/shared/nextjs/scripts/verify.sh +141 -0
  850. package/skills/shared/nlp/SKILL.md +225 -0
  851. package/skills/shared/nlp/evals/README.md +10 -0
  852. package/skills/shared/nlp/evals/cases.yaml +45 -0
  853. package/skills/shared/nlp/references/evaluation.md +107 -0
  854. package/skills/shared/nlp/references/tokenization.md +95 -0
  855. package/skills/shared/no-code-app/SKILL.md +145 -0
  856. package/skills/shared/no-code-app/evals/README.md +3 -0
  857. package/skills/shared/no-code-app/evals/cases.yaml +43 -0
  858. package/skills/shared/no-code-app/references/platform-limits.md +100 -0
  859. package/skills/shared/nodejs/SKILL.md +229 -0
  860. package/skills/shared/nodejs/evals/README.md +3 -0
  861. package/skills/shared/nodejs/evals/cases.yaml +39 -0
  862. package/skills/shared/nodejs/references/express5-migration.md +53 -0
  863. package/skills/shared/nodejs/references/graceful-shutdown.md +73 -0
  864. package/skills/shared/nodejs/scripts/verify.sh +122 -0
  865. package/skills/shared/observability/SKILL.md +235 -0
  866. package/skills/shared/observability/evals/README.md +3 -0
  867. package/skills/shared/observability/evals/cases.yaml +51 -0
  868. package/skills/shared/observability/references/collector-config.md +98 -0
  869. package/skills/shared/observability/references/instrumentation-recipes.md +115 -0
  870. package/skills/shared/observability/scripts/verify.sh +156 -0
  871. package/skills/shared/ollama/SKILL.md +213 -0
  872. package/skills/shared/ollama/evals/README.md +9 -0
  873. package/skills/shared/ollama/evals/cases.yaml +43 -0
  874. package/skills/shared/ollama/references/api.md +148 -0
  875. package/skills/shared/ollama/references/hardware-sizing.md +87 -0
  876. package/skills/shared/ollama/scripts/verify.sh +116 -0
  877. package/skills/shared/open-weights/SKILL.md +239 -0
  878. package/skills/shared/open-weights/evals/README.md +14 -0
  879. package/skills/shared/open-weights/evals/cases.yaml +42 -0
  880. package/skills/shared/open-weights/references/licenses.md +123 -0
  881. package/skills/shared/open-weights/references/model-families.md +83 -0
  882. package/skills/shared/open-weights/references/sizing-and-quant.md +89 -0
  883. package/skills/shared/orient/SKILL.md +92 -0
  884. package/skills/shared/orient/evals/README.md +18 -0
  885. package/skills/shared/orient/evals/cases.yaml +67 -0
  886. package/skills/shared/orient/references/explain-ladder.md +93 -0
  887. package/skills/shared/orient/references/orientation-contract.md +86 -0
  888. package/skills/shared/parallel/SKILL.md +168 -0
  889. package/skills/shared/parallel/evals/README.md +62 -0
  890. package/skills/shared/parallel/evals/cases.yaml +44 -0
  891. package/skills/shared/performance/SKILL.md +229 -0
  892. package/skills/shared/performance/evals/README.md +3 -0
  893. package/skills/shared/performance/evals/cases.yaml +49 -0
  894. package/skills/shared/performance/references/profiling-playbook.md +54 -0
  895. package/skills/shared/performance/scripts/verify.sh +94 -0
  896. package/skills/shared/phoenix/SKILL.md +169 -0
  897. package/skills/shared/phoenix/evals/README.md +3 -0
  898. package/skills/shared/phoenix/evals/cases.yaml +40 -0
  899. package/skills/shared/phoenix/references/auth-and-scopes.md +82 -0
  900. package/skills/shared/phoenix/references/ecto-patterns.md +93 -0
  901. package/skills/shared/phoenix/references/liveview.md +134 -0
  902. package/skills/shared/phoenix/scripts/verify.sh +73 -0
  903. package/skills/shared/php/SKILL.md +397 -0
  904. package/skills/shared/php/evals/README.md +12 -0
  905. package/skills/shared/php/evals/cases.yaml +45 -0
  906. package/skills/shared/php/references/tooling.md +170 -0
  907. package/skills/shared/php/references/type-system.md +220 -0
  908. package/skills/shared/php/scripts/verify.sh +155 -0
  909. package/skills/shared/plan/SKILL.md +166 -0
  910. package/skills/shared/plan/evals/README.md +62 -0
  911. package/skills/shared/plan/evals/cases.yaml +49 -0
  912. package/skills/shared/plan/references/plan-template.md +153 -0
  913. package/skills/shared/planetscale/SKILL.md +198 -0
  914. package/skills/shared/planetscale/evals/README.md +11 -0
  915. package/skills/shared/planetscale/evals/cases.yaml +46 -0
  916. package/skills/shared/planetscale/references/deploy-requests.md +75 -0
  917. package/skills/shared/planetscale/references/no-foreign-keys.md +88 -0
  918. package/skills/shared/planetscale/scripts/verify.sh +115 -0
  919. package/skills/shared/planning-with-files/SKILL.md +278 -0
  920. package/skills/shared/planning-with-files/examples.md +202 -0
  921. package/skills/shared/planning-with-files/reference.md +218 -0
  922. package/skills/shared/planning-with-files/scripts/attest-plan.ps1 +118 -0
  923. package/skills/shared/planning-with-files/scripts/attest-plan.sh +110 -0
  924. package/skills/shared/planning-with-files/scripts/check-complete.ps1 +44 -0
  925. package/skills/shared/planning-with-files/scripts/check-complete.sh +46 -0
  926. package/skills/shared/planning-with-files/scripts/init-session.ps1 +166 -0
  927. package/skills/shared/planning-with-files/scripts/init-session.sh +284 -0
  928. package/skills/shared/planning-with-files/scripts/resolve-plan-dir.ps1 +44 -0
  929. package/skills/shared/planning-with-files/scripts/resolve-plan-dir.sh +76 -0
  930. package/skills/shared/planning-with-files/scripts/session-catchup.py +438 -0
  931. package/skills/shared/planning-with-files/scripts/set-active-plan.ps1 +50 -0
  932. package/skills/shared/planning-with-files/scripts/set-active-plan.sh +50 -0
  933. package/skills/shared/planning-with-files/templates/findings.md +95 -0
  934. package/skills/shared/planning-with-files/templates/progress.md +114 -0
  935. package/skills/shared/planning-with-files/templates/task_plan.md +132 -0
  936. package/skills/shared/postgresdb/SKILL.md +354 -0
  937. package/skills/shared/postgresdb/evals/README.md +55 -0
  938. package/skills/shared/postgresdb/evals/cases.yaml +57 -0
  939. package/skills/shared/postgresdb/references/migrations.md +279 -0
  940. package/skills/shared/postgresdb/references/operations-and-security.md +267 -0
  941. package/skills/shared/postgresdb/references/query-optimization.md +374 -0
  942. package/skills/shared/postgresdb/references/schema-and-indexing.md +379 -0
  943. package/skills/shared/postgresdb/scripts/verify.sh +191 -0
  944. package/skills/shared/prisma-orm/SKILL.md +313 -0
  945. package/skills/shared/prisma-orm/evals/README.md +12 -0
  946. package/skills/shared/prisma-orm/evals/cases.yaml +56 -0
  947. package/skills/shared/prisma-orm/references/migrations-and-v7-upgrade.md +197 -0
  948. package/skills/shared/prisma-orm/references/queries-and-performance.md +169 -0
  949. package/skills/shared/prisma-orm/scripts/verify.sh +137 -0
  950. package/skills/shared/prompt-engineering/SKILL.md +127 -0
  951. package/skills/shared/prompt-engineering/evals/README.md +11 -0
  952. package/skills/shared/prompt-engineering/evals/cases.yaml +46 -0
  953. package/skills/shared/prompt-engineering/references/eval-templates.md +94 -0
  954. package/skills/shared/prompt-engineering/references/output-contracts.md +120 -0
  955. package/skills/shared/prompt-engineering/scripts/verify.sh +84 -0
  956. package/skills/shared/python/SKILL.md +320 -0
  957. package/skills/shared/python/evals/README.md +19 -0
  958. package/skills/shared/python/evals/cases.yaml +46 -0
  959. package/skills/shared/python/references/async.md +136 -0
  960. package/skills/shared/python/references/stdlib.md +162 -0
  961. package/skills/shared/python/references/typing.md +160 -0
  962. package/skills/shared/python/scripts/verify.sh +125 -0
  963. package/skills/shared/rag/SKILL.md +209 -0
  964. package/skills/shared/rag/evals/README.md +13 -0
  965. package/skills/shared/rag/evals/cases.yaml +45 -0
  966. package/skills/shared/rag/references/evaluation.md +99 -0
  967. package/skills/shared/rag/references/pipeline.md +151 -0
  968. package/skills/shared/rag/scripts/verify.sh +99 -0
  969. package/skills/shared/rails/SKILL.md +264 -0
  970. package/skills/shared/rails/evals/README.md +12 -0
  971. package/skills/shared/rails/evals/cases.yaml +47 -0
  972. package/skills/shared/rails/references/activerecord.md +148 -0
  973. package/skills/shared/rails/references/hotwire.md +139 -0
  974. package/skills/shared/rails/references/testing.md +110 -0
  975. package/skills/shared/rails/scripts/verify.sh +128 -0
  976. package/skills/shared/railway/SKILL.md +245 -0
  977. package/skills/shared/railway/evals/README.md +14 -0
  978. package/skills/shared/railway/evals/cases.yaml +44 -0
  979. package/skills/shared/railway/references/cli-cookbook.md +137 -0
  980. package/skills/shared/railway/references/config-as-code.md +120 -0
  981. package/skills/shared/railway/scripts/verify.sh +162 -0
  982. package/skills/shared/react/SKILL.md +182 -0
  983. package/skills/shared/react/evals/README.md +3 -0
  984. package/skills/shared/react/evals/cases.yaml +43 -0
  985. package/skills/shared/react/references/data-and-state.md +152 -0
  986. package/skills/shared/react/references/performance.md +75 -0
  987. package/skills/shared/react/references/routing.md +99 -0
  988. package/skills/shared/react/scripts/verify.sh +123 -0
  989. package/skills/shared/react-native/SKILL.md +215 -0
  990. package/skills/shared/react-native/evals/README.md +3 -0
  991. package/skills/shared/react-native/evals/cases.yaml +42 -0
  992. package/skills/shared/react-native/references/native-modules.md +123 -0
  993. package/skills/shared/react-native/references/performance-debugging.md +46 -0
  994. package/skills/shared/react-native/scripts/verify.sh +120 -0
  995. package/skills/shared/redis/SKILL.md +298 -0
  996. package/skills/shared/redis/evals/README.md +10 -0
  997. package/skills/shared/redis/evals/cases.yaml +43 -0
  998. package/skills/shared/redis/references/caching.md +116 -0
  999. package/skills/shared/redis/references/locks-and-rate-limiting.md +140 -0
  1000. package/skills/shared/redis/references/queues.md +102 -0
  1001. package/skills/shared/redis/scripts/verify.sh +164 -0
  1002. package/skills/shared/render/SKILL.md +256 -0
  1003. package/skills/shared/render/evals/README.md +12 -0
  1004. package/skills/shared/render/evals/cases.yaml +45 -0
  1005. package/skills/shared/render/references/blueprint-reference.md +203 -0
  1006. package/skills/shared/render/scripts/verify.sh +167 -0
  1007. package/skills/shared/replicate/SKILL.md +210 -0
  1008. package/skills/shared/replicate/evals/README.md +9 -0
  1009. package/skills/shared/replicate/evals/cases.yaml +45 -0
  1010. package/skills/shared/replicate/references/cog-packaging.md +89 -0
  1011. package/skills/shared/replicate/references/deployments-api.md +87 -0
  1012. package/skills/shared/replicate/references/webhooks-and-async.md +110 -0
  1013. package/skills/shared/replicate/scripts/verify.sh +162 -0
  1014. package/skills/shared/research-ops/SKILL.md +200 -0
  1015. package/skills/shared/research-ops/evals/README.md +13 -0
  1016. package/skills/shared/research-ops/evals/cases.yaml +38 -0
  1017. package/skills/shared/research-ops/references/credibility-rubric.md +78 -0
  1018. package/skills/shared/research-ops/references/memo-template.md +63 -0
  1019. package/skills/shared/research-ops/scripts/verify.sh +181 -0
  1020. package/skills/shared/review/SKILL.md +314 -0
  1021. package/skills/shared/review/evals/README.md +84 -0
  1022. package/skills/shared/review/evals/cases.yaml +55 -0
  1023. package/skills/shared/ruby/SKILL.md +295 -0
  1024. package/skills/shared/ruby/evals/README.md +12 -0
  1025. package/skills/shared/ruby/evals/cases.yaml +41 -0
  1026. package/skills/shared/ruby/references/gems-and-testing.md +208 -0
  1027. package/skills/shared/ruby/references/metaprogramming.md +161 -0
  1028. package/skills/shared/ruby/scripts/verify.sh +83 -0
  1029. package/skills/shared/runpod/SKILL.md +238 -0
  1030. package/skills/shared/runpod/evals/README.md +11 -0
  1031. package/skills/shared/runpod/evals/cases.yaml +47 -0
  1032. package/skills/shared/runpod/references/cost-and-scaling.md +85 -0
  1033. package/skills/shared/runpod/references/serverless-workers.md +101 -0
  1034. package/skills/shared/runpod/scripts/verify.sh +126 -0
  1035. package/skills/shared/rust/SKILL.md +320 -0
  1036. package/skills/shared/rust/evals/README.md +12 -0
  1037. package/skills/shared/rust/evals/cases.yaml +42 -0
  1038. package/skills/shared/rust/references/async-tokio.md +141 -0
  1039. package/skills/shared/rust/references/axum-service.md +132 -0
  1040. package/skills/shared/rust/references/ownership.md +86 -0
  1041. package/skills/shared/rust/references/testing.md +108 -0
  1042. package/skills/shared/rust/scripts/verify.sh +91 -0
  1043. package/skills/shared/scaling/SKILL.md +137 -0
  1044. package/skills/shared/scaling/evals/README.md +3 -0
  1045. package/skills/shared/scaling/evals/cases.yaml +42 -0
  1046. package/skills/shared/scaling/references/load-testing-k6.md +127 -0
  1047. package/skills/shared/scaling/scripts/example.load.js +24 -0
  1048. package/skills/shared/scaling/scripts/verify.sh +70 -0
  1049. package/skills/shared/sdd/SKILL.md +250 -0
  1050. package/skills/shared/sdd/evals/README.md +60 -0
  1051. package/skills/shared/sdd/evals/cases.yaml +90 -0
  1052. package/skills/shared/sdd/references/model-routing.md +194 -0
  1053. package/skills/shared/sdd-init/SKILL.md +189 -0
  1054. package/skills/shared/sdd-init/evals/README.md +3 -0
  1055. package/skills/shared/sdd-init/evals/cases.yaml +43 -0
  1056. package/skills/shared/secure-coding/SKILL.md +336 -0
  1057. package/skills/shared/secure-coding/evals/README.md +68 -0
  1058. package/skills/shared/secure-coding/evals/cases.yaml +55 -0
  1059. package/skills/shared/secure-coding/references/authn-authz.md +249 -0
  1060. package/skills/shared/secure-coding/references/owasp-by-stack.md +574 -0
  1061. package/skills/shared/secure-coding/references/secrets-and-supply-chain.md +205 -0
  1062. package/skills/shared/secure-coding/references/threat-modeling.md +213 -0
  1063. package/skills/shared/secure-coding/scripts/verify.sh +208 -0
  1064. package/skills/shared/security-scan/SKILL.md +219 -0
  1065. package/skills/shared/security-scan/evals/README.md +14 -0
  1066. package/skills/shared/security-scan/evals/cases.yaml +50 -0
  1067. package/skills/shared/security-scan/references/tools.md +97 -0
  1068. package/skills/shared/security-scan/references/triage.md +92 -0
  1069. package/skills/shared/security-scan/scripts/verify.sh +108 -0
  1070. package/skills/shared/ship/SKILL.md +272 -0
  1071. package/skills/shared/ship/evals/README.md +89 -0
  1072. package/skills/shared/ship/evals/cases.yaml +44 -0
  1073. package/skills/shared/shopify/SKILL.md +229 -0
  1074. package/skills/shared/shopify/evals/README.md +14 -0
  1075. package/skills/shared/shopify/evals/cases.yaml +41 -0
  1076. package/skills/shared/shopify/references/apps-graphql.md +103 -0
  1077. package/skills/shared/shopify/references/checkout-extensibility.md +71 -0
  1078. package/skills/shared/shopify/references/liquid-themes.md +89 -0
  1079. package/skills/shared/shopify/scripts/verify.sh +120 -0
  1080. package/skills/shared/simplify-code/SKILL.md +101 -0
  1081. package/skills/shared/simplify-code/evals/README.md +3 -0
  1082. package/skills/shared/simplify-code/evals/cases.yaml +42 -0
  1083. package/skills/shared/skill-scout/SKILL.md +169 -0
  1084. package/skills/shared/skill-scout/evals/README.md +12 -0
  1085. package/skills/shared/skill-scout/evals/cases.yaml +56 -0
  1086. package/skills/shared/skill-scout/references/install-commands.md +76 -0
  1087. package/skills/shared/skill-scout/scripts/verify.sh +154 -0
  1088. package/skills/shared/solid-js/SKILL.md +260 -0
  1089. package/skills/shared/solid-js/evals/README.md +3 -0
  1090. package/skills/shared/solid-js/evals/cases.yaml +38 -0
  1091. package/skills/shared/solid-js/references/reactivity-deep-dive.md +89 -0
  1092. package/skills/shared/solid-js/references/router-and-start.md +93 -0
  1093. package/skills/shared/solid-js/scripts/verify.sh +130 -0
  1094. package/skills/shared/source-grounded-development/SKILL.md +108 -0
  1095. package/skills/shared/source-grounded-development/evals/README.md +3 -0
  1096. package/skills/shared/source-grounded-development/evals/cases.yaml +42 -0
  1097. package/skills/shared/specify/SKILL.md +391 -0
  1098. package/skills/shared/specify/evals/README.md +73 -0
  1099. package/skills/shared/specify/evals/cases.yaml +93 -0
  1100. package/skills/shared/specify/references/eliciting-requirements.md +117 -0
  1101. package/skills/shared/specify/references/spec-template.md +101 -0
  1102. package/skills/shared/speckit-analyze/SKILL.md +35 -0
  1103. package/skills/shared/speckit-assess-decide/SKILL.md +36 -0
  1104. package/skills/shared/speckit-assess-define/SKILL.md +36 -0
  1105. package/skills/shared/speckit-assess-intake/SKILL.md +38 -0
  1106. package/skills/shared/speckit-assess-research/SKILL.md +36 -0
  1107. package/skills/shared/speckit-assess-shape/SKILL.md +36 -0
  1108. package/skills/shared/speckit-bug-assess/SKILL.md +38 -0
  1109. package/skills/shared/speckit-bug-fix/SKILL.md +37 -0
  1110. package/skills/shared/speckit-bug-test/SKILL.md +37 -0
  1111. package/skills/shared/speckit-checklist/SKILL.md +35 -0
  1112. package/skills/shared/speckit-clarify/SKILL.md +32 -0
  1113. package/skills/shared/speckit-constitution/SKILL.md +35 -0
  1114. package/skills/shared/speckit-converge/SKILL.md +36 -0
  1115. package/skills/shared/speckit-implement/SKILL.md +32 -0
  1116. package/skills/shared/speckit-plan/SKILL.md +37 -0
  1117. package/skills/shared/speckit-specify/SKILL.md +36 -0
  1118. package/skills/shared/speckit-tasks/SKILL.md +34 -0
  1119. package/skills/shared/spreadsheet-ops/SKILL.md +180 -0
  1120. package/skills/shared/spreadsheet-ops/evals/README.md +33 -0
  1121. package/skills/shared/spreadsheet-ops/evals/cases.yaml +42 -0
  1122. package/skills/shared/spreadsheet-ops/references/formula-cookbook.md +70 -0
  1123. package/skills/shared/spreadsheet-ops/references/python-excel.md +87 -0
  1124. package/skills/shared/spreadsheet-ops/references/sheets-api-appsscript.md +118 -0
  1125. package/skills/shared/spreadsheet-ops/scripts/verify.sh +152 -0
  1126. package/skills/shared/spring-boot/SKILL.md +350 -0
  1127. package/skills/shared/spring-boot/evals/README.md +11 -0
  1128. package/skills/shared/spring-boot/evals/cases.yaml +49 -0
  1129. package/skills/shared/spring-boot/references/jpa.md +94 -0
  1130. package/skills/shared/spring-boot/references/security.md +92 -0
  1131. package/skills/shared/spring-boot/references/testing.md +95 -0
  1132. package/skills/shared/spring-boot/scripts/verify.sh +115 -0
  1133. package/skills/shared/sql/SKILL.md +286 -0
  1134. package/skills/shared/sql/evals/README.md +9 -0
  1135. package/skills/shared/sql/evals/cases.yaml +49 -0
  1136. package/skills/shared/sql/references/ctes-and-recursion.md +63 -0
  1137. package/skills/shared/sql/references/joins-and-sets.md +71 -0
  1138. package/skills/shared/sql/references/portability.md +38 -0
  1139. package/skills/shared/sql/references/window-functions.md +72 -0
  1140. package/skills/shared/sql/scripts/verify.sh +139 -0
  1141. package/skills/shared/sqlite-turso/SKILL.md +214 -0
  1142. package/skills/shared/sqlite-turso/evals/README.md +24 -0
  1143. package/skills/shared/sqlite-turso/evals/cases.yaml +45 -0
  1144. package/skills/shared/sqlite-turso/references/embedded-replicas.md +96 -0
  1145. package/skills/shared/sqlite-turso/scripts/verify.sh +95 -0
  1146. package/skills/shared/structured-extraction/SKILL.md +230 -0
  1147. package/skills/shared/structured-extraction/evals/README.md +13 -0
  1148. package/skills/shared/structured-extraction/evals/cases.yaml +70 -0
  1149. package/skills/shared/structured-extraction/references/providers.md +152 -0
  1150. package/skills/shared/structured-extraction/scripts/verify.sh +160 -0
  1151. package/skills/shared/suggest/SKILL.md +123 -0
  1152. package/skills/shared/suggest/evals/README.md +17 -0
  1153. package/skills/shared/suggest/evals/cases.yaml +78 -0
  1154. package/skills/shared/supabase/SKILL.md +268 -0
  1155. package/skills/shared/supabase/evals/README.md +12 -0
  1156. package/skills/shared/supabase/evals/cases.yaml +42 -0
  1157. package/skills/shared/supabase/references/auth-ssr.md +173 -0
  1158. package/skills/shared/supabase/references/rls-cookbook.md +122 -0
  1159. package/skills/shared/supabase/scripts/verify.sh +149 -0
  1160. package/skills/shared/svelte/SKILL.md +238 -0
  1161. package/skills/shared/svelte/evals/README.md +3 -0
  1162. package/skills/shared/svelte/evals/cases.yaml +41 -0
  1163. package/skills/shared/svelte/references/runes.md +97 -0
  1164. package/skills/shared/svelte/references/sveltekit-data.md +156 -0
  1165. package/skills/shared/svelte/scripts/verify.sh +128 -0
  1166. package/skills/shared/swift-ios/SKILL.md +224 -0
  1167. package/skills/shared/swift-ios/evals/README.md +3 -0
  1168. package/skills/shared/swift-ios/evals/cases.yaml +46 -0
  1169. package/skills/shared/swift-ios/references/concurrency.md +132 -0
  1170. package/skills/shared/swift-ios/references/testing.md +112 -0
  1171. package/skills/shared/swift-ios/scripts/verify.sh +98 -0
  1172. package/skills/shared/tasks/SKILL.md +265 -0
  1173. package/skills/shared/tasks/evals/README.md +70 -0
  1174. package/skills/shared/tasks/evals/cases.yaml +75 -0
  1175. package/skills/shared/tauri/SKILL.md +219 -0
  1176. package/skills/shared/tauri/evals/README.md +12 -0
  1177. package/skills/shared/tauri/evals/cases.yaml +46 -0
  1178. package/skills/shared/tauri/references/bundling-distribution.md +129 -0
  1179. package/skills/shared/tauri/references/security.md +143 -0
  1180. package/skills/shared/tauri/scripts/verify.sh +178 -0
  1181. package/skills/shared/technical-writing/SKILL.md +230 -0
  1182. package/skills/shared/technical-writing/evals/README.md +12 -0
  1183. package/skills/shared/technical-writing/evals/cases.yaml +53 -0
  1184. package/skills/shared/technical-writing/references/diataxis-modes.md +131 -0
  1185. package/skills/shared/technical-writing/references/vale-starter.md +90 -0
  1186. package/skills/shared/technical-writing/scripts/verify.sh +83 -0
  1187. package/skills/shared/testing-go/SKILL.md +263 -0
  1188. package/skills/shared/testing-go/evals/README.md +3 -0
  1189. package/skills/shared/testing-go/evals/cases.yaml +46 -0
  1190. package/skills/shared/testing-go/references/coverage-and-benchmarks.md +85 -0
  1191. package/skills/shared/testing-go/references/mocks-and-fakes.md +140 -0
  1192. package/skills/shared/testing-go/references/synctest-and-concurrency.md +82 -0
  1193. package/skills/shared/testing-go/scripts/verify.sh +72 -0
  1194. package/skills/shared/testing-py/SKILL.md +197 -0
  1195. package/skills/shared/testing-py/evals/README.md +5 -0
  1196. package/skills/shared/testing-py/evals/cases.yaml +44 -0
  1197. package/skills/shared/testing-py/references/mocking.md +141 -0
  1198. package/skills/shared/testing-py/references/property-testing.md +99 -0
  1199. package/skills/shared/testing-py/scripts/verify.sh +117 -0
  1200. package/skills/shared/testing-web/SKILL.md +244 -0
  1201. package/skills/shared/testing-web/evals/README.md +11 -0
  1202. package/skills/shared/testing-web/evals/cases.yaml +52 -0
  1203. package/skills/shared/testing-web/references/jest-setup.md +88 -0
  1204. package/skills/shared/testing-web/references/recipes.md +116 -0
  1205. package/skills/shared/testing-web/scripts/verify.sh +111 -0
  1206. package/skills/shared/together-fireworks/SKILL.md +176 -0
  1207. package/skills/shared/together-fireworks/evals/README.md +3 -0
  1208. package/skills/shared/together-fireworks/evals/cases.yaml +50 -0
  1209. package/skills/shared/together-fireworks/references/batch-and-tuning.md +59 -0
  1210. package/skills/shared/together-fireworks/references/models-and-pricing.md +79 -0
  1211. package/skills/shared/together-fireworks/scripts/verify.sh +165 -0
  1212. package/skills/shared/training-data/SKILL.md +226 -0
  1213. package/skills/shared/training-data/evals/README.md +13 -0
  1214. package/skills/shared/training-data/evals/cases.yaml +41 -0
  1215. package/skills/shared/training-data/references/formats.md +118 -0
  1216. package/skills/shared/training-data/references/synthesis-dedup-quality.md +134 -0
  1217. package/skills/shared/translation-l10n/SKILL.md +229 -0
  1218. package/skills/shared/translation-l10n/evals/README.md +3 -0
  1219. package/skills/shared/translation-l10n/evals/cases.yaml +39 -0
  1220. package/skills/shared/translation-l10n/references/icu-cookbook.md +82 -0
  1221. package/skills/shared/translation-l10n/references/rtl-and-bidi.md +60 -0
  1222. package/skills/shared/typescript/SKILL.md +225 -0
  1223. package/skills/shared/typescript/evals/README.md +15 -0
  1224. package/skills/shared/typescript/evals/cases.yaml +46 -0
  1225. package/skills/shared/typescript/references/build-and-monorepo.md +141 -0
  1226. package/skills/shared/typescript/references/type-system.md +162 -0
  1227. package/skills/shared/typescript/scripts/verify.sh +52 -0
  1228. package/skills/shared/ui-engineering/SKILL.md +113 -0
  1229. package/skills/shared/ui-engineering/evals/cases.yaml +38 -0
  1230. package/skills/shared/unity/SKILL.md +282 -0
  1231. package/skills/shared/unity/evals/README.md +8 -0
  1232. package/skills/shared/unity/evals/cases.yaml +43 -0
  1233. package/skills/shared/unity/references/build-and-platforms.md +65 -0
  1234. package/skills/shared/unity/references/input-system.md +102 -0
  1235. package/skills/shared/unity/references/lifecycle-deep-dive.md +75 -0
  1236. package/skills/shared/unreal/SKILL.md +270 -0
  1237. package/skills/shared/unreal/evals/README.md +12 -0
  1238. package/skills/shared/unreal/evals/cases.yaml +45 -0
  1239. package/skills/shared/unreal/references/blueprint-cpp-parity.md +109 -0
  1240. package/skills/shared/unreal/references/gameplay-framework.md +95 -0
  1241. package/skills/shared/unreal/references/packaging.md +83 -0
  1242. package/skills/shared/unslop/SKILL.md +143 -0
  1243. package/skills/shared/unslop/evals/README.md +25 -0
  1244. package/skills/shared/unslop/evals/cases.yaml +61 -0
  1245. package/skills/shared/unsloth/SKILL.md +254 -0
  1246. package/skills/shared/unsloth/evals/README.md +10 -0
  1247. package/skills/shared/unsloth/evals/cases.yaml +42 -0
  1248. package/skills/shared/unsloth/references/export.md +75 -0
  1249. package/skills/shared/unsloth/references/grpo.md +91 -0
  1250. package/skills/shared/unsloth/references/masking-and-templates.md +91 -0
  1251. package/skills/shared/variant-explorer/SKILL.md +93 -0
  1252. package/skills/shared/variant-explorer/evals/cases.yaml +38 -0
  1253. package/skills/shared/vector-db/SKILL.md +189 -0
  1254. package/skills/shared/vector-db/evals/README.md +10 -0
  1255. package/skills/shared/vector-db/evals/cases.yaml +45 -0
  1256. package/skills/shared/vector-db/references/engines.md +175 -0
  1257. package/skills/shared/vector-db/references/tuning.md +62 -0
  1258. package/skills/shared/vector-db/scripts/verify.sh +110 -0
  1259. package/skills/shared/vercel/SKILL.md +242 -0
  1260. package/skills/shared/vercel/evals/README.md +23 -0
  1261. package/skills/shared/vercel/evals/cases.yaml +45 -0
  1262. package/skills/shared/vercel/references/cli-cookbook.md +98 -0
  1263. package/skills/shared/vercel/references/vercel-json.md +120 -0
  1264. package/skills/shared/vercel/scripts/verify.sh +168 -0
  1265. package/skills/shared/verify/SKILL.md +230 -0
  1266. package/skills/shared/verify/evals/README.md +78 -0
  1267. package/skills/shared/verify/evals/cases.yaml +104 -0
  1268. package/skills/shared/vllm/SKILL.md +235 -0
  1269. package/skills/shared/vllm/evals/README.md +9 -0
  1270. package/skills/shared/vllm/evals/cases.yaml +47 -0
  1271. package/skills/shared/vllm/references/flags-and-endpoints.md +105 -0
  1272. package/skills/shared/vllm/references/memory-and-throughput.md +78 -0
  1273. package/skills/shared/vue-nuxt/SKILL.md +323 -0
  1274. package/skills/shared/vue-nuxt/evals/README.md +11 -0
  1275. package/skills/shared/vue-nuxt/evals/cases.yaml +49 -0
  1276. package/skills/shared/vue-nuxt/references/data-and-state.md +127 -0
  1277. package/skills/shared/vue-nuxt/references/migration-nuxt4.md +79 -0
  1278. package/skills/shared/vue-nuxt/references/nitro-and-rendering.md +117 -0
  1279. package/skills/shared/vue-nuxt/references/reactivity.md +135 -0
  1280. package/skills/shared/vue-nuxt/scripts/verify.sh +148 -0
  1281. package/skills/shared/webhooks/SKILL.md +229 -0
  1282. package/skills/shared/webhooks/evals/README.md +15 -0
  1283. package/skills/shared/webhooks/evals/cases.yaml +46 -0
  1284. package/skills/shared/webhooks/references/framework-raw-body.md +97 -0
  1285. package/skills/shared/webhooks/references/signature-schemes.md +66 -0
  1286. package/skills/shared/webhooks/scripts/verify.sh +142 -0
  1287. package/skills/shared/wordpress/SKILL.md +224 -0
  1288. package/skills/shared/wordpress/evals/README.md +3 -0
  1289. package/skills/shared/wordpress/evals/cases.yaml +50 -0
  1290. package/skills/shared/wordpress/references/hardening.md +108 -0
  1291. package/skills/shared/wordpress/references/performance.md +80 -0
  1292. package/skills/shared/wordpress/references/woocommerce.md +65 -0
  1293. package/skills/shared/wordpress/scripts/verify.sh +96 -0
  1294. package/skills/shared/worktrees/SKILL.md +204 -0
  1295. package/skills/shared/worktrees/evals/README.md +78 -0
  1296. package/skills/shared/worktrees/evals/cases.yaml +47 -0
@@ -0,0 +1,44 @@
1
+ id: generic-ts
2
+ version: 1
3
+ extends: base
4
+ description: TypeScript repository with npm-compatible scripts and a standard test runner.
5
+ detect:
6
+ files:
7
+ - package.json
8
+ - tsconfig.json
9
+ dependencies:
10
+ - typescript
11
+ stack:
12
+ languages:
13
+ - typescript
14
+ packageManager: npm
15
+ commands:
16
+ install: npm ci
17
+ build: npm run build
18
+ test: npm test
19
+ typecheck: npx tsc --noEmit
20
+ lint: npm run lint
21
+ verify: npm test
22
+ paths:
23
+ source:
24
+ - src
25
+ tests:
26
+ - tests
27
+ docs:
28
+ - docs
29
+ policy:
30
+ trunk: auto
31
+ guardMode: shadow
32
+ worktrees: true
33
+ optOuts: []
34
+ rules: []
35
+ agents:
36
+ publish:
37
+ - spec-author
38
+ - implementer-frontend
39
+ - implementer-backend
40
+ - reviewer-architecture
41
+ - reviewer-tests
42
+ - explorer-domain
43
+ skills:
44
+ publish: []
@@ -0,0 +1,45 @@
1
+ id: python
2
+ version: 1
3
+ extends: base
4
+ description: Python project with pytest, mypy and ruff.
5
+ detect:
6
+ files:
7
+ - pyproject.toml
8
+ - requirements.txt
9
+ dependencies:
10
+ - pytest
11
+ stack:
12
+ languages:
13
+ - python
14
+ packageManager: pip
15
+ commands:
16
+ install: pip install -e .
17
+ build: python -m build
18
+ test: pytest
19
+ typecheck: mypy .
20
+ lint: ruff check .
21
+ verify: pytest
22
+ paths:
23
+ source:
24
+ - src
25
+ tests:
26
+ - tests
27
+ docs:
28
+ - docs
29
+ policy:
30
+ trunk: auto
31
+ guardMode: shadow
32
+ worktrees: true
33
+ optOuts: []
34
+ rules:
35
+ - rules/python.md
36
+ agents:
37
+ publish:
38
+ - spec-author
39
+ - implementer-frontend
40
+ - implementer-backend
41
+ - reviewer-architecture
42
+ - reviewer-tests
43
+ - explorer-domain
44
+ skills:
45
+ publish: []
@@ -0,0 +1,10 @@
1
+ # Python rules
2
+
3
+ - Type hints on every public function and module boundary.
4
+ - `pytest` for tests; fixtures over global state.
5
+ - `mypy` and `ruff` are part of the verification command.
6
+ - No bare `except`, no mutable default arguments, no `print` in library code.
7
+ - Use the `src/` layout when the project is a package; keep import roots explicit.
8
+ - Prefer `pathlib` over string paths.
9
+ - Run `ruff check .`, `mypy .` and `pytest` before marking a task complete.
10
+ - Never commit virtual environments, `.pyc` files or local credentials.
@@ -0,0 +1,63 @@
1
+ # skill-behavior-rubric — how a skill's OUTPUT is graded (the behavioral gate)
2
+
3
+ Sibling of `skill-rubric.md`. That one scores the skill as a **document**; this one scores what
4
+ the skill **produces when run**. A skill ships only if BOTH gates are green.
5
+
6
+ ## How the behavioral eval works
7
+
8
+ For each `capability` scenario in the skill's `evals/cases.yaml`, the engine
9
+ (`scripts/skill-behavior-eval.workflow.js`) runs the scenario twice — once with the skill's
10
+ `SKILL.md` injected (**treatment**), once without it (**baseline**) — and an independent, blind
11
+ grader scores both outputs. The grader never learns which output used the skill; outputs are
12
+ presented as X and Y, their slot varied by scenario index parity so a "first output" bias can't
13
+ systematically favor the skill.
14
+
15
+ ## What the grader returns (per output)
16
+
17
+ 1. **must_include coverage.** For each `must_include` item: `satisfied` true/false **and a quoted
18
+ line** from the output that satisfies it. Evidence, not vibes. If unsure, mark unmet.
19
+ 2. **Quality, four axes 0-10:** `completeness`, `actionability`, `correctness`, `grounding`
20
+ (no invented facts / APIs / numbers).
21
+
22
+ The grader returns raw signals only. It does **not** compute the score — that keeps the number
23
+ deterministic and auditable.
24
+
25
+ ## Orientation signal (the brújula)
26
+
27
+ User-facing, conversational skills should keep the user oriented. When a skill's capability scenario ends a turn the user acts on, the grader expects the output to:
28
+
29
+ - **Situate** the user (where they are / what is built vs missing).
30
+ - **Teach the why**, in the register `technical_level` sets (technical, or with analogies) — the voice is `orient`'s.
31
+ - **Propose a next step phrased as a question** — never end in seco.
32
+
33
+ Encode this as `must_include` items in those skills' capability scenarios (see `skills/orient/evals/cases.yaml` for the canonical pattern). It scores through the existing coverage axis — no separate formula. Skills that own a purely mechanical task (lint, a single rename) are exempt and should not be penalized.
34
+
35
+ ## How signals become the /10 (computed by `scripts/lib/behavior-score.js`)
36
+
37
+ - Per output: `score = 0.6 × (satisfied / total × 10) + 0.4 × mean(quality axes)`.
38
+ Empty output → 0. No checklist → quality only.
39
+ - Per scenario: `absolute` = treatment's score; `delta` = treatment − baseline.
40
+ - Per skill: `absolute_score` = mean of absolutes; `lift` = mean of deltas.
41
+
42
+ ## The gate (both required)
43
+
44
+ - `absolute_score ≥ 8.5` — the skill genuinely produces a good result.
45
+ - `lift ≥ +1.0` — the skill measurably beats no-skill. `lift ≤ 0` is an automatic FAIL even at a
46
+ high absolute: the skill adds nothing the bare agent didn't already do.
47
+
48
+ ## Anti-gaming
49
+
50
+ - Independent, blind grader; default-skeptical on coverage.
51
+ - Errors fail closed: a scenario whose run or grade errored is dropped; if all drop, FAIL.
52
+ - A skill with no `capability` scenario cannot be behaviorally evaluated → FAIL until one exists.
53
+ - v1 uses a single grader per scenario. Upgrade path: N=3 graders, majority vote.
54
+
55
+ ## Running it
56
+
57
+ ```
58
+ # 1) execute + grade — invoke the Workflow tool with the engine script and the skill id:
59
+ # scriptPath: scripts/skill-behavior-eval.workflow.js args: "<skill-id>"
60
+ # capture the workflow's returned object to a JSON file (e.g. /tmp/<skill>-raw.json)
61
+ # 2) score + gate (exit 0 pass / 1 fail):
62
+ node scripts/skill-behavior-eval.js --score /tmp/<skill>-raw.json
63
+ ```
@@ -0,0 +1,102 @@
1
+ # skill-harden-rubric — how the fix-loop diagnoses and guards a fix
2
+
3
+ The `skill-harden` workflow turns a FAILING behavioral score into edits, without gaming the eval.
4
+ These are the rules its agents follow.
5
+
6
+ The three guards below — **diff judge**, **hold-out**, **Generalization gate** — are mandatory *and*
7
+ mechanised: `tests/harden-generalization-gate.test.js` asserts, for each of those three, that the
8
+ loop implements what this file promises. **Adding a fourth guard here means adding its pair to that
9
+ test**; a guard documented but unchecked gives the safety without the protection, which is the
10
+ failure mode this repo has now hit ten times (constitution P2).
11
+
12
+ ## Diagnosis (skill-fault vs eval-fault vs capability)
13
+
14
+ Given the failing `mustFix`, both A/B outputs, and the grader's per-item evidence, decide the FAULT:
15
+
16
+ - **skill** — the treatment output genuinely misses real capability (weak method, missing depth,
17
+ no concrete output). Fix the SKILL.md body and/or references/.
18
+ - **eval** — the failure is the eval's, not the skill's. Two known biases:
19
+ 1. **Self-describing scenario** — the `scenario` text enumerates its own `must_include`, so a
20
+ bare agent gets the same guidance the skill would give and the lift collapses artificially.
21
+ 2. **Phantom-context must_include** — an item demands workspace artifacts the isolated eval
22
+ agent cannot have (e.g. `user-profile.md`, a real sibling skill to delegate to), capping the
23
+ absolute unfairly.
24
+ - **capability** — the gap cannot be closed by words in a skill body. It needs an **executable
25
+ capability**: something that fires on a real execution event and returns to the agent information
26
+ it cannot obtain on its own — a hook, a script, a tool, a sub-agent. Advice that merely tells the
27
+ agent to remember something is **not** a capability: it is not anchored to any observable event, so
28
+ it can fire when it should not and stay silent when it should not.
29
+
30
+ This loop can only ever write **guidance** (SKILL.md, references/). So `capability` is not a fix
31
+ route, it is the honest exit: the loop edits nothing, names the missing capability and the surface it
32
+ would live on, and stops. Writing a paragraph that pretends to cover a missing capability raises the
33
+ score without the capability existing — the worst outcome available.
34
+
35
+ A `capability` verdict **must name** the capability and its surface. One that cannot is an excuse,
36
+ not a diagnosis → choose `skill`.
37
+
38
+ Default to **skill** when unsure: blaming the eval or the surface area is the easier, less honest path.
39
+
40
+ ## The Generalization gate (ex-ante — it binds before the edit is written)
41
+
42
+ This gate governs the **content** of every line the fixer writes, and it travels **in the fixer's own
43
+ instruction**, not in a review afterwards. Writing freely and reverting later burns the round, and the
44
+ loop only has two.
45
+
46
+ Everything added to a skill is global context that will apply to cases the skill has never seen. So:
47
+
48
+ - **Allowed:** a reusable criterion that carries its own **applicability condition** — something the
49
+ agent can evaluate on a case it has never encountered.
50
+ - **Banned outright:** identifiers or titles from the eval scenario; names of its files, symbols or
51
+ fixtures; rules that branch on its specific data; and reciting the finding as if it were a rule
52
+ ("the last round showed X needs Y" — that is an answer, not a criterion).
53
+
54
+ **Litmus test, before every line:** *would this still help on a case in this domain I have never
55
+ seen?* If no → rewrite it as a criterion, or drop it. Not knowledge → not in the skill.
56
+
57
+ Why ex-ante and not only as review: moving this constraint from after-the-edit to
58
+ before-the-edit is what buys generalization cheaply. The measured version of this result — plus the
59
+ warning that richer feedback **without** this gate makes held-out performance *worse* — is in
60
+ [HarnessCompass](https://arxiv.org/abs/2608.01918); the reasoning it drove is recorded in
61
+ `02-DOCS/wiki/sdd/specs/generalization-gate.md`.
62
+
63
+ ## Eval-fix guard (independent judge)
64
+
65
+ An eval edit ships ONLY if a judge certifies it corrects one of the two biases above and does NOT
66
+ lower the bar — i.e. it makes the scenario less self-describing or removes a phantom-context item,
67
+ but never deletes a legitimate quality criterion to make a weak skill pass. Rejected → treat as a
68
+ skill-fault this round.
69
+
70
+ ## Skill-fix guards (both required)
71
+
72
+ 1. **Diff judge.** Read the SKILL.md/references diff and check BOTH: does it add genuine capability
73
+ (method, decision rules, concrete guidance) rather than echoing the `must_include` wording into
74
+ the body? *and* does every added line survive the Generalization gate above? Fail either → revert
75
+ the edit; it is not a fix.
76
+ 2. **Hold-out.** Re-score the EDITED skill on a FRESH scenario from its domain that the fixer never
77
+ saw. A real improvement generalizes; a memorized one does not.
78
+ - The eval engine runs every scenario with **and** without the skill, so the fresh scenario
79
+ already carries its own lift. No pre-fix baseline is needed.
80
+ - The verdict is computed by `node scripts/skill-behavior-eval.js --holdout <raw.json>` — a
81
+ comparison of numbers, deterministic and reproducible, never an agent's opinion (P1). Exit 0
82
+ passes, exit 1 blocks.
83
+ - **Blocks on `lift <= 0`** (`regression`): on unseen work the edited skill does not beat the bare
84
+ agent, so the edit did not transfer. Also blocks when the fresh scenario could not be run or
85
+ graded (`indeterminate`) — failing closed, because an unverified edit is not a verified one.
86
+ - The bar is deliberately **not** the main gate's `lift >= 1.0`: one fresh scenario graded once is
87
+ noisy, so only the unambiguous signal acts. Upgrade path if it proves too noisy in practice:
88
+ N=3 fresh scenarios, majority.
89
+ - **A block reverts the edit.** The round produced nothing and is recorded with its reason.
90
+
91
+ ## Stopping & honesty
92
+
93
+ - Max 2 rounds. On give-up, report the honest final score and a recommendation — never a faked pass.
94
+ - **A main-gate pass whose last surviving edit failed the hold-out does not commit.** It is a fix
95
+ tuned to the cases it was measured against; the loop reverts it and reports why. Conservative on
96
+ purpose: a lost commit costs one re-run, a certified overfit costs the catalog.
97
+ - A `capability` verdict never commits either: it returns the missing capability and its surface, and
98
+ routes the work to `specify`.
99
+ - Every non-commit says which condition failed, in the returned result. A denial without its exit is
100
+ abandonment (P6).
101
+ - Persistent lift-fail at a high absolute → recommend deprecate/merge: the skill does not justify
102
+ its own existence.
@@ -0,0 +1,200 @@
1
+ # skill-migration-brief — how to move one skill to the Claude-5-era rubric
2
+
3
+ This is the working brief for the catalog-wide migration. One agent, one skill, one worktree, one
4
+ branch, one PR. `scripts/skill-rubric.md` is the spec; this is how to apply it to an existing skill.
5
+
6
+ ## Why this exists
7
+
8
+ Anthropic's *The new rules of context engineering for Claude 5 generation models* (Jul 2026) reports
9
+ that >80% of Claude Code's system prompt was removed with no measurable eval loss, and names the
10
+ patterns that stopped paying: **repeating yourself across layers**, **over-constraining with rules
11
+ where judgment suffices**, and **enumerating examples where an expressive interface would do**.
12
+
13
+ Applied here: a skill's `description` is in context on **every turn it is installed**, invoked or
14
+ not. Across 257 skills that was 207 KB. The body is loaded when the skill fires. Both are paid for
15
+ by every user, so length is a cost, never a credit.
16
+
17
+ ## The pass
18
+
19
+ 1. `git checkout -b skill/<id>`
20
+ 2. Read `scripts/skill-rubric.md`, then `skills/<id>/SKILL.md`.
21
+
22
+ ### The description
23
+
24
+ Shape: **what it does · when to use it · an explicit `NOT <x> (that is \`sibling\`)` boundary.**
25
+
26
+ - Delete any `Triggers: '…', '…'` phrase list. The model matches by meaning; keyword lists in three
27
+ languages are pure per-turn cost, and the body usually instructs semantic matching right next to
28
+ them — a self-contradiction.
29
+ - Name a **real** sibling in the boundary. Verify it exists under `skills/`.
30
+ - Target ≤350 chars. Hard limit 1024 (schema-enforced). Third person, opens with "Use when/to".
31
+ - The test is **discrimination, not coverage**: could a reader choose this skill over its nearest
32
+ sibling from the description alone?
33
+
34
+ ### The body
35
+
36
+ The goal is the smallest body that still routes correctly. 400 lines is a ceiling; there is no floor.
37
+
38
+ **Remove:**
39
+
40
+ - Rule banks that restate the flow — "Iron rules (non-negotiable)", "Rationalizations — STOP".
41
+ A rule worth keeping moves next to the step it governs, and says *why* it is absolute instead of
42
+ shouting NON-NEGOTIABLE. A rule in an appendix is skimmed; a rule in context is followed.
43
+ - Re-teaching of what another skill owns. The register (`technical_level` in the profile, set by `init`) and
44
+ the voice that applies it belong to `orient`; the SDD method belongs to `sdd`. Read the profile and point; do not restate, or the two drift apart.
45
+ - "When to use" sections that restate the description, and trailing reference indexes whose links
46
+ already appear inline at point of use.
47
+
48
+ **Keep — these are not padding:**
49
+
50
+ - The **anti-patterns table**. The rubric requires one, and it is a different animal from a
51
+ rationalization table: it names concrete failure modes, not rules already stated above it.
52
+
53
+ **The hybrid case, which is common:** a table titled something like *"Anti-patterns /
54
+ rationalizations — STOP"*, with an *Excuse → Reality* framing. Do not delete it and do not leave
55
+ it as-is. **Keep every row, re-column it to `Anti-pattern | Do instead`, and drop the STOP /
56
+ excuse framing.** The rows are the value; the borrowed urgency wrapper is what dimension 7
57
+ forbids. Handling this the same way everywhere is what keeps the catalog consistent — deleting it
58
+ in one skill and keeping it in the next is worse than either choice applied uniformly.
59
+ - Decision tables where the flow genuinely branches.
60
+ - Tables specific to *this* skill's phase (e.g. what to show at each checkpoint) — that is not the
61
+ retired verbosity levels.
62
+ - Worked bad/good pairs that teach judgment by demonstration.
63
+ - Result-envelope blocks, chain position, and output contracts where they already exist. Do **not**
64
+ add one that was never there: that is a content change, not a format change.
65
+
66
+ **Invariant:** every file under `skills/<id>/references/` must be linked from the body. An unlinked
67
+ reference is never loaded, so it is dead weight in the package. Folding a tail index into inline
68
+ mentions is fine — the link just has to survive. `scripts/`, `evals/` and `assets/` need no link.
69
+
70
+ **Preserve substance exactly.** This is a context-engineering pass, not a content rewrite. Do not
71
+ change recommendations, versions, commands, figures, or add claims.
72
+
73
+ ## Verify
74
+
75
+ Your worktree has **no `node_modules`**, so:
76
+
77
+ - Run: `bash scripts/eval-lint.sh 2>&1 | grep -i '^<id>'` → must report PASS.
78
+ - Check the description length and that every `references/` file is linked.
79
+ - Do **not** run `npm test` or `npm run validate` — they need dependencies you do not have. The
80
+ orchestrator runs them once, globally, after merge.
81
+ - Do **not** edit `manifest.json`. It is derived, and parallel edits from hundreds of agents would
82
+ all conflict on the same lines. The orchestrator regenerates it once at the end.
83
+
84
+ ## Ship
85
+
86
+ Commit only `skills/<id>/`. Subject `refactor(<id>): <what you actually did>`. The body says what you
87
+ removed **and why**, and — just as important — what you deliberately **kept** and why.
88
+
89
+ **Authorship belongs to Daner Alejandro Salazar Colorado; never attribute a commit to an AI.** No `Co-Authored-By` for any AI, no "Generated with Claude Code"
90
+ footer, nothing attributing the work to a tool — in the commit *or* the PR body. This is the hard
91
+ rule the `ship` skill enforces (`skills/ship/SKILL.md`), and it applies to this migration like
92
+ everything else in the repo. Verify before pushing:
93
+
94
+ ```bash
95
+ git log -1 --format='%b' | grep -iE 'co-authored-by.*(claude|anthropic|ai)|generated with|claude code' \
96
+ && echo "AUTHORSHIP VIOLATION — strip it" || echo "authorship clean"
97
+ ```
98
+
99
+ Then `git push -u origin skill/<id>` and `gh pr create`. The PR body carries before/after description
100
+ chars, before/after body bytes, what went, what stayed, and the eval-lint result — and no AI
101
+ attribution line.
102
+
103
+ ## Judgment
104
+
105
+ If the skill already meets the rubric, **say so and change only the description.** A small honest
106
+ diff beats a large invented one. Several skills in the pilot needed 5-line diffs; that is a good
107
+ outcome, not a failed pass. Never pad, and never cut substance to hit a number.
108
+
109
+ ---
110
+
111
+ # For the orchestrator
112
+
113
+ Everything above is for the agent doing one skill. This half is for whoever is driving the fleet.
114
+
115
+ ## Resuming, from nothing
116
+
117
+ There is no state file to keep in sync, on purpose. **The content is the ledger** — a migrated skill
118
+ no longer carries a `Triggers:` list in its description:
119
+
120
+ ```bash
121
+ node -e "const fs=require('fs');const out=[];for(const d of fs.readdirSync('skills')){const p='skills/'+d+'/SKILL.md';if(!fs.existsSync(p))continue;const m=/^---\n([\s\S]*?)\n---/.exec(fs.readFileSync(p,'utf8'));if(m&&/Triggers:/i.test(m[1]))out.push(d)}console.log(out.join('\n'))"
122
+ ```
123
+
124
+ So a cold session resumes with: *read this brief, run that, launch one agent per remaining skill in
125
+ its own worktree.* Nothing from any previous conversation is required.
126
+
127
+ **An earlier version of this section said the remote `skill/*` branches were the ledger. They are
128
+ not, and the failure is instructive**: once integration PRs started merging with `--delete-branch`,
129
+ the branches for finished skills vanished, so a branch-based check re-offered work that was already
130
+ on main — and an agent duly re-migrated `harness` a second time before anyone noticed. The
131
+ instruction was true when written and was invalidated by a later change to the merge flow, with
132
+ nothing to catch the drift. That is the same failure this whole migration keeps finding in the
133
+ catalog; the brief was not exempt from it. Prefer a check against the artifact over a check against
134
+ bookkeeping that something else can quietly change.
135
+
136
+ ## Order: by profile, not alphabetically
137
+
138
+ A skill's `description` is in context for everyone who installs it, so migrate by blast radius:
139
+
140
+ 1. `minimal` profile — in every ai-hub install.
141
+ 2. `core` profile — the default install (the SDD chain plus the control plane).
142
+ 3. High-install stack skills — `nextjs`, `react`, `fastapi`, `postgresdb`, `design`, `typescript`,
143
+ `python`, `go`, `flutter`, `secure-coding`, `deployment`.
144
+ 4. Everything else.
145
+
146
+ If a run is cut short, this ordering means the part that was finished is the part that everyone pays for.
147
+
148
+ ## Sharp edges (each one cost a real mistake)
149
+
150
+ - **`manifest.json` is derived.** Agents must never touch it — hundreds of parallel edits collide on
151
+ the same lines. Regenerate once, centrally, with `npm run manifest` after merging.
152
+ - **A fresh worktree has no `node_modules`** (it is gitignored, so it is not checked out). `npm test`
153
+ and `npm run validate` cannot run there. `scripts/eval-lint.sh` can — it uses python3.
154
+ - **Result-envelope blocks are asymmetric.** `specify`, `tasks`, `implement`, `verify`, `ship`,
155
+ `parallel` and `sdd` have one; `plan`, `analyze`, `clarify`, `constitution`, `review` and `debug`
156
+ do not. Tell each agent which case it is in, or it will helpfully invent one.
157
+ - **`author-skill` is special.** It teaches how to write skills, so it documented the *old*
158
+ conventions. There, rewriting the guidance IS the migration — and the change has to reach its
159
+ `references/` and `evals/`, which graded produced skills against the old rubric.
160
+ - **Short ids break greps.** `go`, `rag`, `php` match half of `eval-lint`'s output. Give those agents
161
+ an anchored pattern (`grep -E '^go +'`).
162
+ - **Compound bash commands are denied whole.** The `ship-guard` hook rejects the entire call if any
163
+ part matches `git checkout main`, so a chained `commit && push && checkout main` runs *nothing*.
164
+ Split them.
165
+ - **The id `parallel` is unusable in a git command.** A sandbox guard aimed at GNU `parallel` matches
166
+ the substring, so `git checkout -b skill/parallel` is refused. That skill's branch has to be
167
+ created from the pushed commit with `gh api` instead. Any future id containing a blocked tool name
168
+ will behave the same way.
169
+
170
+ ## Content problems found while migrating — do NOT fix them in a format pass
171
+
172
+ Agents surfaced these and correctly left them alone. They need their own change:
173
+
174
+ - `sdd` claims every phase ends with a parseable envelope; six phases have none (see above).
175
+ - **`evals/cases.yaml` files carry stale claims about what the catalog contains, in both
176
+ directions.** Three agents hit this independently: `course-storytelling` routes a negative to
177
+ `deep-research`, which does not exist; `flutter` routes its Compose/SwiftUI negatives to `"none"`
178
+ on the grounds those skills are "not in this catalog", though `compose-multiplatform` and
179
+ `swift-ios` now are; `postgresdb` said the same of ORM traps, stale since `prisma-orm` and
180
+ `drizzle-orm` shipped. This drifts every time the catalog grows.
181
+
182
+ The root cause is that `eval-lint` does not actually verify a `route_to` names a real skill,
183
+ even though the rubric lists exactly that as a deterministic gate — so the gate is decorative.
184
+ (The 1024-char description limit had the same problem; that one is now enforced in
185
+ `schema/frontmatter.schema.json`.) Fixing the linter is worth more than fixing the instances:
186
+ it converts a recurring drift into a build error.
187
+ - `clarify`'s body calls itself "the fourth phase" while the chain it prints puts it third.
188
+ - `cold-outreach` never names `linkedin-outreach` in its route table, though the reverse link exists.
189
+ - `data-policy` says "walk five columns" and then lists six.
190
+ - `marketing/references/seo-geo.md` (20 KB) and marketing's landing-section material substantially
191
+ duplicate the standalone `seo-geo` and `landing-copy` skills. Three skills, one body of content,
192
+ paid for three times by anyone who installs all three. Needs a content-level de-duplication pass,
193
+ not a format one.
194
+
195
+ ## Return value
196
+
197
+ ```json
198
+ {"skill":"<id>","pr":"<url|null>","descBefore":0,"descAfter":0,"bytesBefore":0,"bytesAfter":0,
199
+ "evalLint":"PASS|FAIL","removed":["…"],"kept":["…"],"notes":"anything the orchestrator must know"}
200
+ ```
@@ -0,0 +1,40 @@
1
+ # skill-rubric — the objective test every ai-hub skill must pass before shipping
2
+
3
+ This is **the test, written before any skill is built.** A reviewer scores a finished skill
4
+ 0–10 on seven weighted dimensions, then the deterministic gates run (pass/fail, not gradeable).
5
+ A skill **ships only at a weighted score ≥ 8.5 AND all deterministic gates green.** The reviewer
6
+ is adversarial and independent of the author; it must cite evidence (line counts, char counts,
7
+ quoted source dates), never vibes. No grade inflation — an honest 7.0 that drives a fix beats a
8
+ dishonest 9.
9
+
10
+ ## Weighted dimensions (0–10 each)
11
+
12
+ | # | Dimension | Weight | What a 10 looks like |
13
+ |---|---|---|---|
14
+ | 1 | **Triggering & description** | 0.15 | Third-person, `Use when …` lead, an explicit `NOT … (that is <sibling>)` boundary, and nothing else it can do without. Judged on **discriminative power, not coverage**: could a reader pick this skill over its nearest sibling from the description alone? Aim ≤350 chars; ≤1024 is the hard limit. Parses as single-line quoted YAML. |
15
+ | 2 | **Scope & boundary** | 0.10 | One job. Body never drifts into a sibling's territory; it delegates by name. Near-miss prompts route to the correct existing sibling. |
16
+ | 3 | **Body craft & progressive disclosure** | 0.15 | **The smallest body that routes correctly** — ≤400 lines is a ceiling, not a target, and there is no minimum: a skill that does its job in 60 lines scores higher than the same skill padded to 200. Every `references/` file is pointed to inline from this body (an unlinked reference is never loaded, so it is dead weight). ai-hub voice, every fence language-tagged, a checklist/decision table only where the flow branches, an anti-patterns table present. |
17
+ | 4 | **Correctness, grounding & freshness** | **0.25** | Every load-bearing claim is accurate and **current (2025–2026)**: real library/API versions, no hallucinated flags/endpoints. The spec cites **authoritative sources with dates**; nothing rests on stale or invented facts. This is the heaviest dimension by design. |
18
+ | 5 | **Actionability** | 0.15 | Concrete and runnable: real numbers, paths, commands, decision rules — not adjectives. A practitioner could act from it without leaving the skill. |
19
+ | 6 | **Evals quality** | 0.10 | ≥5 `should_trigger` (incl. non-obvious), ≥4 `should_not_trigger` each with a `route_to` that resolves — a **real** catalog id, `none`, or `external:<name>` (enforced by `eval-lint`), ≥1 `capability` with a meaningful `must_include` rubric. The cases are genuine, not filler. |
20
+ | 7 | **Originality & safety** | 0.10 | ai-hub voice, not a clone of any external catalog (no borrowed urgency blocks / rationalization tables / `*-reviewer-prompt.md` conventions / verbatim flowcharts). `verify.sh` present iff there is a checkable artifact. No destructive or unsafe advice presented without guardrails. |
21
+
22
+ **Weighted score** = Σ(subscore × weight), rounded to 1 decimal. **Ship gate: ≥ 8.5.**
23
+
24
+ ## Deterministic gates (pass/fail — not part of the 0–10, but block shipping)
25
+
26
+ 1. `name` matches the directory id; `origin: ai-hub` present.
27
+ 2. Frontmatter validates against `schema/frontmatter.schema.json` (`node scripts/build-manifest.js --validate`).
28
+ 3. Every `recommends` id is a **real** skill in the catalog (no dangling refs — `--validate` enforces).
29
+ 4. `scripts/eval-lint.sh` reports PASS for the skill (≥5/≥4/≥1 and the keys are lists).
30
+ 5. Every `../<sibling>/SKILL.md` link resolves to a skill that exists.
31
+ 6. `description` is ≤ 1024 characters and parses as YAML.
32
+ 7. If a `scripts/verify.sh` exists, it is executable, read-only by default, and exits 0 on a clean/empty target (no false failure).
33
+
34
+ ## How the reviewer must work (anti-cheat)
35
+
36
+ - **Independent pass.** Review the artifact as written; do not assume the author's intent filled a gap.
37
+ - **Evidence, not vibes.** For dimension 1 quote the char count **and name the sibling the description distinguishes this skill from**; for 3 quote the SKILL.md line count **and name anything that could be cut without losing routing**; for 4 quote at least two source titles **with their dates** from the spec and name any claim you could not verify; for 6 count the entries.
38
+ - **Length is a cost, never a credit.** Do not reward a longer description or body for being thorough. Every line is paid for in context on every turn the skill is installed, whether or not it is invoked. If two versions route the same, the shorter one scores higher.
39
+ - **Freshness is mandatory.** If the skill names a version, API, or pricing that is plausibly out of date, dimension 4 is capped at 6 until a current source is cited. "Looks right" is not a source.
40
+ - **Fix loop.** Below 8.5, return a concrete `mustFix` list; the author applies it and re-scores. Up to two fix rounds. If still < 8.5, **record the real score and flag it** — never round up to pass.
@@ -0,0 +1,73 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "AiHubEngineV2",
4
+ "type": "object",
5
+ "required": ["version", "roles", "commands", "labels", "targets"],
6
+ "additionalProperties": false,
7
+ "properties": {
8
+ "version": { "const": 2 },
9
+ "roles": {
10
+ "type": "array",
11
+ "minItems": 8,
12
+ "maxItems": 8,
13
+ "items": {
14
+ "type": "object",
15
+ "required": ["id", "canonical", "derived", "can_modify", "cannot_modify", "commands", "gate"],
16
+ "additionalProperties": false,
17
+ "properties": {
18
+ "id": { "type": "string", "pattern": "^[a-z][a-z0-9-]*$" },
19
+ "canonical": { "type": "string", "minLength": 1 },
20
+ "derived": { "type": "boolean" },
21
+ "description": { "type": "string" },
22
+ "can_modify": { "type": "array", "items": { "type": "string" } },
23
+ "cannot_modify": { "type": "array", "items": { "type": "string" } },
24
+ "commands": { "type": "array", "items": { "type": "string" }, "uniqueItems": true },
25
+ "gate": { "type": "string", "minLength": 1 }
26
+ }
27
+ }
28
+ },
29
+ "commands": {
30
+ "type": "array",
31
+ "minItems": 17,
32
+ "maxItems": 17,
33
+ "items": {
34
+ "type": "object",
35
+ "required": ["id", "name", "lane", "artifacts", "exit", "role", "skill"],
36
+ "additionalProperties": false,
37
+ "properties": {
38
+ "id": { "type": "string", "pattern": "^[a-z][a-z0-9-]*$" },
39
+ "name": { "type": "string", "pattern": "^/speckit[.-]" },
40
+ "lane": { "enum": ["assessment", "feature", "bug"] },
41
+ "artifacts": { "type": "array", "minItems": 1, "items": { "type": "string" } },
42
+ "exit": { "type": "array", "minItems": 1, "items": { "type": "string" } },
43
+ "role": { "type": "string", "minLength": 1 },
44
+ "co_roles": { "type": "array", "items": { "type": "string" }, "uniqueItems": true },
45
+ "skill": { "type": "string", "pattern": "^speckit-" }
46
+ }
47
+ }
48
+ },
49
+ "labels": {
50
+ "type": "array",
51
+ "minItems": 7,
52
+ "maxItems": 7,
53
+ "uniqueItems": true,
54
+ "items": {
55
+ "enum": [
56
+ "ai::todo",
57
+ "ai::in-spec",
58
+ "ai::spec-ready",
59
+ "ai::in-dev",
60
+ "ai::in-review",
61
+ "ai::done",
62
+ "ai::blocked"
63
+ ]
64
+ }
65
+ },
66
+ "targets": {
67
+ "type": "array",
68
+ "minItems": 5,
69
+ "uniqueItems": true,
70
+ "items": { "enum": ["claude", "opencode", "pi", "cursor", "copilot"] }
71
+ }
72
+ }
73
+ }