@nerdev/skillset 0.2.1

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 (567) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +351 -0
  3. package/bin/skillset.mjs +205 -0
  4. package/curations/README.md +53 -0
  5. package/curations/TEMPLATE/WHY.md +23 -0
  6. package/curations/TEMPLATE/overlay/SKILL.md +6 -0
  7. package/curations/impeccable/WHY.md +34 -0
  8. package/curations/impeccable/overlay/SKILL.md +116 -0
  9. package/package.json +43 -0
  10. package/scripts/ste-gate.mjs +39 -0
  11. package/scripts/ste-lint.py +201 -0
  12. package/scripts/sync.mjs +174 -0
  13. package/skills/ai-agent/agent-docs-writer/SKILL.md +105 -0
  14. package/skills/ai-agent/agent-docs-writer/references/principles.md +73 -0
  15. package/skills/ai-agent/agent-docs-writer/templates/AGENTS.template.md +44 -0
  16. package/skills/ai-agent/agent-docs-writer/templates/README.template.md +19 -0
  17. package/skills/ai-agent/ultra-context-engine/SKILL.md +941 -0
  18. package/skills/architecture/blueprint/SKILL.md +191 -0
  19. package/skills/architecture/code-tour/SKILL.md +204 -0
  20. package/skills/architecture/progress-guard/SKILL.md +148 -0
  21. package/skills/architecture/search-first/SKILL.md +97 -0
  22. package/skills/backend/api-design/SKILL.md +456 -0
  23. package/skills/backend/auth/SKILL.md +596 -0
  24. package/skills/backend/database/SKILL.md +431 -0
  25. package/skills/backend/realtime/SKILL.md +670 -0
  26. package/skills/backend/security/SKILL.md +590 -0
  27. package/skills/business/brag/SKILL.md +177 -0
  28. package/skills/business/brag/assets/music/README.md +20 -0
  29. package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-1-by-ende-dot-app.music-cues.json +3846 -0
  30. package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-1-by-ende-dot-app.music-cues.md +35 -0
  31. package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-10-by-ende-dot-app.music-cues.json +1826 -0
  32. package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-10-by-ende-dot-app.music-cues.md +35 -0
  33. package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-11-by-ende-dot-app.music-cues.json +2266 -0
  34. package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-11-by-ende-dot-app.music-cues.md +35 -0
  35. package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-12-by-ende-dot-app.music-cues.json +2806 -0
  36. package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-12-by-ende-dot-app.music-cues.md +35 -0
  37. package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-9-by-ende-dot-app.music-cues.json +2796 -0
  38. package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-9-by-ende-dot-app.music-cues.md +35 -0
  39. package/skills/business/brag/assets/music/happy-beats-business-moves-vol-1-by-ende-dot-app.mp3 +0 -0
  40. package/skills/business/brag/assets/music/happy-beats-business-moves-vol-10-by-ende-dot-app.mp3 +0 -0
  41. package/skills/business/brag/assets/music/happy-beats-business-moves-vol-11-by-ende-dot-app.mp3 +0 -0
  42. package/skills/business/brag/assets/music/happy-beats-business-moves-vol-12-by-ende-dot-app.mp3 +0 -0
  43. package/skills/business/brag/assets/music/happy-beats-business-moves-vol-9-by-ende-dot-app.mp3 +0 -0
  44. package/skills/business/brag/assets/sfx/casino/card-fan-1.ogg +0 -0
  45. package/skills/business/brag/assets/sfx/casino/card-fan-2.ogg +0 -0
  46. package/skills/business/brag/assets/sfx/casino/card-place-1.ogg +0 -0
  47. package/skills/business/brag/assets/sfx/casino/card-place-2.ogg +0 -0
  48. package/skills/business/brag/assets/sfx/casino/card-place-3.ogg +0 -0
  49. package/skills/business/brag/assets/sfx/casino/card-place-4.ogg +0 -0
  50. package/skills/business/brag/assets/sfx/casino/card-shove-1.ogg +0 -0
  51. package/skills/business/brag/assets/sfx/casino/card-shove-2.ogg +0 -0
  52. package/skills/business/brag/assets/sfx/casino/card-shove-3.ogg +0 -0
  53. package/skills/business/brag/assets/sfx/casino/card-shove-4.ogg +0 -0
  54. package/skills/business/brag/assets/sfx/casino/card-shuffle.ogg +0 -0
  55. package/skills/business/brag/assets/sfx/casino/card-slide-1.ogg +0 -0
  56. package/skills/business/brag/assets/sfx/casino/card-slide-2.ogg +0 -0
  57. package/skills/business/brag/assets/sfx/casino/card-slide-3.ogg +0 -0
  58. package/skills/business/brag/assets/sfx/casino/card-slide-4.ogg +0 -0
  59. package/skills/business/brag/assets/sfx/casino/card-slide-5.ogg +0 -0
  60. package/skills/business/brag/assets/sfx/casino/card-slide-6.ogg +0 -0
  61. package/skills/business/brag/assets/sfx/casino/card-slide-7.ogg +0 -0
  62. package/skills/business/brag/assets/sfx/casino/card-slide-8.ogg +0 -0
  63. package/skills/business/brag/assets/sfx/casino/cards-pack-open-1.ogg +0 -0
  64. package/skills/business/brag/assets/sfx/casino/cards-pack-open-2.ogg +0 -0
  65. package/skills/business/brag/assets/sfx/casino/chip-lay-1.ogg +0 -0
  66. package/skills/business/brag/assets/sfx/casino/chip-lay-2.ogg +0 -0
  67. package/skills/business/brag/assets/sfx/casino/chip-lay-3.ogg +0 -0
  68. package/skills/business/brag/assets/sfx/casino/chips-collide-1.ogg +0 -0
  69. package/skills/business/brag/assets/sfx/casino/chips-collide-2.ogg +0 -0
  70. package/skills/business/brag/assets/sfx/casino/chips-collide-3.ogg +0 -0
  71. package/skills/business/brag/assets/sfx/casino/chips-collide-4.ogg +0 -0
  72. package/skills/business/brag/assets/sfx/casino/chips-handle-1.ogg +0 -0
  73. package/skills/business/brag/assets/sfx/casino/chips-handle-2.ogg +0 -0
  74. package/skills/business/brag/assets/sfx/casino/chips-handle-3.ogg +0 -0
  75. package/skills/business/brag/assets/sfx/casino/chips-handle-4.ogg +0 -0
  76. package/skills/business/brag/assets/sfx/casino/chips-handle-6.ogg +0 -0
  77. package/skills/business/brag/assets/sfx/casino/chips-stack-1.ogg +0 -0
  78. package/skills/business/brag/assets/sfx/casino/chips-stack-2.ogg +0 -0
  79. package/skills/business/brag/assets/sfx/casino/chips-stack-3.ogg +0 -0
  80. package/skills/business/brag/assets/sfx/casino/chips-stack-4.ogg +0 -0
  81. package/skills/business/brag/assets/sfx/casino/chips-stack-5.ogg +0 -0
  82. package/skills/business/brag/assets/sfx/casino/chips-stack-6.ogg +0 -0
  83. package/skills/business/brag/assets/sfx/casino/dice-grab-1.ogg +0 -0
  84. package/skills/business/brag/assets/sfx/casino/dice-grab-2.ogg +0 -0
  85. package/skills/business/brag/assets/sfx/casino/dice-shake-1.ogg +0 -0
  86. package/skills/business/brag/assets/sfx/casino/dice-shake-2.ogg +0 -0
  87. package/skills/business/brag/assets/sfx/casino/dice-shake-3.ogg +0 -0
  88. package/skills/business/brag/assets/sfx/casino/dice-throw-1.ogg +0 -0
  89. package/skills/business/brag/assets/sfx/casino/dice-throw-2.ogg +0 -0
  90. package/skills/business/brag/assets/sfx/casino/dice-throw-3.ogg +0 -0
  91. package/skills/business/brag/assets/sfx/casino/die-throw-1.ogg +0 -0
  92. package/skills/business/brag/assets/sfx/casino/die-throw-2.ogg +0 -0
  93. package/skills/business/brag/assets/sfx/casino/die-throw-3.ogg +0 -0
  94. package/skills/business/brag/assets/sfx/casino/die-throw-4.ogg +0 -0
  95. package/skills/business/brag/assets/sfx/impact/footstep_carpet_000.ogg +0 -0
  96. package/skills/business/brag/assets/sfx/impact/footstep_carpet_003.ogg +0 -0
  97. package/skills/business/brag/assets/sfx/impact/footstep_carpet_004.ogg +0 -0
  98. package/skills/business/brag/assets/sfx/impact/footstep_concrete_000.ogg +0 -0
  99. package/skills/business/brag/assets/sfx/impact/footstep_concrete_001.ogg +0 -0
  100. package/skills/business/brag/assets/sfx/impact/footstep_concrete_002.ogg +0 -0
  101. package/skills/business/brag/assets/sfx/impact/footstep_concrete_003.ogg +0 -0
  102. package/skills/business/brag/assets/sfx/impact/footstep_concrete_004.ogg +0 -0
  103. package/skills/business/brag/assets/sfx/impact/footstep_grass_000.ogg +0 -0
  104. package/skills/business/brag/assets/sfx/impact/footstep_grass_001.ogg +0 -0
  105. package/skills/business/brag/assets/sfx/impact/footstep_grass_002.ogg +0 -0
  106. package/skills/business/brag/assets/sfx/impact/footstep_grass_003.ogg +0 -0
  107. package/skills/business/brag/assets/sfx/impact/footstep_grass_004.ogg +0 -0
  108. package/skills/business/brag/assets/sfx/impact/footstep_snow_000.ogg +0 -0
  109. package/skills/business/brag/assets/sfx/impact/footstep_snow_001.ogg +0 -0
  110. package/skills/business/brag/assets/sfx/impact/footstep_snow_002.ogg +0 -0
  111. package/skills/business/brag/assets/sfx/impact/footstep_snow_003.ogg +0 -0
  112. package/skills/business/brag/assets/sfx/impact/footstep_snow_004.ogg +0 -0
  113. package/skills/business/brag/assets/sfx/impact/footstep_wood_000.ogg +0 -0
  114. package/skills/business/brag/assets/sfx/impact/footstep_wood_001.ogg +0 -0
  115. package/skills/business/brag/assets/sfx/impact/footstep_wood_002.ogg +0 -0
  116. package/skills/business/brag/assets/sfx/impact/footstep_wood_003.ogg +0 -0
  117. package/skills/business/brag/assets/sfx/impact/footstep_wood_004.ogg +0 -0
  118. package/skills/business/brag/assets/sfx/impact/impactBell_heavy_000.ogg +0 -0
  119. package/skills/business/brag/assets/sfx/impact/impactBell_heavy_003.ogg +0 -0
  120. package/skills/business/brag/assets/sfx/impact/impactBell_heavy_004.ogg +0 -0
  121. package/skills/business/brag/assets/sfx/impact/impactGeneric_light_000.ogg +0 -0
  122. package/skills/business/brag/assets/sfx/impact/impactGeneric_light_001.ogg +0 -0
  123. package/skills/business/brag/assets/sfx/impact/impactGeneric_light_002.ogg +0 -0
  124. package/skills/business/brag/assets/sfx/impact/impactGeneric_light_003.ogg +0 -0
  125. package/skills/business/brag/assets/sfx/impact/impactGeneric_light_004.ogg +0 -0
  126. package/skills/business/brag/assets/sfx/impact/impactGlass_heavy_002.ogg +0 -0
  127. package/skills/business/brag/assets/sfx/impact/impactGlass_light_001.ogg +0 -0
  128. package/skills/business/brag/assets/sfx/impact/impactGlass_light_002.ogg +0 -0
  129. package/skills/business/brag/assets/sfx/impact/impactGlass_light_003.ogg +0 -0
  130. package/skills/business/brag/assets/sfx/impact/impactGlass_medium_000.ogg +0 -0
  131. package/skills/business/brag/assets/sfx/impact/impactGlass_medium_002.ogg +0 -0
  132. package/skills/business/brag/assets/sfx/impact/impactGlass_medium_004.ogg +0 -0
  133. package/skills/business/brag/assets/sfx/impact/impactMetal_heavy_000.ogg +0 -0
  134. package/skills/business/brag/assets/sfx/impact/impactMetal_heavy_002.ogg +0 -0
  135. package/skills/business/brag/assets/sfx/impact/impactMetal_heavy_004.ogg +0 -0
  136. package/skills/business/brag/assets/sfx/impact/impactMetal_light_002.ogg +0 -0
  137. package/skills/business/brag/assets/sfx/impact/impactMetal_light_003.ogg +0 -0
  138. package/skills/business/brag/assets/sfx/impact/impactMetal_medium_000.ogg +0 -0
  139. package/skills/business/brag/assets/sfx/impact/impactMetal_medium_001.ogg +0 -0
  140. package/skills/business/brag/assets/sfx/impact/impactMetal_medium_002.ogg +0 -0
  141. package/skills/business/brag/assets/sfx/impact/impactMetal_medium_003.ogg +0 -0
  142. package/skills/business/brag/assets/sfx/impact/impactMetal_medium_004.ogg +0 -0
  143. package/skills/business/brag/assets/sfx/impact/impactMining_001.ogg +0 -0
  144. package/skills/business/brag/assets/sfx/impact/impactPlank_medium_000.ogg +0 -0
  145. package/skills/business/brag/assets/sfx/impact/impactPlank_medium_001.ogg +0 -0
  146. package/skills/business/brag/assets/sfx/impact/impactPlank_medium_002.ogg +0 -0
  147. package/skills/business/brag/assets/sfx/impact/impactPlank_medium_003.ogg +0 -0
  148. package/skills/business/brag/assets/sfx/impact/impactPlank_medium_004.ogg +0 -0
  149. package/skills/business/brag/assets/sfx/impact/impactPlate_heavy_000.ogg +0 -0
  150. package/skills/business/brag/assets/sfx/impact/impactPlate_heavy_001.ogg +0 -0
  151. package/skills/business/brag/assets/sfx/impact/impactPlate_heavy_002.ogg +0 -0
  152. package/skills/business/brag/assets/sfx/impact/impactPlate_heavy_003.ogg +0 -0
  153. package/skills/business/brag/assets/sfx/impact/impactPlate_heavy_004.ogg +0 -0
  154. package/skills/business/brag/assets/sfx/impact/impactPlate_light_000.ogg +0 -0
  155. package/skills/business/brag/assets/sfx/impact/impactPlate_light_001.ogg +0 -0
  156. package/skills/business/brag/assets/sfx/impact/impactPlate_light_002.ogg +0 -0
  157. package/skills/business/brag/assets/sfx/impact/impactPlate_light_003.ogg +0 -0
  158. package/skills/business/brag/assets/sfx/impact/impactPlate_light_004.ogg +0 -0
  159. package/skills/business/brag/assets/sfx/impact/impactPlate_medium_000.ogg +0 -0
  160. package/skills/business/brag/assets/sfx/impact/impactPlate_medium_001.ogg +0 -0
  161. package/skills/business/brag/assets/sfx/impact/impactPlate_medium_002.ogg +0 -0
  162. package/skills/business/brag/assets/sfx/impact/impactPlate_medium_003.ogg +0 -0
  163. package/skills/business/brag/assets/sfx/impact/impactPlate_medium_004.ogg +0 -0
  164. package/skills/business/brag/assets/sfx/impact/impactPunch_heavy_000.ogg +0 -0
  165. package/skills/business/brag/assets/sfx/impact/impactPunch_heavy_001.ogg +0 -0
  166. package/skills/business/brag/assets/sfx/impact/impactPunch_heavy_002.ogg +0 -0
  167. package/skills/business/brag/assets/sfx/impact/impactPunch_heavy_003.ogg +0 -0
  168. package/skills/business/brag/assets/sfx/impact/impactPunch_heavy_004.ogg +0 -0
  169. package/skills/business/brag/assets/sfx/impact/impactPunch_medium_000.ogg +0 -0
  170. package/skills/business/brag/assets/sfx/impact/impactPunch_medium_001.ogg +0 -0
  171. package/skills/business/brag/assets/sfx/impact/impactPunch_medium_002.ogg +0 -0
  172. package/skills/business/brag/assets/sfx/impact/impactPunch_medium_003.ogg +0 -0
  173. package/skills/business/brag/assets/sfx/impact/impactPunch_medium_004.ogg +0 -0
  174. package/skills/business/brag/assets/sfx/impact/impactSoft_heavy_000.ogg +0 -0
  175. package/skills/business/brag/assets/sfx/impact/impactSoft_heavy_001.ogg +0 -0
  176. package/skills/business/brag/assets/sfx/impact/impactSoft_heavy_002.ogg +0 -0
  177. package/skills/business/brag/assets/sfx/impact/impactSoft_heavy_003.ogg +0 -0
  178. package/skills/business/brag/assets/sfx/impact/impactSoft_heavy_004.ogg +0 -0
  179. package/skills/business/brag/assets/sfx/impact/impactSoft_medium_000.ogg +0 -0
  180. package/skills/business/brag/assets/sfx/impact/impactSoft_medium_001.ogg +0 -0
  181. package/skills/business/brag/assets/sfx/impact/impactSoft_medium_002.ogg +0 -0
  182. package/skills/business/brag/assets/sfx/impact/impactSoft_medium_003.ogg +0 -0
  183. package/skills/business/brag/assets/sfx/impact/impactSoft_medium_004.ogg +0 -0
  184. package/skills/business/brag/assets/sfx/impact/impactTin_medium_000.ogg +0 -0
  185. package/skills/business/brag/assets/sfx/impact/impactTin_medium_001.ogg +0 -0
  186. package/skills/business/brag/assets/sfx/impact/impactTin_medium_002.ogg +0 -0
  187. package/skills/business/brag/assets/sfx/impact/impactTin_medium_003.ogg +0 -0
  188. package/skills/business/brag/assets/sfx/impact/impactTin_medium_004.ogg +0 -0
  189. package/skills/business/brag/assets/sfx/impact/impactWood_heavy_000.ogg +0 -0
  190. package/skills/business/brag/assets/sfx/impact/impactWood_heavy_001.ogg +0 -0
  191. package/skills/business/brag/assets/sfx/impact/impactWood_heavy_002.ogg +0 -0
  192. package/skills/business/brag/assets/sfx/impact/impactWood_heavy_003.ogg +0 -0
  193. package/skills/business/brag/assets/sfx/impact/impactWood_heavy_004.ogg +0 -0
  194. package/skills/business/brag/assets/sfx/impact/impactWood_light_000.ogg +0 -0
  195. package/skills/business/brag/assets/sfx/impact/impactWood_light_001.ogg +0 -0
  196. package/skills/business/brag/assets/sfx/impact/impactWood_light_002.ogg +0 -0
  197. package/skills/business/brag/assets/sfx/impact/impactWood_light_003.ogg +0 -0
  198. package/skills/business/brag/assets/sfx/impact/impactWood_light_004.ogg +0 -0
  199. package/skills/business/brag/assets/sfx/impact/impactWood_medium_000.ogg +0 -0
  200. package/skills/business/brag/assets/sfx/impact/impactWood_medium_001.ogg +0 -0
  201. package/skills/business/brag/assets/sfx/impact/impactWood_medium_002.ogg +0 -0
  202. package/skills/business/brag/assets/sfx/impact/impactWood_medium_003.ogg +0 -0
  203. package/skills/business/brag/assets/sfx/impact/impactWood_medium_004.ogg +0 -0
  204. package/skills/business/brag/assets/sfx/interface/bong_001.ogg +0 -0
  205. package/skills/business/brag/assets/sfx/interface/click_001.ogg +0 -0
  206. package/skills/business/brag/assets/sfx/interface/click_002.ogg +0 -0
  207. package/skills/business/brag/assets/sfx/interface/click_003.ogg +0 -0
  208. package/skills/business/brag/assets/sfx/interface/click_004.ogg +0 -0
  209. package/skills/business/brag/assets/sfx/interface/click_005.ogg +0 -0
  210. package/skills/business/brag/assets/sfx/interface/drop_001.ogg +0 -0
  211. package/skills/business/brag/assets/sfx/interface/drop_002.ogg +0 -0
  212. package/skills/business/brag/assets/sfx/interface/drop_003.ogg +0 -0
  213. package/skills/business/brag/assets/sfx/interface/error_005.ogg +0 -0
  214. package/skills/business/brag/assets/sfx/interface/error_006.ogg +0 -0
  215. package/skills/business/brag/assets/sfx/interface/glitch_002.ogg +0 -0
  216. package/skills/business/brag/assets/sfx/interface/glitch_004.ogg +0 -0
  217. package/skills/business/brag/assets/sfx/interface/select_008.ogg +0 -0
  218. package/skills/business/brag/assets/sfx/interface/switch_001.ogg +0 -0
  219. package/skills/business/brag/assets/sfx/interface/switch_002.ogg +0 -0
  220. package/skills/business/brag/assets/sfx/interface/switch_004.ogg +0 -0
  221. package/skills/business/brag/assets/sfx/interface/switch_005.ogg +0 -0
  222. package/skills/business/brag/assets/sfx/interface/switch_006.ogg +0 -0
  223. package/skills/business/brag/assets/sfx/interface/switch_007.ogg +0 -0
  224. package/skills/business/brag/assets/sfx/keyboard/keypress-001.wav +0 -0
  225. package/skills/business/brag/assets/sfx/keyboard/keypress-002.wav +0 -0
  226. package/skills/business/brag/assets/sfx/keyboard/keypress-003.wav +0 -0
  227. package/skills/business/brag/assets/sfx/keyboard/keypress-004.wav +0 -0
  228. package/skills/business/brag/assets/sfx/keyboard/keypress-005.wav +0 -0
  229. package/skills/business/brag/assets/sfx/keyboard/keypress-006.wav +0 -0
  230. package/skills/business/brag/assets/sfx/keyboard/keypress-007.wav +0 -0
  231. package/skills/business/brag/assets/sfx/keyboard/keypress-008.wav +0 -0
  232. package/skills/business/brag/assets/sfx/keyboard/keypress-009.wav +0 -0
  233. package/skills/business/brag/assets/sfx/keyboard/keypress-010.wav +0 -0
  234. package/skills/business/brag/assets/sfx/keyboard/keypress-011.wav +0 -0
  235. package/skills/business/brag/assets/sfx/keyboard/keypress-012.wav +0 -0
  236. package/skills/business/brag/assets/sfx/keyboard/keypress-013.wav +0 -0
  237. package/skills/business/brag/assets/sfx/keyboard/keypress-014.wav +0 -0
  238. package/skills/business/brag/assets/sfx/keyboard/keypress-015.wav +0 -0
  239. package/skills/business/brag/assets/sfx/keyboard/keypress-016.wav +0 -0
  240. package/skills/business/brag/assets/sfx/keyboard/keypress-017.wav +0 -0
  241. package/skills/business/brag/assets/sfx/keyboard/keypress-018.wav +0 -0
  242. package/skills/business/brag/assets/sfx/keyboard/keypress-019.wav +0 -0
  243. package/skills/business/brag/assets/sfx/keyboard/keypress-020.wav +0 -0
  244. package/skills/business/brag/assets/sfx/keyboard/keypress-021.wav +0 -0
  245. package/skills/business/brag/assets/sfx/keyboard/keypress-022.wav +0 -0
  246. package/skills/business/brag/assets/sfx/keyboard/keypress-023.wav +0 -0
  247. package/skills/business/brag/assets/sfx/keyboard/keypress-024.wav +0 -0
  248. package/skills/business/brag/assets/sfx/keyboard/keypress-025.wav +0 -0
  249. package/skills/business/brag/assets/sfx/keyboard/keypress-026.wav +0 -0
  250. package/skills/business/brag/assets/sfx/keyboard/keypress-027.wav +0 -0
  251. package/skills/business/brag/assets/sfx/keyboard/keypress-028.wav +0 -0
  252. package/skills/business/brag/assets/sfx/keyboard/keypress-029.wav +0 -0
  253. package/skills/business/brag/assets/sfx/keyboard/keypress-030.wav +0 -0
  254. package/skills/business/brag/assets/sfx/keyboard/keypress-031.wav +0 -0
  255. package/skills/business/brag/assets/sfx/keyboard/keypress-032.wav +0 -0
  256. package/skills/business/brag/assets/sfx/sfx-analysis.json +15584 -0
  257. package/skills/business/brag/assets/sfx/sfx-analysis.md +75 -0
  258. package/skills/business/brag/assets/sfx/ui/click1.ogg +0 -0
  259. package/skills/business/brag/assets/sfx/ui/click2.ogg +0 -0
  260. package/skills/business/brag/assets/sfx/ui/click3.ogg +0 -0
  261. package/skills/business/brag/assets/sfx/ui/click4.ogg +0 -0
  262. package/skills/business/brag/assets/sfx/ui/click5.ogg +0 -0
  263. package/skills/business/brag/assets/sfx/ui/mouseclick1.ogg +0 -0
  264. package/skills/business/brag/assets/sfx/ui/rollover1.ogg +0 -0
  265. package/skills/business/brag/assets/sfx/ui/rollover2.ogg +0 -0
  266. package/skills/business/brag/assets/sfx/ui/rollover4.ogg +0 -0
  267. package/skills/business/brag/assets/sfx/ui/rollover5.ogg +0 -0
  268. package/skills/business/brag/assets/sfx/ui/switch1.ogg +0 -0
  269. package/skills/business/brag/assets/sfx/ui/switch10.ogg +0 -0
  270. package/skills/business/brag/assets/sfx/ui/switch11.ogg +0 -0
  271. package/skills/business/brag/assets/sfx/ui/switch12.ogg +0 -0
  272. package/skills/business/brag/assets/sfx/ui/switch13.ogg +0 -0
  273. package/skills/business/brag/assets/sfx/ui/switch14.ogg +0 -0
  274. package/skills/business/brag/assets/sfx/ui/switch15.ogg +0 -0
  275. package/skills/business/brag/assets/sfx/ui/switch16.ogg +0 -0
  276. package/skills/business/brag/assets/sfx/ui/switch17.ogg +0 -0
  277. package/skills/business/brag/assets/sfx/ui/switch18.ogg +0 -0
  278. package/skills/business/brag/assets/sfx/ui/switch19.ogg +0 -0
  279. package/skills/business/brag/assets/sfx/ui/switch2.ogg +0 -0
  280. package/skills/business/brag/assets/sfx/ui/switch20.ogg +0 -0
  281. package/skills/business/brag/assets/sfx/ui/switch21.ogg +0 -0
  282. package/skills/business/brag/assets/sfx/ui/switch22.ogg +0 -0
  283. package/skills/business/brag/assets/sfx/ui/switch23.ogg +0 -0
  284. package/skills/business/brag/assets/sfx/ui/switch24.ogg +0 -0
  285. package/skills/business/brag/assets/sfx/ui/switch25.ogg +0 -0
  286. package/skills/business/brag/assets/sfx/ui/switch26.ogg +0 -0
  287. package/skills/business/brag/assets/sfx/ui/switch27.ogg +0 -0
  288. package/skills/business/brag/assets/sfx/ui/switch28.ogg +0 -0
  289. package/skills/business/brag/assets/sfx/ui/switch29.ogg +0 -0
  290. package/skills/business/brag/assets/sfx/ui/switch3.ogg +0 -0
  291. package/skills/business/brag/assets/sfx/ui/switch30.ogg +0 -0
  292. package/skills/business/brag/assets/sfx/ui/switch31.ogg +0 -0
  293. package/skills/business/brag/assets/sfx/ui/switch32.ogg +0 -0
  294. package/skills/business/brag/assets/sfx/ui/switch33.ogg +0 -0
  295. package/skills/business/brag/assets/sfx/ui/switch34.ogg +0 -0
  296. package/skills/business/brag/assets/sfx/ui/switch35.ogg +0 -0
  297. package/skills/business/brag/assets/sfx/ui/switch36.ogg +0 -0
  298. package/skills/business/brag/assets/sfx/ui/switch37.ogg +0 -0
  299. package/skills/business/brag/assets/sfx/ui/switch38.ogg +0 -0
  300. package/skills/business/brag/assets/sfx/ui/switch4.ogg +0 -0
  301. package/skills/business/brag/assets/sfx/ui/switch5.ogg +0 -0
  302. package/skills/business/brag/assets/sfx/ui/switch6.ogg +0 -0
  303. package/skills/business/brag/assets/sfx/ui/switch7.ogg +0 -0
  304. package/skills/business/brag/assets/sfx/ui/switch8.ogg +0 -0
  305. package/skills/business/brag/assets/sfx/ui/switch9.ogg +0 -0
  306. package/skills/business/brag/references/audio.md +307 -0
  307. package/skills/business/brag/references/step-1-inspect.md +133 -0
  308. package/skills/business/brag/references/step-2-plan.md +234 -0
  309. package/skills/business/brag/references/step-3-compose.md +210 -0
  310. package/skills/business/brag/references/step-4-deliver.md +168 -0
  311. package/skills/business/brag/references/tones.md +231 -0
  312. package/skills/business/brag/scripts/analyze_music_cues.py +309 -0
  313. package/skills/business/brag/scripts/pyproject.toml +14 -0
  314. package/skills/business/brag/scripts/uv.lock +819 -0
  315. package/skills/business/copywriting/SKILL.md +178 -0
  316. package/skills/business/customer-research/SKILL.md +259 -0
  317. package/skills/business/freelancing/SKILL.md +679 -0
  318. package/skills/business/launch/SKILL.md +273 -0
  319. package/skills/business/marketing-psychology/SKILL.md +364 -0
  320. package/skills/business/pricing/SKILL.md +233 -0
  321. package/skills/business/resume-revamp-jake-ats/SKILL.md +64 -0
  322. package/skills/business/startup-founder/SKILL.md +400 -0
  323. package/skills/business/startup-founder/references/funding.md +48 -0
  324. package/skills/business/startup-founder/references/further-reading.md +132 -0
  325. package/skills/business/startup-founder/references/gtm-tools.md +57 -0
  326. package/skills/business/startup-founder/references/legal-india.md +36 -0
  327. package/skills/business/startup-founder/references/marketing/README.md +16 -0
  328. package/skills/business/startup-founder/references/marketing/cold-email.md +172 -0
  329. package/skills/business/startup-founder/references/marketing/competitors.md +245 -0
  330. package/skills/business/startup-founder/references/marketing/customer-research.md +276 -0
  331. package/skills/business/startup-founder/references/marketing/free-tools.md +168 -0
  332. package/skills/business/startup-founder/references/marketing/launch.md +343 -0
  333. package/skills/business/startup-founder/references/marketing/marketing-plan.md +270 -0
  334. package/skills/business/startup-founder/references/marketing/pricing.md +237 -0
  335. package/skills/business/startup-founder/references/marketing/product-marketing.md +250 -0
  336. package/skills/business/startup-founder/references/validation.md +267 -0
  337. package/skills/devops/deployments/SKILL.md +339 -0
  338. package/skills/devops/git-ci/SKILL.md +372 -0
  339. package/skills/devops/performance/SKILL.md +523 -0
  340. package/skills/devops/testing/SKILL.md +558 -0
  341. package/skills/engineering/code-review/SKILL.md +149 -0
  342. package/skills/engineering/coding-standards/SKILL.md +229 -0
  343. package/skills/engineering/product-engineering/SKILL.md +219 -0
  344. package/skills/engineering/senior-engineer-prompts/SKILL.md +145 -0
  345. package/skills/engineering/tdd-workflow/SKILL.md +178 -0
  346. package/skills/engineering/verification-loop/SKILL.md +199 -0
  347. package/skills/nerdev/nerdev-abstraction/SKILL.md +412 -0
  348. package/skills/nerdev/nerdev-docs/SKILL.md +527 -0
  349. package/skills/nerdev/nerdev-docs/templates/adr-template.md +39 -0
  350. package/skills/nerdev/nerdev-docs/templates/contributing-template.md +140 -0
  351. package/skills/nerdev/nerdev-docs/templates/deploy-template.md +426 -0
  352. package/skills/nerdev/nerdev-docs/templates/design-template.md +105 -0
  353. package/skills/nerdev/nerdev-docs/templates/incident-template.md +66 -0
  354. package/skills/nerdev/nerdev-monorepo/SKILL.md +522 -0
  355. package/skills/quality/output-skill/SKILL.md +49 -0
  356. package/skills/quality/unslop/SKILL.md +67 -0
  357. package/skills/ui/animaxxing/SKILL.md +58 -0
  358. package/skills/ui/animaxxing/agents/openai.yaml +7 -0
  359. package/skills/ui/animaxxing/references/effect-restoration.md +26 -0
  360. package/skills/ui/animaxxing/references/motion-vocabulary.md +142 -0
  361. package/skills/ui/animaxxing/references/recipes/blast-off.md +119 -0
  362. package/skills/ui/animaxxing/references/recipes/particle-effects.md +718 -0
  363. package/skills/ui/animaxxing/references/recipes/particle-field.md +428 -0
  364. package/skills/ui/animaxxing/references/recipes/route-letters.md +205 -0
  365. package/skills/ui/animaxxing/references/recipes/speak-in.md +181 -0
  366. package/skills/ui/animaxxing/references/recipes/split-entrances.md +345 -0
  367. package/skills/ui/animaxxing/references/recipes/wave.md +144 -0
  368. package/skills/ui/animaxxing/references/text-stability.md +68 -0
  369. package/skills/ui/animaxxing/references/verification.md +44 -0
  370. package/skills/ui/ask-animation/SKILL.md +178 -0
  371. package/skills/ui/ask-base-ui/SKILL.md +400 -0
  372. package/skills/ui/ask-cmdk/SKILL.md +315 -0
  373. package/skills/ui/ask-command-menu/SKILL.md +262 -0
  374. package/skills/ui/ask-drawer/SKILL.md +235 -0
  375. package/skills/ui/ask-form/SKILL.md +229 -0
  376. package/skills/ui/ask-gsap/SKILL.md +435 -0
  377. package/skills/ui/ask-modal/SKILL.md +145 -0
  378. package/skills/ui/ask-motion/SKILL.md +339 -0
  379. package/skills/ui/ask-rhf/SKILL.md +388 -0
  380. package/skills/ui/ask-sonner/API.md +64 -0
  381. package/skills/ui/ask-sonner/SKILL.md +88 -0
  382. package/skills/ui/ask-table/SKILL.md +253 -0
  383. package/skills/ui/ask-tanstack-table/SKILL.md +490 -0
  384. package/skills/ui/ask-toast/SKILL.md +163 -0
  385. package/skills/ui/ask-vaul/SKILL.md +291 -0
  386. package/skills/ui/ask-virtual-list/SKILL.md +304 -0
  387. package/skills/ui/ask-virtuoso/SKILL.md +332 -0
  388. package/skills/ui/email-craft/SKILL.md +258 -0
  389. package/skills/ui/frontend-craftsmanship/SKILL.md +462 -0
  390. package/skills/ui/gsap-astro/SKILL.md +56 -0
  391. package/skills/ui/gsap-astro/agents/openai.yaml +7 -0
  392. package/skills/ui/gsap-astro/references/client-router-navigation.md +139 -0
  393. package/skills/ui/gsap-astro/references/initialization.md +87 -0
  394. package/skills/ui/gsap-astro/references/motion-system.md +152 -0
  395. package/skills/ui/gsap-astro/references/scripts-and-islands.md +65 -0
  396. package/skills/ui/gsap-astro/references/verification.md +44 -0
  397. package/skills/ui/gsap-core/SKILL.md +254 -0
  398. package/skills/ui/gsap-frameworks/SKILL.md +266 -0
  399. package/skills/ui/gsap-nextjs/SKILL.md +51 -0
  400. package/skills/ui/gsap-nextjs/agents/openai.yaml +7 -0
  401. package/skills/ui/gsap-nextjs/references/app-router-navigation.md +189 -0
  402. package/skills/ui/gsap-nextjs/references/initialization.md +87 -0
  403. package/skills/ui/gsap-nextjs/references/motion-system.md +158 -0
  404. package/skills/ui/gsap-nextjs/references/verification.md +40 -0
  405. package/skills/ui/gsap-nuxt/SKILL.md +56 -0
  406. package/skills/ui/gsap-nuxt/agents/openai.yaml +7 -0
  407. package/skills/ui/gsap-nuxt/references/initialization.md +87 -0
  408. package/skills/ui/gsap-nuxt/references/motion-system.md +161 -0
  409. package/skills/ui/gsap-nuxt/references/navigation.md +145 -0
  410. package/skills/ui/gsap-nuxt/references/page-transitions.md +107 -0
  411. package/skills/ui/gsap-nuxt/references/verification.md +42 -0
  412. package/skills/ui/gsap-performance/SKILL.md +79 -0
  413. package/skills/ui/gsap-plugins/SKILL.md +433 -0
  414. package/skills/ui/gsap-react/SKILL.md +136 -0
  415. package/skills/ui/gsap-react-router/SKILL.md +55 -0
  416. package/skills/ui/gsap-react-router/agents/openai.yaml +7 -0
  417. package/skills/ui/gsap-react-router/references/initialization.md +87 -0
  418. package/skills/ui/gsap-react-router/references/motion-system.md +158 -0
  419. package/skills/ui/gsap-react-router/references/react-router-navigation.md +165 -0
  420. package/skills/ui/gsap-react-router/references/route-lifetime.md +74 -0
  421. package/skills/ui/gsap-react-router/references/verification.md +42 -0
  422. package/skills/ui/gsap-scrolltrigger/SKILL.md +296 -0
  423. package/skills/ui/gsap-sveltekit/SKILL.md +54 -0
  424. package/skills/ui/gsap-sveltekit/agents/openai.yaml +7 -0
  425. package/skills/ui/gsap-sveltekit/references/initialization.md +87 -0
  426. package/skills/ui/gsap-sveltekit/references/motion-system.md +156 -0
  427. package/skills/ui/gsap-sveltekit/references/page-lifetime.md +63 -0
  428. package/skills/ui/gsap-sveltekit/references/sveltekit-navigation.md +160 -0
  429. package/skills/ui/gsap-sveltekit/references/verification.md +41 -0
  430. package/skills/ui/gsap-tanstack-router/SKILL.md +56 -0
  431. package/skills/ui/gsap-tanstack-router/agents/openai.yaml +7 -0
  432. package/skills/ui/gsap-tanstack-router/references/initialization.md +87 -0
  433. package/skills/ui/gsap-tanstack-router/references/motion-system.md +160 -0
  434. package/skills/ui/gsap-tanstack-router/references/route-lifetime.md +66 -0
  435. package/skills/ui/gsap-tanstack-router/references/tanstack-navigation.md +156 -0
  436. package/skills/ui/gsap-tanstack-router/references/verification.md +41 -0
  437. package/skills/ui/gsap-timeline/SKILL.md +107 -0
  438. package/skills/ui/gsap-utils/SKILL.md +284 -0
  439. package/skills/ui/gsap-vanilla/SKILL.md +63 -0
  440. package/skills/ui/gsap-vanilla/agents/openai.yaml +7 -0
  441. package/skills/ui/gsap-vanilla/references/cross-document-navigation.md +54 -0
  442. package/skills/ui/gsap-vanilla/references/initialization.md +87 -0
  443. package/skills/ui/gsap-vanilla/references/motion-system.md +150 -0
  444. package/skills/ui/gsap-vanilla/references/page-load.md +96 -0
  445. package/skills/ui/gsap-vanilla/references/spa-navigation.md +70 -0
  446. package/skills/ui/gsap-vanilla/references/verification.md +41 -0
  447. package/skills/ui/house-style/SKILL.md +366 -0
  448. package/skills/ui/imagegen/SKILL.md +49 -0
  449. package/skills/ui/imagegen/references/brandkit.md +48 -0
  450. package/skills/ui/imagegen/references/image-to-code.md +56 -0
  451. package/skills/ui/imagegen/references/mobile.md +58 -0
  452. package/skills/ui/imagegen/references/web.md +63 -0
  453. package/skills/ui/impeccable/SKILL.md +116 -0
  454. package/skills/ui/impeccable/reference/adapt.md +318 -0
  455. package/skills/ui/impeccable/reference/adapt.native.md +58 -0
  456. package/skills/ui/impeccable/reference/android.md +46 -0
  457. package/skills/ui/impeccable/reference/animate.md +89 -0
  458. package/skills/ui/impeccable/reference/audit.md +137 -0
  459. package/skills/ui/impeccable/reference/audit.native.md +139 -0
  460. package/skills/ui/impeccable/reference/bolder.md +33 -0
  461. package/skills/ui/impeccable/reference/clarify.md +94 -0
  462. package/skills/ui/impeccable/reference/colorize.md +86 -0
  463. package/skills/ui/impeccable/reference/craft-floor.md +44 -0
  464. package/skills/ui/impeccable/reference/craft.md +5 -0
  465. package/skills/ui/impeccable/reference/critique.md +806 -0
  466. package/skills/ui/impeccable/reference/degraded/asset-producer.md +37 -0
  467. package/skills/ui/impeccable/reference/degraded/documenter.md +24 -0
  468. package/skills/ui/impeccable/reference/degraded/finish-reviewer.md +38 -0
  469. package/skills/ui/impeccable/reference/degraded/manual-edit-applier.md +92 -0
  470. package/skills/ui/impeccable/reference/delight.md +70 -0
  471. package/skills/ui/impeccable/reference/distill.md +111 -0
  472. package/skills/ui/impeccable/reference/doctor.md +54 -0
  473. package/skills/ui/impeccable/reference/document.md +416 -0
  474. package/skills/ui/impeccable/reference/extract.md +69 -0
  475. package/skills/ui/impeccable/reference/generate.md +101 -0
  476. package/skills/ui/impeccable/reference/harden.md +345 -0
  477. package/skills/ui/impeccable/reference/hooks.md +111 -0
  478. package/skills/ui/impeccable/reference/init.md +131 -0
  479. package/skills/ui/impeccable/reference/ios.md +51 -0
  480. package/skills/ui/impeccable/reference/layout.md +84 -0
  481. package/skills/ui/impeccable/reference/live-setup.md +104 -0
  482. package/skills/ui/impeccable/reference/live.md +325 -0
  483. package/skills/ui/impeccable/reference/new-work.md +145 -0
  484. package/skills/ui/impeccable/reference/onboard.md +234 -0
  485. package/skills/ui/impeccable/reference/operate.md +61 -0
  486. package/skills/ui/impeccable/reference/optimize.md +258 -0
  487. package/skills/ui/impeccable/reference/overdrive.md +127 -0
  488. package/skills/ui/impeccable/reference/polish.md +105 -0
  489. package/skills/ui/impeccable/reference/quieter.md +99 -0
  490. package/skills/ui/impeccable/reference/routing.md +24 -0
  491. package/skills/ui/impeccable/reference/shape.md +59 -0
  492. package/skills/ui/impeccable/reference/typeset.md +80 -0
  493. package/skills/ui/impeccable/reference/visualize.md +46 -0
  494. package/skills/ui/impeccable/scripts/VERSION +1 -0
  495. package/skills/ui/impeccable/scripts/command-metadata.json +98 -0
  496. package/skills/ui/impeccable/scripts/data/font-index-failures.json +121 -0
  497. package/skills/ui/impeccable/scripts/data/font-index.json +1 -0
  498. package/skills/ui/impeccable/scripts/impeccable +206 -0
  499. package/skills/ui/impeccable/scripts/impeccable.cmd +214 -0
  500. package/skills/ui/impeccable/scripts/live-browser-dom.js +167 -0
  501. package/skills/ui/impeccable/scripts/live-browser-ignores.js +242 -0
  502. package/skills/ui/impeccable/scripts/live-browser-session.js +144 -0
  503. package/skills/ui/impeccable/scripts/live-browser.js +13510 -0
  504. package/skills/ui/impeccable/scripts/modern-screenshot.umd.js +14 -0
  505. package/skills/ui/motion/SKILL.md +207 -0
  506. package/skills/ui/pick-ui-library/SKILL.md +85 -0
  507. package/skills/ui/product-messaging/SKILL.md +163 -0
  508. package/skills/ui/product-site/SKILL.md +465 -0
  509. package/skills/ui/prototype/PICKER.md +197 -0
  510. package/skills/ui/prototype/SKILL.md +98 -0
  511. package/skills/ui/refero-design/SKILL.md +534 -0
  512. package/skills/ui/refero-design/agents/openai.yaml +4 -0
  513. package/skills/ui/refero-design/references/anti-ai-slop.md +292 -0
  514. package/skills/ui/refero-design/references/color.md +563 -0
  515. package/skills/ui/refero-design/references/copywriting.md +222 -0
  516. package/skills/ui/refero-design/references/craft-details.md +525 -0
  517. package/skills/ui/refero-design/references/example-workflow.md +264 -0
  518. package/skills/ui/refero-design/references/icons.md +166 -0
  519. package/skills/ui/refero-design/references/mcp-tools.md +258 -0
  520. package/skills/ui/refero-design/references/motion.md +504 -0
  521. package/skills/ui/refero-design/references/typography.md +737 -0
  522. package/skills/ui/refero-design/references/visual-workflow.md +105 -0
  523. package/skills/ui/style-animaxxing/SKILL.md +48 -0
  524. package/skills/ui/style-animaxxing/agents/openai.yaml +7 -0
  525. package/skills/ui/style-animaxxing/references/motion-vocabulary.md +51 -0
  526. package/skills/ui/style-animaxxing/references/tokens.md +288 -0
  527. package/skills/ui/style-animaxxing/references/typography-and-layout.md +149 -0
  528. package/skills/ui/style-animaxxing/references/verification.md +38 -0
  529. package/skills/ui/typography-picker/SKILL.md +305 -0
  530. package/skills/ui/ui-core/SKILL.md +345 -0
  531. package/skills/ui/ui-core/references/accessibility.md +85 -0
  532. package/skills/ui/ui-core/references/build.md +666 -0
  533. package/skills/ui/ui-core/references/copy.md +70 -0
  534. package/skills/ui/ui-core/references/dark-mode.md +76 -0
  535. package/skills/ui/ui-core/references/direction.md +99 -0
  536. package/skills/ui/ui-core/references/redesign.md +74 -0
  537. package/skills/ui/ui-core/references/responsive.md +77 -0
  538. package/skills/ui/ui-core/references/styles.md +42 -0
  539. package/skills/ui/ui-core/references/system.md +190 -0
  540. package/skills/ui/ui-core/references/verify.md +37 -0
  541. package/skills/ui/ui-engineering/SKILL.md +436 -0
  542. package/skills/ui/ui-engineering/references/avatars.md +74 -0
  543. package/skills/ui/ui-engineering/references/card-patterns.md +66 -0
  544. package/skills/ui/ui-engineering/references/floating-actions.md +65 -0
  545. package/skills/ui/ui-engineering/references/navigation.md +81 -0
  546. package/skills/ui/ui-engineering/references/overlays.md +74 -0
  547. package/skills/ui/ui-engineering/references/pagination.md +71 -0
  548. package/skills/ui/ui-engineering/references/progress-indicators.md +77 -0
  549. package/skills/ui/ui-engineering/references/quality-bar.md +293 -0
  550. package/skills/ui/ui-engineering/references/search.md +68 -0
  551. package/skills/ui/ui-engineering/references/tailwind-architecture.md +81 -0
  552. package/skills/ui/ui-theme-picker/SKILL.md +522 -0
  553. package/skills/ui/ui-theme-picker/references/component-sources.md +223 -0
  554. package/skills/ui/ui-theme-picker/references/styles.md +298 -0
  555. package/skills/ui/vitepress-docs/SKILL.md +439 -0
  556. package/skills/ui/vitepress-docs/references/components.md +333 -0
  557. package/skills/ui/vitepress-docs/references/layout.md +128 -0
  558. package/skills/ui/vitepress-docs/references/tokens.md +87 -0
  559. package/skills/ui/vitepress-docs/references/typography.md +76 -0
  560. package/skills/workflow/careful/SKILL.md +48 -0
  561. package/skills/workflow/context-restore/SKILL.md +69 -0
  562. package/skills/workflow/context-save/SKILL.md +96 -0
  563. package/skills/workflow/health/SKILL.md +99 -0
  564. package/skills/workflow/learn/SKILL.md +95 -0
  565. package/skills/workflow/office-hours/SKILL.md +136 -0
  566. package/skills/workflow/ship/SKILL.md +95 -0
  567. package/vendor.json +80 -0
