@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,250 @@
1
+ ---
2
+ name: sdd
3
+ description: "Use when you want a disciplined, spec-driven path from a feature idea to shipped, verified software — the SDD dispatcher and front door, in any language. States the method, reads the user's register from 02-DOCS, and routes to the right phase: constitution -> specify -> clarify -> plan -> tasks -> analyze -> implement -> verify -> review -> ship, with debug / worktrees / parallel on demand. Use it to start a feature, to govern the whole flow, or when unsure which phase you are in. NOT a single phase itself (it dispatches), NOT the workspace harness (that is `harness`), NOT a stack build skill."
4
+ tags: [sdd, spec, workflow, plan]
5
+ recommends: [sdd-init, constitution, specify]
6
+ profiles: [core, full]
7
+ origin: ai-hub
8
+ ---
9
+
10
+ # sdd — the ai-hub Spec-Driven Development dispatcher
11
+
12
+ *The front door for building software the ai-hub way: intent in, shipped-and-verified software out, with the spec, plan and decisions recorded into the project's living knowledge model as you go.*
13
+
14
+ `sdd` is the **engineering counterpart of the `harness`**. The harness runs the chaos → knowledge loop (inbox → `02-DOCS` wiki). `sdd` runs the **intent → shipped software** loop, and it writes the artifacts of that loop — constitution, specs, plans, decisions — into the same `02-DOCS/wiki/sdd/` so the project's knowledge grows with every feature instead of leaking into chat history.
15
+
16
+ This skill does **not** do a phase itself. It is the dispatcher: it names the method, reads which register you want (technical or with analogies), tells you which phase you are in, and hands off to the phase skill that owns the work. Each phase skill, when it finishes, points you at the next one — so once you enter the chain you rarely come back here.
17
+
18
+ ## The method in one breath
19
+
20
+ Spec-Driven Development (SDD, GitHub Spec Kit lineage) says: **decide what and why before how, write it down, and let each written artifact gate the next step.** You do not jump from a sentence in chat to a pull request. You move through ordered phases, each producing a durable artifact that the next phase reads. The payoff is that the *intent* is reviewable before any code exists, drift is caught at a gate instead of in production, and the whole thing is legible to the next person (or the next session) because it lives in `02-DOCS`, not in a scrollback.
21
+
22
+ If you only remember one rule: **the artifact is the contract.** Code is checked against the plan, the plan against the spec, the spec against the constitution. When they disagree, you fix the disagreement before writing more code — you do not let the code silently win.
23
+
24
+ ## Step zero: calibrate the SDD runtime
25
+
26
+ Before the first non-trivial feature in a repo, run `../sdd-init/SKILL.md`. It detects the stack, package manager, test runners, scripts, monorepo signals and review budget, refreshes `.ai-hub/skill-registry.json`, and writes:
27
+
28
+ ```text
29
+ 02-DOCS/wiki/sdd/config.yaml
30
+ ```
31
+
32
+ If `config.yaml` is missing and the request is more than a tiny one-line change, route to `sdd-init` before `specify`. This is not the same as `init`: `init` profiles the user/workspace; `sdd-init` calibrates the technical SDD runtime.
33
+
34
+ ## The chained phase map
35
+
36
+ The canonical chain runs left to right. Solid arrows are the default path; you move forward when the current phase's exit gate passes.
37
+
38
+ ```text
39
+ constitution ─(once per project)─┐
40
+ ▼
41
+ sdd-init ─(once per repo/runtime)─┐
42
+ ▼
43
+ proposal? ─► specify ─► clarify ─► plan ─► tasks ─► analyze ─► implement ─► verify ─► review ─► ship ─► archive
44
+ ▲
45
+ on demand ─────┴─────────────────────
46
+ debug · worktrees · parallel
47
+ ```
48
+
49
+ | Phase | Owns | Writes | Tier | Sibling skill |
50
+ | --- | --- | --- | --- | --- |
51
+ | **sdd-init** | Technical runtime calibration: stack, tests, commands, registry, budgets | `02-DOCS/wiki/sdd/config.yaml`, `.ai-hub/skill-registry.*` | light | `../sdd-init/SKILL.md` |
52
+ | **proposal** | Optional pre-execution briefing for ambiguous/architectural/risky work | `02-DOCS/wiki/sdd/proposals/<slug>.md` | — | handled by `../specify/SKILL.md` when needed |
53
+ | **constitution** | Project non-negotiables: stack canon, quality bars, conventions | `02-DOCS/wiki/sdd/constitution.md` | heavy | `../constitution/SKILL.md` |
54
+ | **specify** | Turn a fuzzy intent into a spec — what & why, no how | `02-DOCS/wiki/sdd/specs/<slug>.md` | balanced | `../specify/SKILL.md` |
55
+ | **clarify** | Surface ambiguities / edge cases, ask, bake answers back in | updates the spec | balanced | `../clarify/SKILL.md` |
56
+ | **plan** | Technical plan: architecture, interfaces, data flow, tests, risks | `02-DOCS/wiki/sdd/plans/<slug>.md` | heavy | `../plan/SKILL.md` |
57
+ | **tasks** | Break the plan into ordered, independently-verifiable tasks | task list in the plan artifact | balanced | `../tasks/SKILL.md` |
58
+ | **analyze** | Consistency gate: constitution ↔ spec ↔ plan ↔ tasks (report only) | a gap report | heavy | `../analyze/SKILL.md` |
59
+ | **implement** | Execute tasks with checkpoints; TDD discipline embedded | logs to `02-DOCS/wiki/sdd/decisions.md` | balanced | `../implement/SKILL.md` |
60
+ | **verify** | Post-build gate: run the stack's checks + done-checks + acceptance | evidence | balanced | `../verify/SKILL.md` |
61
+ | **review** | Adversarial code review — give and receive with rigor | review notes | heavy | `../review/SKILL.md` |
62
+ | **ship** | Close the branch: PR / merge / cleanup. **Git authorship = Daner Alejandro Salazar Colorado** | the merge/PR and archive bundle | light | `../ship/SKILL.md` |
63
+ | **debug** | Root-cause diagnosis: reproduce → isolate → fix → verify | a diagnosis | heavy | `../debug/SKILL.md` |
64
+ | **worktrees** | Isolate feature work in a branch/worktree before executing a plan | an isolated workspace | light | `../worktrees/SKILL.md` |
65
+ | **parallel** | Fan out independent tasks across subagents, gather results | merged results | per-unit | `../parallel/SKILL.md` |
66
+
67
+ > The **Tier** column is the *default* model tier each phase routes to when **per-phase model
68
+ > routing** is enabled — see "Per-phase model routing" below. It is off by default and changes
69
+ > nothing about the chain or the gates; it only decides which model does the work.
70
+
71
+ > If a phase skill above does not yet exist in this repo, the chain still holds — do that phase's work inline following the method here, and skip the broken handoff. Never invent a sibling that is not installed.
72
+
73
+ ## The invoke rule — route to the phase that fits
74
+
75
+ When a request lands, do not start typing code. Place it on the map first, then invoke the phase skill that owns it.
76
+
77
+ > **The new-feature gate (hard).** The moment the user is thinking about a new feature or change — "add…", "build…", "it should also…", "quiero añadir…" — it goes to `specify` first, *even if a stack skill (nextjs/fastapi/flutter/react…) also fired and could just build it*. **No feature code is written — by any skill — until a spec AND a plan exist and the user has approved them.** A stack skill about to build an unspec'd, non-trivial feature must stop and route here. The only exception is a genuinely one-line, low-risk change; name it and skip.
78
+
79
+ 1. **No `02-DOCS/wiki/sdd/config.yaml` and this is non-trivial?** → `sdd-init`.
80
+ 2. **No constitution yet AND this project will grow — or its frontmatter says `status: draft` (the one `ai-hub onboard` writes)?** → `constitution` once, then come back to the chain.
81
+ 3. **Ambiguous / architectural / risky change before spec?** → optional proposal artifact via `specify`.
82
+ 4. **A new idea, fuzzy, no spec on disk?** → `specify`.
83
+ 5. **A spec exists but feels risky / has open questions?** → `clarify`.
84
+ 6. **A clarified spec, no technical plan?** → `plan`.
85
+ 7. **A plan with no task breakdown?** → `tasks`.
86
+ 8. **Tasks exist, about to code, want a safety check?** → `analyze`.
87
+ 9. **Green light to build?** → `implement` (it embeds strict TDD from config and calls `parallel`/`worktrees` when useful).
88
+ 10. **Code written, claiming it works?** → `verify`, then `review`, then `ship`/archive.
89
+ 11. **Something is broken mid-flight?** → `debug`, then resume where you were.
90
+
91
+ If you genuinely cannot tell which phase you are in, ask the user one question: *"Do we have a written spec for this yet?"* The answer puts you before or after `specify`, and the rest follows.
92
+
93
+ ### Skip rules (be honest about them)
94
+
95
+ - A **one-line, low-risk change** (typo, copy tweak, config bump) does not need the full chain. Say so, do it, and verify. The method serves shipping, not ceremony.
96
+ - `constitution` runs **once per project**, not per feature. If `02-DOCS/wiki/sdd/constitution.md` exists, read it as guardrails and move on — unless it is still `status: draft`: then complete it first.
97
+ - `clarify` and `analyze` are **gates, not paperwork**. If a spec is genuinely unambiguous and tiny, name that out loud and pass through — but the bias is to run them, because skipped gates are where drift hides.
98
+
99
+ ## Autopilot mode — run the whole chain on one up-front yes
100
+
101
+ By default the chain pauses at its gates (spec approval, plan approval). **Autopilot** trades those
102
+ per-phase stops for a **single up-front consent**: the user says "take it all the way" once, and the
103
+ chain runs `specify → clarify → plan → tasks → analyze → implement → verify → review` end to end
104
+ **without asking to continue between phases** — still writing every artifact (spec, plan, decisions)
105
+ to `02-DOCS/wiki/sdd/` as it goes, so the work stays reviewable after the fact.
106
+
107
+ **How it turns on:**
108
+
109
+ - `specify` **offers it at the brainstorm boundary** ("¿lo llevo hasta el final yo solo, o paramos en cada fase?"). A yes engages autopilot for this feature.
110
+ - Or set `sdd.autopilot: true` in `02-DOCS/wiki/sdd/config.yaml` to default it on (still surfaced once per feature).
111
+
112
+ **The up-front yes IS the gate.** It satisfies the new-feature gate's "spec + plan approved before code" — approval was granted in advance, for the whole run. Do not re-ask phase by phase.
113
+
114
+ **Autopilot still STOPS for these — not "continue?" nags, real forks:**
115
+
116
+ - **Genuine ambiguity** that would change scope, a goal, or an acceptance criterion (never guess the product).
117
+ - **A hard failure** it can't resolve (a red test it can't green → `debug`; an `analyze` contradiction).
118
+ - **Destructive / irreversible / outward-facing actions** — push, merge, delete, secrets. `ship` (PR/merge) still confirms: autopilot drives the **build**, not the **release**.
119
+
120
+ Run the fan-out on the `developer` subagent as usual, and narrate in the `orient` voice: name each phase as it passes and show its artifact, one line each. Autopilot changes **when you ask**, never **what gets written** — every artifact and gate-check still happens; you just don't block on a human between them.
121
+
122
+ ## Read the register first
123
+
124
+ Before dispatching, read `technical_level` in `02-DOCS/wiki/harness/user-profile.md` — exactly as every ai-hub skill does. It picks the register (technical terms, or plain words with analogies); it never changes whether the gates exist. Speak in the `orient` voice:
125
+
126
+ - **At each phase:** name the phase, give one line of *why this phase now*, do it, show the artifact.
127
+ - **At gates** (clarify / analyze / decisions): ask only the questions that actually change the outcome, each with its trade-off and a recommendation.
128
+
129
+ If there is no profile yet, use analogies and ask once **"technical or with analogies?"** before dispatching, and persist the answer — that is `init`'s job and `sdd` honors it.
130
+
131
+ ## Per-phase model routing (opt-in)
132
+
133
+ Different phases reward different models: architecture and adversarial review want the strongest
134
+ one; scaffolding and git plumbing don't. SDD can route each phase to a **tier** — `heavy`
135
+ (deep reasoning), `balanced` (execution), `light` (mechanical) — that resolves to a concrete
136
+ model in `02-DOCS/wiki/sdd/config.yaml` under `models`. The default mapping is the **Tier**
137
+ column above (quality-biased: heavy on constitution/plan/analyze/review/debug, balanced on
138
+ execution, light on ship/worktrees/sdd-init).
139
+
140
+ It is **off by default** (`models.enabled: false`). When the user opts in, each phase applies it
141
+ two ways: **programmatically** — dispatching `Task`/`parallel` subagents on the tier's model
142
+ (real routing, e.g. Claude Code) — and **advisorily** — announcing the recommended switch at the
143
+ phase boundary, in one line, for inline work and assistants that can't switch
144
+ programmatically. Never switch unasked, never claim a switch a tool can't make, and skip routing
145
+ on trivial one-line changes. The `sdd` dispatcher itself never routes (staying on the session
146
+ model); `parallel` has no fixed tier (each unit inherits the tier of its work). Full protocol,
147
+ per-assistant mechanism, and the provider→model table: `references/model-routing.md`.
148
+
149
+ ## Where the artifacts live (and why it matters)
150
+
151
+ Every phase writes under `02-DOCS/wiki/sdd/` so the feature's reasoning outlives the chat:
152
+
153
+ ```text
154
+ 02-DOCS/wiki/sdd/
155
+ ├── config.yaml ← repo runtime calibration from sdd-init
156
+ ├── constitution.md ← project non-negotiables (once)
157
+ ├── proposals/<slug>.md ← optional pre-execution briefing
158
+ ├── specs/<slug>.md ← one spec per feature
159
+ ├── plans/<slug>.md ← one plan per feature (tasks live inside)
160
+ ├── progress/<slug>.md ← append-only apply progress
161
+ ├── verifications/<slug>-YYYY-MM-DD.md
162
+ ├── archive/<slug>/ ← final report, state, verify/review/ship records
163
+ ├── sessions/<date>-<slug>.md
164
+ └── decisions.md ← append-only log of decisions taken while building
165
+ ```
166
+
167
+ Index these in `02-DOCS/wiki/index.md` (the Knowledge map; root `CLAUDE.md` keeps only a short pointer) under an `sdd/` topic, so every other skill reads them before working in the area. The harness maintains and improves these files just like any other wiki topic — `sdd` produces them, the harness keeps them honest.
168
+
169
+ ```markdown
170
+ # 02-DOCS/wiki/index.md
171
+ ## Knowledge map
172
+ | Topic | Where | What |
173
+ | --- | --- | --- |
174
+ | sdd/ | 02-DOCS/wiki/sdd/ | Constitution, specs, plans, decisions for spec-driven feature work |
175
+ ```
176
+
177
+ ## Stack handoff
178
+
179
+ `sdd` and its phases are **process, not stack**. Concrete tooling — test runners, lint/type/build, framework idioms — belongs to the stack skills. `plan` defers stack specifics, `implement` borrows the stack skill's testing approach, and `verify` runs the stack skill's checks. Route to the stack that matches the work: `../fastapi/SKILL.md`, `../nextjs/SKILL.md`, `../go/SKILL.md`, `../postgresdb/SKILL.md`, `../flutter/SKILL.md`. Visual/UX work routes to `../design/SKILL.md` and copy to `../marketing/SKILL.md`.
180
+
181
+ ## Skill registry and compact skill rules
182
+
183
+ The registry is the cheap index:
184
+
185
+ ```text
186
+ .ai-hub/skill-registry.json
187
+ .ai-hub/skill-registry.md
188
+ ```
189
+
190
+ Use it to choose the few relevant skill paths for the current phase/stack. Do not load the whole catalog. Before dispatching subagents, digest selected skills into 4-5 compact rules and include them in the brief. Each phase reports `skill_resolution`: which skills were used, which were missing, fallback behavior, and the compact rules handed to subagents.
191
+
192
+ ## Standard result envelope
193
+
194
+ Every SDD phase ends with the same parseable block so the dispatcher can chain phases without interpreting a novel:
195
+
196
+ ```json result-envelope
197
+ {
198
+ "status": "complete|blocked|failed",
199
+ "executive_summary": "one short paragraph",
200
+ "artifact": "path/to/artifact-or-none",
201
+ "next_recommended": "sdd-init|specify|clarify|plan|tasks|analyze|implement|verify|review|ship",
202
+ "risk": "low|medium|high",
203
+ "model": { "tier": "heavy|balanced|light", "resolved": "model-id", "routing": "on|off" },
204
+ "skill_resolution": {
205
+ "used": [],
206
+ "missing": [],
207
+ "fallback": [],
208
+ "compact_rules": []
209
+ },
210
+ "evidence": []
211
+ }
212
+ ```
213
+
214
+ If a phase cannot produce the envelope because the user stopped it mid-flight, write a session summary instead.
215
+
216
+ ## Session summary / compaction recovery
217
+
218
+ When a session is long, about to pause, or context is at risk, write:
219
+
220
+ ```text
221
+ 02-DOCS/wiki/sdd/sessions/<date>-<slug>.md
222
+ ```
223
+
224
+ Include current phase, active artifacts, last verdict, completed tasks, next steps, risks, useful commands, and the current `skill_resolution`. This lets the next agent resume from artifacts instead of scrollback.
225
+
226
+ ## Anti-patterns → STOP
227
+
228
+ | Rationalization | Reality / fix |
229
+ | --- | --- |
230
+ | "I get the feature, I'll just start coding." | That is the failure SDD prevents. At minimum write the spec; the artifact is the contract. |
231
+ | "`sdd` should write the spec itself." | No. `sdd` dispatches. Invoke `specify` — it owns the spec and asks the right questions. |
232
+ | "Clarify and analyze are bureaucracy, skip them." | Skipped gates are where drift hides. Run them; only pass through if the change is genuinely trivial and you say so. |
233
+ | "The user wants it short, so I'll skip the gates to be terse." | Short changes the words, not the method. Fewer words, same gates. |
234
+ | "I'll keep the plan in chat, it's faster." | Chat is not durable. Write it under `02-DOCS/wiki/sdd/` or the next session is blind. |
235
+ | "I'll skip `sdd-init`; I remember the test command." | The runtime contract belongs in `config.yaml`, not memory. |
236
+ | "I'll load every skill into the subagent." | That contaminates context. Use registry -> selected paths -> compact rules. |
237
+ | "The phase wrote a nice summary, so no envelope needed." | The envelope is the phase contract. Add it. |
238
+ | "Run constitution again for this feature." | Constitution is once per project. If it exists, read it as guardrails and move on. |
239
+ | "Ship now, I'll add Co-Authored-By: Claude." | `ship` enforces Daner Alejandro Salazar Colorado-only authorship. No Claude co-author, no generated-with footer. |
240
+ | "Invoke the `release` phase." | There is no such phase. Never invent a sibling — the chain is the chain. |
241
+ | "Routing sounds useful, I'll switch to the heavy model on my own." | Routing is opt-in (`models.enabled:false`). Don't switch models unless the user turned it on. |
242
+ | "I'll tell them I switched to Opus." (on an assistant with no per-subagent model) | Announce the recommended tier; never claim a switch the tool can't make. Honesty over magic. |
243
+
244
+ ## Start here
245
+
246
+ - **New project, nothing on disk yet** → `../sdd-init/SKILL.md` for runtime calibration, `../constitution/SKILL.md` for non-negotiables, then `../specify/SKILL.md`.
247
+ - **Existing project, no SDD config** → `../sdd-init/SKILL.md`, then route by phase.
248
+ - **Existing project, new feature** → `../specify/SKILL.md` (or proposal first if risky/architectural).
249
+
250
+ Then follow the arrows: each phase ends by pointing at the next, all the way to `ship`.
@@ -0,0 +1,60 @@
1
+ # Eval harness — `sdd`
2
+
3
+ Evaluates the `sdd` dispatcher (the ai-hub Spec-Kit front door) on two axes: **triggering**
4
+ (does it fire when a feature should run the spec-driven flow, and stay quiet when a
5
+ single phase or a different skill owns the request) and **capability** (does loading it
6
+ measurably improve how the agent opens and routes the work). Cases live in `cases.yaml`.
7
+ These run via an **agent harness**, not a pure shell script — a human or driver agent
8
+ feeds prompts to Claude Code and judges the result against the rubrics.
9
+
10
+ ## What's in `cases.yaml`
11
+
12
+ - `should_trigger` (7) — prompts that MUST invoke `sdd`, including non-obvious phrasings
13
+ ("which step am I on", "decide what and why, write it down, then build") with no SDD
14
+ jargon.
15
+ - `should_not_trigger` (6) — near-misses that must route elsewhere. Each carries a
16
+ `route_to` naming the correct sibling (`specify`, `constitution`, `ship`, `harness`,
17
+ `debug`, `nextjs`).
18
+ - `capability` (2) — scenarios with `must_include` rubrics graded WITH vs WITHOUT the skill.
19
+
20
+ ## A. Triggering eval
21
+
22
+ 1. Load **only** `sdd` into the agent (no other ai-hub skills available, so routing is honest).
23
+ 2. For each `should_trigger` prompt: open a fresh session, paste the prompt verbatim, and
24
+ record whether `sdd` activates — a pass means it names the method, places the request on
25
+ the phase map, and routes to a phase (it should NOT start writing the spec or coding
26
+ itself). Run **3–5 trials** per prompt.
27
+ 3. For each `should_not_trigger` prompt: same procedure, but a **pass** = `sdd` does NOT
28
+ fire. Where a `route_to` sibling is named, sanity-check the prompt genuinely belongs there
29
+ (e.g. "write the spec" → `specify`, "open the PR and merge" → `ship`).
30
+ 4. Score: a prompt passes if the **majority of its trials** go the expected way.
31
+
32
+ **Pass bar:** ≥ 90% trigger accuracy across all `should_trigger` + `should_not_trigger`
33
+ prompts (at most 1 of the 13 may misbehave).
34
+
35
+ ## B. Capability eval
36
+
37
+ 1. **Without the skill:** fresh session, skill NOT loaded, give the `scenario` prompt. Save output A.
38
+ 2. **With the skill:** fresh session, `sdd` loaded, same prompt. Save output B.
39
+ 3. Grade each output against that scenario's `must_include` points — count points clearly covered.
40
+ 4. Repeat across **3 trials** per scenario per condition and average the coverage.
41
+
42
+ **Pass bar:** WITH the skill covers **≥ 80%** of `must_include` points; WITHOUT the skill is
43
+ materially lower (target a ≥ 30-point gap). If the skill doesn't measurably beat the baseline,
44
+ the skill — or these rubrics — needs work.
45
+
46
+ ## Judging notes (honest caveats)
47
+
48
+ - This is **LLM-as-judge / human-in-the-loop**, not deterministic. Use a consistent grader
49
+ (same model + rubric) across A/B to keep the comparison fair.
50
+ - The headline differentiators for `sdd`: it **dispatches, it does not perform a phase**; it
51
+ states the method ("the artifact is the contract"), reads the **register** (`technical_level`)
52
+ and speaks in the orient voice (never skipping gates), presents the **chained phase map**, applies the **invoke
53
+ rule** and the **skip rules** honestly, and writes artifacts under `02-DOCS/wiki/sdd/`.
54
+ - Key confusables to watch: "write the spec" is `specify`, not `sdd`; "set the principles" is
55
+ `constitution`; "open the PR" is `ship`; "build 01-TOOLS/02-DOCS" is `harness`. If the agent
56
+ does the phase work itself instead of routing, that's a fail even if the output looks good.
57
+ - Because `sdd` is the front door, some phase siblings may not yet be installed. A correct
58
+ response still routes by name and does the phase inline if the sibling is absent — it must
59
+ never invent a phase that isn't in the chain.
60
+ - Run after any edit to `SKILL.md` or its `description`, since both axes are sensitive to wording.
@@ -0,0 +1,90 @@
1
+ skill: sdd
2
+
3
+ # Cases for the ai-hub Spec-Kit "sdd" dispatcher / front door.
4
+ # sdd states the SDD method, reads the user's register (the register) from
5
+ # AGENTS.md, and ROUTES to the right phase skill in
6
+ # the chain constitution -> specify -> clarify -> plan -> tasks -> analyze ->
7
+ # implement -> verify -> review -> ship (debug/worktrees/parallel on demand).
8
+ # It does NOT perform a single phase itself and is NOT the workspace harness.
9
+
10
+ should_trigger:
11
+ - prompt: "I want to build this feature properly, spec-driven, from idea to shipped. Where do I start?"
12
+ why: "Canonical SDD entry: explicit 'spec-driven' + 'idea to shipped' is exactly what the dispatcher routes — it should name the method and hand off to constitution/specify, not start coding."
13
+
14
+ - prompt: "Quiero llevar esta idea a producción haciéndolo bien, paso a paso."
15
+ why: "Spanish 'de la idea a producción, haciéndolo bien, paso a paso' is the intent->shipped loop the dispatcher governs; it should place the request on the phase map and route to specify."
16
+
17
+ - prompt: "I'm somewhere in the middle of building a feature and I've lost track of which step I'm on. Can you orient me?"
18
+ why: "Non-obvious: no SDD jargon, but 'which step am I on' is precisely the dispatcher's 'which phase are you in' job — it asks the one orienting question (is there a written spec?) and routes."
19
+
20
+ - prompt: "Run the full sdd flow on this new authentication requirement."
21
+ why: "Direct request to run the chained flow — the dispatcher owns the flow and routes the first phase; it should not try to do every phase inline itself."
22
+
23
+ - prompt: "I have a one-paragraph idea for a notifications feature. Take it all the way to a PR the disciplined way."
24
+ why: "Fuzzy idea + 'all the way to a PR' + 'disciplined' implies the whole chain; the dispatcher should start at specify and explain the gates rather than jumping to implementation."
25
+
26
+ - prompt: "Before we touch code, I want a proper process: decide what and why, write it down, then build. Set that up."
27
+ why: "Describes SDD by definition (what/why before how, write it down) without the acronym — a deliberately non-obvious trigger the dispatcher must claim and route from."
28
+
29
+ - prompt: "What's the right order to do this feature in, and which phase skill handles each part?"
30
+ why: "Asks for the phase map and the per-phase ownership — the dispatcher's core deliverable; it should produce the chain and the routing rule."
31
+
32
+ - prompt: "We have an existing repo and no SDD config yet. Start the SDD flow properly before we write a spec."
33
+ why: "The dispatcher should notice the missing runtime calibration and route to sdd-init before specify on non-trivial work."
34
+
35
+ - prompt: "I want planning and review to run on the strongest model but implementation on a cheaper one. Set that up for our SDD flow."
36
+ why: "Per-phase model routing is an SDD concern the dispatcher owns: it should name the tier system (heavy/balanced/light), point at the models block in .specify/config.yaml written by sdd-init, and note it is opt-in — not start coding."
37
+
38
+ should_not_trigger:
39
+ - prompt: "Write the spec for the new export-to-CSV feature."
40
+ route_to: "specify"
41
+ why: "A concrete request to PRODUCE the spec is a single phase the dispatcher hands off — specify owns writing specs and asking the focused questions. sdd only routes."
42
+
43
+ - prompt: "Set this repo's non-negotiable engineering principles and stack canon."
44
+ route_to: "constitution"
45
+ why: "Capturing project-wide non-negotiables is the constitution phase, which runs once per project. The dispatcher would point here, but the work itself belongs to the constitution skill."
46
+
47
+ - prompt: "All the code is written and tests pass — open the PR and merge it."
48
+ route_to: "ship"
49
+ why: "Closing the branch (PR/merge/cleanup, human-only authorship) is the ship phase. No dispatching needed; this is squarely ship's job."
50
+
51
+ - prompt: "Audita mi proyecto y monta el docs/tools y el docs/."
52
+ route_to: "harness"
53
+ why: "Workspace control plane (docs/tools/docs/ scaffolding/audit) is the harness, not the SDD engineering flow. sdd writes its artifacts INTO docs/ but does not build the harness."
54
+
55
+ - prompt: "There's a failing test and I don't know why — help me find the root cause before I change anything."
56
+ route_to: "debug"
57
+ why: "Root-cause diagnosis of a specific failure is the on-demand debug phase. The dispatcher references it, but a direct 'find the root cause' request goes straight to debug, not through routing."
58
+
59
+ - prompt: "Scaffold a new Next.js app with the App Router and Tailwind."
60
+ route_to: "nextjs"
61
+ why: "A concrete stack build with a named framework is the nextjs stack skill. sdd is process, not stack; it would defer build specifics to nextjs rather than fire itself."
62
+
63
+ capability:
64
+ - scenario: "A developer whose profile says the register: technical says: 'I've got a rough idea for a feature and I want to build it the spec-driven way, end to end. Where do I begin?' Show how the dispatcher opens the engagement."
65
+ must_include:
66
+ - "States the SDD method in brief: decide what & why before how, write it down, each artifact gates the next ('the artifact is the contract')"
67
+ - "Reads (or notes it should read) the register from AGENTS.md and, being technical, uses technical terms directly with a one-line why per step rather than long explanations or analogies"
68
+ - "Presents the chained phase map: sdd-init -> constitution -> proposal? -> specify -> clarify -> plan -> tasks -> analyze -> implement -> verify -> review -> ship -> archive, with debug/worktrees/parallel on demand"
69
+ - "Includes sdd-init as step zero when .specify/config.yaml is missing, and explains that it detects test commands, strict TDD and manifest.yaml"
70
+ - "Applies the invoke rule: a fuzzy idea with no spec on disk routes to specify (and notes constitution runs once per project if not yet present)"
71
+ - "Does NOT itself write the spec or start coding — it hands off to the specify phase skill (../specify/SKILL.md)"
72
+ - "Notes that artifacts will be written under .specify/ (specs/, plans/, decisions.md) and indexed in the root AGENTS.md Knowledge map"
73
+ - "Mentions standard result envelopes with status, artifact, next_recommended, risk, skill_resolution and evidence"
74
+ - "Defers concrete stack tooling (test runner, build, framework idioms) to the relevant stack skill rather than prescribing it here"
75
+
76
+ - scenario: "A user says: 'It's a tiny copy change in the footer — do I really have to run this whole spec/plan/tasks ceremony?' Show how the dispatcher handles the skip case honestly."
77
+ must_include:
78
+ - "Applies the skip rule: a one-line, low-risk change does not need the full chain, and says so explicitly"
79
+ - "Still requires a verification step after the change (the method serves shipping, not ceremony, but evidence before claiming done remains)"
80
+ - "Does not abandon the method for genuinely risky work — distinguishes trivial from non-trivial and is honest about which this is"
81
+ - "If git authorship comes up, notes ship enforces human-only authorship (no Co-Authored-By Claude, no generated-with footer)"
82
+
83
+ - scenario: "A user asks: 'Can SDD use a cheaper model for the boring phases and the strong one for the hard ones? How do I turn that on?' Show how the dispatcher explains per-phase model routing."
84
+ must_include:
85
+ - "Names the three tiers — heavy (deep reasoning), balanced (execution), light (mechanical) — and that each phase has a default tier"
86
+ - "States the default quality-biased mapping: heavy on constitution/plan/analyze/review/debug, balanced on specify/clarify/tasks/implement/verify, light on ship/worktrees/sdd-init"
87
+ - "Says routing is OFF by default (models.enabled:false) and lives in the models block of .specify/config.yaml, written by sdd-init; turning it on is the user's choice"
88
+ - "Explains the two application layers: programmatic (dispatching Task/parallel subagents on the tier's model, e.g. Claude Code) and advisory (announcing the recommended switch at the phase boundary, in one line)"
89
+ - "Is honest about limits: never switches unasked, never claims a model switch an assistant cannot make, and skips routing on trivial one-line changes"
90
+ - "Points to references/model-routing.md for the full protocol, per-assistant mechanism, and provider→model table rather than inventing model names inline"
@@ -0,0 +1,194 @@
1
+ # Per-phase model routing — the protocol
2
+
3
+ *Different SDD phases ask for different kinds of thinking. Architecture and adversarial
4
+ review reward the strongest model; scaffolding and git plumbing don't. This is the protocol
5
+ that lets each phase run on the model its work deserves — cheaper where it's safe, strong
6
+ where it matters — without surprising anyone and without faking a switch a tool can't make.*
7
+
8
+ This file is the **single source of truth** for the behavior. `sdd-init` writes the profile,
9
+ `sdd` summarizes it, and every phase skill points here for the procedure. If the three ever
10
+ disagree, this file wins.
11
+
12
+ ## Why this exists
13
+
14
+ By default every SDD phase runs on whatever model the session happens to be on. That's either
15
+ wasteful (running `ship`'s `git push` on the most expensive model) or risky (running an
16
+ architecture `plan` on the cheapest one). Routing assigns each phase a **tier** and lets the
17
+ phase put its work on the right model. It is **opt-in**: until the user turns it on, nothing
18
+ changes and nothing is announced.
19
+
20
+ ## The three tiers (provider-neutral)
21
+
22
+ Tiers are abstract so the profile survives a provider switch. A phase only ever names a tier;
23
+ the concrete model is resolved from config.
24
+
25
+ | Tier | For | Typical work |
26
+ | --- | --- | --- |
27
+ | **heavy** | deep reasoning | architecture, consistency gates, adversarial review, root-cause diagnosis |
28
+ | **balanced** | execution | writing specs, code, tests, breaking work into tasks, interpreting check output |
29
+ | **light** | mechanical / high-volume / exploration | scaffolding, file sweeps, scans, git plumbing, repo detection |
30
+
31
+ ## The profile (lives in `02-DOCS/wiki/sdd/config.yaml`)
32
+
33
+ `sdd-init` writes this block. It is the canonical shape — keep it byte-for-byte in sync with
34
+ the Config Shape in `../../sdd-init/SKILL.md` and the table in `../SKILL.md`.
35
+
36
+ ```yaml
37
+ models:
38
+ enabled: false # opt-in master switch; false = honor the session model, announce nothing
39
+ provider: anthropic # which provider the tiers below resolve to
40
+ tiers:
41
+ heavy: claude-opus-4-8
42
+ balanced: claude-sonnet-4-6
43
+ light: claude-haiku-4-5-20251001
44
+ phases:
45
+ constitution: heavy
46
+ specify: balanced
47
+ clarify: balanced
48
+ plan: heavy
49
+ tasks: balanced
50
+ analyze: heavy
51
+ implement: balanced
52
+ verify: balanced
53
+ review: heavy
54
+ ship: light
55
+ debug: heavy
56
+ worktrees: light
57
+ sdd-init: light
58
+ overrides: {} # per-phase tier overrides set by the user; preserved across re-calibration
59
+ ```
60
+
61
+ **Master switch.** `enabled: false` (the default) means routing does nothing: honor the
62
+ session model, never announce a switch, never nag. Everything below applies only when
63
+ `enabled: true`.
64
+
65
+ **Two phases are deliberately absent from `phases`:**
66
+
67
+ - `sdd` (the dispatcher) — routing decisions are cheap; it stays on the session model.
68
+ - `parallel` — it has no fixed tier. Each fanned-out subagent inherits the tier of the *kind
69
+ of work* its unit does (an implement-type unit → `balanced`; a scan/research unit → `light`;
70
+ a deep-reasoning unit → `heavy`).
71
+
72
+ ## Default phase → tier mapping (quality-biased) and why
73
+
74
+ | Phase | Tier | Why |
75
+ | --- | --- | --- |
76
+ | constitution | heavy | Sets the project's non-negotiables — highest leverage, worth the best reasoning. |
77
+ | specify | balanced | Drafts the what/why spec through dialogue; not architecture. |
78
+ | clarify | balanced | Ranks and asks the few high-leverage questions; not architecture. |
79
+ | plan | heavy | Architecture, interfaces, data flow, risks — the heaviest cognitive load. |
80
+ | tasks | balanced | Decomposes the plan into verifiable tasks; structured but mechanical. |
81
+ | analyze | heavy | Adversarial consistency gate across constitution ↔ spec ↔ plan ↔ tasks. |
82
+ | implement | balanced | The bulk of TDD execution — cost-sensitive, quality sufficient. |
83
+ | verify | balanced | Runs the checks and interprets failures with judgment. |
84
+ | review | heavy | Adversarial diff reading — where the strongest model pays off most. |
85
+ | ship | light | Close the branch: PR / merge / cleanup — mechanical. |
86
+ | debug | heavy | Root-cause diagnosis — deep reasoning. |
87
+ | worktrees | light | Isolate the workspace (git) — mechanical. |
88
+ | sdd-init | light | Repo detection and calibration — mechanical. |
89
+
90
+ The user owns this. They change a phase by adding it to `models.overrides` (e.g.
91
+ `overrides: { implement: heavy }`), which wins over `phases`.
92
+
93
+ ## How a phase applies the profile (the procedure)
94
+
95
+ Run this at the start of any SDD phase, after reading the user profile:
96
+
97
+ 1. **Read** `models` from `02-DOCS/wiki/sdd/config.yaml`. If the block is absent or
98
+ `enabled: false` → **do nothing**: honor the session model, say nothing about models.
99
+ 2. **Resolve the tier** for this phase: `models.overrides[phase]` if present, else
100
+ `models.phases[phase]`. (`parallel` resolves a tier per unit instead — see below.)
101
+ 3. **Resolve the model**: `models.tiers[tier]` for the active `models.provider`.
102
+ 4. **Apply, in two layers:**
103
+ - **Programmatic (real routing, where the assistant supports delegation).** When the phase
104
+ delegates work to a subagent (the `Task`/Agent tool) or fans out via `parallel`, set that
105
+ subagent's `model` to the resolved model. This is real routing regardless of the session
106
+ model and is the most reliable application — prefer it.
107
+ - **Advisory (all assistants, inline work).** If the resolved model differs from the current
108
+ session model and the work isn't being delegated, **announce** it at the phase boundary,
109
+ in one line (below), and give the switch command for the active
110
+ assistant (mechanism table below). Never block — the human may decline and continue.
111
+ 5. **Skip routing entirely** for a one-line / trivial change, exactly as the SDD skip rule says
112
+ for the rest of the chain. Ceremony serves shipping, not the other way around.
113
+ 6. **Record** the model actually used in the phase's result envelope (`model` field, below).
114
+ Log it to `02-DOCS/wiki/sdd/decisions.md` only when the choice actually mattered (e.g. you
115
+ overrode a tier for a hard plan) — not on every phase.
116
+
117
+ ### How to announce a switch
118
+
119
+ Announcing never changes whether routing happens. A programmatic dispatch is silent. When the user must act, say it in one line, in the `orient` voice: the tier, the model, the one-word why, and the switch command (e.g. "para esta fase conviene opus: `/model opus`"). Explain the tier system or how to override it in config only when the user asks.
120
+
121
+ ## Per-assistant switch mechanism
122
+
123
+ We route programmatically only where the assistant exposes a per-subagent model. Everywhere
124
+ else routing is advisory — announce the tier, the user switches in their tool.
125
+
126
+ | Assistant | Programmatic (delegation) | Advisory (inline) |
127
+ | --- | --- | --- |
128
+ | **Claude Code** | `model` on the `Task`/Agent tool and on `parallel` subagents (`opus`/`sonnet`/`haiku`) | `/model <name>` for the session |
129
+ | **Codex CLI** | — (solo-agent) | model flag / `model` in config |
130
+ | **Cursor** | native subagent model where exposed | model picker in the UI |
131
+ | **Gemini CLI** | — (experimental) | model flag |
132
+ | **Copilot / Windsurf / Cline / others** | — | announce the tier; user switches in the tool's model selector |
133
+
134
+ When the active assistant has **no** way to switch, still announce the recommended tier so the
135
+ human can decide — but **never claim a switch happened**. Honesty over magic.
136
+
137
+ ## Provider → concrete models (repoint the tiers here)
138
+
139
+ To target another provider, change `models.provider` and set `models.tiers` to that row.
140
+
141
+ | provider | heavy | balanced | light |
142
+ | --- | --- | --- | --- |
143
+ | `anthropic` | `claude-opus-4-8` | `claude-sonnet-4-6` | `claude-haiku-4-5-20251001` |
144
+ | `openai` | `gpt-5.1` (or current flagship) | `gpt-5.1-mini` | `gpt-5.1-nano` |
145
+ | `google` | `gemini-2.5-pro` | `gemini-2.5-flash` | `gemini-2.5-flash-lite` |
146
+ | `openrouter` | a strong model slug | a mid model slug | a cheap/free model slug |
147
+
148
+ These are starting points — set them to whatever your account actually has. The tiers are the
149
+ contract; the concrete names are yours to edit.
150
+
151
+ ## The `developer` subagent (the installed implementation worker)
152
+
153
+ ai-hub installs a **`developer`** subagent into every assistant that supports file-based agents
154
+ (Claude Code `.claude/agents/`, Cursor, OpenCode, Gemini, Copilot, Junie, Kiro, Codex) when the
155
+ harness is installed. It is the concrete embodiment of "run the fan-out on a smaller model":
156
+
157
+ - It is pinned to the **balanced** tier — **Sonnet** for Anthropic-backed tools, the provider's
158
+ mid model elsewhere (Gemini Flash, GPT-mini). It is **never** `light`/Haiku — that tier is too
159
+ weak to build with. The floor for implementation is balanced.
160
+ - The tier is chosen at **onboarding** (`init`, Step 4): balanced (default) or heavy. It is stored
161
+ in `.ai-hub/developer.json` and the installer writes the per-target agent file with the resolved
162
+ model on every (re)install/sync. If onboarding never asks, the install-time default is balanced.
163
+ - `implement` and `parallel` **dispatch implementation/fan-out work to this agent**, so the
164
+ session model orchestrates while the cheaper-but-capable model does the bulk of the typing.
165
+ - On assistants without file-based agents (Amp, Zed, Windsurf, Cline, Roo, Continue, Aider, Jules,
166
+ Antigravity), there is no agent file — the developer tier is advisory there, like the rest of
167
+ routing. The per-target model id is an editable default (see the provider table above).
168
+
169
+ ## Result-envelope `model` field
170
+
171
+ Every phase's result envelope carries the model it ran on, so the chain is auditable:
172
+
173
+ ```json
174
+ {
175
+ "status": "complete",
176
+ "model": { "tier": "heavy", "resolved": "claude-opus-4-8", "routing": "on|off" },
177
+ "...": "rest of the standard envelope"
178
+ }
179
+ ```
180
+
181
+ When routing is off, emit `"model": { "routing": "off" }` (no tier/resolved) — don't invent a
182
+ tier you didn't use.
183
+
184
+ ## Honesty rules / anti-patterns → STOP
185
+
186
+ | Rationalization | Reality |
187
+ | --- | --- |
188
+ | "Routing sounds good, I'll switch models even though the user never enabled it." | It's opt-in. `enabled: false` (and a missing block) means honor the session model and say nothing. |
189
+ | "I'll tell the user I switched to Opus." (on an assistant with no programmatic switch) | You can't switch there. Announce the tier and the command; never claim a switch you didn't make. |
190
+ | "The user wants it short, so I'll skip routing." | Short changes words, not behavior. Route the same; announce only when the user must act. |
191
+ | "It's a one-line typo fix but the phase is `review`, so → heavy." | Skip routing on trivial changes, like the rest of the chain. Don't spin up the expensive model for a copy tweak. |
192
+ | "I'll log the model on every phase." | Log to `decisions.md` only when the model choice mattered. The envelope `model` field already records the routine case. |
193
+ | "config has no `models` block, I'll assume the defaults are active." | A missing block means routing is **off**. Defaults describe what `sdd-init` *writes*, not an implicit on-state. |
194
+ | "Two parallel units, I'll run both on the phase's tier." | `parallel` has no fixed tier. Give each unit the tier of its own work. |