contextos-agents 1.5.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 (310) hide show
  1. package/.agents/AGENTS.md +421 -0
  2. package/.agents/adapters/aider/export.js +137 -0
  3. package/.agents/adapters/claude/export.js +55 -0
  4. package/.agents/adapters/copilot/export.js +107 -0
  5. package/.agents/adapters/cursor/export.js +210 -0
  6. package/.agents/adapters/gemini/export.js +115 -0
  7. package/.agents/adapters/shared.js +119 -0
  8. package/.agents/adapters/zed/export.js +111 -0
  9. package/.agents/core/profiles/backend.yaml +47 -0
  10. package/.agents/core/profiles/enterprise.yaml +46 -0
  11. package/.agents/core/profiles/frontend.yaml +46 -0
  12. package/.agents/core/profiles/hackathon.yaml +45 -0
  13. package/.agents/core/profiles/mvp.yaml +43 -0
  14. package/.agents/core/profiles/startup.yaml +48 -0
  15. package/.agents/core/skills/adapters/EXAMPLES.md +19 -0
  16. package/.agents/core/skills/adapters/SKILL.md +105 -0
  17. package/.agents/core/skills/adapters/TROUBLESHOOTING.md +7 -0
  18. package/.agents/core/skills/adapters/VALIDATION.json +12 -0
  19. package/.agents/core/skills/adapters/skill.yaml +10 -0
  20. package/.agents/core/skills/architecture-diagrams/SKILL.md +108 -0
  21. package/.agents/core/skills/architecture-diagrams/VALIDATION.json +12 -0
  22. package/.agents/core/skills/architecture-diagrams/skill.yaml +8 -0
  23. package/.agents/core/skills/brutalist-design/SKILL.md +150 -0
  24. package/.agents/core/skills/brutalist-design/VALIDATION.json +12 -0
  25. package/.agents/core/skills/brutalist-design/skill.yaml +8 -0
  26. package/.agents/core/skills/context-manager/EXAMPLES.md +19 -0
  27. package/.agents/core/skills/context-manager/SKILL.md +126 -0
  28. package/.agents/core/skills/context-manager/TROUBLESHOOTING.md +7 -0
  29. package/.agents/core/skills/context-manager/VALIDATION.json +12 -0
  30. package/.agents/core/skills/context-manager/skill.yaml +10 -0
  31. package/.agents/core/skills/context-os/EXAMPLES.md +21 -0
  32. package/.agents/core/skills/context-os/SKILL.md +169 -0
  33. package/.agents/core/skills/context-os/TROUBLESHOOTING.md +7 -0
  34. package/.agents/core/skills/context-os/VALIDATION.json +12 -0
  35. package/.agents/core/skills/context-os/packs.yaml +59 -0
  36. package/.agents/core/skills/context-os/references/context-rules.md +68 -0
  37. package/.agents/core/skills/context-os/references/pipeline.md +119 -0
  38. package/.agents/core/skills/context-os/references/project-graph.md +103 -0
  39. package/.agents/core/skills/context-os/rules.yaml +135 -0
  40. package/.agents/core/skills/context-os/skill.yaml +10 -0
  41. package/.agents/core/skills/database/EXAMPLES.md +74 -0
  42. package/.agents/core/skills/database/SKILL.md +101 -0
  43. package/.agents/core/skills/database/TROUBLESHOOTING.md +18 -0
  44. package/.agents/core/skills/database/VALIDATION.json +11 -0
  45. package/.agents/core/skills/database/skill.yaml +25 -0
  46. package/.agents/core/skills/ddd/EXAMPLES.md +42 -0
  47. package/.agents/core/skills/ddd/SKILL.md +247 -0
  48. package/.agents/core/skills/ddd/TROUBLESHOOTING.md +19 -0
  49. package/.agents/core/skills/ddd/VALIDATION.json +12 -0
  50. package/.agents/core/skills/ddd/ddd.md +178 -0
  51. package/.agents/core/skills/ddd/skill.yaml +10 -0
  52. package/.agents/core/skills/decisions/EXAMPLES.md +35 -0
  53. package/.agents/core/skills/decisions/SKILL.md +90 -0
  54. package/.agents/core/skills/decisions/TROUBLESHOOTING.md +13 -0
  55. package/.agents/core/skills/decisions/VALIDATION.json +12 -0
  56. package/.agents/core/skills/decisions/skill.yaml +10 -0
  57. package/.agents/core/skills/docker/EXAMPLES.md +56 -0
  58. package/.agents/core/skills/docker/SKILL.md +63 -0
  59. package/.agents/core/skills/docker/TROUBLESHOOTING.md +18 -0
  60. package/.agents/core/skills/docker/VALIDATION.json +11 -0
  61. package/.agents/core/skills/docker/skill.yaml +23 -0
  62. package/.agents/core/skills/engineering-workflow/EXAMPLES.md +57 -0
  63. package/.agents/core/skills/engineering-workflow/SKILL.md +343 -0
  64. package/.agents/core/skills/engineering-workflow/TROUBLESHOOTING.md +19 -0
  65. package/.agents/core/skills/engineering-workflow/VALIDATION.json +12 -0
  66. package/.agents/core/skills/engineering-workflow/skill.yaml +13 -0
  67. package/.agents/core/skills/fastapi/EXAMPLES.md +36 -0
  68. package/.agents/core/skills/fastapi/SKILL.md +148 -0
  69. package/.agents/core/skills/fastapi/TROUBLESHOOTING.md +19 -0
  70. package/.agents/core/skills/fastapi/VALIDATION.json +12 -0
  71. package/.agents/core/skills/fastapi/fastapi.md +112 -0
  72. package/.agents/core/skills/fastapi/skill.yaml +10 -0
  73. package/.agents/core/skills/gemini-precision/SKILL.md +169 -0
  74. package/.agents/core/skills/gemini-precision/VALIDATION.json +12 -0
  75. package/.agents/core/skills/gemini-precision/skill.yaml +9 -0
  76. package/.agents/core/skills/generators/EXAMPLES.md +19 -0
  77. package/.agents/core/skills/generators/SKILL.md +112 -0
  78. package/.agents/core/skills/generators/TROUBLESHOOTING.md +7 -0
  79. package/.agents/core/skills/generators/VALIDATION.json +12 -0
  80. package/.agents/core/skills/generators/skill.yaml +10 -0
  81. package/.agents/core/skills/generators/templates/API.md +77 -0
  82. package/.agents/core/skills/generators/templates/ARCHITECTURE.md +70 -0
  83. package/.agents/core/skills/generators/templates/DATABASE.md +42 -0
  84. package/.agents/core/skills/generators/templates/DECISION.md +46 -0
  85. package/.agents/core/skills/generators/templates/PRD.md +67 -0
  86. package/.agents/core/skills/generators/templates/PROJECT_GRAPH.md +56 -0
  87. package/.agents/core/skills/generators/templates/ROADMAP.md +51 -0
  88. package/.agents/core/skills/generators/templates/TASKS.md +43 -0
  89. package/.agents/core/skills/generators/templates/UI.md +73 -0
  90. package/.agents/core/skills/graphify/EXAMPLES.md +73 -0
  91. package/.agents/core/skills/graphify/SKILL.md +130 -0
  92. package/.agents/core/skills/graphify/VALIDATION.json +12 -0
  93. package/.agents/core/skills/graphify/skill.yaml +13 -0
  94. package/.agents/core/skills/gstack-roles/EXAMPLES.md +23 -0
  95. package/.agents/core/skills/gstack-roles/SKILL.md +152 -0
  96. package/.agents/core/skills/gstack-roles/TROUBLESHOOTING.md +13 -0
  97. package/.agents/core/skills/gstack-roles/VALIDATION.json +12 -0
  98. package/.agents/core/skills/gstack-roles/skill.yaml +12 -0
  99. package/.agents/core/skills/impeccable-design/EXAMPLES.md +26 -0
  100. package/.agents/core/skills/impeccable-design/SKILL.md +201 -0
  101. package/.agents/core/skills/impeccable-design/TROUBLESHOOTING.md +19 -0
  102. package/.agents/core/skills/impeccable-design/VALIDATION.json +12 -0
  103. package/.agents/core/skills/impeccable-design/skill.yaml +14 -0
  104. package/.agents/core/skills/interview-me/SKILL.md +97 -0
  105. package/.agents/core/skills/interview-me/VALIDATION.json +12 -0
  106. package/.agents/core/skills/interview-me/skill.yaml +8 -0
  107. package/.agents/core/skills/microservices/EXAMPLES.md +38 -0
  108. package/.agents/core/skills/microservices/SKILL.md +164 -0
  109. package/.agents/core/skills/microservices/TROUBLESHOOTING.md +19 -0
  110. package/.agents/core/skills/microservices/VALIDATION.json +12 -0
  111. package/.agents/core/skills/microservices/microservices.md +119 -0
  112. package/.agents/core/skills/microservices/skill.yaml +10 -0
  113. package/.agents/core/skills/minimalist-design/SKILL.md +113 -0
  114. package/.agents/core/skills/minimalist-design/VALIDATION.json +12 -0
  115. package/.agents/core/skills/minimalist-design/skill.yaml +8 -0
  116. package/.agents/core/skills/nestjs/EXAMPLES.md +40 -0
  117. package/.agents/core/skills/nestjs/SKILL.md +139 -0
  118. package/.agents/core/skills/nestjs/TROUBLESHOOTING.md +19 -0
  119. package/.agents/core/skills/nestjs/VALIDATION.json +12 -0
  120. package/.agents/core/skills/nestjs/nestjs.md +103 -0
  121. package/.agents/core/skills/nestjs/skill.yaml +10 -0
  122. package/.agents/core/skills/nextjs/EXAMPLES.md +40 -0
  123. package/.agents/core/skills/nextjs/SKILL.md +163 -0
  124. package/.agents/core/skills/nextjs/TROUBLESHOOTING.md +19 -0
  125. package/.agents/core/skills/nextjs/VALIDATION.json +12 -0
  126. package/.agents/core/skills/nextjs/nextjs.md +67 -0
  127. package/.agents/core/skills/nextjs/skill.yaml +10 -0
  128. package/.agents/core/skills/node/EXAMPLES.md +80 -0
  129. package/.agents/core/skills/node/SKILL.md +128 -0
  130. package/.agents/core/skills/node/TROUBLESHOOTING.md +19 -0
  131. package/.agents/core/skills/node/VALIDATION.json +12 -0
  132. package/.agents/core/skills/node/node.md +87 -0
  133. package/.agents/core/skills/node/skill.yaml +10 -0
  134. package/.agents/core/skills/performance/EXAMPLES.md +30 -0
  135. package/.agents/core/skills/performance/SKILL.md +75 -0
  136. package/.agents/core/skills/performance/TROUBLESHOOTING.md +19 -0
  137. package/.agents/core/skills/performance/VALIDATION.json +12 -0
  138. package/.agents/core/skills/performance/performance.md +52 -0
  139. package/.agents/core/skills/performance/skill.yaml +10 -0
  140. package/.agents/core/skills/ponytail-mindset/EXAMPLES.md +45 -0
  141. package/.agents/core/skills/ponytail-mindset/SKILL.md +193 -0
  142. package/.agents/core/skills/ponytail-mindset/TROUBLESHOOTING.md +19 -0
  143. package/.agents/core/skills/ponytail-mindset/VALIDATION.json +12 -0
  144. package/.agents/core/skills/ponytail-mindset/skill.yaml +14 -0
  145. package/.agents/core/skills/react/EXAMPLES.md +79 -0
  146. package/.agents/core/skills/react/SKILL.md +132 -0
  147. package/.agents/core/skills/react/TROUBLESHOOTING.md +19 -0
  148. package/.agents/core/skills/react/VALIDATION.json +12 -0
  149. package/.agents/core/skills/react/react.md +93 -0
  150. package/.agents/core/skills/react/skill.yaml +10 -0
  151. package/.agents/core/skills/react-best-practices/SKILL.md +155 -0
  152. package/.agents/core/skills/react-best-practices/VALIDATION.json +12 -0
  153. package/.agents/core/skills/react-best-practices/skill.yaml +10 -0
  154. package/.agents/core/skills/redesign-audit/SKILL.md +117 -0
  155. package/.agents/core/skills/redesign-audit/VALIDATION.json +12 -0
  156. package/.agents/core/skills/redesign-audit/skill.yaml +8 -0
  157. package/.agents/core/skills/security/EXAMPLES.md +64 -0
  158. package/.agents/core/skills/security/SKILL.md +158 -0
  159. package/.agents/core/skills/security/TROUBLESHOOTING.md +19 -0
  160. package/.agents/core/skills/security/VALIDATION.json +12 -0
  161. package/.agents/core/skills/security/security.md +106 -0
  162. package/.agents/core/skills/security/skill.yaml +10 -0
  163. package/.agents/core/skills/soft-design/SKILL.md +108 -0
  164. package/.agents/core/skills/soft-design/VALIDATION.json +12 -0
  165. package/.agents/core/skills/soft-design/skill.yaml +8 -0
  166. package/.agents/core/skills/state-management/EXAMPLES.md +56 -0
  167. package/.agents/core/skills/state-management/SKILL.md +48 -0
  168. package/.agents/core/skills/state-management/TROUBLESHOOTING.md +18 -0
  169. package/.agents/core/skills/state-management/VALIDATION.json +11 -0
  170. package/.agents/core/skills/state-management/skill.yaml +22 -0
  171. package/.agents/core/skills/subagent-orchestrator/SKILL.md +100 -0
  172. package/.agents/core/skills/subagent-orchestrator/VALIDATION.json +12 -0
  173. package/.agents/core/skills/subagent-orchestrator/skill.yaml +8 -0
  174. package/.agents/core/skills/system-design/EXAMPLES.md +75 -0
  175. package/.agents/core/skills/system-design/SKILL.md +419 -0
  176. package/.agents/core/skills/system-design/TROUBLESHOOTING.md +19 -0
  177. package/.agents/core/skills/system-design/VALIDATION.json +12 -0
  178. package/.agents/core/skills/system-design/skill.yaml +13 -0
  179. package/.agents/core/skills/system-design/system-design.md +112 -0
  180. package/.agents/core/skills/testing/EXAMPLES.md +71 -0
  181. package/.agents/core/skills/testing/SKILL.md +70 -0
  182. package/.agents/core/skills/testing/TROUBLESHOOTING.md +18 -0
  183. package/.agents/core/skills/testing/VALIDATION.json +11 -0
  184. package/.agents/core/skills/testing/skill.yaml +26 -0
  185. package/.agents/core/skills/typescript/EXAMPLES.md +64 -0
  186. package/.agents/core/skills/typescript/SKILL.md +112 -0
  187. package/.agents/core/skills/typescript/TROUBLESHOOTING.md +19 -0
  188. package/.agents/core/skills/typescript/VALIDATION.json +12 -0
  189. package/.agents/core/skills/typescript/skill.yaml +10 -0
  190. package/.agents/core/skills/typescript/typescript.md +71 -0
  191. package/.agents/core/skills/ui-design/EXAMPLES.md +21 -0
  192. package/.agents/core/skills/ui-design/SKILL.md +124 -0
  193. package/.agents/core/skills/ui-design/TROUBLESHOOTING.md +19 -0
  194. package/.agents/core/skills/ui-design/VALIDATION.json +12 -0
  195. package/.agents/core/skills/ui-design/skill.yaml +10 -0
  196. package/.agents/core/skills/ui-design/ui.md +88 -0
  197. package/.agents/core/skills/ui-ux-pro/EXAMPLES.md +62 -0
  198. package/.agents/core/skills/ui-ux-pro/SKILL.md +375 -0
  199. package/.agents/core/skills/ui-ux-pro/TROUBLESHOOTING.md +19 -0
  200. package/.agents/core/skills/ui-ux-pro/VALIDATION.json +12 -0
  201. package/.agents/core/skills/ui-ux-pro/skill.yaml +13 -0
  202. package/.agents/core/skills/ux-design/EXAMPLES.md +36 -0
  203. package/.agents/core/skills/ux-design/SKILL.md +116 -0
  204. package/.agents/core/skills/ux-design/TROUBLESHOOTING.md +19 -0
  205. package/.agents/core/skills/ux-design/VALIDATION.json +12 -0
  206. package/.agents/core/skills/ux-design/skill.yaml +10 -0
  207. package/.agents/core/skills/ux-design/ux.md +80 -0
  208. package/.agents/core/skills/vercel-optimize/SKILL.md +83 -0
  209. package/.agents/core/skills/vercel-optimize/VALIDATION.json +12 -0
  210. package/.agents/core/skills/vercel-optimize/skill.yaml +10 -0
  211. package/.agents/core/skills/web-accessibility/EXAMPLES.md +39 -0
  212. package/.agents/core/skills/web-accessibility/SKILL.md +170 -0
  213. package/.agents/core/skills/web-accessibility/TROUBLESHOOTING.md +19 -0
  214. package/.agents/core/skills/web-accessibility/VALIDATION.json +12 -0
  215. package/.agents/core/skills/web-accessibility/accessibility.md +63 -0
  216. package/.agents/core/skills/web-accessibility/skill.yaml +10 -0
  217. package/.agents/ctx.js +370 -0
  218. package/.agents/generated/claude/skills/adapters/SKILL.md +126 -0
  219. package/.agents/generated/claude/skills/architecture-diagrams/SKILL.md +101 -0
  220. package/.agents/generated/claude/skills/brutalist-design/SKILL.md +145 -0
  221. package/.agents/generated/claude/skills/context-manager/SKILL.md +147 -0
  222. package/.agents/generated/claude/skills/context-os/SKILL.md +191 -0
  223. package/.agents/generated/claude/skills/database/SKILL.md +191 -0
  224. package/.agents/generated/claude/skills/ddd/SKILL.md +305 -0
  225. package/.agents/generated/claude/skills/decisions/SKILL.md +134 -0
  226. package/.agents/generated/claude/skills/docker/SKILL.md +135 -0
  227. package/.agents/generated/claude/skills/engineering-workflow/SKILL.md +414 -0
  228. package/.agents/generated/claude/skills/fastapi/SKILL.md +200 -0
  229. package/.agents/generated/claude/skills/gemini-precision/SKILL.md +161 -0
  230. package/.agents/generated/claude/skills/generators/SKILL.md +133 -0
  231. package/.agents/generated/claude/skills/graphify/SKILL.md +198 -0
  232. package/.agents/generated/claude/skills/gstack-roles/SKILL.md +184 -0
  233. package/.agents/generated/claude/skills/impeccable-design/SKILL.md +241 -0
  234. package/.agents/generated/claude/skills/interview-me/SKILL.md +90 -0
  235. package/.agents/generated/claude/skills/microservices/SKILL.md +218 -0
  236. package/.agents/generated/claude/skills/minimalist-design/SKILL.md +108 -0
  237. package/.agents/generated/claude/skills/nestjs/SKILL.md +195 -0
  238. package/.agents/generated/claude/skills/nextjs/SKILL.md +219 -0
  239. package/.agents/generated/claude/skills/node/SKILL.md +224 -0
  240. package/.agents/generated/claude/skills/performance/SKILL.md +121 -0
  241. package/.agents/generated/claude/skills/ponytail-mindset/SKILL.md +252 -0
  242. package/.agents/generated/claude/skills/react/SKILL.md +227 -0
  243. package/.agents/generated/claude/skills/react-best-practices/SKILL.md +146 -0
  244. package/.agents/generated/claude/skills/redesign-audit/SKILL.md +112 -0
  245. package/.agents/generated/claude/skills/security/SKILL.md +237 -0
  246. package/.agents/generated/claude/skills/soft-design/SKILL.md +103 -0
  247. package/.agents/generated/claude/skills/state-management/SKILL.md +120 -0
  248. package/.agents/generated/claude/skills/subagent-orchestrator/SKILL.md +93 -0
  249. package/.agents/generated/claude/skills/system-design/SKILL.md +507 -0
  250. package/.agents/generated/claude/skills/testing/SKILL.md +157 -0
  251. package/.agents/generated/claude/skills/typescript/SKILL.md +192 -0
  252. package/.agents/generated/claude/skills/ui-design/SKILL.md +161 -0
  253. package/.agents/generated/claude/skills/ui-ux-pro/SKILL.md +451 -0
  254. package/.agents/generated/claude/skills/ux-design/SKILL.md +168 -0
  255. package/.agents/generated/claude/skills/vercel-optimize/SKILL.md +76 -0
  256. package/.agents/generated/claude/skills/web-accessibility/SKILL.md +225 -0
  257. package/.agents/generated/gemini/skills/adapters/SKILL.md +135 -0
  258. package/.agents/generated/gemini/skills/architecture-diagrams/SKILL.md +107 -0
  259. package/.agents/generated/gemini/skills/brutalist-design/SKILL.md +151 -0
  260. package/.agents/generated/gemini/skills/context-manager/SKILL.md +156 -0
  261. package/.agents/generated/gemini/skills/context-os/SKILL.md +200 -0
  262. package/.agents/generated/gemini/skills/database/SKILL.md +200 -0
  263. package/.agents/generated/gemini/skills/ddd/SKILL.md +314 -0
  264. package/.agents/generated/gemini/skills/decisions/SKILL.md +143 -0
  265. package/.agents/generated/gemini/skills/docker/SKILL.md +144 -0
  266. package/.agents/generated/gemini/skills/engineering-workflow/SKILL.md +423 -0
  267. package/.agents/generated/gemini/skills/fastapi/SKILL.md +209 -0
  268. package/.agents/generated/gemini/skills/gemini-precision/SKILL.md +167 -0
  269. package/.agents/generated/gemini/skills/generators/SKILL.md +142 -0
  270. package/.agents/generated/gemini/skills/graphify/SKILL.md +205 -0
  271. package/.agents/generated/gemini/skills/gstack-roles/SKILL.md +193 -0
  272. package/.agents/generated/gemini/skills/impeccable-design/SKILL.md +250 -0
  273. package/.agents/generated/gemini/skills/interview-me/SKILL.md +96 -0
  274. package/.agents/generated/gemini/skills/microservices/SKILL.md +227 -0
  275. package/.agents/generated/gemini/skills/minimalist-design/SKILL.md +114 -0
  276. package/.agents/generated/gemini/skills/nestjs/SKILL.md +204 -0
  277. package/.agents/generated/gemini/skills/nextjs/SKILL.md +298 -0
  278. package/.agents/generated/gemini/skills/node/SKILL.md +323 -0
  279. package/.agents/generated/gemini/skills/performance/SKILL.md +185 -0
  280. package/.agents/generated/gemini/skills/ponytail-mindset/SKILL.md +261 -0
  281. package/.agents/generated/gemini/skills/react/SKILL.md +332 -0
  282. package/.agents/generated/gemini/skills/react-best-practices/SKILL.md +152 -0
  283. package/.agents/generated/gemini/skills/redesign-audit/SKILL.md +118 -0
  284. package/.agents/generated/gemini/skills/security/SKILL.md +355 -0
  285. package/.agents/generated/gemini/skills/soft-design/SKILL.md +109 -0
  286. package/.agents/generated/gemini/skills/state-management/SKILL.md +129 -0
  287. package/.agents/generated/gemini/skills/subagent-orchestrator/SKILL.md +99 -0
  288. package/.agents/generated/gemini/skills/system-design/SKILL.md +631 -0
  289. package/.agents/generated/gemini/skills/testing/SKILL.md +166 -0
  290. package/.agents/generated/gemini/skills/typescript/SKILL.md +275 -0
  291. package/.agents/generated/gemini/skills/ui-design/SKILL.md +170 -0
  292. package/.agents/generated/gemini/skills/ui-ux-pro/SKILL.md +460 -0
  293. package/.agents/generated/gemini/skills/ux-design/SKILL.md +177 -0
  294. package/.agents/generated/gemini/skills/vercel-optimize/SKILL.md +82 -0
  295. package/.agents/generated/gemini/skills/web-accessibility/SKILL.md +300 -0
  296. package/.agents/mcp/runtime.py +454 -0
  297. package/.agents/mcp/server.mjs +189373 -0
  298. package/.agents/plugins.js +574 -0
  299. package/.agents/profiles.js +267 -0
  300. package/.agents/resolver.js +336 -0
  301. package/.agents/skills-index.json +200 -0
  302. package/.agents/skills.json +6 -0
  303. package/.agents/validate.js +500 -0
  304. package/LICENSE +21 -0
  305. package/README.md +415 -0
  306. package/benchmarks/gemini-issues.js +533 -0
  307. package/bin/index.js +458 -0
  308. package/package.json +70 -0
  309. package/registry.json +53 -0
  310. package/registry.schema.json +32 -0
