@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,34 @@
1
+ # configmaps-secrets: Configuration and Secret Management
2
+
3
+ **Guideline:** Use ConfigMaps for non-sensitive configuration and Secrets for sensitive data. Encrypt secrets at rest with SOPS or External Secrets Operator.
4
+
5
+ **Rationale:** Separating configuration from images enables environment-specific settings without rebuilding. Encrypting secrets prevents credential exposure in Git.
6
+
7
+ **Example:**
8
+
9
+ ```yaml
10
+ apiVersion: v1
11
+ kind: ConfigMap
12
+ metadata:
13
+ name: api-config
14
+ data:
15
+ LOG_LEVEL: "info"
16
+ RATE_LIMIT: "100"
17
+
18
+ ---
19
+ apiVersion: v1
20
+ kind: Secret
21
+ metadata:
22
+ name: api-secrets
23
+ type: Opaque
24
+ stringData:
25
+ DATABASE_URL: "postgresql://user:pass@db:5432/prod"
26
+ API_KEY: "secret-key"
27
+ ```
28
+
29
+ **Techniques:**
30
+ - ConfigMaps: Store non-sensitive configuration data for reusability
31
+ - Secrets: Store sensitive data like passwords and API keys
32
+ - stringData: Use for automatic base64 encoding in YAML
33
+ - Encryption: Encrypt secrets with SOPS before committing to Git
34
+ - Environment refs: Reference via `envFrom` in pod specs for clean injection
@@ -0,0 +1,55 @@
1
+ # deployments: Secure Deployments
2
+
3
+ **Guideline:** Configure secure, production-ready deployments with security contexts, resource management, and health probes.
4
+
5
+ **Rationale:** Deployments need security hardening, resource limits, and health checks to prevent privilege escalation, resource exhaustion, and availability issues.
6
+
7
+ **Example:**
8
+
9
+ ```yaml
10
+ apiVersion: apps/v1
11
+ kind: Deployment
12
+ metadata:
13
+ name: api
14
+ spec:
15
+ replicas: 3
16
+ template:
17
+ spec:
18
+ securityContext:
19
+ runAsNonRoot: true
20
+ runAsUser: 1000
21
+ fsGroup: 1000
22
+ seccompProfile: {type: RuntimeDefault}
23
+ containers:
24
+ - name: api
25
+ image: ghcr.io/org/api:1.2.3
26
+ securityContext:
27
+ readOnlyRootFilesystem: true
28
+ allowPrivilegeEscalation: false
29
+ capabilities: {drop: [ALL]}
30
+ resources:
31
+ requests: {cpu: 100m, memory: 128Mi}
32
+ limits: {cpu: 500m, memory: 256Mi}
33
+ livenessProbe:
34
+ httpGet: {path: /healthz, port: 3000}
35
+ initialDelaySeconds: 10
36
+ periodSeconds: 10
37
+ readinessProbe:
38
+ httpGet: {path: /readyz, port: 3000}
39
+ initialDelaySeconds: 5
40
+ periodSeconds: 5
41
+ volumeMounts:
42
+ - name: tmp
43
+ mountPath: /tmp
44
+ volumes:
45
+ - name: tmp
46
+ emptyDir: {}
47
+ ```
48
+
49
+ **Techniques:**
50
+ - Security context: Set runAsNonRoot and fsGroup for pod-level security
51
+ - Container hardening: Use readOnlyRootFilesystem and drop all capabilities
52
+ - Resource limits: Define requests and limits to prevent resource exhaustion
53
+ - Health probes: Add liveness, readiness, startup probes for reliability
54
+ - Image tagging: Use specific tags, never `latest`, for reproducibility
55
+ - Writable paths: Use emptyDir volumes for writable paths with read-only fs
@@ -0,0 +1,41 @@
1
+ # kustomize: Multi-Environment Management
2
+
3
+ **Guideline:** Organize manifests with base resources and environment-specific overlays using strategic merge patches.
4
+
5
+ **Rationale:** Kustomize enables DRY configuration management across environments. Base resources define common configuration while overlays customize for each environment.
6
+
7
+ **Example:**
8
+
9
+ ```yaml
10
+ # base/kustomization.yaml
11
+ apiVersion: kustomize.config.k8s.io/v1beta1
12
+ kind: Kustomization
13
+ namespace: default
14
+ commonLabels:
15
+ app.kubernetes.io/name: api
16
+ resources:
17
+ - deployment.yaml
18
+ - service.yaml
19
+ images:
20
+ - name: ghcr.io/org/api
21
+ newTag: 1.2.3
22
+
23
+ # overlays/production/kustomization.yaml
24
+ bases:
25
+ - ../../base
26
+ namespace: production
27
+ patchesStrategicMerge:
28
+ - replica-count.yaml
29
+ - resources-patch.yaml
30
+ configMapGenerator:
31
+ - name: api-config
32
+ literals: [LOG_LEVEL=info, RATE_LIMIT=1000]
33
+ ```
34
+
35
+ **Techniques:**
36
+ - Base resources: Create base/kustomization.yaml with common manifests
37
+ - Environment overlays: Create overlays/<env>/ for environment-specific customization
38
+ - Bases reference: Use bases field to inherit and extend base resources
39
+ - Strategic patches: Apply patchesStrategicMerge for targeted environment differences
40
+ - Config generation: Use configMapGenerator for environment-specific configuration
41
+ - Image management: Manage image tags in kustomization.yaml for consistency
@@ -0,0 +1,53 @@
1
+ # network-policies: Network Segmentation with NetworkPolicy
2
+
3
+ **Guideline:** Implement NetworkPolicies to control ingress and egress traffic between pods and namespaces.
4
+
5
+ **Rationale:** Provides network segmentation and least-privilege access control, preventing unauthorized communication between workloads.
6
+
7
+ **Example:**
8
+
9
+ ```yaml
10
+ apiVersion: networking.k8s.io/v1
11
+ kind: NetworkPolicy
12
+ metadata:
13
+ name: api-network-policy
14
+ namespace: production
15
+ spec:
16
+ podSelector:
17
+ matchLabels:
18
+ app: api
19
+ policyTypes:
20
+ - Ingress
21
+ - Egress
22
+ ingress:
23
+ - from:
24
+ - namespaceSelector:
25
+ matchLabels:
26
+ name: ingress-nginx
27
+ ports:
28
+ - protocol: TCP
29
+ port: 3000
30
+ egress:
31
+ - to:
32
+ - namespaceSelector:
33
+ matchLabels:
34
+ name: database
35
+ ports:
36
+ - protocol: TCP
37
+ port: 5432
38
+ - to: # Allow DNS
39
+ - namespaceSelector:
40
+ matchLabels:
41
+ name: kube-system
42
+ ports:
43
+ - protocol: UDP
44
+ port: 53
45
+ ```
46
+
47
+ **Techniques:**
48
+ - Pod selection: Use podSelector with matchLabels to target specific pods
49
+ - Policy types: Specify policyTypes for ingress, egress, or both rules
50
+ - Namespace selection: Use namespaceSelector to allow traffic from namespaces
51
+ - DNS allowance: Always allow DNS egress to kube-system for pod resolution
52
+ - Explicit rules: Define exact allowed ports and protocols for security
53
+ - Default deny: NetworkPolicy acts as implicit default-deny by default
@@ -0,0 +1,36 @@
1
+ # services: Kubernetes Service Configuration
2
+
3
+ **Guideline:** Create Services with consistent labels and named ports for service discovery.
4
+
5
+ **Rationale:** Services provide stable endpoints for pod communication. Named ports improve readability and allow port changes without updating all references.
6
+
7
+ **Example:**
8
+
9
+ ```yaml
10
+ apiVersion: v1
11
+ kind: Service
12
+ metadata:
13
+ name: api
14
+ namespace: production
15
+ labels:
16
+ app: api
17
+ component: backend
18
+ spec:
19
+ type: ClusterIP
20
+ selector:
21
+ app: api
22
+ ports:
23
+ - name: http
24
+ port: 80
25
+ targetPort: http
26
+ protocol: TCP
27
+ sessionAffinity: None
28
+ ```
29
+
30
+ **Techniques:**
31
+ - ClusterIP type: Use ClusterIP for internal service discovery within cluster
32
+ - Selector matching: Match service selector labels exactly with deployment labels
33
+ - Named ports: Use named ports matching container port names for clarity
34
+ - Label consistency: Apply consistent labeling for service organization
35
+ - Port naming: Named ports allow changing container ports without updating all references
36
+ - Discovery: Services provide stable DNS names for pod communication
@@ -0,0 +1,32 @@
1
+ # validation: Manifest Validation Commands
2
+
3
+ **Guideline:** Always validate Kubernetes manifests before applying to clusters using dry-run and diff commands.
4
+
5
+ **Rationale:** Validation catches configuration errors, API version mismatches, and unintended changes before they impact running workloads.
6
+
7
+ **Example:**
8
+
9
+ ```bash
10
+ # Dry-run validation
11
+ kubectl apply --dry-run=server -f deployment.yaml
12
+
13
+ # Kustomize build
14
+ kustomize build k8s/overlays/production
15
+
16
+ # Apply with Kustomize
17
+ kubectl apply -k k8s/overlays/production
18
+
19
+ # Validate with server-side dry-run
20
+ kubectl apply -k k8s/overlays/production --dry-run=server
21
+
22
+ # Diff before applying
23
+ kubectl diff -k k8s/overlays/production
24
+ ```
25
+
26
+ **Techniques:**
27
+ - Server dry-run: Use `--dry-run=server` to validate against cluster API
28
+ - Kustomize build: Run `kustomize build` to verify overlay composition
29
+ - Kubectl diff: Use `kubectl diff` to preview exact changes before applying
30
+ - Manifest validation: Validate both raw manifests and kustomized output
31
+ - Pre-flight checks: Catch configuration errors before they impact workloads
32
+ - Dry-run safety: Server-side dry-run validates against current cluster state
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: lua-guidelines
3
+ description: >-
4
+ Trigger on `.lua` files. Use when writing Lua 5.4+ code. Apply for modules, scripting, table patterns. Keywords: Lua, module pattern, local variables, metatables, coroutines, error handling.
5
+ ---
6
+
7
+ # Lua Coding Guidelines
8
+
9
+ ## Requirements
10
+
11
+ - Lua ≥ 5.4.
12
+
13
+ ## Essentials
14
+
15
+ - **Module pattern** - Always `local`, one module per file returning table, see [reference/module-pattern.md](reference/module-pattern.md), [reference/local-variables.md](reference/local-variables.md)
16
+ - **Code organization** - Prefer table-based modules and simple functions, see [reference/module-pattern.md](reference/module-pattern.md), [reference/metatables.md](reference/metatables.md)
17
+ - **Cooperative tasks** - Use coroutines for async patterns, see [reference/coroutines.md](reference/coroutines.md)
18
+ - **Validation** - Validate inputs and handle errors, see [reference/input-validation.md](reference/input-validation.md), [reference/error-handling.md](reference/error-handling.md)
19
+
20
+ ## Progressive disclosure
21
+
22
+ - Read [reference/module-pattern.md](reference/module-pattern.md) - When creating reusable modules or organizing code structure
23
+ - Read [reference/local-variables.md](reference/local-variables.md) - When encountering global variable issues or scoping problems
24
+ - Read [reference/metatables.md](reference/metatables.md) - When implementing object-oriented patterns or operator overloading
25
+ - Read [reference/coroutines.md](reference/coroutines.md) - When implementing cooperative multitasking or async patterns
26
+ - Read [reference/input-validation.md](reference/input-validation.md) - When adding type checks or parameter validation
27
+ - Read [reference/error-handling.md](reference/error-handling.md) - When handling errors or implementing fallback logic
28
+ - Read [reference/string-concatenation.md](reference/string-concatenation.md) - When building strings in loops or formatting output
29
+ - Read [reference/idiomatic-patterns.md](reference/idiomatic-patterns.md) - When learning common Lua idioms or patterns
@@ -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,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 and create hard-to-find bugs. Locals have clearer scope and are easier to reason about.
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. Simpler than complex OO frameworks while staying idiomatic to Lua.
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:** Repeated `..` in loops creates many intermediate strings. Using `table.concat` is cleaner and more efficient for building strings from many parts.
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,32 @@
1
+ ---
2
+ name: lua-opinionated-guidelines
3
+ description: >-
4
+ Trigger on `.lua` files for LuaJIT performance-critical code. Opinionated patterns: JIT-friendly tables, table pre-allocation, cache lookups. Keywords: LuaJIT, JIT optimization, table pre-allocation, cache lookups, stable table shapes.
5
+ ---
6
+
7
+ # Lua Opinionated Guidelines (LuaJIT Performance)
8
+
9
+ ## Requirements
10
+
11
+ - Lua ≥ 5.4 or LuaJIT 2.1.
12
+
13
+ ## Essentials
14
+
15
+ - **Module pattern** - Always `local`, one module per file returning table, see [reference/module-pattern.md](reference/module-pattern.md), [reference/local-variables.md](reference/local-variables.md)
16
+ - **Code organization** - Prefer table-based modules and simple functions over deep OO, see [reference/module-pattern.md](reference/module-pattern.md), [reference/metatables.md](reference/metatables.md)
17
+ - **Performance** - Keep tables stable (JIT-friendly), pre-alloc when size known, see [reference/jit-friendly-tables.md](reference/jit-friendly-tables.md), [reference/cache-lookups.md](reference/cache-lookups.md)
18
+ - **Cooperative tasks** - Use coroutines for async patterns, see [reference/coroutines.md](reference/coroutines.md)
19
+ - **Validation** - Validate inputs and handle errors, see [reference/input-validation.md](reference/input-validation.md), [reference/error-handling.md](reference/error-handling.md)
20
+
21
+ ## Progressive disclosure
22
+
23
+ - Read [reference/module-pattern.md](reference/module-pattern.md) - When creating reusable modules or organizing code structure
24
+ - Read [reference/local-variables.md](reference/local-variables.md) - When encountering global variable issues or scoping problems
25
+ - Read [reference/metatables.md](reference/metatables.md) - When implementing object-oriented patterns or operator overloading
26
+ - Read [reference/jit-friendly-tables.md](reference/jit-friendly-tables.md) - When optimizing hot paths or improving JIT performance
27
+ - Read [reference/cache-lookups.md](reference/cache-lookups.md) - When reducing table access overhead in performance-critical code
28
+ - Read [reference/coroutines.md](reference/coroutines.md) - When implementing cooperative multitasking or async patterns
29
+ - Read [reference/input-validation.md](reference/input-validation.md) - When adding type checks or parameter validation
30
+ - Read [reference/error-handling.md](reference/error-handling.md) - When handling errors or implementing fallback logic
31
+ - Read [reference/string-concatenation.md](reference/string-concatenation.md) - When building strings in loops or formatting output
32
+ - Read [reference/idiomatic-patterns.md](reference/idiomatic-patterns.md) - When learning common Lua idioms or patterns