@@ -0,0 +1,527 @@
1
+ name: nerdev-docs
2
+ description: "Development-integrated docs: ADRs, design docs, incident postmortems, deploy runbooks with templates"
3
+
4
+ # nerdev-docs Skill
5
+
6
+ Development-integrated documentation. Docs that live with code, generate from code, evolve with code, and serve both humans and AI agents.
7
+
8
+ > **nerdev-co skill family:** This is one of three core skills. See also [`nerdev-monorepo`](../nerdev-monorepo/SKILL.md) for Turborepo + Bun monorepo structure, CI/CD, and deployment patterns, and [`nerdev-abstraction`](../nerdev-abstraction/SKILL.md) for interface-first, registry-based plug-and-play patterns. All three work together for nerdev-co projects.
9
+ >
10
+ > **AI agent docs:** `AGENTS.md` generation uses the [`agent-docs-writer`](../agent-docs-writer/SKILL.md) skill (referenced in Required Document Types).
11
+
12
+
13
+ ## Documentation Philosophy
14
+
15
+ **Documentation is not separate from development.** It's part of the same workflow:
16
+ - Written **before** or **during** implementation (not after)
17
+ - Generated **from** source of truth (code, schemas, configs)
18
+ - Versioned **with** code (same repo, same PR)
19
+ - Consumed **by** both humans and AI agents
20
+
21
+
22
+ ## Required Document Types
23
+
24
+ ### 1. AGENTS.md (AI Agent Guidance) -- **MANDATORY**
25
+ Generated via `agent-docs-writer` skill. Every project root must have this.
26
+
27
+ ```
28
+ project/
29
+ ├── AGENTS.md # ← AI agent onboarding (generated)
30
+ ├── README.md # ← Human onboarding
31
+ └── ...
32
+ ```
33
+
34
+ ### 2. Architecture Decision Records (ADRs)
35
+ **Location**: `docs/adr/YYYY-MM-DD-short-title.md`
36
+
37
+ ```markdown
38
+ # ADR 001: Use TanStack Router over Next.js App Router
39
+
40
+ ## Status
41
+ Accepted
42
+
43
+ ## Context
44
+ Need file-based routing with type safety for canvas-heavy app.
45
+ Next.js SSR adds bundle overhead and hydration mismatches.
46
+
47
+ ## Decision
48
+ Use Vite + TanStack Router for frontend.
49
+
50
+ ## Consequences
51
+ - Smaller client bundle (~40% reduction)
52
+ - Type-safe routes with search param validation
53
+ - No SSR for canvas (client-only rendering)
54
+ - Migration path from Next.js documented
55
+
56
+ ## References
57
+ - [TanStack Router vs Next.js](https://tanstack.com/router/latest/docs/framework/nextjs)
58
+ - PR #234: Frontend migration
59
+ ```
60
+
61
+ **Template**: `docs/adr/template.md`
62
+
63
+ ### 3. Design Docs (Pre-Implementation)
64
+ **Location**: `docs/design/feature-name.md`
65
+
66
+ ```markdown
67
+ # Design: Real-time Cursor Sync
68
+
69
+ ## Problem
70
+ Users need to see collaborators' cursors in real-time.
71
+
72
+ ## Requirements
73
+ - <50ms latency local → remote
74
+ - Handle 50+ concurrent users per room
75
+ - Graceful degradation on reconnect
76
+
77
+ ## Proposed Solution
78
+ ```
79
+ User moves cursor
80
+ → Throttled (16ms) WS message
81
+ → Server broadcasts to room
82
+ → Clients render with interpolation
83
+ → Reconnect: full state sync
84
+ ```
85
+
86
+ ## Data Model
87
+ ```typescript
88
+ interface CursorMessage {
89
+ type: 'cursor';
90
+ payload: {
91
+ userId: string;
92
+ userName: string;
93
+ x: number;
94
+ y: number;
95
+ timestamp: number;
96
+ };
97
+ }
98
+ ```
99
+
100
+ ## API Contract
101
+ - WS: `cursor` message type
102
+ - HTTP: `GET /api/rooms/:id/cursors` (initial load)
103
+
104
+ ## Testing Strategy
105
+ - Unit: throttle, interpolation logic
106
+ - Integration: WS broadcast with 10 clients
107
+ - E2E: Two browsers, verify cursor visibility
108
+
109
+ ## Rollout
110
+ - Feature flag: `FEATURE_CURSOR_SYNC`
111
+ - Canary: 10% of rooms
112
+ - Metrics: WS message rate, latency p95
113
+ ```
114
+
115
+ ### 4. Architecture Minimap (Visual Reference)
116
+ **Location**: `ARCHITECTURE_MINIMAP.md` (root)
117
+
118
+ ```markdown
119
+ # Architecture Minimap
120
+
121
+ ## System Overview
122
+ ```mermaid
123
+ flowchart LR
124
+ subgraph Client
125
+ FE[Frontend :5173]
126
+ end
127
+ subgraph Server
128
+ HTTP[HTTP API :3001]
129
+ WS[WS Server :8080]
130
+ DB[(PostgreSQL)]
131
+ REDIS[(Redis)]
132
+ end
133
+ FE -->|REST| HTTP
134
+ FE -->|WS| WS
135
+ HTTP --> DB
136
+ WS --> REDIS
137
+ WS --> DB
138
+ ```
139
+
140
+ ## Data Flow: Shape Persistence
141
+ ```mermaid
142
+ sequenceDiagram
143
+ participant User
144
+ participant FE
145
+ participant WS
146
+ participant HTTP
147
+ participant DB
148
+ User->>FE: Draw shape
149
+ FE->>FE: Compute diff
150
+ FE->>WS: shape-diff
151
+ WS->>FE: Broadcast diff
152
+ FE->>HTTP: Debounced save (1.5s)
153
+ HTTP->>DB: Upsert with version check
154
+ ```
155
+
156
+ ## Service Map
157
+ | Service | Port | Protocol | Responsibility |
158
+ |---------|------|----------|----------------|
159
+ | Frontend | 5173 | HTTP/WS | Canvas, UI, Auth |
160
+ | HTTP API | 3001 | REST | Auth, Rooms, Shapes |
161
+ | WS Server | 8080 | WS | Real-time sync, Presence |
162
+ ```
163
+
164
+ ### 5. Feature Timeline / Changelog
165
+ **Location**: `docs/features.md`
166
+
167
+ ```markdown
168
+ # Feature Timeline
169
+
170
+ ## Phase 1: Bootstrap (Jan 2025)
171
+ - [x] Monorepo scaffolding (Turborepo + Bun)
172
+ - [x] HTTP + WS server skeletons
173
+ - [x] Frontend Vite + TanStack Router setup
174
+ - [x] Prisma schema + Neon connection
175
+
176
+ ## Phase 2: Core Canvas (Jul 2025)
177
+ - [x] Canvas engine with Rough.js
178
+ - [x] Tools: Pencil, Rectangle, Ellipse, Arrow, Line, Text
179
+ - [x] Undo/Redo (delta-based, cap 100)
180
+ - [x] Export: PNG, SVG, JSON
181
+
182
+ ## Phase 3: Auth & Rooms (Jul 2025)
183
+ - [x] Signup/Signin with bcrypt
184
+ - [x] Session cookies (httpOnly)
185
+ - [x] Room CRUD (create, join via slug)
186
+ - [x] Role-based access (owner, editor, viewer)
187
+
188
+ ## Phase 4: Real-time Sync (Jul 2025)
189
+ - [x] WebSocket server (Bun.serve)
190
+ - [x] Diff-based broadcasting
191
+ - [x] Cursor sync with interpolation
192
+ - [x] Reconnection with full-state sync
193
+
194
+ ## Phase 5: Production Hardening (Aug 2026)
195
+ - [x] Optimistic concurrency (version field)
196
+ - [x] CI/CD pipeline (GitHub Actions)
197
+ - [x] PM2 + Nginx deployment
198
+ - [x] Incident documentation process
199
+ ```
200
+
201
+ ### 6. Incident Postmortems
202
+ **Location**: `docs/incidents/YYYY-MM-DD-incident-name.md`
203
+
204
+ ```markdown
205
+ # Incident: WebSocket Connection Storm (2026-08-15)
206
+
207
+ ## Summary
208
+ WS server CPU hit 100%, 500+ connections dropped, 5min recovery.
209
+
210
+ ## Timeline
211
+ - 14:22: Deploy v2.3.1 (new cursor throttling)
212
+ - 14:23: CPU spike observed
213
+ - 14:25: Alert fired (CPU > 80%)
214
+ - 14:27: Manual restart WS server
215
+ - 14:28: Service restored
216
+
217
+ ## Root Cause
218
+ Cursor throttling used `setInterval` per connection instead of shared timer.
219
+ 500 connections = 500 intervals = event loop saturation.
220
+
221
+ ## Fix
222
+ ```typescript
223
+ // Before (broken)
224
+ connection.on('cursor', () => {
225
+ setInterval(sendCursor, 16); // Per connection!
226
+ });
227
+
228
+ // After (fixed)
229
+ const cursorBroadcaster = setInterval(() => {
230
+ rooms.forEach(room => broadcastCursors(room));
231
+ }, 16);
232
+ ```
233
+
234
+ ## Prevention
235
+ - [x] Load test WS with 1000 connections
236
+ - [x] Add CPU/memory alerts per process
237
+ - [x] Code review checklist: no per-connection intervals
238
+ - [x] Document WS scaling limits in ARCHITECTURE_MINIMAP.md
239
+ ```
240
+
241
+ ### 7. Deployment Runbook
242
+ **Location**: `deploy.md` (root)
243
+
244
+ ```markdown
245
+ # Deployment Runbook
246
+
247
+ ## Prerequisites
248
+ - AWS EC2 (t3.small minimum)
249
+ - Neon PostgreSQL branch
250
+ - Domain + Certbot SSL
251
+
252
+ ## First-Time Setup
253
+ ```bash
254
+ # On EC2
255
+ sudo apt update && sudo apt install -y nginx certbot python3-certbot-nginx pm2
256
+ git clone https://github.com/nerdev-co/project.git
257
+ cd project
258
+ cp .env.example .env # Fill in values
259
+ bun install
260
+ bun run build
261
+ pm2 start ecosystem.config.json
262
+ sudo nginx -t && sudo systemctl reload nginx
263
+ sudo certbot --nginx -d app.example.com
264
+ ```
265
+
266
+ ## Routine Deploy (via GitHub Actions)
267
+ 1. Push to `main` → CI runs
268
+ 2. On success → Deploy workflow triggers
269
+ 3. Workflow: `scp dist/` → `bun install` → `prisma migrate deploy` → `pm2 reload all`
270
+
271
+ ## Rollback
272
+ ```bash
273
+ pm2 reload all --update-env # If env changed
274
+ pm2 restart all # Quick restart
275
+ git revert <commit> && push # Code rollback
276
+ ```
277
+
278
+ ## Troubleshooting
279
+ | Symptom | Check | Fix |
280
+ |---------|-------|-----|
281
+ | 502 Bad Gateway | `pm2 list` | `pm2 restart all` |
282
+ | WS connection fails | `nginx error.log` | Check proxy_pass / upgrade headers |
283
+ | DB migration fails | `pm2 logs http-backend` | `prisma migrate resolve --rolled-back` |
284
+ ```
285
+
286
+ ### 8. API Contracts (Generated)
287
+ **Location**: `openapi.yaml` (root) + `asyncapi.yaml` (if event-driven)
288
+
289
+ ```bash
290
+ # Generate from code
291
+ bun run openapi:gen # From Elysia routes
292
+ bun run asyncapi:gen # From event definitions
293
+ ```
294
+
295
+ ### 9. Contribution Guide
296
+ **Location**: `CONTRIBUTING.md` (root)
297
+
298
+ ```markdown
299
+ # Contributing
300
+
301
+ ## Development Setup
302
+ ```bash
303
+ bun install
304
+ cp .env.example .env
305
+ docker compose up -d db redis
306
+ bunx prisma migrate dev
307
+ bun run dev
308
+ ```
309
+
310
+ ## Workflow
311
+ 1. Create issue or pick existing
312
+ 2. Branch: `feat/short-description` or `fix/short-description`
313
+ 3. Write design doc (if new feature): `docs/design/feature.md`
314
+ 4. Implement with tests
315
+ 5. Update ADR if architecture decision
316
+ 6. Update feature timeline
317
+ 7. PR: description links issue + design doc
318
+ 8. CI must pass (typecheck, lint, build, test)
319
+
320
+ ## Code Standards
321
+ - camelCase files/functions, PascalCase types
322
+ - JSDoc on all exports
323
+ - No `any` -- use `unknown` or proper types
324
+ - Shared code in `packages/`
325
+ - Diff-based WS sync (no full state)
326
+ ```
327
+
328
+
329
+ ## Generation Scripts (package.json)
330
+
331
+ ```json
332
+ {
333
+ "scripts": {
334
+ "docs:gen": "bun run scripts/generate-docs.ts",
335
+ "openapi:gen": "bun run scripts/generate-openapi.ts",
336
+ "asyncapi:gen": "bun run scripts/generate-asyncapi.ts",
337
+ "adr:new": "bun run scripts/new-adr.ts",
338
+ "design:new": "bun run scripts/new-design.ts",
339
+ "incident:new": "bun run scripts/new-incident.ts"
340
+ }
341
+ }
342
+ ```
343
+
344
+ ### Generate ADR Script
345
+ ```typescript
346
+ // scripts/new-adr.ts
347
+ const title = process.argv[2];
348
+ if (!title) {
349
+ console.error('Usage: bun run adr:new "short title"');
350
+ process.exit(1);
351
+ }
352
+ const date = new Date().toISOString().split('T')[0];
353
+ const slug = title.toLowerCase().replace(/[^a-z0-9]+/g, '-');
354
+ const filename = `docs/adr/${date}-${slug}.md`;
355
+ const template = await Bun.file('docs/adr/template.md').text();
356
+ const content = template
357
+ .replace('{{TITLE}}', title)
358
+ .replace('{{DATE}}', date)
359
+ .replace('{{NUMBER}}', String(await getNextAdrNumber()).padStart(3, '0'));
360
+ await Bun.write(filename, content);
361
+ console.log(`Created ${filename}`);
362
+ ```
363
+
364
+ ### Generate Design Doc Script
365
+ ```typescript
366
+ // scripts/new-design.ts
367
+ const feature = process.argv[2];
368
+ if (!feature) {
369
+ console.error('Usage: bun run design:new "feature name"');
370
+ process.exit(1);
371
+ }
372
+ const filename = `docs/design/${feature.toLowerCase().replace(/\s+/g, '-')}.md`;
373
+ const template = await Bun.file('docs/design/template.md').text();
374
+ await Bun.write(filename, template.replace('{{FEATURE}}', feature));
375
+ console.log(`Created ${filename}`);
376
+ ```
377
+
378
+
379
+ ## Documentation Linting
380
+
381
+ ```yaml
382
+ # .github/workflows/docs.yml
383
+ jobs:
384
+ docs-lint:
385
+ runs-on: ubuntu-latest
386
+ steps:
387
+ - uses: actions/checkout@v4
388
+ - uses: oven-sh/setup-bun@v1
389
+ - run: bun install
390
+ - run: bun run docs:lint # markdownlint + link check
391
+
392
+ docs-generate:
393
+ runs-on: ubuntu-latest
394
+ needs: docs-lint
395
+ steps:
396
+ - uses: actions/checkout@v4
397
+ - uses: oven-sh/setup-bun@v1
398
+ - run: bun install
399
+ - run: bun run docs:gen
400
+ - run: bun run openapi:gen
401
+ - uses: actions/upload-artifact@v4
402
+ with:
403
+ name: generated-docs
404
+ path: docs/generated/
405
+ ```
406
+
407
+ ### Markdown Lint Config
408
+ ```json
409
+ // .markdownlint.json
410
+ {
411
+ "MD013": false, // Line length
412
+ "MD024": { "siblings_only": true }, // Duplicate headings
413
+ "MD033": false, // Inline HTML (for Mermaid)
414
+ "MD041": false // First line heading
415
+ }
416
+ ```
417
+
418
+
419
+ ## AI-Agent Consumption Patterns
420
+
421
+ ### AGENTS.md Structure (from agent-docs-writer)
422
+ ```markdown
423
+ # AGENTS.md
424
+
425
+ ## Project Overview
426
+ One-paragraph summary + architecture diagram.
427
+
428
+ ## Quick Start
429
+ Commands to run dev, build, test.
430
+
431
+ ## Key Conventions
432
+ - Naming, file structure, patterns
433
+
434
+ ## Common Tasks
435
+ - "Add a new tool" → steps + files to touch
436
+ - "Add API endpoint" → steps + files to touch
437
+ - "Debug WS issue" → logs + endpoints
438
+
439
+ ## Architecture Map
440
+ Mermaid diagram + service table.
441
+
442
+ ## Gotchas
443
+ - "Don't import Prisma directly in routes"
444
+ - "WS messages must be discriminated unions"
445
+ ```
446
+
447
+ ### Code Annotations for AI
448
+ ```typescript
449
+ /**
450
+ * @ai-context This is the main canvas rendering loop.
451
+ * @ai-side-effect Mutates `dirtyRegions` for partial redraw.
452
+ * @ai-related-files packages/core/interfaces/tool.ts, apps/frontend/src/draw/tools/*
453
+ */
454
+ export function renderFrame(context: RenderContext): void {
455
+ // ...
456
+ }
457
+ ```
458
+
459
+
460
+ ## Documentation Checklist per PR
461
+
462
+ - [ ] **New feature?** → Design doc in `docs/design/`
463
+ - [ ] **Architecture decision?** → ADR in `docs/adr/`
464
+ - [ ] **API change?** → `bun run openapi:gen` updated
465
+ - [ ] **Event change?** → `bun run asyncapi:gen` updated
466
+ - [ ] **Breaking change?** → Changelog entry + migration guide
467
+ - [ ] **Incident occurred?** → Postmortem in `docs/incidents/`
468
+ - [ ] **Deploy process changed?** → `deploy.md` updated
469
+ - [ ] **Onboarding info missing?** → `AGENTS.md` / `README.md` updated
470
+
471
+
472
+ ## Tooling
473
+
474
+ | Tool | Purpose |
475
+ |------|---------|
476
+ | `markdownlint` | Lint markdown files |
477
+ | `markdown-link-check` | Verify links |
478
+ | `mermaid-cli` | Render diagrams in CI |
479
+ | `typedoc` | Generate API docs from JSDoc |
480
+ | `openapi-generator` | Generate clients from OpenAPI |
481
+ | `asyncapi-generator` | Generate code from AsyncAPI |
482
+
483
+
484
+ ## Integration with Other Skills
485
+
486
+ | Skill | Provides |
487
+ |-------|----------|
488
+ | `nerdev-monorepo` | Repo structure, required files list |
489
+ | `nerdev-abstraction` | Interface docs, plugin protocol docs |
490
+ | `agent-docs-writer` | `AGENTS.md` generation |
491
+ | `this skill` | All other docs + generation scripts |
492
+
493
+
494
+ ## Quick Start for New Projects
495
+
496
+ ```bash
497
+ # 1. Scaffold docs structure
498
+ mkdir -p docs/adr docs/design docs/incidents docs/generated
499
+
500
+ # 2. Copy templates
501
+ cp ~/.config/opencode/skills/nerdev-docs/templates/* docs/
502
+
503
+ # 3. Add scripts to package.json
504
+ # (see Generation Scripts above)
505
+
506
+ # 4. Create first ADR
507
+ bun run adr:new "Initial architecture decisions"
508
+
509
+ # 5. Create first design doc
510
+ bun run design:new "Core domain model"
511
+
512
+ # 6. Generate AGENTS.md
513
+ skill agent-docs-writer
514
+ # Follow prompts
515
+ ```
516
+
517
+
518
+ ## Templates Location
519
+
520
+ ```
521
+ ~/.config/opencode/skills/nerdev-docs/templates/
522
+ ├── adr-template.md
523
+ ├── design-template.md
524
+ ├── incident-template.md
525
+ ├── contributing-template.md
526
+ └── deploy-template.md
527
+ ```
@@ -0,0 +1,39 @@
1
+ # ADR {{NUMBER}}: {{TITLE}}
2
+
3
+ ## Status
4
+ Proposed | Accepted | Rejected | Superseded
5
+
6
+ ## Context
7
+ What is the issue that we're seeing that is motivating this decision or change?
8
+
9
+ ## Decision
10
+ What is the change that we're proposing and/or doing?
11
+
12
+ ## Consequences
13
+ What becomes easier or more difficult to do because of this change?
14
+
15
+ ### Positive
16
+ -
17
+
18
+ ### Negative
19
+ -
20
+
21
+ ### Risks
22
+ -
23
+
24
+ ## Alternatives Considered
25
+ | Alternative | Pros | Cons | Why Not Chosen |
26
+ |-------------|------|------|----------------|
27
+ | | | | |
28
+
29
+ ## Implementation Notes
30
+ -
31
+
32
+ ## References
33
+ -
34
+
35
+ ## Related ADRs
36
+ - ADR XXX:
37
+
38
+ ---
39
+ *Created: {{DATE}}*
@@ -0,0 +1,140 @@
1
+ # Contributing to {{PROJECT_NAME}}
2
+
3
+ Thank you for contributing! This guide helps you get started.
4
+
5
+ ## Code of Conduct
6
+ By participating, you agree to our [Code of Conduct](CODE_OF_CONDUCT.md).
7
+
8
+ ## Quick Start
9
+ ```bash
10
+ # 1. Clone & install
11
+ git clone https://github.com/{{ORG}}/{{REPO}}.git
12
+ cd {{REPO}}
13
+ bun install
14
+
15
+ # 2. Configure environment
16
+ cp .env.example .env
17
+ # Edit .env with your values
18
+
19
+ # 3. Start infrastructure
20
+ docker compose up -d db redis
21
+
22
+ # 4. Setup database
23
+ bunx prisma migrate dev
24
+ bun run db:seed # Optional: seed demo data
25
+
26
+ # 5. Start development
27
+ bun run dev
28
+ ```
29
+
30
+ ## Development Workflow
31
+
32
+ ### Branch Naming
33
+ | Type | Prefix | Example |
34
+ |------|--------|---------|
35
+ | Feature | `feat/` | `feat/cursor-sync` |
36
+ | Bug Fix | `fix/` | `fix/websocket-reconnect` |
37
+ | Refactor | `refactor/` | `refactor/tool-registry` |
38
+ | Docs | `docs/` | `docs/adr-auth-strategy` |
39
+ | Chore | `chore/` | `chore/update-deps` |
40
+
41
+ ### Commit Messages
42
+ Follow [Conventional Commits](https://www.conventionalcommits.org/):
43
+ ```
44
+ type(scope): description
45
+
46
+ [optional body]
47
+
48
+ [optional footer]
49
+ ```
50
+
51
+ Examples:
52
+ ```
53
+ feat(canvas): add eraser tool with pressure sensitivity
54
+
55
+ fix(ws): handle reconnection with exponential backoff
56
+
57
+ docs(adr): record decision to use TanStack Router
58
+
59
+ chore(deps): upgrade bun to 1.2.0
60
+ ```
61
+
62
+ ### Pull Request Process
63
+ 1. **Create design doc** (new features): `docs/design/feature-name.md`
64
+ 2. **Implement** with tests
65
+ 3. **Update docs**: ADR, feature timeline, API specs
66
+ 4. **Run checks locally**:
67
+ ```bash
68
+ bun run lint
69
+ bun run check-types
70
+ bun run build
71
+ bun run test
72
+ ```
73
+ 5. **Open PR** with:
74
+ - Link to issue
75
+ - Link to design doc (if applicable)
76
+ - Screenshots/videos (UI changes)
77
+ - Test results
78
+ 6. **CI must pass** (typecheck, lint, build, test)
79
+ 7. **Code review** (1 approval minimum)
80
+ 8. **Squash merge** to `main`
81
+
82
+ ## Code Standards
83
+
84
+ ### Naming Conventions
85
+ | Element | Convention |
86
+ |---------|------------|
87
+ | Files | `camelCase.ts` |
88
+ | Functions/Variables | `camelCase` |
89
+ | Types/Interfaces | `PascalCase` |
90
+ | Enums | `PascalCase` |
91
+ | Constants | `UPPER_SNAKE_CASE` |
92
+ | React Components | `PascalCase` |
93
+ | CSS Classes | `kebab-case` |
94
+
95
+ ### TypeScript
96
+ - No `any` -- use `unknown` or proper types
97
+ - Strict mode enabled
98
+ - JSDoc on all exports
99
+ - Discriminated unions for WS messages
100
+
101
+ ### Architecture
102
+ - Shared code in `packages/`
103
+ - Service layer for business logic
104
+ - Diff-based WS sync (no full state)
105
+ - Repository pattern for data access
106
+
107
+ ### Testing
108
+ - Unit: `*.test.ts` alongside source
109
+ - Integration: `tests/integration/`
110
+ - E2E: `tests/e2e/`
111
+ - Target: >80% coverage on critical paths
112
+
113
+ ## Documentation Standards
114
+ - **Design docs** for new features (`docs/design/`)
115
+ - **ADRs** for architecture decisions (`docs/adr/`)
116
+ - **Incident postmortems** for production issues (`docs/incidents/`)
117
+ - **API specs** generated from code (`openapi.yaml`, `asyncapi.yaml`)
118
+ - **AGENTS.md** for AI agents (auto-generated)
119
+
120
+ ## Release Process
121
+ 1. Version bump in `package.json` (workspace root)
122
+ 2. Changelog generated from commits
123
+ 3. Git tag: `v{major}.{minor}.{patch}`
124
+ 4. GitHub Release with notes
125
+ 5. Deploy workflow triggers automatically
126
+
127
+ ## Getting Help
128
+ - **Questions**: GitHub Discussions
129
+ - **Bugs**: GitHub Issues (use template)
130
+ - **Security**: Email security@{{ORG}}.com
131
+ - **IRC/Slack**: #{{REPO}}-dev
132
+
133
+ ## Recognition
134
+ Contributors are recognized in:
135
+ - `AUTHORS.md`
136
+ - Release notes
137
+ - GitHub Contributors graph
138
+
139
+ ---
140
+ *Based on nerdev-co conventions. See `nerdev-monorepo` and `nerdev-abstraction` skills for details.*