@@ -0,0 +1,314 @@
1
+ ---
2
+ name: Domain-Driven Design
3
+ description: >
4
+ ContextOS skill for Domain-Driven Design
5
+ ---
6
+ # Domain-Driven Design
7
+
8
+ ## Overview
9
+
10
+ Domain-Driven Design standard for robust business software. Enforces separation between domain logic (Entities, Value Objects, Aggregates, Domain Events) and infrastructure frameworks, preventing leaky abstractions.
11
+
12
+ ## When to Use
13
+
14
+ Activate when designing core business domain models, transactional consistency boundaries, enterprise APIs, or complex aggregate hierarchies.
15
+
16
+ ## Rules & Patterns
17
+ <!-- Source: ddd.md -->
18
+
19
+ ## Domain-Driven Design — Patterns & Practices
20
+
21
+ ## When to Use DDD
22
+
23
+ **Use when:**
24
+
25
+ - Complex business logic that goes beyond CRUD
26
+ - Multiple domain experts with different vocabularies
27
+ - The domain model is the competitive advantage
28
+ - Enterprise-grade applications
29
+
30
+ **Don't use when:**
31
+
32
+ - Simple CRUD applications
33
+ - Hackathon/MVP (overkill)
34
+ - No domain expert available
35
+
36
+ ## Strategic Design
37
+
38
+ ### Bounded Contexts
39
+
40
+ The single most important DDD concept. A Bounded Context is a boundary within which a particular model is defined and applicable.
41
+
42
+ **Example — E-Commerce:**
43
+
44
+ ```
45
+ [Order Context] [Payment Context] [Shipping Context]
46
+ - Order - Payment - Shipment
47
+ - OrderItem - Transaction - TrackingNumber
48
+ - Customer (ref) - Refund - Address
49
+ - Address (value) - Invoice - Carrier
50
+ ```
51
+
52
+ `Customer` means different things in each context:
53
+
54
+ - Order Context: name, email, shipping preference
55
+ - Payment Context: billing info, payment methods
56
+ - Support Context: ticket history, satisfaction score
57
+
58
+ ### Context Map
59
+
60
+ ```
61
+ [Order] ←→ [Payment] # Partnership
62
+ [Order] → [Shipping] # Customer-Supplier
63
+ [Order] → [Legacy CRM] # Anti-Corruption Layer
64
+ ```
65
+
66
+ ## Tactical Design
67
+
68
+ ### Entities
69
+
70
+ Objects with identity. Two entities with the same attributes but different IDs are different.
71
+
72
+ ```typescript
73
+ class User {
74
+ readonly id: UserId;
75
+ name: string;
76
+ email: Email; // Value Object
77
+ }
78
+ ```
79
+
80
+ ### Value Objects
81
+
82
+ Objects defined by their attributes, not identity. Immutable.
83
+
84
+ ```typescript
85
+ class Email {
86
+ constructor(readonly value: string) {
87
+ if (!isValidEmail(value)) throw new InvalidEmailError(value);
88
+ }
89
+ equals(other: Email): boolean {
90
+ return this.value === other.value;
91
+ }
92
+ }
93
+ ```
94
+
95
+ ### Aggregates
96
+
97
+ A cluster of entities and value objects with a single root entity (Aggregate Root). All access goes through the root.
98
+
99
+ ```typescript
100
+ class Order { // Aggregate Root
101
+ private items: OrderItem[] = [];
102
+
103
+ addItem(product: ProductRef, quantity: number): void {
104
+ // Business logic HERE, not in a service
105
+ if (quantity <= 0) throw new InvalidQuantityError();
106
+ this.items.push(new OrderItem(product, quantity));
107
+ }
108
+
109
+ get total(): Money {
110
+ return this.items.reduce((sum, item) => sum.add(item.subtotal), Money.zero());
111
+ }
112
+ }
113
+ ```
114
+
115
+ **Aggregate Rules:**
116
+
117
+ 1. Reference other aggregates by ID only
118
+ 2. One aggregate per transaction
119
+ 3. Eventual consistency between aggregates
120
+
121
+ ### Domain Events
122
+
123
+ Something that happened in the domain that domain experts care about.
124
+
125
+ ```typescript
126
+ class OrderPlaced implements DomainEvent {
127
+ constructor(
128
+ readonly orderId: OrderId,
129
+ readonly customerId: CustomerId,
130
+ readonly total: Money,
131
+ readonly occurredAt: Date
132
+ ) {}
133
+ }
134
+ ```
135
+
136
+ ### Domain Services
137
+
138
+ Business logic that doesn't naturally belong to an entity or value object.
139
+
140
+ ```typescript
141
+ class PricingService {
142
+ calculatePrice(order: Order, customer: Customer, promotions: Promotion[]): Money {
143
+ // Complex pricing logic involving multiple aggregates
144
+ }
145
+ }
146
+ ```
147
+
148
+ ### Repositories
149
+
150
+ Abstraction over data access. One repository per aggregate root.
151
+
152
+ ```typescript
153
+ interface OrderRepository {
154
+ findById(id: OrderId): Promise<Order | null>;
155
+ save(order: Order): Promise<void>;
156
+ delete(id: OrderId): Promise<void>;
157
+ }
158
+ ```
159
+
160
+ ## Directory Structure (DDD)
161
+
162
+ ```
163
+ src/
164
+ ├── modules/
165
+ │ └── orders/ # Bounded Context
166
+ │ ├── domain/
167
+ │ │ ├── entities/
168
+ │ │ │ └── order.ts # Aggregate Root
169
+ │ │ ├── value-objects/
170
+ │ │ │ └── money.ts
171
+ │ │ ├── events/
172
+ │ │ │ └── order-placed.ts
173
+ │ │ ├── services/
174
+ │ │ │ └── pricing.ts
175
+ │ │ └── repositories/
176
+ │ │ └── order.repository.ts # Interface
177
+ │ ├── application/
178
+ │ │ ├── commands/
179
+ │ │ │ └── place-order.ts
180
+ │ │ ├── queries/
181
+ │ │ │ └── get-order.ts
182
+ │ │ └── handlers/
183
+ │ │ └── place-order.handler.ts
184
+ │ └── infrastructure/
185
+ │ ├── persistence/
186
+ │ │ └── order.repository.impl.ts # Implementation
187
+ │ └── api/
188
+ │ └── orders.controller.ts
189
+ ```
190
+
191
+ ### The Clean Architecture Dependency Rule
192
+
193
+ In DDD, dependencies **MUST strictly point inward**:
194
+
195
+ ```
196
+ [ Frameworks & Drivers (Web, DB, UI) ]
197
+ └──▶ [ Interface Adapters (Controllers, Gateways) ]
198
+ └──▶ [ Application (Use Cases, CQRS Handlers) ]
199
+ └──▶ [ Domain (Entities, Value Objects) ]
200
+ ```
201
+
202
+ - The **Domain layer** has ZERO dependencies on ORMs (Prisma, TypeORM), HTTP frameworks (Express, NestJS), or external SDKs.
203
+ - Repositories are defined as interfaces in the domain/application layer and implemented in the infrastructure layer.
204
+
205
+ ### Domain Events vs Integration Events
206
+
207
+ 1. **Domain Events**: Represent state changes inside a single Bounded Context.
208
+ - Raised directly inside the Aggregate Root (`order.addItem(...)` raises `OrderItemAdded`).
209
+ - Dispatched in-process before transaction commit.
210
+ 2. **Integration Events**: Published across Bounded Context boundaries to communicate with other services.
211
+ - Dispatched via Transactional Outbox pattern to message brokers.
212
+ - Must use backward-compatible schemas with versioning.
213
+
214
+ ### Anti-Corruption Layer (ACL)
215
+
216
+ When consuming data from an external bounded context or 3rd-party vendor API (e.g. Stripe, Salesforce):
217
+
218
+ - NEVER import external domain models directly into your domain.
219
+ - Create an **ACL Translator / Adapter** in the infrastructure layer to convert external DTOs into your own Value Objects and Entities.
220
+
221
+ ---
222
+
223
+ ## Anti-Patterns
224
+
225
+ - [FAIL] Anemic domain model — entities with only getters/setters, all logic in services
226
+ - [FAIL] Big aggregate — aggregates should be small, focused on invariants
227
+ - [FAIL] Cross-aggregate transactions — use eventual consistency
228
+ - [FAIL] DDD everywhere — use DDD only where complexity justifies it
229
+ - [FAIL] ORM entities leaking into Domain — domain entities must not depend on `@Entity()` or ORM decorators
230
+
231
+
232
+ ## Code Examples
233
+
234
+ See `EXAMPLES.md` for detailed code examples.
235
+
236
+ ## Validation Checklist
237
+
238
+ What to verify during the review phase before completing the task.
239
+
240
+ ## Common Mistakes
241
+
242
+ Anti-patterns and things to explicitly avoid. See `TROUBLESHOOTING.md`.
243
+
244
+ ## Integration Notes
245
+
246
+ How this skill interacts with other skills.
247
+
248
+
249
+ <!-- Source: EXAMPLES.md -->
250
+
251
+ # ddd Examples — Anti-patterns vs ContextOS Standard
252
+
253
+ ## Example 1: Domain Entities vs Anemic Models
254
+
255
+ ### Anti-pattern: Anemic Domain Model with Leaky Setters
256
+
257
+ ```typescript
258
+ // BAD: Zero business invariants; any caller can corrupt state
259
+ class BankAccount {
260
+ public balance: number = 0;
261
+ public isFrozen: boolean = false;
262
+ }
263
+
264
+ // Logic leaked into controller or service
265
+ account.balance -= 500; // Overdraft not checked!
266
+ ```
267
+
268
+ ### Best practice: ContextOS Standard (Rich Domain Model with Guarded Invariants)
269
+
270
+ ```typescript
271
+ // GOOD: Invariants strictly enforced inside Aggregate Root
272
+ class BankAccount {
273
+ private _balance: number;
274
+ private _isFrozen: boolean;
275
+
276
+ constructor(id: string, initialDeposit: Money) {
277
+ this._balance = initialDeposit.amount;
278
+ this._isFrozen = false;
279
+ }
280
+
281
+ public withdraw(amount: Money): void {
282
+ if (this._isFrozen) {
283
+ throw new AccountFrozenException('Cannot withdraw from a frozen account');
284
+ }
285
+ if (this._balance < amount.amount) {
286
+ throw new InsufficientFundsException('Insufficient funds for withdrawal');
287
+ }
288
+ this._balance -= amount.amount;
289
+ this.addDomainEvent(new MoneyWithdrawnEvent(this.id, amount));
290
+ }
291
+ }
292
+ ```
293
+
294
+ <!-- Source: TROUBLESHOOTING.md -->
295
+
296
+ # ddd Troubleshooting & Common Mistakes
297
+
298
+ ## 1. God Aggregates
299
+
300
+ - **Symptom**: Aggregate Root contains 20 child entities and loading it requires joining dozens of tables.
301
+ - **Root Cause**: Treating ERD tables as aggregate boundaries rather than transactional consistency units.
302
+ - **Fix**: Design small aggregates. Reference other aggregates by ID only, not by object reference.
303
+
304
+ ## 2. Leaking Infrastructure into Domain Layer
305
+
306
+ - **Symptom**: Domain entities import Prisma, TypeORM decorators, or Express Request objects.
307
+ - **Root Cause**: Inverting Clean Architecture boundaries.
308
+ - **Fix**: The Domain layer must be pure TypeScript with zero external framework dependencies.
309
+
310
+ ## 3. Transaction Spanning Multiple Aggregates
311
+
312
+ - **Symptom**: High database lock contention and deadlocks under concurrent transactions.
313
+ - **Root Cause**: Modifying multiple aggregate roots within the same database transaction.
314
+ - **Fix**: Rule of thumb: Exactly one Aggregate Root modified per transaction. Use Domain Events for eventual consistency across other aggregates.
@@ -0,0 +1,143 @@
1
+ ---
2
+ name: decisions
3
+ description: >
4
+ Architecture Decision Records (ADR) management. Creates, tracks, and queries architectural decisions so AI assistants understand why choices were made.
5
+ ---
6
+ # decision-engine
7
+
8
+ ## Overview
9
+
10
+ Architecture Decision Record (ADR) system following Michael Nygard format. Captures context, options considered, tradeoffs, and consequences to prevent architectural regression and knowledge loss across AI sessions.
11
+
12
+ ## When to Use
13
+
14
+ Activate when choosing or switching database engines, authentication strategies, state libraries, or significant architectural patterns.
15
+
16
+ ## Rules & Patterns
17
+
18
+ You manage **Architecture Decision Records** (ADRs).
19
+
20
+ ## Why Decisions Matter
21
+
22
+ Without ADRs, the AI agent sees:
23
+
24
+ - "Database: PostgreSQL" — but doesn't know WHY
25
+ - "Auth: JWT" — but doesn't know what alternatives were considered
26
+ - "Framework: Next.js" — but doesn't know the tradeoffs
27
+
28
+ With ADRs, the agent understands the reasoning and won't accidentally contradict prior decisions.
29
+
30
+ ## Commands
31
+
32
+ ### Create a Decision
33
+
34
+ When an architectural choice is made during any pipeline stage:
35
+
36
+ 1. Auto-increment the decision number
37
+ 2. Use the template from `generators/templates/DECISION.md`
38
+ 3. Save to `docs/decisions/NNNN-decision-name.md`
39
+ 4. Update the Project Graph if the decision affects modules
40
+
41
+ **Naming convention:** `docs/decisions/0001-use-postgresql.md`
42
+
43
+ ### Query Decisions
44
+
45
+ Before making changes that touch architecture:
46
+
47
+ 1. Check `docs/decisions/` for related decisions
48
+ 2. If a decision exists, follow it
49
+ 3. If a decision needs to change, create a new ADR that **supersedes** the old one
50
+
51
+ ### Decision Lifecycle
52
+
53
+ ```
54
+ proposed → accepted → [deprecated | superseded]
55
+ ```
56
+
57
+ - **proposed**: Under discussion, not yet committed
58
+ - **accepted**: The team agreed, this is the standard
59
+ - **deprecated**: No longer relevant (project evolved)
60
+ - **superseded**: Replaced by a newer decision (link to it)
61
+
62
+ ## Auto-Detection
63
+
64
+ The Decision Engine should suggest creating an ADR when it detects:
65
+
66
+ - A new database/ORM is introduced
67
+ - A new framework is added
68
+ - Authentication strategy changes
69
+ - API versioning approach is chosen
70
+ - Deployment strategy is decided
71
+ - A significant library is added (state management, testing framework, etc.)
72
+
73
+
74
+ ## Code Examples
75
+
76
+ See `EXAMPLES.md` for detailed code examples.
77
+
78
+ ## Validation Checklist
79
+
80
+ What to verify during the review phase before completing the task.
81
+
82
+ ## Common Mistakes
83
+
84
+ Anti-patterns and things to explicitly avoid. See `TROUBLESHOOTING.md`.
85
+
86
+ ## Integration Notes
87
+
88
+ How this skill interacts with other skills.
89
+
90
+
91
+ <!-- Source: EXAMPLES.md -->
92
+
93
+ # decisions Examples — Anti-patterns vs ContextOS Standard
94
+
95
+ ## Example 1: Documenting Tech Choices
96
+
97
+ ### Anti-pattern: Tribal Knowledge & Undocumented Decisions
98
+
99
+ ```text
100
+ "We switched to Redis for session storage last month because Dan said so on Slack."
101
+ Three months later, Dan leaves and nobody knows why the config is set up this way.
102
+ ```
103
+
104
+ ### Best practice: ContextOS Standard (MADR Architecture Decision Record)
105
+
106
+ ```markdown
107
+ # ADR 0003: Use Redis for Distributed Session Storage
108
+
109
+ ## Context and Problem Statement
110
+ Our application is transitioning from a single server to horizontally auto-scaled instances.
111
+ Sticky sessions on load balancer cause uneven distribution and drop sessions on node recycling.
112
+
113
+ ## Considered Options
114
+ 1. PostgreSQL session table
115
+ 2. Redis cluster
116
+ 3. JWT stateless tokens in cookies
117
+
118
+ ## Decision Outcome
119
+ Chosen option: "Redis cluster", because:
120
+ - Sub-millisecond read/write latency compared to relational DB queries.
121
+ - Built-in TTL automatically handles session expiration without cron cleanup.
122
+ - Avoids security risks of client-stored JWT revocation.
123
+
124
+ ## Consequences
125
+ - Positive: Stateless web tier, zero session drops on deployment.
126
+ - Negative: Adds operational dependency on Redis cluster infrastructure.
127
+ ```
128
+
129
+ <!-- Source: TROUBLESHOOTING.md -->
130
+
131
+ # decisions Troubleshooting & Common Mistakes
132
+
133
+ ## 1. Post-Hoc Justifications
134
+
135
+ - **Symptom**: ADR written weeks after code is merged, omitting all rejected options.
136
+ - **Root Cause**: Treating ADRs as paperwork rather than decision-making tools.
137
+ - **Fix**: Write the ADR during the PLAN phase _before_ implementing the decision.
138
+
139
+ ## 2. Omitting Trade-offs
140
+
141
+ - **Symptom**: ADR lists only benefits, claiming the chosen tech has zero downsides.
142
+ - **Root Cause**: Confirmation bias.
143
+ - **Fix**: Every architecture decision has costs. Explicitly document negative trade-offs and operational overhead.
@@ -0,0 +1,144 @@
1
+ ---
2
+ name: docker
3
+ description: >
4
+ Docker containerization, multi-stage builds, non-root security, layer caching optimization, and docker-compose standards.
5
+ ---
6
+ # Docker
7
+
8
+ ## Overview
9
+
10
+ Containerization, Dockerfile architecture, security best practices, and container orchestration for production workloads.
11
+
12
+ ## When to Use
13
+
14
+ Activate when creating or optimizing Dockerfiles, docker-compose configurations, container security audits, or CI/CD container builds.
15
+
16
+ ## Rules & Patterns
17
+
18
+ ### Negative Constraints (What NOT to Do)
19
+
20
+ 1. **NEVER run containers as `root` in production**: Always create and switch to an unprivileged non-root user (e.g. `USER node` or `USER nonroot`).
21
+ 2. **NEVER use the `latest` tag**: Always pin base images to specific immutable version digests or explicit minor tags (e.g. `node:20.12.2-alpine3.19`).
22
+ 3. **NEVER copy source code before `package.json`**: Always copy lockfiles and install dependencies first to leverage Docker's layer caching.
23
+ 4. **NEVER bake secrets, API keys, or `.env` files into image layers**: Pass secrets via build-time secret mounts (`--mount=type=secret`) or runtime environment variables.
24
+ 5. **NEVER include build tools or devDependencies in the final runner image**: Always use multi-stage builds to discard compilers and package managers from production images.
25
+
26
+ ### Multi-Stage Standard Pattern
27
+
28
+ ```dockerfile
29
+ FROM node:20.12.2-alpine3.19 AS builder
30
+ WORKDIR /app
31
+ COPY package.json package-lock.json ./
32
+ RUN npm ci
33
+ COPY . .
34
+ RUN npm run build && npm prune --production
35
+
36
+ FROM node:20.12.2-alpine3.19 AS runner
37
+ WORKDIR /app
38
+ ENV NODE_ENV=production
39
+ RUN addgroup -S -g 1001 appgroup && adduser -S -u 1001 appuser -G appgroup
40
+ COPY --from=builder --chown=appuser:appgroup /app/dist ./dist
41
+ COPY --from=builder --chown=appuser:appgroup /app/node_modules ./node_modules
42
+ USER appuser
43
+ CMD ["node", "dist/index.js"]
44
+ ```
45
+
46
+ ## Code Examples
47
+
48
+ See `EXAMPLES.md` for production Dockerfiles and dockerignore patterns.
49
+
50
+ ## Validation Checklist
51
+
52
+ - [ ] Multi-stage build separates build tools from runtime
53
+ - [ ] Non-root `USER` directive active in final stage
54
+ - [ ] Base images pinned to exact versions
55
+ - [ ] `.dockerignore` file prevents leaking node_modules or secrets
56
+
57
+ ## Common Mistakes
58
+
59
+ - Copying entire workspace before `npm ci`, breaking Docker cache. See `TROUBLESHOOTING.md`.
60
+
61
+ ## Integration Notes
62
+
63
+ Interacts with `security` (container hardening) and `node` / `nextjs` / `fastapi`.
64
+
65
+
66
+ <!-- Source: EXAMPLES.md -->
67
+
68
+ # Docker Examples — Anti-patterns vs ContextOS Standard
69
+
70
+ ## Example 1: Multi-Stage Build & Layer Caching
71
+
72
+ ### Anti-pattern: Anti-pattern (Fat single-stage image running as root)
73
+
74
+ ```dockerfile
75
+ # BAD: 1.2GB image, runs as root, breaks caching on every file edit
76
+ FROM node:latest
77
+ WORKDIR /app
78
+ COPY . .
79
+ RUN npm install
80
+ RUN npm run build
81
+ EXPOSE 3000
82
+ CMD ["npm", "start"]
83
+ ```
84
+
85
+ ### Best practice: ContextOS Standard (Slim multi-stage build with non-root user)
86
+
87
+ ```dockerfile
88
+ # GOOD: 95MB image, non-root user, optimized layer caching
89
+ FROM node:20.12.2-alpine3.19 AS builder
90
+ WORKDIR /app
91
+ COPY package.json package-lock.json ./
92
+ RUN npm ci
93
+ COPY . .
94
+ RUN npm run build && npm prune --production
95
+
96
+ FROM node:20.12.2-alpine3.19 AS runner
97
+ WORKDIR /app
98
+ ENV NODE_ENV=production
99
+ RUN addgroup -S -g 1001 appgroup && adduser -S -u 1001 appuser -G appgroup
100
+ COPY --from=builder --chown=appuser:appgroup /app/dist ./dist
101
+ COPY --from=builder --chown=appuser:appgroup /app/node_modules ./node_modules
102
+ USER appuser
103
+ CMD ["node", "dist/main.js"]
104
+ ```
105
+
106
+ ---
107
+
108
+ ## Example 2: Docker Ignore File (`.dockerignore`)
109
+
110
+ ### Best practice: ContextOS Standard `.dockerignore`
111
+
112
+ ```gitignore
113
+ node_modules
114
+ npm-debug.log
115
+ .git
116
+ .gitignore
117
+ .env
118
+ .env.*
119
+ dist
120
+ coverage
121
+ .DS_Store
122
+ *.md
123
+ ```
124
+
125
+ <!-- Source: TROUBLESHOOTING.md -->
126
+
127
+ # Docker Troubleshooting Guide
128
+
129
+ ## Common Issues & Fixes
130
+
131
+ ### 1. Slow Docker builds rebuilding node_modules every time
132
+
133
+ - **Cause**: Copying the entire directory (`COPY . .`) before running `npm ci`.
134
+ - **Fix**: Copy `package.json` and `package-lock.json` separately first, run `npm ci`, and only then copy application source code.
135
+
136
+ ### 2. Permission Denied Errors with Non-Root Users
137
+
138
+ - **Cause**: Files copied from builder without changing ownership.
139
+ - **Fix**: Always use `--chown=appuser:appgroup` when copying files in Dockerfile.
140
+
141
+ ### 3. Missing native build dependencies on Alpine Linux
142
+
143
+ - **Cause**: Packages requiring C bindings (e.g. `sharp`, `bcrypt`) fail on musl libc.
144
+ - **Fix**: Add `RUN apk add --no-cache libc6-compat python3 make g++` in the builder stage.