@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,32 @@
1
+ # fetchcontent: Dependency Management with FetchContent
2
+
3
+ **Guideline:** Use FetchContent to fetch and build external dependencies from source at configure time.
4
+
5
+ **Rationale:** FetchContent ensures dependencies are built with the same compiler and settings as your project, providing reproducible builds without system installation.
6
+
7
+ **Example:**
8
+
9
+ ```cmake
10
+ include(FetchContent)
11
+
12
+ # Fetch external dependency
13
+ FetchContent_Declare(
14
+ fmt
15
+ GIT_REPOSITORY https://github.com/fmtlib/fmt.git
16
+ GIT_TAG 10.1.1
17
+ GIT_SHALLOW TRUE
18
+ )
19
+
20
+ FetchContent_MakeAvailable(fmt)
21
+
22
+ # Use the dependency
23
+ add_executable(app src/main.cpp)
24
+ target_link_libraries(app PRIVATE fmt::fmt)
25
+ ```
26
+
27
+ **Techniques:**
28
+ - FetchContent_Declare(): Declare dependency with git repo and version pin
29
+ - GIT_TAG: Pin exact version for reproducible builds
30
+ - GIT_SHALLOW: Use shallow clone for faster fetching
31
+ - FetchContent_MakeAvailable(): Fetch and populate dependency with one call
32
+ - Populate: Use FetchContent_GetProperties() for conditional population control
@@ -0,0 +1,29 @@
1
+ # find-package: Dependency Management with find_package
2
+
3
+ **Guideline:** Use find_package to locate and link system-installed dependencies.
4
+
5
+ **Rationale:** System-installed packages are pre-built and optimized for the platform, reducing build times and disk usage when available.
6
+
7
+ **Example:**
8
+
9
+ ```cmake
10
+ # Find system-installed package
11
+ find_package(Boost 1.80 REQUIRED COMPONENTS system filesystem)
12
+
13
+ add_executable(app src/main.cpp)
14
+ target_link_libraries(app PRIVATE Boost::system Boost::filesystem)
15
+
16
+ # Optional dependency
17
+ find_package(OpenSSL)
18
+ if(OpenSSL_FOUND)
19
+ target_link_libraries(app PRIVATE OpenSSL::SSL OpenSSL::Crypto)
20
+ target_compile_definitions(app PRIVATE HAVE_OPENSSL=1)
21
+ endif()
22
+ ```
23
+
24
+ **Techniques:**
25
+ - REQUIRED: Fail build if package not found, use for mandatory dependencies
26
+ - COMPONENTS: Specify individual package parts to reduce linking
27
+ - Namespaced targets: Use Boost::system, OpenSSL::SSL for safe target linking
28
+ - \*_FOUND variable: Check if optional dependency is available before using
29
+ - Conditional linking: Add target_compile_definitions when dependencies found
@@ -0,0 +1,34 @@
1
+ # generator-expressions: Generator Expressions
2
+
3
+ **Guideline:** Use generator expressions for conditional and context-dependent CMake settings.
4
+
5
+ **Rationale:** Generator expressions evaluate at build time, allowing different settings based on compiler, platform, configuration, or build/install context.
6
+
7
+ **Example:**
8
+
9
+ ```cmake
10
+ # Build/Install interface paths
11
+ target_include_directories(mylib PUBLIC
12
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
13
+ $<INSTALL_INTERFACE:include>
14
+ )
15
+
16
+ # Compiler-specific options
17
+ target_compile_options(mylib PRIVATE
18
+ $<$<CXX_COMPILER_ID:GNU>:-fno-rtti>
19
+ $<$<CXX_COMPILER_ID:MSVC>:/GR->
20
+ )
21
+
22
+ # Configuration and platform-specific settings
23
+ target_compile_definitions(mylib PRIVATE
24
+ $<$<CONFIG:Debug>:DEBUG_MODE=1>
25
+ $<$<PLATFORM_ID:Linux>:LINUX_BUILD>
26
+ )
27
+ ```
28
+
29
+ **Techniques:**
30
+ - BUILD_INTERFACE/INSTALL_INTERFACE: Different paths for build vs installed consumption
31
+ - CXX_COMPILER_ID: Detect compiler and apply vendor-specific flags
32
+ - CONFIG: Apply Debug or Release build-specific settings
33
+ - PLATFORM_ID: Apply Linux, Windows, Darwin-specific settings
34
+ - Nested conditions: Chain $<$<X>:$<Y:value>>> for complex logic
@@ -0,0 +1,38 @@
1
+ # installation: Installation
2
+
3
+ **Guideline:** Configure installation rules to enable package distribution and consumption via find_package.
4
+
5
+ **Rationale:** Proper installation allows your library to be installed system-wide or in custom locations and discovered by other CMake projects.
6
+
7
+ **Example:**
8
+
9
+ ```cmake
10
+ # Install targets with export
11
+ install(TARGETS mylib app
12
+ EXPORT mylib-targets
13
+ LIBRARY DESTINATION lib
14
+ ARCHIVE DESTINATION lib
15
+ RUNTIME DESTINATION bin
16
+ INCLUDES DESTINATION include
17
+ )
18
+
19
+ # Install headers
20
+ install(DIRECTORY include/
21
+ DESTINATION include
22
+ FILES_MATCHING PATTERN "*.h"
23
+ )
24
+
25
+ # Export targets for find_package discovery
26
+ install(EXPORT mylib-targets
27
+ FILE mylib-targets.cmake
28
+ NAMESPACE mylib::
29
+ DESTINATION lib/cmake/mylib
30
+ )
31
+ ```
32
+
33
+ **Techniques:**
34
+ - install(TARGETS): Install libraries and executables with type-specific destinations
35
+ - EXPORT: Create importable CMake files for downstream find_package() calls
36
+ - DESTINATION: Set lib/bin/include paths for each artifact type
37
+ - NAMESPACE: Prefix exported targets (mylib::) to prevent naming conflicts
38
+ - install(DIRECTORY): Install headers with glob patterns for selective inclusion
@@ -0,0 +1,40 @@
1
+ # project-structure: Basic Project Structure
2
+
3
+ **Guideline:** Set up CMake projects with modern target-based configuration using CMake 3.20 or higher.
4
+
5
+ **Rationale:** A well-structured CMakeLists.txt establishes build requirements, project metadata, and target definitions that form the foundation for maintainable builds.
6
+
7
+ **Example:**
8
+
9
+ ```cmake
10
+ cmake_minimum_required(VERSION 3.20)
11
+ project(demo VERSION 1.0.0 DESCRIPTION "Example" LANGUAGES C CXX)
12
+
13
+ set(CMAKE_CXX_STANDARD 20)
14
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
15
+
16
+ # Build library
17
+ add_library(core src/core.cpp src/utils.cpp)
18
+ target_include_directories(core PUBLIC
19
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
20
+ $<INSTALL_INTERFACE:include>
21
+ )
22
+ target_compile_features(core PUBLIC cxx_std_20)
23
+
24
+ # Build executable
25
+ add_executable(app src/main.cpp)
26
+ target_link_libraries(app PRIVATE core)
27
+
28
+ # Testing
29
+ enable_testing()
30
+ add_executable(core_test tests/core_test.cpp)
31
+ target_link_libraries(core_test PRIVATE core)
32
+ add_test(NAME core_test COMMAND core_test)
33
+ ```
34
+
35
+ **Techniques:**
36
+ - cmake_minimum_required(): Set 3.20+ for modern CMake features
37
+ - project(): Declare name, version, description, and required languages
38
+ - add_library/add_executable(): Create targets for libraries and binaries
39
+ - target_include_directories(): Configure include paths with generator expressions
40
+ - target_compile_features(): Require specific C++ standard like cxx_std_20
@@ -0,0 +1,37 @@
1
+ # target-types: Target Types
2
+
3
+ **Guideline:** Choose appropriate target types based on how the code will be consumed.
4
+
5
+ **Rationale:** Different target types optimize for different use cases: shared libraries for runtime linking, static for embedding, header-only for templates, object for reusing compiled code.
6
+
7
+ **Example:**
8
+
9
+ ```cmake
10
+ # Normal library (static or shared based on BUILD_SHARED_LIBS)
11
+ add_library(mylib src/lib.cpp)
12
+
13
+ # Explicit static library
14
+ add_library(static_lib STATIC src/static.cpp)
15
+
16
+ # Explicit shared library
17
+ add_library(shared_lib SHARED src/shared.cpp)
18
+
19
+ # Header-only library
20
+ add_library(header_only INTERFACE)
21
+ target_include_directories(header_only INTERFACE include)
22
+
23
+ # Object library for intermediate compilation
24
+ add_library(objects OBJECT src/common.cpp)
25
+ target_link_libraries(mylib PRIVATE objects)
26
+
27
+ # Executable and GUI app
28
+ add_executable(app src/main.cpp)
29
+ add_executable(gui WIN32 MACOSX_BUNDLE src/gui.cpp)
30
+ ```
31
+
32
+ **Techniques:**
33
+ - add_library() without type: Let BUILD_SHARED_LIBS control static vs shared
34
+ - STATIC: Always statically link, good for embedded or single-binary scenarios
35
+ - SHARED: Dynamic library for runtime linking and flexible updates
36
+ - INTERFACE: Header-only library with no compiled code
37
+ - OBJECT: Intermediate object library for sharing compiled units across targets
@@ -0,0 +1,30 @@
1
+ # testing: Testing with CTest
2
+
3
+ **Guideline:** Use CTest to integrate automated testing into the build system.
4
+
5
+ **Rationale:** CTest provides a standardized way to run tests across platforms with features like timeouts, labels, and parallel execution.
6
+
7
+ **Example:**
8
+
9
+ ```cmake
10
+ # Enable testing
11
+ enable_testing()
12
+
13
+ # Add test executable
14
+ add_executable(unit_tests tests/test_core.cpp tests/test_utils.cpp)
15
+ target_link_libraries(unit_tests PRIVATE core gtest_main)
16
+
17
+ # Register test cases
18
+ add_test(NAME unit_tests COMMAND unit_tests)
19
+ add_test(NAME integration_test COMMAND app --test-mode WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
20
+
21
+ # Set test properties
22
+ set_tests_properties(unit_tests PROPERTIES TIMEOUT 30 LABELS "unit")
23
+ ```
24
+
25
+ **Techniques:**
26
+ - enable_testing(): Enable the testing feature in CMake project
27
+ - add_test(): Register test executable or command with optional working directory
28
+ - set_tests_properties(): Set timeout, labels, or other test attributes
29
+ - add_executable() for tests: Build test binaries separately from production code
30
+ - LABELS: Tag tests for selective running with ctest -L filter
@@ -0,0 +1,32 @@
1
+ # visibility-specifiers: Visibility Specifiers
2
+
3
+ **Guideline:** Use PUBLIC, PRIVATE, and INTERFACE to control how target properties propagate to consumers.
4
+
5
+ **Rationale:** Proper visibility prevents leaking implementation details and ensures consumers get only the dependencies they need, reducing coupling and build times.
6
+
7
+ **Example:**
8
+
9
+ ```cmake
10
+ # PUBLIC: Library AND consumers need this
11
+ target_include_directories(mylib PUBLIC include)
12
+ target_compile_definitions(mylib PUBLIC USE_FEATURE=1)
13
+
14
+ # PRIVATE: Only library needs this
15
+ target_include_directories(mylib PRIVATE src/internal)
16
+ target_compile_definitions(mylib PRIVATE DEBUG_MODE=1)
17
+
18
+ # INTERFACE: Only consumers need this
19
+ add_library(header_only INTERFACE)
20
+ target_include_directories(header_only INTERFACE include)
21
+
22
+ # Linking with visibility
23
+ add_executable(app src/main.cpp)
24
+ target_link_libraries(app PRIVATE mylib PUBLIC common INTERFACE interface)
25
+ ```
26
+
27
+ **Techniques:**
28
+ - PUBLIC: Properties visible to both target and all downstream consumers
29
+ - PRIVATE: Properties used only by target, not propagated to consumers
30
+ - INTERFACE: Properties for consumers only, not used by target itself
31
+ - Consistent visibility: Apply same visibility to includes, links, definitions, options
32
+ - Minimize PUBLIC: Reduce PUBLIC properties to shrink transitive dependencies
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: content-guidelines
3
+ description: >-
4
+ Trigger on content creation tasks with bilingual requirements. Use when creating bilingual content with structured formatting. Apply for news curation, port/ship guides, travel guides. Keywords: bilingual, CEFR, B1-B2 proficiency, content frontmatter, news articles, travel guides, humanize, web research.
5
+ ---
6
+
7
+ # Content Creation Guidelines
8
+
9
+ ## Core Principles
10
+
11
+ - **Research First** - Verify with web search and web fetch, triangulate facts
12
+ - **Bilingual Content** - Support multiple languages with CEFR proficiency levels
13
+ - **Structured Format** - Follow exact structure with proper front-matter
14
+ - **Natural Language** - CEFR B1-B2, personal "you" voice, no emojis, see [reference/humanize.md](reference/humanize.md)
15
+
16
+ ## Workflow
17
+
18
+ - **Research** - Use WebSearch and WebFetch to gather and verify information
19
+ - **Draft** - Follow structured format with proper front-matter
20
+ - **Generate** - Create markdown files for each language
21
+ - **Validate** - Verify links, addresses, factual accuracy
22
+
23
+ ## Language Standards
24
+
25
+ - **Proficiency** - CEFR B1-B2 by default (configurable)
26
+ - **Style** - Short sentences (<20 words), 60% informative / 40% conversational
27
+ - **Paraphrasing** - Never copy text verbatim from sources
28
+
29
+ ## Progressive Disclosure
30
+
31
+ ### Content Types
32
+ - Read [reference/news.md](reference/news.md) - Auto-curate latest news with bilingual summaries
33
+ - Read [reference/travelguide.md](reference/travelguide.md) - Multi-language travel destination guides
34
+
35
+ ### Writing Quality
36
+ - Read [reference/humanize.md](reference/humanize.md) - Remove AI patterns and make text natural
@@ -0,0 +1,30 @@
1
+ # humanize: Make Writing Sound Human
2
+
3
+ **Guideline:** Remove AI patterns from documentation to make it sound natural and professional.
4
+
5
+ **Rationale:** AI-generated text contains recognizable patterns (forced casual tone, filler phrases, excessive formatting) that diminish credibility and readability.
6
+
7
+ **Example:**
8
+
9
+ Before:
10
+ ```markdown
11
+ ## Phase 1: Setup (Est. 2-3 days)
12
+ Let's dive in! TD-01: Configure Database ✅
13
+ This involves database connection. In other words:
14
+ - Connect to PostgreSQL - primary data store
15
+ - Set up migrations - easy fix though
16
+ ```
17
+
18
+ After:
19
+ ```markdown
20
+ ## Setup
21
+ Configure database by connecting to PostgreSQL as primary data store and setting up migrations.
22
+ ```
23
+
24
+ **Techniques:**
25
+ - Remove task IDs: Strip TD-01, TASK-001, phase structures, time estimations
26
+ - Replace filler: Remove "Let's dive in", "here's the thing", "easy fix though"
27
+ - Simplify punctuation: Use commas instead of dashes (", " not " - ")
28
+ - Prose over bullets: Use paragraphs where logical flow works better
29
+ - Remove enthusiasm: Eliminate excessive exclamation marks, emojis, meta-commentary
30
+ - Keep accuracy: Maintain technical precision while removing fluff
@@ -0,0 +1,28 @@
1
+ # news: Auto-Curate Latest News Stories
2
+
3
+ **Guideline:** Research and write news stories in multiple languages with verified facts triangulated from 3+ sources.
4
+
5
+ **Rationale:** Bilingual news requires triangulating sources to discard clickbait while paraphrasing to avoid plagiarism and maintain credibility.
6
+
7
+ **Example:**
8
+
9
+ ```yaml
10
+ ---
11
+ title: "Headline (35-45 words)"
12
+ slug: "story-slug"
13
+ summary: "Concise summary"
14
+ created_at: "2024-01-24T12:00:00Z"
15
+ image_url: "royalty-free-url"
16
+ lang: "en"
17
+ ---
18
+ ```
19
+
20
+ Write in CEFR B1-B2 level with short sentences (<20 words) and bullet points for skimming.
21
+
22
+ **Techniques:**
23
+ - WebSearch verification: Find 3+ credible sources per story, use date filters
24
+ - Triangulate facts: Cross-check claims, discard unsourced or clickbait content
25
+ - Paraphrase: Never copy verbatim, use original wording while preserving meaning
26
+ - Language standards: Target CEFR B1-B2 with natural, concise prose
27
+ - Headlines: Write 35-45 word summaries that are authoritative yet friendly
28
+ - Filename format: Use `slug.lang.md` convention for bilingual organization
@@ -0,0 +1,31 @@
1
+ # travelguide: Create Comprehensive Travel Guides
2
+
3
+ **Guideline:** Create multi-language travel guides balancing engaging narrative with practical, web-verifiable information.
4
+
5
+ **Rationale:** Comprehensive guides help travelers plan effectively while capturing destination essence through knowledgeable narrative.
6
+
7
+ **Example:**
8
+
9
+ Structure:
10
+ 1. Introduction (200-300 words): Hook, key logistics, duration
11
+ 2. Logistics (400-500 words): Location, hours, transport, tips
12
+ 3. Attractions (500-600 words): 3-5 essential with access, duration, cost, hours, tip
13
+ 4. Itineraries (600-800 words): Budget/family/premium types, half/full-day options
14
+ 5. Practical Info (400-500 words): Payment, language, weather, safety, customs
15
+
16
+ Front-matter:
17
+ ```yaml
18
+ title: "Destination Name"
19
+ slug: "destination-slug"
20
+ summary: "Brief summary"
21
+ created_at: "ISO timestamp"
22
+ lang: "en"
23
+ ```
24
+
25
+ **Techniques:**
26
+ - WebSearch research: Gather current, comprehensive information before writing
27
+ - Narrative style: Write as knowledgeable friend, pack practical value into prose
28
+ - Language standards: CEFR B1-B2, <20 word sentences, **bold** for critical details
29
+ - Attractions details: Include access methods, duration, cost, hours, insider tips
30
+ - Accessibility: Include information for travelers with disabilities
31
+ - Verification: All information must be web-verifiable and current
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: docker-guidelines
3
+ description: >-
4
+ Trigger on `Dockerfile`, `docker-compose.yml`, `.dockerignore` files. Use when writing Docker configurations for containerized applications. Apply for multi-stage builds, security hardening, production deployments. Keywords: Dockerfile, multi-stage, alpine/distroless, layer caching, non-root, secrets, health checks, BuildKit.
5
+ ---
6
+
7
+ # Docker Coding Guidelines
8
+
9
+ ## Essentials
10
+
11
+ - **Build optimization** - Multi-stage builds, small base images (alpine/distroless), see [reference/multi-stage-builds.md](reference/multi-stage-builds.md)
12
+ - **Layer caching** - Order layers for caching, copy lockfiles before source, see [reference/layer-caching.md](reference/layer-caching.md)
13
+ - **Security** - Run as non-root, least privilege, no secrets in images, see [reference/security.md](reference/security.md)
14
+ - **Configuration** - Externalize config via env/volumes, pin versions, see [reference/production-config.md](reference/production-config.md)
15
+ - **Quality** - Use BuildKit and hadolint, add health endpoints, see [reference/production-config.md](reference/production-config.md)
16
+
17
+ ## Progressive disclosure
18
+
19
+ - Read [reference/multi-stage-builds.md](reference/multi-stage-builds.md) - When creating production images or optimizing build process
20
+ - Read [reference/layer-caching.md](reference/layer-caching.md) - When builds are slow or cache invalidates frequently
21
+ - Read [reference/security.md](reference/security.md) - When hardening images or handling secrets
22
+ - Read [reference/production-config.md](reference/production-config.md) - When adding health checks or configuring for orchestration
23
+ - Read [reference/docker-compose.md](reference/docker-compose.md) - When defining multi-service local development environments
@@ -0,0 +1,40 @@
1
+ # docker-compose: Docker Compose Configuration
2
+
3
+ **Guideline:** Use Docker Compose for development with proper secrets, volumes, and health checks.
4
+
5
+ **Rationale:** Simplifies multi-container orchestration during development; secrets, volumes, and health checks mirror production while maintaining security.
6
+
7
+ **Example:**
8
+
9
+ ```yaml
10
+ services:
11
+ app:
12
+ build: {context: ., target: runtime}
13
+ environment:
14
+ - NODE_ENV=production
15
+ - DATABASE_URL_FILE=/run/secrets/db_url
16
+ secrets: [db_url]
17
+ volumes: [app-data:/app/data]
18
+ ports: ["3000:3000"]
19
+ healthcheck:
20
+ test: ["CMD", "node", "healthcheck.js"]
21
+ interval: 30s
22
+ timeout: 3s
23
+ retries: 3
24
+ restart: unless-stopped
25
+
26
+ secrets:
27
+ db_url:
28
+ file: ./secrets/db_url.txt
29
+
30
+ volumes:
31
+ app-data:
32
+ ```
33
+
34
+ **Techniques:**
35
+ - Build configuration: Specify build context and target stage in compose
36
+ - Secrets management: Use secrets section for sensitive data, never environment vars
37
+ - Volume mounting: Mount volumes for persistent data matching production layout
38
+ - Health checks: Configure health checks matching Dockerfile definitions
39
+ - Restart policy: Set `unless-stopped` for development persistence
40
+ - Port mapping: Expose ports for local development access
@@ -0,0 +1,25 @@
1
+ # layer-caching: Layer Caching Strategy
2
+
3
+ **Guideline:** Order Dockerfile commands least-to-most frequently changing to maximize cache reuse.
4
+
5
+ **Rationale:** Docker caches each layer; changes invalidate subsequent layers. Proper ordering minimizes rebuild time.
6
+
7
+ **Example:**
8
+
9
+ ```dockerfile
10
+ FROM node:22-alpine
11
+ WORKDIR /app
12
+ COPY package-lock.json ./
13
+ RUN npm ci
14
+ COPY . .
15
+ RUN npm run build
16
+ ```
17
+
18
+ **Techniques:**
19
+ - Copy lockfiles first: package-lock.json, poetry.lock rarely change
20
+ - Install dependencies: Run before copying source to cache dependency layer
21
+ - Copy source last: src/, config files change frequently
22
+ - Build commands: Run after source copy, invalidates only build layer
23
+ - Order principle: Static → dependencies → source → build
24
+ - Cache validation: Check Docker BUILDKIT with --progress=plain for cache hits
25
+ - Multi-stage: Use separate stages for different cache patterns
@@ -0,0 +1,37 @@
1
+ # multi-stage-builds: Multi-Stage Build Pattern
2
+
3
+ **Guideline:** Separate build and runtime stages to minimize production image size and attack surface.
4
+
5
+ **Rationale:** Multi-stage builds use full-featured build envs while keeping runtime images minimal; reduces size, attack surface, deployment time.
6
+
7
+ **Example:**
8
+
9
+ ```dockerfile
10
+ # syntax=docker/dockerfile:1.7
11
+
12
+ FROM node:22-alpine AS deps
13
+ WORKDIR /app
14
+ COPY package.json pnpm-lock.yaml ./
15
+ RUN corepack enable && pnpm i --frozen-lockfile
16
+
17
+ FROM node:22-alpine AS build
18
+ WORKDIR /app
19
+ COPY --from=deps /app/node_modules node_modules
20
+ COPY . .
21
+ RUN pnpm build
22
+
23
+ FROM gcr.io/distroless/nodejs22
24
+ WORKDIR /app
25
+ USER nonroot:nonroot
26
+ COPY --from=build /app/dist dist
27
+ ENV NODE_ENV=production
28
+ EXPOSE 3000
29
+ CMD ["dist/server.js"]
30
+ ```
31
+
32
+ **Techniques:**
33
+ - Stage separation: Use distinct dependencies, build, and runtime stages
34
+ - Artifact copying: Copy only necessary outputs between stages
35
+ - Minimal runtime: Use distroless or alpine for production image
36
+ - Named stages: Use AS for clarity in multi-stage builds
37
+ - Size optimization: Reduces image size by excluding build tools from runtime
@@ -0,0 +1,32 @@
1
+ # production-config: Production Configuration
2
+
3
+ **Guideline:** Configure with health checks, externalized config, proper lifecycle management.
4
+
5
+ **Rationale:** Health checks enable failure detection, env vars allow deployment-specific config, volumes preserve data.
6
+
7
+ **Example:**
8
+
9
+ ```dockerfile
10
+ # syntax=docker/dockerfile:1.7
11
+ FROM node:22-alpine
12
+ WORKDIR /app
13
+
14
+ HEALTHCHECK --interval=30s --timeout=3s --start-period=5s \
15
+ CMD node healthcheck.js || exit 1
16
+
17
+ ENV NODE_ENV=production PORT=3000 LOG_LEVEL=info
18
+
19
+ VOLUME /app/data
20
+
21
+ EXPOSE 3000
22
+ USER node:node
23
+ CMD ["node", "dist/server.js"]
24
+ ```
25
+
26
+ **Techniques:**
27
+ - Health checks: Add HEALTHCHECK for orchestration failure detection
28
+ - Environment config: Use ENV for deployment-specific configuration
29
+ - Persistent volumes: Define VOLUME for data that must survive restarts
30
+ - Port exposure: Use EXPOSE to document container ports
31
+ - Non-root user: Set USER for security and orchestration requirements
32
+ - BuildKit syntax: Use syntax directive for advanced features
@@ -0,0 +1,27 @@
1
+ # security: Security Best Practices
2
+
3
+ **Guideline:** Pin versions, run non-root, externalize secrets to limit attack surface.
4
+
5
+ **Rationale:** Multiple defense layers: pinned versions prevent supply chain attacks, non-root limits breach damage, externalized secrets prevent leaks.
6
+
7
+ **Example:**
8
+
9
+ ```dockerfile
10
+ FROM node:22.1.0-alpine3.19
11
+
12
+ RUN addgroup -g 1001 -S nodejs && \
13
+ adduser -S nodejs -u 1001
14
+ USER nodejs:nodejs
15
+
16
+ ENV DATABASE_URL_FILE=/run/secrets/db_url
17
+
18
+ RUN mkdir /tmp/app-cache && chown nodejs:nodejs /tmp/app-cache
19
+ VOLUME /tmp/app-cache
20
+ ```
21
+
22
+ **Techniques:**
23
+ - Version pinning: Pin base image version including OS version for supply chain security
24
+ - Non-root user: Create and use non-root USER to limit breach damage
25
+ - Secret externalization: Never copy secrets into image; use environment or mounts
26
+ - Read-only filesystem: Use read-only root with writable VOLUME for security
27
+ - Defense layers: Combine multiple tactics (pinning, user, secrets) for defense-in-depth
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: express.js-guidelines
3
+ description: >-
4
+ Trigger on `*.ts` files with Express imports or `@types/express`. Use when building Express 5+ API servers. Apply for route organization, error handling, authentication, testing. Keywords: Express, routes, controllers, middleware, Zod validation, JWT, error handling, CORS, Morgan.
5
+ ---
6
+
7
+ # Express.js Coding Guidelines
8
+
9
+ ## Requirements
10
+
11
+ - Express ≥ 5, TypeScript ≥ 5.8, Helmet/CORS/Morgan, Zod.
12
+
13
+ ## Essentials
14
+
15
+ - **Project structure** - Routes, controllers, middleware as separate modules, see [reference/project-structure.md](reference/project-structure.md)
16
+ - **Input validation** - Validate params/body/query with Zod at route edges, see [reference/validation.md](reference/validation.md)
17
+ - **Error handling** - Central error handler, never leak stack traces in prod, see [reference/error-handling.md](reference/error-handling.md)
18
+ - **Authentication** - JWT auth with role/permission middleware, see [reference/authentication.md](reference/authentication.md)
19
+ - **Response format** - Consistent JSON shape and status codes, see [reference/responses.md](reference/responses.md)
20
+ - **Testing** - Unit-test controllers/middleware, integration-test routes, see [reference/testing.md](reference/testing.md)
21
+
22
+ ## Progressive disclosure
23
+
24
+ - Read [reference/project-structure.md](reference/project-structure.md) - When organizing a new Express project
25
+ - Read [reference/routes.md](reference/routes.md) - When defining REST endpoints or route patterns
26
+ - Read [reference/controllers.md](reference/controllers.md) - When implementing request handlers
27
+ - Read [reference/validation.md](reference/validation.md) - When adding input validation to routes
28
+ - Read [reference/authentication.md](reference/authentication.md) - When implementing JWT auth or session management
29
+ - Read [reference/error-handling.md](reference/error-handling.md) - When centralizing error responses
30
+ - Read [reference/responses.md](reference/responses.md) - When standardizing API response formats
31
+ - Read [reference/app-setup.md](reference/app-setup.md) - When configuring Express app initialization
32
+ - Read [reference/testing.md](reference/testing.md) - When writing unit or integration tests