@xonovex/skills 0.1.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 (341) hide show
  1. package/.claude-plugin/plugin.json +21 -0
  2. package/commands/code-align.md +108 -0
  3. package/commands/code-harden.md +74 -0
  4. package/commands/code-simplify.md +145 -0
  5. package/commands/git-commit.md +146 -0
  6. package/commands/insights-extract.md +109 -0
  7. package/commands/insights-integrate.md +100 -0
  8. package/commands/plan-continue.md +167 -0
  9. package/commands/plan-create.md +107 -0
  10. package/commands/plan-research.md +113 -0
  11. package/commands/plan-subplans-create.md +111 -0
  12. package/commands/plan-tdd-create.md +128 -0
  13. package/commands/plan-update.md +99 -0
  14. package/commands/plan-validate.md +100 -0
  15. package/commands/plan-worktree-abandon.md +104 -0
  16. package/commands/plan-worktree-create.md +92 -0
  17. package/commands/plan-worktree-merge.md +132 -0
  18. package/package.json +44 -0
  19. package/skills/astro-guidelines/SKILL.md +23 -0
  20. package/skills/astro-guidelines/reference/accessibility.md +31 -0
  21. package/skills/astro-guidelines/reference/components.md +42 -0
  22. package/skills/astro-guidelines/reference/content-collections.md +32 -0
  23. package/skills/astro-guidelines/reference/islands-architecture.md +26 -0
  24. package/skills/astro-guidelines/reference/project-structure.md +32 -0
  25. package/skills/c99-game-opinionated-guidelines/SKILL.md +43 -0
  26. package/skills/c99-game-opinionated-guidelines/reference/builder-pattern.md +29 -0
  27. package/skills/c99-game-opinionated-guidelines/reference/coordinate-system.md +27 -0
  28. package/skills/c99-game-opinionated-guidelines/reference/geometry-pipeline.md +29 -0
  29. package/skills/c99-game-opinionated-guidelines/reference/math-types.md +31 -0
  30. package/skills/c99-game-opinionated-guidelines/reference/mesh-types.md +32 -0
  31. package/skills/c99-game-opinionated-guidelines/reference/physics-patterns.md +28 -0
  32. package/skills/c99-game-opinionated-guidelines/reference/spatial-structures.md +26 -0
  33. package/skills/c99-game-opinionated-guidelines/reference/tagged-unions.md +40 -0
  34. package/skills/c99-game-opinionated-guidelines/reference/vertex-packing.md +38 -0
  35. package/skills/c99-guidelines/SKILL.md +29 -0
  36. package/skills/c99-guidelines/reference/compound-literals.md +33 -0
  37. package/skills/c99-guidelines/reference/const-correctness.md +32 -0
  38. package/skills/c99-guidelines/reference/designated-initializers.md +32 -0
  39. package/skills/c99-guidelines/reference/error-handling.md +49 -0
  40. package/skills/c99-guidelines/reference/inline-functions.md +37 -0
  41. package/skills/c99-guidelines/reference/memory-management.md +35 -0
  42. package/skills/c99-opinionated-guidelines/SKILL.md +44 -0
  43. package/skills/c99-opinionated-guidelines/reference/alignment.md +50 -0
  44. package/skills/c99-opinionated-guidelines/reference/caller-owns-memory.md +38 -0
  45. package/skills/c99-opinionated-guidelines/reference/compound-literals.md +33 -0
  46. package/skills/c99-opinionated-guidelines/reference/const-correctness.md +32 -0
  47. package/skills/c99-opinionated-guidelines/reference/data-oriented-design.md +42 -0
  48. package/skills/c99-opinionated-guidelines/reference/designated-initializers.md +32 -0
  49. package/skills/c99-opinionated-guidelines/reference/error-handling.md +49 -0
  50. package/skills/c99-opinionated-guidelines/reference/file-naming.md +33 -0
  51. package/skills/c99-opinionated-guidelines/reference/implementation-variants.md +35 -0
  52. package/skills/c99-opinionated-guidelines/reference/inline-functions.md +37 -0
  53. package/skills/c99-opinionated-guidelines/reference/memory-management.md +35 -0
  54. package/skills/c99-opinionated-guidelines/reference/safety-validations.md +32 -0
  55. package/skills/c99-opinionated-guidelines/reference/testing-patterns.md +39 -0
  56. package/skills/cmake-guidelines/SKILL.md +31 -0
  57. package/skills/cmake-guidelines/reference/compile-options.md +34 -0
  58. package/skills/cmake-guidelines/reference/fetchcontent.md +32 -0
  59. package/skills/cmake-guidelines/reference/find-package.md +29 -0
  60. package/skills/cmake-guidelines/reference/generator-expressions.md +34 -0
  61. package/skills/cmake-guidelines/reference/installation.md +38 -0
  62. package/skills/cmake-guidelines/reference/project-structure.md +40 -0
  63. package/skills/cmake-guidelines/reference/target-types.md +37 -0
  64. package/skills/cmake-guidelines/reference/testing.md +30 -0
  65. package/skills/cmake-guidelines/reference/visibility-specifiers.md +32 -0
  66. package/skills/content-guidelines/SKILL.md +36 -0
  67. package/skills/content-guidelines/reference/humanize.md +30 -0
  68. package/skills/content-guidelines/reference/news.md +28 -0
  69. package/skills/content-guidelines/reference/travelguide.md +31 -0
  70. package/skills/docker-guidelines/SKILL.md +23 -0
  71. package/skills/docker-guidelines/reference/docker-compose.md +40 -0
  72. package/skills/docker-guidelines/reference/layer-caching.md +25 -0
  73. package/skills/docker-guidelines/reference/multi-stage-builds.md +37 -0
  74. package/skills/docker-guidelines/reference/production-config.md +32 -0
  75. package/skills/docker-guidelines/reference/security.md +27 -0
  76. package/skills/express.js-guidelines/SKILL.md +32 -0
  77. package/skills/express.js-guidelines/reference/app-setup.md +39 -0
  78. package/skills/express.js-guidelines/reference/authentication.md +39 -0
  79. package/skills/express.js-guidelines/reference/controllers.md +49 -0
  80. package/skills/express.js-guidelines/reference/error-handling.md +54 -0
  81. package/skills/express.js-guidelines/reference/project-structure.md +29 -0
  82. package/skills/express.js-guidelines/reference/responses.md +30 -0
  83. package/skills/express.js-guidelines/reference/routes.md +29 -0
  84. package/skills/express.js-guidelines/reference/testing.md +39 -0
  85. package/skills/express.js-guidelines/reference/validation.md +41 -0
  86. package/skills/general-fp-guidelines/SKILL.md +28 -0
  87. package/skills/general-oop-guidelines/SKILL.md +28 -0
  88. package/skills/git-guidelines/SKILL.md +46 -0
  89. package/skills/git-guidelines/reference/commit.md +32 -0
  90. package/skills/git-guidelines/reference/merge-resolve.md +38 -0
  91. package/skills/git-guidelines/reference/worktree-abandon.md +48 -0
  92. package/skills/git-guidelines/reference/worktree-cleanup.md +40 -0
  93. package/skills/git-guidelines/reference/worktree-commit.md +46 -0
  94. package/skills/git-guidelines/reference/worktree-create.md +42 -0
  95. package/skills/git-guidelines/reference/worktree-merge.md +45 -0
  96. package/skills/git-guidelines/reference/worktree-validate.md +44 -0
  97. package/skills/hono-guidelines/SKILL.md +49 -0
  98. package/skills/hono-guidelines/reference/application-structure.md +53 -0
  99. package/skills/hono-guidelines/reference/context-storage.md +46 -0
  100. package/skills/hono-guidelines/reference/cookie-handling.md +63 -0
  101. package/skills/hono-guidelines/reference/error-handling.md +69 -0
  102. package/skills/hono-guidelines/reference/middleware-combine.md +47 -0
  103. package/skills/hono-guidelines/reference/middleware-patterns.md +58 -0
  104. package/skills/hono-guidelines/reference/platform-runtime.md +41 -0
  105. package/skills/hono-guidelines/reference/security-middleware.md +60 -0
  106. package/skills/hono-guidelines/reference/validation-type-safety.md +43 -0
  107. package/skills/hono-guidelines/reference/websocket-support.md +59 -0
  108. package/skills/hono-opinionated-guidelines/SKILL.md +49 -0
  109. package/skills/hono-opinionated-guidelines/reference/application-structure.md +53 -0
  110. package/skills/hono-opinionated-guidelines/reference/body-limit.md +57 -0
  111. package/skills/hono-opinionated-guidelines/reference/context-storage.md +46 -0
  112. package/skills/hono-opinionated-guidelines/reference/controllers.md +38 -0
  113. package/skills/hono-opinionated-guidelines/reference/cookie-handling.md +63 -0
  114. package/skills/hono-opinionated-guidelines/reference/error-handling.md +69 -0
  115. package/skills/hono-opinionated-guidelines/reference/middleware-combine.md +47 -0
  116. package/skills/hono-opinionated-guidelines/reference/middleware-patterns.md +58 -0
  117. package/skills/hono-opinionated-guidelines/reference/openapi-explicit-status-codes.md +61 -0
  118. package/skills/hono-opinionated-guidelines/reference/openapi-inline-handlers.md +56 -0
  119. package/skills/hono-opinionated-guidelines/reference/openapi-router-hierarchy.md +64 -0
  120. package/skills/hono-opinionated-guidelines/reference/openapi-spec-generation.md +57 -0
  121. package/skills/hono-opinionated-guidelines/reference/platform-runtime.md +41 -0
  122. package/skills/hono-opinionated-guidelines/reference/router-selection.md +34 -0
  123. package/skills/hono-opinionated-guidelines/reference/security-middleware.md +60 -0
  124. package/skills/hono-opinionated-guidelines/reference/validation-type-safety.md +43 -0
  125. package/skills/hono-opinionated-guidelines/reference/websocket-support.md +59 -0
  126. package/skills/insights-guidelines/SKILL.md +28 -0
  127. package/skills/insights-guidelines/reference/insights-extract.md +31 -0
  128. package/skills/insights-guidelines/reference/insights-integrate.md +35 -0
  129. package/skills/instruction-guidelines/SKILL.md +26 -0
  130. package/skills/instruction-guidelines/reference/assimilate.md +38 -0
  131. package/skills/instruction-guidelines/reference/simplify.md +46 -0
  132. package/skills/instruction-guidelines/reference/sync.md +41 -0
  133. package/skills/kubernetes-guidelines/SKILL.md +28 -0
  134. package/skills/kubernetes-guidelines/reference/configmaps-secrets.md +34 -0
  135. package/skills/kubernetes-guidelines/reference/deployments.md +55 -0
  136. package/skills/kubernetes-guidelines/reference/kustomize.md +41 -0
  137. package/skills/kubernetes-guidelines/reference/network-policies.md +53 -0
  138. package/skills/kubernetes-guidelines/reference/services.md +36 -0
  139. package/skills/kubernetes-guidelines/reference/validation.md +32 -0
  140. package/skills/lua-guidelines/SKILL.md +29 -0
  141. package/skills/lua-guidelines/reference/coroutines.md +66 -0
  142. package/skills/lua-guidelines/reference/error-handling.md +41 -0
  143. package/skills/lua-guidelines/reference/idiomatic-patterns.md +40 -0
  144. package/skills/lua-guidelines/reference/input-validation.md +42 -0
  145. package/skills/lua-guidelines/reference/local-variables.md +33 -0
  146. package/skills/lua-guidelines/reference/metatables.md +52 -0
  147. package/skills/lua-guidelines/reference/module-pattern.md +37 -0
  148. package/skills/lua-guidelines/reference/string-concatenation.md +31 -0
  149. package/skills/lua-opinionated-guidelines/SKILL.md +32 -0
  150. package/skills/lua-opinionated-guidelines/reference/cache-lookups.md +43 -0
  151. package/skills/lua-opinionated-guidelines/reference/coroutines.md +66 -0
  152. package/skills/lua-opinionated-guidelines/reference/error-handling.md +41 -0
  153. package/skills/lua-opinionated-guidelines/reference/idiomatic-patterns.md +40 -0
  154. package/skills/lua-opinionated-guidelines/reference/input-validation.md +42 -0
  155. package/skills/lua-opinionated-guidelines/reference/jit-friendly-tables.md +57 -0
  156. package/skills/lua-opinionated-guidelines/reference/local-variables.md +33 -0
  157. package/skills/lua-opinionated-guidelines/reference/metatables.md +52 -0
  158. package/skills/lua-opinionated-guidelines/reference/module-pattern.md +37 -0
  159. package/skills/lua-opinionated-guidelines/reference/string-concatenation.md +31 -0
  160. package/skills/moon-guidelines/SKILL.md +30 -0
  161. package/skills/moon-guidelines/reference/docker-multistage.md +42 -0
  162. package/skills/moon-guidelines/reference/project-constraints.md +25 -0
  163. package/skills/moon-guidelines/reference/query-language.md +27 -0
  164. package/skills/moon-guidelines/reference/tag-based-filtering.md +28 -0
  165. package/skills/moon-guidelines/reference/task-configuration.md +38 -0
  166. package/skills/moon-guidelines/reference/task-inheritance.md +30 -0
  167. package/skills/motion-react-guidelines/SKILL.md +66 -0
  168. package/skills/motion-react-guidelines/reference/3d-effects.md +35 -0
  169. package/skills/motion-react-guidelines/reference/entrance.md +36 -0
  170. package/skills/motion-react-guidelines/reference/exit.md +35 -0
  171. package/skills/motion-react-guidelines/reference/gestures.md +23 -0
  172. package/skills/motion-react-guidelines/reference/layout.md +39 -0
  173. package/skills/motion-react-guidelines/reference/motion-values.md +33 -0
  174. package/skills/motion-react-guidelines/reference/performance.md +32 -0
  175. package/skills/motion-react-guidelines/reference/scroll.md +38 -0
  176. package/skills/motion-react-guidelines/reference/spring-physics.md +40 -0
  177. package/skills/motion-react-guidelines/reference/stagger.md +34 -0
  178. package/skills/motion-react-guidelines/reference/svg-path.md +33 -0
  179. package/skills/motion-react-guidelines/reference/text-effects.md +39 -0
  180. package/skills/plan-guidelines/SKILL.md +56 -0
  181. package/skills/plan-guidelines/reference/code-align.md +23 -0
  182. package/skills/plan-guidelines/reference/code-barrels-remove.md +24 -0
  183. package/skills/plan-guidelines/reference/code-comments-remove.md +28 -0
  184. package/skills/plan-guidelines/reference/code-harden.md +30 -0
  185. package/skills/plan-guidelines/reference/code-shared-extract.md +25 -0
  186. package/skills/plan-guidelines/reference/code-simplify.md +33 -0
  187. package/skills/plan-guidelines/reference/code-template-extract.md +34 -0
  188. package/skills/plan-guidelines/reference/code-template-scaffold.md +36 -0
  189. package/skills/plan-guidelines/reference/general-research.md +35 -0
  190. package/skills/plan-guidelines/reference/plan-create.md +37 -0
  191. package/skills/plan-guidelines/reference/plan-tdd-create.md +44 -0
  192. package/skills/plan-guidelines/reference/todos.md +39 -0
  193. package/skills/presentation-guidelines/SKILL.md +25 -0
  194. package/skills/presentation-guidelines/reference/presentation-create.md +41 -0
  195. package/skills/presentation-guidelines/reference/presentation-motion-scaffold.md +38 -0
  196. package/skills/python-guidelines/SKILL.md +32 -0
  197. package/skills/python-guidelines/reference/async-await-patterns.md +62 -0
  198. package/skills/python-guidelines/reference/caching-functions.md +47 -0
  199. package/skills/python-guidelines/reference/dataclasses-type-hints.md +63 -0
  200. package/skills/python-guidelines/reference/exception-handling.md +72 -0
  201. package/skills/python-guidelines/reference/generators-comprehensions.md +54 -0
  202. package/skills/python-guidelines/reference/pathlib-file-ops.md +60 -0
  203. package/skills/python-guidelines/reference/resource-management.md +58 -0
  204. package/skills/python-guidelines/reference/string-formatting.md +41 -0
  205. package/skills/python-guidelines/reference/type-checking.md +47 -0
  206. package/skills/react-guidelines/SKILL.md +105 -0
  207. package/skills/react-guidelines/reference/accessibility.md +31 -0
  208. package/skills/react-guidelines/reference/activity-effect-event.md +42 -0
  209. package/skills/react-guidelines/reference/component-design.md +57 -0
  210. package/skills/react-guidelines/reference/hooks.md +39 -0
  211. package/skills/react-guidelines/reference/migration-anti-patterns.md +33 -0
  212. package/skills/react-guidelines/reference/migration-deprecations.md +109 -0
  213. package/skills/react-guidelines/reference/migration-paradigm-shifts.md +33 -0
  214. package/skills/react-guidelines/reference/migration-typescript.md +95 -0
  215. package/skills/react-guidelines/reference/new-hooks.md +94 -0
  216. package/skills/react-guidelines/reference/performance-optimization.md +41 -0
  217. package/skills/react-guidelines/reference/react-compiler.md +34 -0
  218. package/skills/react-guidelines/reference/server-components.md +99 -0
  219. package/skills/react-guidelines/reference/state-management.md +72 -0
  220. package/skills/react-guidelines/reference/suspense-streaming.md +36 -0
  221. package/skills/remotion-guidelines/SKILL.md +67 -0
  222. package/skills/remotion-guidelines/reference/animations.md +121 -0
  223. package/skills/remotion-guidelines/reference/assets.md +21 -0
  224. package/skills/remotion-guidelines/reference/captions.md +33 -0
  225. package/skills/remotion-guidelines/reference/charts.md +35 -0
  226. package/skills/remotion-guidelines/reference/compositions.md +40 -0
  227. package/skills/remotion-guidelines/reference/dom-measurement.md +82 -0
  228. package/skills/remotion-guidelines/reference/gifs.md +33 -0
  229. package/skills/remotion-guidelines/reference/lottie.md +41 -0
  230. package/skills/remotion-guidelines/reference/maps.md +26 -0
  231. package/skills/remotion-guidelines/reference/media.md +39 -0
  232. package/skills/remotion-guidelines/reference/mediabunny.md +28 -0
  233. package/skills/remotion-guidelines/reference/sequencing.md +44 -0
  234. package/skills/remotion-guidelines/reference/text.md +24 -0
  235. package/skills/remotion-guidelines/reference/three-d.md +33 -0
  236. package/skills/remotion-guidelines/reference/timing.md +22 -0
  237. package/skills/remotion-guidelines/reference/transitions.md +52 -0
  238. package/skills/shell-scripting-guidelines/SKILL.md +31 -0
  239. package/skills/shell-scripting-guidelines/reference/argument-parsing.md +67 -0
  240. package/skills/shell-scripting-guidelines/reference/common-patterns.md +46 -0
  241. package/skills/shell-scripting-guidelines/reference/error-handling.md +62 -0
  242. package/skills/shell-scripting-guidelines/reference/functions.md +66 -0
  243. package/skills/shell-scripting-guidelines/reference/idempotency.md +57 -0
  244. package/skills/shell-scripting-guidelines/reference/parameter-expansion.md +38 -0
  245. package/skills/shell-scripting-guidelines/reference/posix-compatibility.md +53 -0
  246. package/skills/shell-scripting-guidelines/reference/quoting.md +42 -0
  247. package/skills/shell-scripting-guidelines/reference/script-template.md +70 -0
  248. package/skills/shell-scripting-guidelines/reference/strict-mode.md +41 -0
  249. package/skills/shell-scripting-guidelines/reference/validation.md +30 -0
  250. package/skills/skill-guidelines/SKILL.md +33 -0
  251. package/skills/skill-guidelines/reference/assimilate.md +51 -0
  252. package/skills/skill-guidelines/reference/create.md +48 -0
  253. package/skills/skill-guidelines/reference/extract.md +48 -0
  254. package/skills/skill-guidelines/reference/simplify.md +56 -0
  255. package/skills/sql-postgresql-guidelines/SKILL.md +31 -0
  256. package/skills/sql-postgresql-guidelines/reference/constraints.md +47 -0
  257. package/skills/sql-postgresql-guidelines/reference/cte-patterns.md +42 -0
  258. package/skills/sql-postgresql-guidelines/reference/data-types.md +46 -0
  259. package/skills/sql-postgresql-guidelines/reference/indexing.md +45 -0
  260. package/skills/sql-postgresql-guidelines/reference/jsonb.md +54 -0
  261. package/skills/sql-postgresql-guidelines/reference/performance.md +46 -0
  262. package/skills/sql-postgresql-guidelines/reference/role-based-access.md +47 -0
  263. package/skills/sql-postgresql-guidelines/reference/row-level-security.md +66 -0
  264. package/skills/strudel-guidelines/SKILL.md +52 -0
  265. package/skills/strudel-guidelines/reference/arrangement.md +24 -0
  266. package/skills/strudel-guidelines/reference/conditionals.md +22 -0
  267. package/skills/strudel-guidelines/reference/effects.md +22 -0
  268. package/skills/strudel-guidelines/reference/genre-ambient.md +26 -0
  269. package/skills/strudel-guidelines/reference/genre-harsh.md +21 -0
  270. package/skills/strudel-guidelines/reference/genre-trance.md +23 -0
  271. package/skills/strudel-guidelines/reference/layering.md +22 -0
  272. package/skills/strudel-guidelines/reference/mini-notation.md +74 -0
  273. package/skills/strudel-guidelines/reference/modulation.md +22 -0
  274. package/skills/strudel-guidelines/reference/scales-harmony.md +20 -0
  275. package/skills/strudel-guidelines/reference/sounds.md +89 -0
  276. package/skills/strudel-guidelines/reference/tempo-timing.md +23 -0
  277. package/skills/terraform-guidelines/SKILL.md +28 -0
  278. package/skills/terraform-guidelines/reference/advanced-patterns.md +88 -0
  279. package/skills/terraform-guidelines/reference/locals.md +53 -0
  280. package/skills/terraform-guidelines/reference/module-definition.md +81 -0
  281. package/skills/terraform-guidelines/reference/module-structure.md +51 -0
  282. package/skills/terraform-guidelines/reference/remote-state.md +38 -0
  283. package/skills/terraform-guidelines/reference/root-module.md +71 -0
  284. package/skills/terraform-guidelines/reference/typed-variables.md +90 -0
  285. package/skills/threejs-guidelines/SKILL.md +38 -0
  286. package/skills/threejs-guidelines/reference/animation.md +26 -0
  287. package/skills/threejs-guidelines/reference/cameras-controls.md +26 -0
  288. package/skills/threejs-guidelines/reference/geometry.md +22 -0
  289. package/skills/threejs-guidelines/reference/interaction.md +25 -0
  290. package/skills/threejs-guidelines/reference/lighting-shadows.md +31 -0
  291. package/skills/threejs-guidelines/reference/loaders.md +29 -0
  292. package/skills/threejs-guidelines/reference/materials.md +25 -0
  293. package/skills/threejs-guidelines/reference/math.md +27 -0
  294. package/skills/threejs-guidelines/reference/node-materials.md +32 -0
  295. package/skills/threejs-guidelines/reference/patterns.md +29 -0
  296. package/skills/threejs-guidelines/reference/performance.md +24 -0
  297. package/skills/threejs-guidelines/reference/physics-vr.md +36 -0
  298. package/skills/threejs-guidelines/reference/postprocessing.md +26 -0
  299. package/skills/threejs-guidelines/reference/scene-fundamentals.md +26 -0
  300. package/skills/threejs-guidelines/reference/shaders.md +28 -0
  301. package/skills/threejs-guidelines/reference/textures.md +21 -0
  302. package/skills/threejs-guidelines/reference/webgpu.md +34 -0
  303. package/skills/typescript-guidelines/SKILL.md +37 -0
  304. package/skills/typescript-guidelines/reference/async-without-await.md +32 -0
  305. package/skills/typescript-guidelines/reference/avoid-barrel-exports.md +25 -0
  306. package/skills/typescript-guidelines/reference/avoid-eslint-disable.md +28 -0
  307. package/skills/typescript-guidelines/reference/avoid-reexports.md +26 -0
  308. package/skills/typescript-guidelines/reference/env-access-bracket-notation.md +29 -0
  309. package/skills/typescript-guidelines/reference/numeric-separator-enforcement.md +30 -0
  310. package/skills/typescript-guidelines/reference/template-literals-require-string-conversion.md +26 -0
  311. package/skills/typescript-guidelines/reference/unbound-method-references.md +32 -0
  312. package/skills/typescript-guidelines/reference/unnecessary-async-keywords.md +37 -0
  313. package/skills/typescript-to-lua-guidelines/SKILL.md +33 -0
  314. package/skills/typescript-to-lua-guidelines/reference/avoiding-heavy-features.md +41 -0
  315. package/skills/typescript-to-lua-guidelines/reference/coroutine-patterns.md +49 -0
  316. package/skills/typescript-to-lua-guidelines/reference/function-patterns.md +59 -0
  317. package/skills/typescript-to-lua-guidelines/reference/lua-interop.md +49 -0
  318. package/skills/typescript-to-lua-guidelines/reference/module-organization.md +42 -0
  319. package/skills/typescript-to-lua-guidelines/reference/multi-return-functions.md +47 -0
  320. package/skills/typescript-to-lua-guidelines/reference/namespaces-vs-classes.md +52 -0
  321. package/skills/typescript-to-lua-guidelines/reference/performance-tips.md +68 -0
  322. package/skills/typescript-to-lua-guidelines/reference/stable-tables.md +60 -0
  323. package/skills/typescript-to-lua-guidelines/reference/tsconfig.md +46 -0
  324. package/skills/typescript-to-lua-guidelines/reference/tstl-decorators.md +61 -0
  325. package/skills/typescript-to-lua-guidelines/reference/type-safety.md +79 -0
  326. package/skills/vitest-guidelines/SKILL.md +32 -0
  327. package/skills/vitest-guidelines/reference/cors-preflight-status-code.md +34 -0
  328. package/skills/vitest-guidelines/reference/http-testing.md +57 -0
  329. package/skills/vitest-guidelines/reference/json-response-type-safety.md +40 -0
  330. package/skills/vitest-guidelines/reference/mock-patterns.md +53 -0
  331. package/skills/vitest-guidelines/reference/project-references-path-resolution.md +36 -0
  332. package/skills/vitest-guidelines/reference/test-organization.md +25 -0
  333. package/skills/vitest-guidelines/reference/timestamp-testing.md +55 -0
  334. package/skills/vitest-guidelines/reference/type-safety.md +55 -0
  335. package/skills/vitest-guidelines/reference/typescript-config.md +43 -0
  336. package/skills/zod-guidelines/SKILL.md +33 -0
  337. package/skills/zod-guidelines/reference/default-values-output-type.md +63 -0
  338. package/skills/zod-guidelines/reference/migration-string-validators.md +38 -0
  339. package/skills/zod-guidelines/reference/migration-v4.md +46 -0
  340. package/skills/zod-guidelines/reference/schema-organization.md +73 -0
  341. package/skills/zod-guidelines/reference/validation-patterns.md +37 -0
@@ -0,0 +1,43 @@
1
+ # cache-lookups: Cache Table Lookups
2
+
3
+ **Guideline:** Cache repeated table field accesses in local variables to improve performance.
4
+
5
+ **Rationale:** Table lookups are slower than local variable access. Caching reduces redundant table accesses, especially in hot paths and loops.
6
+
7
+ **Example:**
8
+
9
+ ```lua
10
+ -- ❌ Bad - repeated table lookups
11
+ function update_position(entity, dt)
12
+ entity.x = entity.x + entity.velocity_x * dt
13
+ entity.y = entity.y + entity.velocity_y * dt
14
+ end
15
+
16
+ -- ✅ Good - cached lookups
17
+ function update_position(entity, dt)
18
+ local x = entity.x
19
+ local y = entity.y
20
+ local vx = entity.velocity_x
21
+ local vy = entity.velocity_y
22
+
23
+ entity.x = x + vx * dt
24
+ entity.y = y + vy * dt
25
+ end
26
+
27
+ -- ✅ Good - cache module table
28
+ local math_sin = math.sin
29
+ local math_cos = math.cos
30
+
31
+ function rotate_point(x, y, angle)
32
+ local cos_a = math_cos(angle)
33
+ local sin_a = math_sin(angle)
34
+ return x * cos_a - y * sin_a,
35
+ x * sin_a + y * cos_a
36
+ end
37
+ ```
38
+
39
+ **Techniques:**
40
+ - Store frequently accessed table fields in locals
41
+ - Cache standard library functions (math.sin, etc.)
42
+ - Especially important in loops and hot paths
43
+ - Balance readability vs performance
@@ -0,0 +1,66 @@
1
+ # coroutines: Coroutines for Cooperative Tasks
2
+
3
+ **Guideline:** Use coroutines for cooperative multitasking, timed actions, and state machines.
4
+
5
+ **Rationale:** Coroutines enable writing sequential code for asynchronous operations without callbacks. Ideal for game timers, animations, and task scheduling.
6
+
7
+ **Example:**
8
+
9
+ ```lua
10
+ -- Coroutine for timed actions
11
+ function create_timer(duration)
12
+ return coroutine.create(function()
13
+ local elapsed = 0
14
+ while elapsed < duration do
15
+ local dt = coroutine.yield()
16
+ elapsed = elapsed + dt
17
+ end
18
+ return true -- Completed
19
+ end)
20
+ end
21
+
22
+ -- Task manager
23
+ local TimerManager = {}
24
+
25
+ function TimerManager:new()
26
+ return setmetatable({timers = {}}, {__index = self})
27
+ end
28
+
29
+ function TimerManager:add_timer(duration, callback)
30
+ local timer = {
31
+ coro = create_timer(duration),
32
+ callback = callback
33
+ }
34
+ table.insert(self.timers, timer)
35
+ end
36
+
37
+ function TimerManager:update(dt)
38
+ local i = 1
39
+ while i <= #self.timers do
40
+ local timer = self.timers[i]
41
+ local ok, done = coroutine.resume(timer.coro, dt)
42
+
43
+ if done then
44
+ timer.callback()
45
+ table.remove(self.timers, i)
46
+ else
47
+ i = i + 1
48
+ end
49
+ end
50
+ end
51
+
52
+ -- Usage
53
+ local manager = TimerManager:new()
54
+ manager:add_timer(2.0, function()
55
+ print("Timer fired after 2 seconds")
56
+ end)
57
+
58
+ -- In game loop
59
+ manager:update(dt)
60
+ ```
61
+
62
+ **Techniques:**
63
+ - Create coroutine with `coroutine.create`
64
+ - Use `coroutine.yield()` to pause execution
65
+ - Resume with `coroutine.resume(coro, args)`
66
+ - Check status with return values or `coroutine.status`
@@ -0,0 +1,41 @@
1
+ # error-handling: Error Handling
2
+
3
+ **Guideline:** Use explicit error return values (value, error) pattern instead of exceptions for expected failures.
4
+
5
+ **Rationale:** Follows Lua conventions. Makes error handling explicit and visible. More appropriate for recoverable errors than `assert()`.
6
+
7
+ **Example:**
8
+
9
+ ```lua
10
+ -- ✅ Protected call with error handling
11
+ local function load_config(path)
12
+ local f, err = io.open(path, "r")
13
+ if not f then
14
+ return nil, "Failed to open file: " .. err
15
+ end
16
+
17
+ local content = f:read("*all")
18
+ f:close()
19
+
20
+ local config, err = parse_config(content)
21
+ if not config then
22
+ return nil, "Failed to parse config: " .. err
23
+ end
24
+
25
+ return config
26
+ end
27
+
28
+ -- Usage
29
+ local config, err = load_config("config.lua")
30
+ if not config then
31
+ print("Error loading config:", err)
32
+ -- Use defaults
33
+ config = get_default_config()
34
+ end
35
+ ```
36
+
37
+ **Techniques:**
38
+ - Return `nil, error_message` on failure
39
+ - Return value on success
40
+ - Check first return value before using
41
+ - Use `pcall` for protecting risky operations
@@ -0,0 +1,40 @@
1
+ # idiomatic-patterns: Idiomatic Patterns
2
+
3
+ **Guideline:** Use Lua's idiomatic patterns for common operations like ternary expressions, default values, and safe navigation.
4
+
5
+ **Rationale:** These patterns are widely recognized in Lua community, concise, and leverage Lua's truthiness semantics effectively.
6
+
7
+ **Example:**
8
+
9
+ ```lua
10
+ -- ✅ Ternary operator pattern
11
+ local value = condition and true_value or false_value
12
+
13
+ -- ✅ Default value pattern
14
+ local x = config.x or 0
15
+ local name = user.name or "Anonymous"
16
+
17
+ -- ✅ Safe navigation
18
+ local value = obj and obj.field and obj.field.nested
19
+
20
+ -- ✅ Multiple return values
21
+ local ok, result = pcall(risky_function)
22
+ if ok then
23
+ use_result(result)
24
+ else
25
+ handle_error(result)
26
+ end
27
+
28
+ -- ✅ Swap variables
29
+ a, b = b, a
30
+
31
+ -- ✅ Unpack table
32
+ local x, y, z = unpack(position)
33
+ ```
34
+
35
+ **Techniques:**
36
+ - Use `and`/`or` for conditional expressions
37
+ - Use `or` for default values
38
+ - Use `and` chain for safe navigation
39
+ - Leverage multiple return values
40
+ - Use tuple assignment for swapping
@@ -0,0 +1,42 @@
1
+ # input-validation: Input Validation
2
+
3
+ **Guideline:** Validate function arguments for type, range, and correctness using assertions.
4
+
5
+ **Rationale:** Lua is dynamically typed. Explicit validation catches errors early, provides clear error messages, and documents expectations.
6
+
7
+ **Example:**
8
+
9
+ ```lua
10
+ -- ✅ Good - validate inputs
11
+ function M.clamp(value, min, max)
12
+ assert(type(value) == "number", "value must be a number")
13
+ assert(type(min) == "number", "min must be a number")
14
+ assert(type(max) == "number", "max must be a number")
15
+ assert(min <= max, "min must be <= max")
16
+
17
+ if value < min then return min end
18
+ if value > max then return max end
19
+ return value
20
+ end
21
+
22
+ -- ✅ Good - type checking
23
+ function M.divide(a, b)
24
+ assert(type(a) == "number", "a must be a number")
25
+ assert(type(b) == "number", "b must be a number")
26
+ assert(b ~= 0, "division by zero")
27
+ return a / b
28
+ end
29
+
30
+ -- ✅ Good - range checking
31
+ function M.set_volume(volume)
32
+ assert(type(volume) == "number", "volume must be a number")
33
+ assert(volume >= 0 and volume <= 1, "volume must be between 0 and 1")
34
+ -- Implementation
35
+ end
36
+ ```
37
+
38
+ **Techniques:**
39
+ - Use `assert()` with descriptive messages
40
+ - Check types with `type()` function
41
+ - Validate numeric ranges and constraints
42
+ - Place validations at function start
@@ -0,0 +1,57 @@
1
+ # jit-friendly-tables: JIT-Friendly Table Operations
2
+
3
+ **Guideline:** Keep table shapes stable by pre-allocating all fields and avoid adding fields after creation.
4
+
5
+ **Rationale:** LuaJIT optimizes based on table shape. Adding fields later causes shape changes that prevent JIT compilation and reduce performance.
6
+
7
+ **Example:**
8
+
9
+ ```lua
10
+ -- ✅ Good - stable tables
11
+ local function create_entity(x, y, type)
12
+ -- Pre-allocate all fields
13
+ return {
14
+ x = x,
15
+ y = y,
16
+ type = type,
17
+ velocity_x = 0,
18
+ velocity_y = 0,
19
+ health = 100,
20
+ active = true
21
+ }
22
+ end
23
+
24
+ -- ✅ Good - pre-allocated array
25
+ local function create_array(size)
26
+ local arr = {}
27
+ for i = 1, size do
28
+ arr[i] = 0
29
+ end
30
+ return arr
31
+ end
32
+
33
+ -- ❌ Bad - unstable table (fields added after creation)
34
+ local function create_entity_bad(x, y)
35
+ local entity = {x = x, y = y}
36
+ -- Adding fields later hurts JIT
37
+ entity.velocity_x = 0
38
+ entity.velocity_y = 0
39
+ return entity
40
+ end
41
+
42
+ -- ❌ Bad - using pairs in hot path
43
+ for k, v in pairs(entities) do -- Slow
44
+ update_entity(v)
45
+ end
46
+
47
+ -- ✅ Good - numeric for loop
48
+ for i = 1, #entities do -- Fast
49
+ update_entity(entities[i])
50
+ end
51
+ ```
52
+
53
+ **Techniques:**
54
+ - Define all fields in table literal or constructor
55
+ - Pre-allocate arrays with known size
56
+ - Use numeric for loops instead of `pairs` for arrays
57
+ - Avoid sparse arrays
@@ -0,0 +1,33 @@
1
+ # local-variables: Always Use Local Variables
2
+
3
+ **Guideline:** Declare all variables as `local` to avoid implicit globals.
4
+
5
+ **Rationale:** Global variables pollute the namespace, create hard-to-find bugs, and are slower to access than local variables. Locals are also JIT-friendly.
6
+
7
+ **Example:**
8
+
9
+ ```lua
10
+ -- ✅ Good - all local
11
+ local function calculate(a, b)
12
+ local result = a + b
13
+ local squared = result * result
14
+ return squared
15
+ end
16
+
17
+ local value = calculate(3, 4)
18
+
19
+ -- ❌ Bad - implicit globals
20
+ function calculate(a, b)
21
+ result = a + b -- Global!
22
+ squared = result * result -- Global!
23
+ return squared
24
+ end
25
+
26
+ value = calculate(3, 4) -- Global!
27
+ ```
28
+
29
+ **Techniques:**
30
+ - Prefix all variable declarations with `local`
31
+ - Prefix all function declarations with `local`
32
+ - Only export through module return table
33
+ - Use linters to catch missing `local` keywords
@@ -0,0 +1,52 @@
1
+ # metatables: Metatable Pattern for Simple OO
2
+
3
+ **Guideline:** Use metatables with `__index` for simple object-oriented programming when needed.
4
+
5
+ **Rationale:** Provides class-like behavior with inheritance and methods while remaining JIT-friendly. Simpler than complex OO frameworks.
6
+
7
+ **Example:**
8
+
9
+ ```lua
10
+ -- vector.lua
11
+ local Vector = {}
12
+ Vector.__index = Vector
13
+
14
+ -- Constructor
15
+ function Vector:new(x, y)
16
+ local instance = {
17
+ x = x or 0,
18
+ y = y or 0
19
+ }
20
+ return setmetatable(instance, self)
21
+ end
22
+
23
+ -- Methods
24
+ function Vector:length()
25
+ return (self.x * self.x + self.y * self.y) ^ 0.5
26
+ end
27
+
28
+ function Vector:normalize()
29
+ local len = self:length()
30
+ if len == 0 then return self end
31
+ self.x = self.x / len
32
+ self.y = self.y / len
33
+ return self
34
+ end
35
+
36
+ function Vector:add(other)
37
+ return Vector:new(self.x + other.x, self.y + other.y)
38
+ end
39
+
40
+ -- Usage
41
+ local v1 = Vector:new(3, 4)
42
+ local len = v1:length() -- 5
43
+ local v2 = v1:add(Vector:new(1, 1))
44
+
45
+ return Vector
46
+ ```
47
+
48
+ **Techniques:**
49
+ - Create table with `__index` pointing to itself
50
+ - Use constructor pattern with `setmetatable`
51
+ - Define methods using colon syntax
52
+ - Pre-allocate all fields in constructor
@@ -0,0 +1,37 @@
1
+ # module-pattern: Module Pattern
2
+
3
+ **Guideline:** Use table-based module pattern with local module table and single return statement.
4
+
5
+ **Rationale:** Provides clean encapsulation, avoids global namespace pollution, and creates predictable module structure that's easy to reason about.
6
+
7
+ **Example:**
8
+
9
+ ```lua
10
+ -- math2d.lua
11
+ local M = {}
12
+
13
+ -- Simple function in module
14
+ function M.length(x, y)
15
+ return (x * x + y * y) ^ 0.5
16
+ end
17
+
18
+ function M.distance(x1, y1, x2, y2)
19
+ local dx = x2 - x1
20
+ local dy = y2 - y1
21
+ return M.length(dx, dy)
22
+ end
23
+
24
+ function M.normalize(x, y)
25
+ local len = M.length(x, y)
26
+ if len == 0 then return 0, 0 end
27
+ return x / len, y / len
28
+ end
29
+
30
+ return M
31
+ ```
32
+
33
+ **Techniques:**
34
+ - Create local module table `local M = {}`
35
+ - Define functions as `M.function_name`
36
+ - Return module table at end
37
+ - One module per file
@@ -0,0 +1,31 @@
1
+ # string-concatenation: String Concatenation
2
+
3
+ **Guideline:** Use `table.concat()` for building strings in loops instead of repeated concatenation.
4
+
5
+ **Rationale:** String concatenation with `..` creates new string objects each time. For loops, this creates many intermediate strings. Table concatenation is O(n) instead of O(n²).
6
+
7
+ **Example:**
8
+
9
+ ```lua
10
+ -- ❌ Bad - repeated concatenation creates many strings
11
+ local str = ""
12
+ for i = 1, 1000 do
13
+ str = str .. tostring(i) .. ","
14
+ end
15
+
16
+ -- ✅ Good - table concatenation
17
+ local parts = {}
18
+ for i = 1, 1000 do
19
+ parts[i] = tostring(i)
20
+ end
21
+ local str = table.concat(parts, ",")
22
+
23
+ -- ✅ Good - string.format for simple cases
24
+ local message = string.format("Player %s scored %d points", name, score)
25
+ ```
26
+
27
+ **Techniques:**
28
+ - Build array of string parts
29
+ - Use `table.concat(parts, separator)`
30
+ - Use `string.format()` for simple interpolation
31
+ - Avoid `..` in loops
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: moon-guidelines
3
+ description: >-
4
+ Trigger on `.moon/`, `moon.yml` files in project config. Use when working with moonrepo for monorepo task management. Apply for task configuration, project tagging, task inheritance. Keywords: moon, monorepo, .moon/tasks, tags, task inheritance, project queries, task caching, language toolchains.
5
+ ---
6
+
7
+ # Moon Build System Guidelines
8
+
9
+ ## Requirements
10
+
11
+ - Moon ≥ 1.0, Node.js for JavaScript/TypeScript projects.
12
+
13
+ ## Essentials
14
+
15
+ - **Task configuration** - Define in `.moon/tasks/*.yml` for auto-inheritance, see [reference/task-configuration.md](reference/task-configuration.md), [reference/task-inheritance.md](reference/task-inheritance.md)
16
+ - **Tags** - Use for categorization, filtering, boundaries, inheritance, see [reference/tag-based-filtering.md](reference/tag-based-filtering.md)
17
+ - **Execution** - `project:task`, `#tag:task`, `:task` (all), `--query`, `--affected`
18
+ - **Querying** - Query projects/tasks by tags, language, or query language, see [reference/query-language.md](reference/query-language.md)
19
+ - **Configuration** - Projects use `moon.yml`, workspace uses `.moon/workspace.yml`
20
+ - **Toolchain** - Moon manages language toolchains, configured in workspace
21
+ - **Caching** - Built-in task caching with output definitions, see [reference/task-configuration.md](reference/task-configuration.md)
22
+
23
+ ## Progressive disclosure
24
+
25
+ - Read [reference/task-configuration.md](reference/task-configuration.md) - When defining or modifying task configurations
26
+ - Read [reference/tag-based-filtering.md](reference/tag-based-filtering.md) - When filtering projects or tasks by tags
27
+ - Read [reference/query-language.md](reference/query-language.md) - When using advanced query syntax
28
+ - Read [reference/task-inheritance.md](reference/task-inheritance.md) - When setting up task inheritance patterns
29
+ - Read [reference/project-constraints.md](reference/project-constraints.md) - When enforcing project boundaries
30
+ - Read [reference/docker-multistage.md](reference/docker-multistage.md) - When building Docker images with moon scaffold
@@ -0,0 +1,42 @@
1
+ # docker-multistage: Moon Docker Scaffold Pattern
2
+
3
+ **Guideline:** Use moon's docker scaffold command in multistage Dockerfiles for efficient monorepo builds.
4
+
5
+ **Rationale:** Moon's scaffold command extracts only the necessary workspace files and dependencies, reducing build context and enabling efficient layer caching.
6
+
7
+ **Example:**
8
+
9
+ ```dockerfile
10
+ # Base stage
11
+ FROM node:22-alpine AS base
12
+ WORKDIR /app
13
+ RUN npm install -g @moonrepo/cli
14
+
15
+ # Skeleton stage
16
+ FROM base AS skeleton
17
+ COPY . .
18
+ RUN moon docker scaffold my-service
19
+
20
+ # Build stage
21
+ FROM base AS build
22
+ COPY --from=skeleton /app/.moon/docker/workspace .
23
+ RUN npm ci
24
+ COPY --from=skeleton /app/.moon/docker/sources .
25
+ RUN moon run my-service:build
26
+ RUN moon docker prune
27
+
28
+ # Runtime stage
29
+ FROM gcr.io/distroless/nodejs22-debian12:nonroot AS runtime
30
+ WORKDIR /app
31
+ COPY --from=build --chown=65532:65532 /app/node_modules ./node_modules
32
+ COPY --from=build --chown=65532:65532 /app/packages ./packages
33
+ WORKDIR /app/packages/my-service
34
+ CMD ["dist/src/server.js"]
35
+ ```
36
+
37
+ **Techniques:**
38
+ - moon docker scaffold: Extracts workspace config and package dependencies
39
+ - moon docker prune: Removes dev dependencies and build artifacts
40
+ - Skeleton stage: Separates dependency resolution from source copying
41
+ - Distroless runtime: Minimal production image with nonroot user
42
+ - Layer ordering: Dependencies before sources for cache efficiency
@@ -0,0 +1,25 @@
1
+ # project-constraints: Enforce Architectural Boundaries
2
+
3
+ **Guideline:** Define tag-based constraints in workspace to enforce dependency rules between projects.
4
+
5
+ **Rationale:** Tag-based constraints prevent architectural violations by restricting which project tags can depend on others, enforcing clear module boundaries in monorepos.
6
+
7
+ **Example:**
8
+
9
+ ```yaml
10
+ # .moon/workspace.yml
11
+ constraints:
12
+ tagRelationships:
13
+ frontend: [frontend, shared]
14
+ backend: [backend, shared]
15
+ tenant-example: [tenant-example, shared]
16
+ ```
17
+
18
+ **Techniques:**
19
+ - tagRelationships: Define which tags can depend on which tags
20
+ - Validation: Constraints checked during project graph creation and task execution
21
+ - Violations: Prevent execution if dependencies violate constraints
22
+ - Frontend tags: Can depend on frontend and shared tags only
23
+ - Tenant isolation: Each tenant can depend only on own tenant and shared
24
+ - moon check: Validate constraints without running tasks
25
+ - Tag refactoring: Update moon.yml tags to align with constraints
@@ -0,0 +1,27 @@
1
+ # query-language: Advanced Project and Task Filtering
2
+
3
+ **Guideline:** Use Moon Query Language (MQL) for advanced filtering of projects and tasks.
4
+
5
+ **Rationale:** MQL allows precise selection of projects using language, type, tags, and other criteria for targeted task execution and querying.
6
+
7
+ **Example:**
8
+
9
+ ```bash
10
+ # Query projects by language and type
11
+ moon query projects "language=javascript && projectType=library"
12
+
13
+ # Run build for typescript projects
14
+ moon run :build --query "language=typescript"
15
+
16
+ # Complex filtering
17
+ moon run :test --query "(language=javascript || language=typescript) && projectType=application"
18
+ ```
19
+
20
+ **Techniques:**
21
+ - Operators: `=` (equals), `!=` (not), `~` (regex), `!~` (not regex), `&&` (AND), `||` (OR)
22
+ - Project fields: language, projectType, tags, projectName, projectAlias, projectSource
23
+ - #tag:task syntax: Use for simple single-tag filtering
24
+ - --query flag: Use for complex multi-criterion conditions
25
+ - Performance: Prefer exact matches (`=`) over regex when possible
26
+ - Parentheses: Group conditions for complex boolean logic
27
+ - Field types: language=javascript|typescript, projectType=library|application
@@ -0,0 +1,28 @@
1
+ # tag-based-filtering: Filter Tasks by Project Tags
2
+
3
+ **Guideline:** Use `#tag:task` syntax to run tasks for all projects matching a specific tag.
4
+
5
+ **Rationale:** Tag-based filtering enables efficient execution of tasks across related projects without listing each individually, supporting tenant isolation and feature organization.
6
+
7
+ **Example:**
8
+
9
+ ```bash
10
+ # Run build for all frontend projects
11
+ moon run '#frontend:build'
12
+
13
+ # Run tests for tenant-specific projects
14
+ moon run '#tenant-example:test'
15
+ moon run '#tenant-other:lint'
16
+
17
+ # Multiple tags with query
18
+ moon run :build --query "tags~frontend|backend"
19
+ ```
20
+
21
+ **Techniques:**
22
+ - #tag:task syntax: Target all projects with specific tag
23
+ - Tenant tags: Use #tenant-NAME:task for tenant-specific execution
24
+ - Multiple tags: Combine with --query and regex for complex filtering
25
+ - Task inheritance: Define .moon/tasks/tag-*.yml for tag-specific tasks
26
+ - Project tags: Assign tags in moon.yml for filtering categorization
27
+ - Scoped execution: Run across multiple projects without enumeration
28
+ - Override behavior: Project-level tasks override tag-inherited tasks
@@ -0,0 +1,38 @@
1
+ # task-configuration: Define Inherited Tasks
2
+
3
+ **Guideline:** Define tasks in `.moon/tasks/*.yml` files with inputs, outputs, and dependencies for automatic inheritance by projects.
4
+
5
+ **Rationale:** Centralized task configuration prevents duplication and ensures consistent task execution across projects of the same type or language.
6
+
7
+ **Example:**
8
+
9
+ ```yaml
10
+ # .moon/tasks/node.yml - Inherited by all Node.js projects
11
+ tasks:
12
+ build:
13
+ command: 'vite build'
14
+ inputs: [src/**, vite.config.ts]
15
+ outputs: [dist]
16
+
17
+ typecheck:
18
+ command: 'tsc --noEmit'
19
+ inputs: [src/**, tsconfig.json]
20
+ deps: ['~:build']
21
+
22
+ test:
23
+ command: 'vitest run'
24
+ inputs: [src/**, vitest.config.ts]
25
+ options:
26
+ runInCI: true
27
+ ```
28
+
29
+ **Techniques:**
30
+ - command: Shell command to execute
31
+ - inputs: Files/globs affecting caching and task invalidation
32
+ - outputs: Directories/files produced, cached and restored
33
+ - deps: Task dependencies using ~:task syntax
34
+ - options: runInCI, persistent, optional settings
35
+ - env: Environment variables for task execution
36
+ - platform: Constraint (node, system) for execution environment
37
+ - Inheritance: Tasks inherit to projects based on language/type matching
38
+ - Override: Project moon.yml can override or extend inherited tasks
@@ -0,0 +1,30 @@
1
+ # task-inheritance: Task Inheritance Hierarchy
2
+
3
+ **Guideline:** Define tasks at appropriate levels (global, type, language, tag, project) with later definitions overriding earlier ones.
4
+
5
+ **Rationale:** Hierarchical task inheritance allows global defaults with project-specific customizations, reducing configuration duplication while maintaining flexibility.
6
+
7
+ **Example:**
8
+
9
+ ```yaml
10
+ # .moon/tasks/node.yml - Type-based inheritance
11
+ tasks:
12
+ install:
13
+ command: 'npm install'
14
+ inputs: [package.json, package-lock.json]
15
+
16
+ # moon.yml - Project override
17
+ tasks:
18
+ install:
19
+ command: 'npm ci --frozen-lockfile'
20
+ inputs: [package.json, package-lock.json]
21
+ ```
22
+
23
+ **Techniques:**
24
+ - Inheritance order: Global → type → language → tag → project (later overrides)
25
+ - Type-based: .moon/tasks/node.yml, .moon/tasks/rust.yml for runtime types
26
+ - Language-based: .moon/tasks/javascript.yml, .moon/tasks/typescript.yml
27
+ - Tag-based: .moon/tasks/tag-TAGNAME.yml for tag-specific tasks
28
+ - Merging: Project tasks merge with inherited tasks
29
+ - Complete override: Redefine entire task in moon.yml to fully replace
30
+ - Selective override: Define only fields you need to change