@nockdev/awf 6.2.0 → 6.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 (709) hide show
  1. package/.agent/build.yaml +3 -3
  2. package/.agent/config.yaml +21 -146
  3. package/.agent/core/AGENT_BEHAVIOR.md +86 -0
  4. package/.agent/core/AUDIT_POLICY.md +1 -1
  5. package/.agent/core/CACHE.md +1 -1
  6. package/.agent/core/COMMANDS.md +16 -7
  7. package/.agent/core/CUSTOMIZE.md +61 -3
  8. package/.agent/core/DATA_SAFETY.md +1 -1
  9. package/.agent/core/MEMORY_PATHS.yaml +2 -2
  10. package/.agent/core/PERMISSIONS.md +1 -1
  11. package/.agent/core/README.md +1 -1
  12. package/.agent/core/VERSION.yaml +18 -8
  13. package/.agent/core/{ACTIVE_MEMORY.yaml → archive/ACTIVE_MEMORY.yaml} +2 -2
  14. package/.agent/core/{CHECKPOINT.yaml → archive/CHECKPOINT.yaml} +2 -2
  15. package/.agent/core/{CLEANUP_ENGINE.yaml → archive/CLEANUP_ENGINE.yaml} +2 -2
  16. package/.agent/core/{CONTEXT_INJECTOR.yaml → archive/CONTEXT_INJECTOR.yaml} +2 -2
  17. package/.agent/core/{CONTEXT_LOADER.yaml → archive/CONTEXT_LOADER.yaml} +1 -1
  18. package/.agent/core/{CONTEXT_OPTIMIZATION.yaml → archive/CONTEXT_OPTIMIZATION.yaml} +1 -1
  19. package/.agent/core/{CONTEXT_PRIORITY.yaml → archive/CONTEXT_PRIORITY.yaml} +2 -2
  20. package/.agent/core/{FLOW_ENGINE.yaml → archive/FLOW_ENGINE.yaml} +1 -1
  21. package/.agent/core/{GRAPH_MEMORY.yaml → archive/GRAPH_MEMORY.yaml} +1 -1
  22. package/.agent/core/{HYBRID_ROUTER.yaml → archive/HYBRID_ROUTER.yaml} +1 -1
  23. package/.agent/core/{INTENT_DETECTION.yaml → archive/INTENT_DETECTION.yaml} +1 -1
  24. package/.agent/core/{MEMORY_CONSOLIDATION.yaml → archive/MEMORY_CONSOLIDATION.yaml} +3 -3
  25. package/.agent/core/{MEMORY_ENGINE.yaml → archive/MEMORY_ENGINE.yaml} +2 -2
  26. package/.agent/core/{MEMORY_UTILS.yaml → archive/MEMORY_UTILS.yaml} +1 -1
  27. package/.agent/core/{REFLECTION_ENGINE.yaml → archive/REFLECTION_ENGINE.yaml} +1 -1
  28. package/.agent/core/{ROUTER.yaml → archive/ROUTER.yaml} +5 -5
  29. package/.agent/core/{SCORING_FORMULA.yaml → archive/SCORING_FORMULA.yaml} +2 -2
  30. package/.agent/core/{SEMANTIC_ENGINE.yaml → archive/SEMANTIC_ENGINE.yaml} +1 -1
  31. package/.agent/core/{SKILLS_FLOW.yaml → archive/SKILLS_FLOW.yaml} +2 -2
  32. package/.agent/core/{STATE_MACHINE.yaml → archive/STATE_MACHINE.yaml} +1 -1
  33. package/.agent/core/{SUMMARIZATION_ENGINE.yaml → archive/SUMMARIZATION_ENGINE.yaml} +2 -2
  34. package/.agent/core/{TOKEN_BUDGETS.yaml → archive/TOKEN_BUDGETS.yaml} +2 -2
  35. package/.agent/core/{TOKEN_LOADING.yaml → archive/TOKEN_LOADING.yaml} +2 -2
  36. package/.agent/core/{TOKEN_SUMMARY.yaml → archive/TOKEN_SUMMARY.yaml} +2 -2
  37. package/.agent/core/{CODING_STYLES.yaml → reference/CODING_STYLES.yaml} +1 -1
  38. package/.agent/core/{LIBRARY_REGISTRY.yaml → reference/LIBRARY_REGISTRY.yaml} +1 -1
  39. package/.agent/core/{MCP_TOOLS.yaml → reference/MCP_TOOLS.yaml} +2 -2
  40. package/.agent/core/{PATTERNS.yaml → reference/PATTERNS.yaml} +1 -1
  41. package/.agent/core/{SKILL_SCHEMA.yaml → reference/SKILL_SCHEMA.yaml} +2 -2
  42. package/.agent/i18n/en.yaml +6 -6
  43. package/.agent/i18n/vi.yaml +6 -6
  44. package/.agent/ide/README.md +1 -1
  45. package/.agent/ide/amazonq.json +3 -3
  46. package/.agent/ide/amp.json +4 -3
  47. package/.agent/ide/antigravity.json +4 -3
  48. package/.agent/ide/augment.json +4 -4
  49. package/.agent/ide/claude.json +4 -3
  50. package/.agent/ide/cline.json +4 -3
  51. package/.agent/ide/codex.json +6 -1
  52. package/.agent/ide/cody.json +4 -3
  53. package/.agent/ide/continue.json +4 -3
  54. package/.agent/ide/cursor.json +4 -3
  55. package/.agent/ide/gemini.json +4 -3
  56. package/.agent/ide/jetbrains.json +4 -3
  57. package/.agent/ide/kiro.json +4 -3
  58. package/.agent/ide/opencode.json +4 -3
  59. package/.agent/ide/roo.json +4 -3
  60. package/.agent/ide/tabnine.json +4 -3
  61. package/.agent/ide/trae.json +4 -3
  62. package/.agent/ide/vscode.json +4 -3
  63. package/.agent/ide/windsurf.json +4 -3
  64. package/.agent/ide/zed.json +4 -3
  65. package/.agent/manifest.yaml +142 -34
  66. package/.agent/memory/core_memory/persona.json +2 -2
  67. package/.agent/memory/core_memory/project.json +1 -1
  68. package/.agent/memory/core_memory/rules.json +1 -1
  69. package/.agent/memory/core_memory/user.json +1 -1
  70. package/.agent/memory/graph/knowledge_graph.json +1 -1
  71. package/.agent/memory/patterns/errors.json +1 -1
  72. package/.agent/memory/patterns/successes.json +1 -1
  73. package/.agent/memory/state.json +3 -3
  74. package/.agent/personas/README.md +1 -1
  75. package/.agent/personas/architect.md +1 -1
  76. package/.agent/personas/auditor.md +1 -1
  77. package/.agent/personas/debugger.md +1 -1
  78. package/.agent/personas/developer.md +1 -1
  79. package/.agent/personas/devops.md +1 -1
  80. package/.agent/personas/documenter.md +1 -1
  81. package/.agent/personas/orchestrator.md +1 -1
  82. package/.agent/personas/persona.schema.yaml +1 -1
  83. package/.agent/personas/planner.md +1 -1
  84. package/.agent/personas/researcher.md +1 -1
  85. package/.agent/personas/security.md +1 -1
  86. package/.agent/personas/tester.md +1 -1
  87. package/.agent/private/README.md +74 -0
  88. package/.agent/private/_index.yaml +23 -0
  89. package/.agent/private/_template/META.yaml +38 -0
  90. package/.agent/private/_template/SKILL.md +43 -0
  91. package/.agent/private/_template/data/.gitkeep +0 -0
  92. package/.agent/private/autodomyh-api/META.yaml +48 -0
  93. package/.agent/private/autodomyh-api/SKILL.md +141 -0
  94. package/.agent/private/autodomyh-api/data/conventions.yaml +107 -0
  95. package/.agent/rules/README.md +24 -18
  96. package/.agent/rules/SACRED_RULES.xml +42 -36
  97. package/.agent/rules/{constitutional → archive/constitutional}/tier-0-core.yaml +5 -5
  98. package/.agent/rules/{constitutional → archive/constitutional}/tier-1-safety.yaml +5 -5
  99. package/.agent/rules/{constitutional → archive/constitutional}/tier-2-execution.yaml +6 -6
  100. package/.agent/rules/{modules → archive}/context-management.yaml +1 -1
  101. package/.agent/rules/{duplication-prevention.md → archive/duplication-prevention.md} +1 -1
  102. package/.agent/rules/{modules → archive}/evidence.yaml +1 -1
  103. package/.agent/rules/{project-detection.md → archive/project-detection.md} +1 -1
  104. package/.agent/rules/{modules → archive}/reflection.yaml +1 -1
  105. package/.agent/rules/{modules → archive}/versioning.yaml +3 -3
  106. package/.agent/rules/data/build-systems.yaml +2 -2
  107. package/.agent/rules/modules/agent-delegation.yaml +136 -0
  108. package/.agent/rules/modules/edit-verification.yaml +1 -1
  109. package/.agent/rules/modules/git-workflow.yaml +1 -1
  110. package/.agent/rules/modules/language.yaml +1 -1
  111. package/.agent/rules/modules/online-research.yaml +1 -1
  112. package/.agent/rules/modules/performance-optimization.yaml +141 -0
  113. package/.agent/rules/modules/quality.yaml +1 -1
  114. package/.agent/rules/modules/stop-conditions.yaml +1 -1
  115. package/.agent/rules/modules/terminal-safety.yaml +1 -1
  116. package/.agent/rules/modules/yagni.yaml +1 -1
  117. package/.agent/rules/validation-framework.md +1 -1
  118. package/.agent/skills/DEVELOPMENT.yaml +5 -5
  119. package/.agent/skills/README.md +19 -16
  120. package/.agent/skills/_categories.yaml +60 -8
  121. package/.agent/skills/_router.yaml +61 -19
  122. package/.agent/skills/ai-ml/ai-agents/META.yaml +127 -0
  123. package/.agent/skills/ai-ml/ai-agents/SKILL.md +139 -0
  124. package/.agent/skills/ai-ml/ai-agents/data/agent-rules.yaml +120 -0
  125. package/.agent/skills/ai-ml/ai-agents/data/llm-integration.yaml +129 -0
  126. package/.agent/skills/ai-ml/ai-agents/data/memory-patterns.yaml +123 -0
  127. package/.agent/skills/ai-ml/ai-agents/data/orchestration-patterns.yaml +101 -0
  128. package/.agent/skills/ai-ml/gemini-live/META.yaml +55 -0
  129. package/.agent/skills/ai-ml/gemini-live/SKILL.md +155 -0
  130. package/.agent/skills/ai-ml/gemini-live/data/code-execution.yaml +131 -0
  131. package/.agent/skills/ai-ml/gemini-live/data/context-caching.yaml +96 -0
  132. package/.agent/skills/ai-ml/gemini-live/data/grounding.yaml +97 -0
  133. package/.agent/skills/ai-ml/gemini-live/data/live-api.yaml +103 -0
  134. package/.agent/skills/ai-ml/gemini-media-gen/META.yaml +56 -0
  135. package/.agent/skills/ai-ml/gemini-media-gen/SKILL.md +128 -0
  136. package/.agent/skills/ai-ml/gemini-media-gen/data/files-api.yaml +96 -0
  137. package/.agent/skills/ai-ml/gemini-media-gen/data/image-models.yaml +112 -0
  138. package/.agent/skills/ai-ml/gemini-media-gen/data/image-prompts.yaml +131 -0
  139. package/.agent/skills/ai-ml/gemini-media-gen/data/video-generation.yaml +131 -0
  140. package/.agent/skills/ai-ml/gemini-tts/META.yaml +49 -0
  141. package/.agent/skills/ai-ml/gemini-tts/SKILL.md +124 -0
  142. package/.agent/skills/ai-ml/gemini-tts/data/markup-tags.yaml +95 -0
  143. package/.agent/skills/ai-ml/gemini-tts/data/models.yaml +124 -0
  144. package/.agent/skills/ai-ml/gemini-tts/data/prompting-patterns.yaml +81 -0
  145. package/.agent/skills/ai-ml/prompt-engineering/META.yaml +77 -0
  146. package/.agent/skills/ai-ml/prompt-engineering/SKILL.md +217 -0
  147. package/.agent/skills/ai-ml/prompt-engineering/data/gemini3-patterns.yaml +170 -0
  148. package/.agent/skills/ai-ml/prompt-engineering/data/output-patterns.yaml +73 -0
  149. package/.agent/skills/ai-ml/prompt-engineering/data/provider-patterns.yaml +82 -0
  150. package/.agent/skills/ai-ml/prompt-engineering/data/reasoning-patterns.yaml +86 -0
  151. package/.agent/skills/ai-ml/prompt-engineering/data/safety-patterns.yaml +71 -0
  152. package/.agent/skills/ai-ml/prompt-engineering/data/tool-patterns.yaml +173 -0
  153. package/.agent/skills/ai-ml/rag-patterns/META.yaml +57 -0
  154. package/.agent/skills/ai-ml/rag-patterns/SKILL.md +92 -0
  155. package/.agent/skills/ai-ml/rag-patterns/data/chunking-strategies.yaml +71 -0
  156. package/.agent/skills/ai-ml/rag-patterns/data/embedding-models.yaml +76 -0
  157. package/.agent/skills/ai-ml/rag-patterns/data/evaluation.yaml +92 -0
  158. package/.agent/skills/ai-ml/rag-patterns/data/retrieval-patterns.yaml +101 -0
  159. package/.agent/skills/ai-ml/rag-patterns/data/vector-databases.yaml +103 -0
  160. package/.agent/skills/ai-ml/vector-search/META.yaml +63 -0
  161. package/.agent/skills/ai-ml/vector-search/SKILL.md +110 -0
  162. package/.agent/skills/ai-ml/vector-search/data/embedding-models.yaml +117 -0
  163. package/.agent/skills/ai-ml/vector-search/data/search-patterns.yaml +118 -0
  164. package/.agent/skills/ai-ml/vector-search/data/vector-dbs.yaml +155 -0
  165. package/.agent/skills/core/api-design/META.yaml +1 -5
  166. package/.agent/skills/core/api-design/SKILL.md +20 -26
  167. package/.agent/skills/core/api-design/data/api-versioning.yaml +211 -211
  168. package/.agent/skills/core/api-design/data/error-responses.yaml +129 -129
  169. package/.agent/skills/core/api-design/data/graphql-patterns.yaml +159 -159
  170. package/.agent/skills/core/api-design/data/grpc-patterns.yaml +159 -159
  171. package/.agent/skills/core/api-design/data/http-status-codes.yaml +170 -170
  172. package/.agent/skills/core/api-design/data/modern-api-patterns.yaml +160 -0
  173. package/.agent/skills/core/api-design/data/pagination.yaml +115 -115
  174. package/.agent/skills/core/api-design/data/rate-limiting.yaml +129 -129
  175. package/.agent/skills/core/api-design/data/rest-patterns.yaml +189 -189
  176. package/.agent/skills/core/api-design/data/test-apis.yaml +211 -211
  177. package/.agent/skills/core/authentication/META.yaml +1 -5
  178. package/.agent/skills/core/authentication/SKILL.md +36 -43
  179. package/.agent/skills/core/authentication/data/anti-patterns.yaml +129 -129
  180. package/.agent/skills/core/authentication/data/core-patterns.yaml +250 -250
  181. package/.agent/skills/core/authentication/data/jwt-patterns.yaml +249 -249
  182. package/.agent/skills/core/authentication/data/language-csharp.yaml +209 -209
  183. package/.agent/skills/core/authentication/data/language-go.yaml +209 -209
  184. package/.agent/skills/core/authentication/data/language-java.yaml +209 -209
  185. package/.agent/skills/core/authentication/data/language-mobile.yaml +209 -209
  186. package/.agent/skills/core/authentication/data/language-python.yaml +209 -209
  187. package/.agent/skills/core/authentication/data/language-rust.yaml +209 -209
  188. package/.agent/skills/core/authentication/data/language-typescript.yaml +209 -209
  189. package/.agent/skills/core/authentication/data/mfa-patterns.yaml +169 -169
  190. package/.agent/skills/core/authentication/data/oauth-patterns.yaml +249 -249
  191. package/.agent/skills/core/authentication/data/oauth.yaml +243 -243
  192. package/.agent/skills/core/authentication/data/passkey-patterns.yaml +149 -0
  193. package/.agent/skills/core/authentication/data/passkeys-webauthn.yaml +209 -209
  194. package/.agent/skills/core/authentication/data/passkeys.yaml +203 -203
  195. package/.agent/skills/core/authentication/data/password-patterns.yaml +169 -169
  196. package/.agent/skills/core/authentication/data/password.yaml +163 -163
  197. package/.agent/skills/core/authentication/data/session-patterns.yaml +209 -209
  198. package/.agent/skills/core/error-handling/META.yaml +1 -5
  199. package/.agent/skills/core/error-handling/SKILL.md +21 -25
  200. package/.agent/skills/core/error-handling/data/anti-patterns.yaml +99 -99
  201. package/.agent/skills/core/error-handling/data/api-error-patterns.yaml +2 -2
  202. package/.agent/skills/core/error-handling/data/core-patterns.yaml +2 -2
  203. package/.agent/skills/core/error-handling/data/error-codes.yaml +159 -159
  204. package/.agent/skills/core/error-handling/data/error-messages.yaml +2 -2
  205. package/.agent/skills/core/error-handling/data/language-c-cpp.yaml +220 -220
  206. package/.agent/skills/core/error-handling/data/language-go-rust.yaml +2 -2
  207. package/.agent/skills/core/error-handling/data/language-python-java.yaml +220 -220
  208. package/.agent/skills/core/error-handling/data/language-swift-kotlin.yaml +220 -220
  209. package/.agent/skills/core/error-handling/data/language-typescript-php-ruby.yaml +220 -220
  210. package/.agent/skills/core/error-handling/data/resilience-patterns.yaml +2 -2
  211. package/.agent/skills/core/error-handling/data/ui-error-patterns.yaml +129 -129
  212. package/.agent/skills/core/logging/META.yaml +1 -5
  213. package/.agent/skills/core/logging/SKILL.md +28 -42
  214. package/.agent/skills/core/logging/data/aggregation-patterns.yaml +185 -185
  215. package/.agent/skills/core/logging/data/anti-patterns.yaml +115 -115
  216. package/.agent/skills/core/logging/data/core-patterns.yaml +220 -220
  217. package/.agent/skills/core/logging/data/language-csharp.yaml +185 -185
  218. package/.agent/skills/core/logging/data/language-go.yaml +185 -185
  219. package/.agent/skills/core/logging/data/language-java.yaml +185 -185
  220. package/.agent/skills/core/logging/data/language-kotlin.yaml +150 -150
  221. package/.agent/skills/core/logging/data/language-others.yaml +178 -178
  222. package/.agent/skills/core/logging/data/language-python.yaml +185 -185
  223. package/.agent/skills/core/logging/data/language-rust.yaml +185 -185
  224. package/.agent/skills/core/logging/data/language-swift.yaml +150 -150
  225. package/.agent/skills/core/logging/data/language-typescript.yaml +185 -185
  226. package/.agent/skills/core/logging/data/otel-logging.yaml +150 -150
  227. package/.agent/skills/core/observability/META.yaml +1 -5
  228. package/.agent/skills/core/observability/SKILL.md +29 -38
  229. package/.agent/skills/core/observability/data/alerting-patterns.yaml +159 -159
  230. package/.agent/skills/core/observability/data/anti-patterns.yaml +99 -99
  231. package/.agent/skills/core/observability/data/core-patterns.yaml +189 -189
  232. package/.agent/skills/core/observability/data/language-cpp.yaml +159 -159
  233. package/.agent/skills/core/observability/data/language-csharp.yaml +159 -159
  234. package/.agent/skills/core/observability/data/language-go.yaml +159 -159
  235. package/.agent/skills/core/observability/data/language-java.yaml +159 -159
  236. package/.agent/skills/core/observability/data/language-others.yaml +249 -249
  237. package/.agent/skills/core/observability/data/language-python.yaml +159 -159
  238. package/.agent/skills/core/observability/data/language-rust.yaml +159 -159
  239. package/.agent/skills/core/observability/data/language-typescript.yaml +159 -159
  240. package/.agent/skills/core/observability/data/metrics-patterns.yaml +129 -129
  241. package/.agent/skills/core/observability/data/metrics-prometheus.yaml +159 -159
  242. package/.agent/skills/core/observability/data/otel-core.yaml +189 -189
  243. package/.agent/skills/core/observability/data/profiling-patterns.yaml +129 -129
  244. package/.agent/skills/core/observability/data/tracing-patterns.yaml +159 -159
  245. package/.agent/skills/core/observability/data/tracing-tools.yaml +129 -129
  246. package/.agent/skills/core/security/META.yaml +1 -5
  247. package/.agent/skills/core/security/SKILL.md +25 -25
  248. package/.agent/skills/core/security/data/ai-ml-security.yaml +255 -255
  249. package/.agent/skills/core/security/data/api-security.yaml +224 -224
  250. package/.agent/skills/core/security/data/auth-patterns.yaml +189 -189
  251. package/.agent/skills/core/security/data/binary-exploitation.yaml +333 -333
  252. package/.agent/skills/core/security/data/cloud-security.yaml +263 -263
  253. package/.agent/skills/core/security/data/cwe-top25.yaml +409 -409
  254. package/.agent/skills/core/security/data/language-specific/c-security.yaml +289 -289
  255. package/.agent/skills/core/security/data/language-specific/cpp-security.yaml +289 -289
  256. package/.agent/skills/core/security/data/language-specific/csharp-security.yaml +213 -213
  257. package/.agent/skills/core/security/data/language-specific/go-security.yaml +213 -213
  258. package/.agent/skills/core/security/data/language-specific/java-security.yaml +289 -289
  259. package/.agent/skills/core/security/data/language-specific/kotlin-security.yaml +192 -192
  260. package/.agent/skills/core/security/data/language-specific/php-security.yaml +213 -213
  261. package/.agent/skills/core/security/data/language-specific/python-security.yaml +289 -289
  262. package/.agent/skills/core/security/data/language-specific/ruby-security.yaml +192 -192
  263. package/.agent/skills/core/security/data/language-specific/rust-security.yaml +234 -234
  264. package/.agent/skills/core/security/data/language-specific/solidity-security.yaml +363 -363
  265. package/.agent/skills/core/security/data/language-specific/swift-security.yaml +192 -192
  266. package/.agent/skills/core/security/data/language-specific/typescript-security.yaml +289 -289
  267. package/.agent/skills/core/security/data/mobile-security.yaml +363 -363
  268. package/.agent/skills/core/security/data/network-security.yaml +291 -291
  269. package/.agent/skills/core/security/data/owasp-llm-top10.yaml +122 -0
  270. package/.agent/skills/core/security/data/owasp-top10.yaml +165 -165
  271. package/.agent/skills/core/security/data/reverse-engineering.yaml +491 -491
  272. package/.agent/skills/core/security/data/supply-chain.yaml +213 -213
  273. package/.agent/skills/cross-cutting/_index.yaml +4 -2
  274. package/.agent/skills/cross-cutting/accessibility/META.yaml +45 -0
  275. package/.agent/skills/cross-cutting/accessibility/SKILL.md +121 -0
  276. package/.agent/skills/cross-cutting/accessibility/data/aria-patterns.yaml +88 -0
  277. package/.agent/skills/cross-cutting/accessibility/data/testing-tools.yaml +60 -0
  278. package/.agent/skills/cross-cutting/accessibility/data/wcag-guidelines.yaml +98 -0
  279. package/.agent/skills/cross-cutting/audit-pro/META.yaml +2 -6
  280. package/.agent/skills/cross-cutting/bun/META.yaml +2 -8
  281. package/.agent/skills/cross-cutting/bun/SKILL.md +8 -12
  282. package/.agent/skills/cross-cutting/coding-rules/META.yaml +4 -11
  283. package/.agent/skills/cross-cutting/coding-rules/SKILL.md +38 -46
  284. package/.agent/skills/cross-cutting/coding-rules/data/adr-patterns.yaml +102 -0
  285. package/.agent/skills/cross-cutting/coding-rules/data/architecture-patterns.yaml +289 -90
  286. package/.agent/skills/cross-cutting/coding-rules/data/build-systems.yaml +340 -340
  287. package/.agent/skills/cross-cutting/coding-rules/data/coding-rules.yaml +641 -641
  288. package/.agent/skills/cross-cutting/coding-rules/data/concurrency-patterns.yaml +102 -102
  289. package/.agent/skills/cross-cutting/coding-rules/data/design-patterns.yaml +254 -254
  290. package/.agent/skills/cross-cutting/coding-rules/data/framework-directories.yaml +446 -0
  291. package/.agent/skills/cross-cutting/coding-rules/data/framework-signatures.yaml +338 -338
  292. package/.agent/skills/cross-cutting/coding-rules/data/memory-management.yaml +102 -102
  293. package/.agent/skills/cross-cutting/coding-rules/data/naming-conventions.yaml +314 -314
  294. package/.agent/skills/cross-cutting/coding-rules/data/performance-benchmarks.yaml +158 -158
  295. package/.agent/skills/cross-cutting/coding-rules/data/solid-principles.yaml +74 -74
  296. package/.agent/skills/cross-cutting/coding-rules/data/test-frameworks.yaml +177 -177
  297. package/.agent/skills/cross-cutting/database/META.yaml +2 -2
  298. package/.agent/skills/cross-cutting/database/SKILL.md +10 -19
  299. package/.agent/skills/cross-cutting/deno/META.yaml +2 -8
  300. package/.agent/skills/cross-cutting/deno/SKILL.md +8 -12
  301. package/.agent/skills/cross-cutting/domyh-design/ADVANCED.md +247 -0
  302. package/.agent/skills/cross-cutting/{ui-ux-pro-max → domyh-design}/META.yaml +44 -13
  303. package/.agent/skills/cross-cutting/domyh-design/SKILL.md +171 -0
  304. package/.agent/skills/cross-cutting/domyh-design/data/animation-ui-kits.yaml +198 -0
  305. package/.agent/skills/cross-cutting/domyh-design/data/charts.yaml +331 -0
  306. package/.agent/skills/cross-cutting/domyh-design/data/colors.yaml +1226 -0
  307. package/.agent/skills/cross-cutting/domyh-design/data/component-decision.yaml +287 -0
  308. package/.agent/skills/cross-cutting/domyh-design/data/component-effects.yaml +673 -0
  309. package/.agent/skills/cross-cutting/domyh-design/data/component-mapping.yaml +318 -0
  310. package/.agent/skills/cross-cutting/domyh-design/data/design-system-prompts.yaml +174 -0
  311. package/.agent/skills/cross-cutting/domyh-design/data/design-tokens.yaml +525 -0
  312. package/.agent/skills/cross-cutting/domyh-design/data/desktop-animation.yaml +680 -0
  313. package/.agent/skills/cross-cutting/domyh-design/data/desktop-architecture.yaml +140 -0
  314. package/.agent/skills/cross-cutting/{ui-ux-pro-max → domyh-design}/data/desktop-colors.yaml +4 -4
  315. package/.agent/skills/cross-cutting/domyh-design/data/directory-structure.yaml +80 -0
  316. package/.agent/skills/cross-cutting/domyh-design/data/icons.yaml +918 -0
  317. package/.agent/skills/cross-cutting/domyh-design/data/image-gen-prompts.yaml +678 -0
  318. package/.agent/skills/cross-cutting/domyh-design/data/image-gen-workflows.yaml +202 -0
  319. package/.agent/skills/cross-cutting/domyh-design/data/implementation-strategy.yaml +107 -0
  320. package/.agent/skills/cross-cutting/domyh-design/data/landing.yaml +373 -0
  321. package/.agent/skills/cross-cutting/domyh-design/data/micro-interactions.yaml +528 -0
  322. package/.agent/skills/cross-cutting/domyh-design/data/platform-frameworks.yaml +195 -0
  323. package/.agent/skills/cross-cutting/domyh-design/data/platform-guidelines.yaml +177 -0
  324. package/.agent/skills/cross-cutting/domyh-design/data/products.yaml +1339 -0
  325. package/.agent/skills/cross-cutting/domyh-design/data/prompts.yaml +207 -0
  326. package/.agent/skills/cross-cutting/domyh-design/data/react-performance.yaml +504 -0
  327. package/.agent/skills/cross-cutting/domyh-design/data/scroll-animation-patterns.yaml +398 -0
  328. package/.agent/skills/cross-cutting/domyh-design/data/stacks/desktop.yaml +228 -0
  329. package/.agent/skills/cross-cutting/domyh-design/data/stacks/flutter.yaml +508 -0
  330. package/.agent/skills/cross-cutting/domyh-design/data/stacks/html-tailwind.yaml +543 -0
  331. package/.agent/skills/cross-cutting/domyh-design/data/stacks/nextjs.yaml +515 -0
  332. package/.agent/skills/cross-cutting/domyh-design/data/stacks/nuxt-ui.yaml +519 -0
  333. package/.agent/skills/cross-cutting/domyh-design/data/stacks/nuxtjs.yaml +599 -0
  334. package/.agent/skills/cross-cutting/domyh-design/data/stacks/react-native.yaml +496 -0
  335. package/.agent/skills/cross-cutting/domyh-design/data/stacks/react.yaml +526 -0
  336. package/.agent/skills/cross-cutting/domyh-design/data/stacks/shadcn.yaml +616 -0
  337. package/.agent/skills/cross-cutting/domyh-design/data/stacks/svelte.yaml +520 -0
  338. package/.agent/skills/cross-cutting/domyh-design/data/stacks/swiftui.yaml +486 -0
  339. package/.agent/skills/cross-cutting/domyh-design/data/stacks/vue.yaml +485 -0
  340. package/.agent/skills/cross-cutting/domyh-design/data/styles.yaml +1473 -0
  341. package/.agent/skills/cross-cutting/domyh-design/data/tailwind-animation-plugins.yaml +462 -0
  342. package/.agent/skills/cross-cutting/domyh-design/data/typography.yaml +647 -0
  343. package/.agent/skills/cross-cutting/domyh-design/data/ui-reasoning.yaml +1019 -0
  344. package/.agent/skills/cross-cutting/domyh-design/data/ux-guidelines.yaml +1009 -0
  345. package/.agent/skills/cross-cutting/domyh-design/data/web-animation-libraries.yaml +541 -0
  346. package/.agent/skills/cross-cutting/domyh-design/data/web-interface.yaml +347 -0
  347. package/.agent/skills/cross-cutting/domyh-design/data/webview-animation-optimization.yaml +685 -0
  348. package/.agent/skills/cross-cutting/electron/SKILL.md +10 -14
  349. package/.agent/skills/cross-cutting/event-driven/META.yaml +108 -0
  350. package/.agent/skills/cross-cutting/event-driven/SKILL.md +123 -0
  351. package/.agent/skills/cross-cutting/event-driven/data/broker-comparison.yaml +123 -0
  352. package/.agent/skills/cross-cutting/event-driven/data/eda-patterns.yaml +120 -0
  353. package/.agent/skills/cross-cutting/event-driven/data/production-patterns.yaml +120 -0
  354. package/.agent/skills/cross-cutting/microservices/META.yaml +90 -0
  355. package/.agent/skills/cross-cutting/microservices/SKILL.md +120 -0
  356. package/.agent/skills/cross-cutting/microservices/data/communication.yaml +163 -0
  357. package/.agent/skills/cross-cutting/microservices/data/cqrs-patterns.yaml +199 -0
  358. package/.agent/skills/cross-cutting/microservices/data/deployment.yaml +153 -0
  359. package/.agent/skills/cross-cutting/microservices/data/event-sourcing.yaml +231 -0
  360. package/.agent/skills/cross-cutting/microservices/data/observability.yaml +152 -0
  361. package/.agent/skills/cross-cutting/microservices/data/resilience.yaml +189 -0
  362. package/.agent/skills/cross-cutting/microservices/data/saga-patterns.yaml +161 -0
  363. package/.agent/skills/cross-cutting/microservices/data/service-mesh.yaml +179 -0
  364. package/.agent/skills/cross-cutting/monorepo/META.yaml +54 -0
  365. package/.agent/skills/cross-cutting/monorepo/SKILL.md +108 -0
  366. package/.agent/skills/cross-cutting/monorepo/data/ci-cd-strategies.yaml +74 -0
  367. package/.agent/skills/cross-cutting/monorepo/data/nx-patterns.yaml +74 -0
  368. package/.agent/skills/cross-cutting/monorepo/data/turborepo-patterns.yaml +84 -0
  369. package/.agent/skills/cross-cutting/monorepo/data/versioning.yaml +83 -0
  370. package/.agent/skills/cross-cutting/monorepo/data/workspace-patterns.yaml +85 -0
  371. package/.agent/skills/cross-cutting/playwright/ADVANCED.md +289 -0
  372. package/.agent/skills/cross-cutting/playwright/META.yaml +90 -0
  373. package/.agent/skills/cross-cutting/playwright/SKILL.md +210 -0
  374. package/.agent/skills/cross-cutting/playwright/data/ai-agents.yaml +137 -0
  375. package/.agent/skills/cross-cutting/playwright/data/config-templates.yaml +141 -0
  376. package/.agent/skills/cross-cutting/playwright/data/interaction-checklist.yaml +398 -0
  377. package/.agent/skills/cross-cutting/playwright/data/locator-patterns.yaml +96 -0
  378. package/.agent/skills/cross-cutting/playwright/data/mcp-tools.yaml +153 -0
  379. package/.agent/skills/cross-cutting/playwright/data/open-source-tools.yaml +95 -0
  380. package/.agent/skills/cross-cutting/real-time/META.yaml +72 -0
  381. package/.agent/skills/cross-cutting/real-time/SKILL.md +128 -0
  382. package/.agent/skills/cross-cutting/real-time/data/socketio-patterns.yaml +165 -0
  383. package/.agent/skills/cross-cutting/real-time/data/sse-patterns.yaml +181 -0
  384. package/.agent/skills/cross-cutting/real-time/data/websocket-patterns.yaml +176 -0
  385. package/.agent/skills/cross-cutting/seo/META.yaml +47 -0
  386. package/.agent/skills/cross-cutting/seo/SKILL.md +114 -0
  387. package/.agent/skills/cross-cutting/seo/data/core-web-vitals.yaml +93 -0
  388. package/.agent/skills/cross-cutting/seo/data/structured-data.yaml +82 -0
  389. package/.agent/skills/cross-cutting/seo/data/technical-seo.yaml +75 -0
  390. package/.agent/skills/cross-cutting/sql/META.yaml +2 -8
  391. package/.agent/skills/cross-cutting/sql/SKILL.md +8 -12
  392. package/.agent/skills/cross-cutting/tailwind/META.yaml +3 -20
  393. package/.agent/skills/cross-cutting/tailwind/SKILL.md +13 -11
  394. package/.agent/skills/cross-cutting/tauri/META.yaml +75 -0
  395. package/.agent/skills/cross-cutting/tauri/SKILL.md +127 -0
  396. package/.agent/skills/cross-cutting/tauri/data/build.yaml +141 -0
  397. package/.agent/skills/cross-cutting/tauri/data/plugins.yaml +157 -0
  398. package/.agent/skills/cross-cutting/tauri/data/security.yaml +134 -0
  399. package/.agent/skills/cross-cutting/tdd-workflow/META.yaml +58 -0
  400. package/.agent/skills/cross-cutting/tdd-workflow/SKILL.md +128 -0
  401. package/.agent/skills/cross-cutting/tdd-workflow/data/anti-patterns.yaml +70 -0
  402. package/.agent/skills/cross-cutting/tdd-workflow/data/bdd-atdd-patterns.yaml +77 -0
  403. package/.agent/skills/cross-cutting/tdd-workflow/data/core-tdd-cycle.yaml +104 -0
  404. package/.agent/skills/cross-cutting/tdd-workflow/data/coverage-strategies.yaml +105 -0
  405. package/.agent/skills/cross-cutting/tdd-workflow/data/language-patterns.yaml +115 -0
  406. package/.agent/skills/cross-cutting/tdd-workflow/data/test-doubles.yaml +93 -0
  407. package/.agent/skills/cross-cutting/testing/META.yaml +1 -5
  408. package/.agent/skills/cross-cutting/testing/SKILL.md +13 -26
  409. package/.agent/skills/cross-cutting/testing/data/e2e-patterns.yaml +136 -0
  410. package/.agent/skills/cross-cutting/testing/data/frameworks.yaml +3 -3
  411. package/.agent/skills/cross-cutting/testing/data/patterns.yaml +149 -147
  412. package/.agent/skills/cross-cutting/wasm/META.yaml +47 -0
  413. package/.agent/skills/cross-cutting/wasm/SKILL.md +88 -0
  414. package/.agent/skills/cross-cutting/wasm/data/browser-patterns.yaml +106 -0
  415. package/.agent/skills/cross-cutting/wasm/data/component-model.yaml +85 -0
  416. package/.agent/skills/cross-cutting/wasm/data/server-patterns.yaml +89 -0
  417. package/.agent/skills/cross-cutting/web-perf/META.yaml +3 -9
  418. package/.agent/skills/cross-cutting/web-perf/SKILL.md +9 -18
  419. package/.agent/skills/devops/aws/META.yaml +48 -63
  420. package/.agent/skills/devops/azure/META.yaml +44 -0
  421. package/.agent/skills/devops/azure/SKILL.md +43 -0
  422. package/.agent/skills/devops/azure/data/cli.yaml +69 -0
  423. package/.agent/skills/devops/azure/data/compute.yaml +83 -0
  424. package/.agent/skills/devops/azure/data/data-services.yaml +126 -0
  425. package/.agent/skills/devops/ci-cd/META.yaml +47 -14
  426. package/.agent/skills/devops/docker/META.yaml +53 -14
  427. package/.agent/skills/devops/gcp/META.yaml +43 -0
  428. package/.agent/skills/devops/gcp/SKILL.md +43 -0
  429. package/.agent/skills/devops/gcp/data/cli.yaml +39 -0
  430. package/.agent/skills/devops/gcp/data/compute.yaml +92 -0
  431. package/.agent/skills/devops/gcp/data/data-services.yaml +97 -0
  432. package/.agent/skills/devops/kubernetes/META.yaml +56 -7
  433. package/.agent/skills/devops/terraform/META.yaml +47 -0
  434. package/.agent/skills/devops/terraform/SKILL.md +73 -0
  435. package/.agent/skills/devops/terraform/data/ci-cd.yaml +89 -0
  436. package/.agent/skills/devops/terraform/data/hcl-patterns.yaml +131 -0
  437. package/.agent/skills/devops/terraform/data/providers.yaml +96 -0
  438. package/.agent/skills/frameworks/angular/META.yaml +20 -6
  439. package/.agent/skills/frameworks/angular/SKILL.md +1 -1
  440. package/.agent/skills/frameworks/flutter/META.yaml +20 -6
  441. package/.agent/skills/frameworks/flutter/SKILL.md +1 -1
  442. package/.agent/skills/frameworks/nextjs/ADVANCED.md +2 -2
  443. package/.agent/skills/frameworks/nextjs/META.yaml +22 -8
  444. package/.agent/skills/frameworks/nextjs/SKILL.md +4 -4
  445. package/.agent/skills/frameworks/nextjs/data/server.yaml +4 -4
  446. package/.agent/skills/frameworks/nuxt/META.yaml +21 -7
  447. package/.agent/skills/frameworks/nuxt/SKILL.md +2 -2
  448. package/.agent/skills/frameworks/nuxt/data/core.yaml +14 -2
  449. package/.agent/skills/frameworks/nuxt/data/server.yaml +14 -2
  450. package/.agent/skills/frameworks/react/META.yaml +20 -7
  451. package/.agent/skills/frameworks/react/SKILL.md +7 -11
  452. package/.agent/skills/frameworks/react/data/core.yaml +14 -2
  453. package/.agent/skills/frameworks/react/data/server.yaml +16 -4
  454. package/.agent/skills/frameworks/react-native/META.yaml +19 -6
  455. package/.agent/skills/frameworks/react-native/SKILL.md +1 -1
  456. package/.agent/skills/frameworks/svelte/META.yaml +19 -6
  457. package/.agent/skills/frameworks/svelte/SKILL.md +1 -1
  458. package/.agent/skills/frameworks/vue/META.yaml +20 -8
  459. package/.agent/skills/frameworks/vue/SKILL.md +7 -7
  460. package/.agent/skills/frameworks/vue/data/advanced.yaml +19 -7
  461. package/.agent/skills/frameworks/vue/data/core.yaml +13 -1
  462. package/.agent/skills/index.json +67 -14
  463. package/.agent/skills/languages/asm/META.yaml +2 -8
  464. package/.agent/skills/languages/asm/SKILL.md +1 -1
  465. package/.agent/skills/languages/c/META.yaml +2 -8
  466. package/.agent/skills/languages/c/SKILL.md +1 -1
  467. package/.agent/skills/languages/clojure/META.yaml +2 -2
  468. package/.agent/skills/languages/clojure/SKILL.md +1 -1
  469. package/.agent/skills/languages/cpp/META.yaml +2 -8
  470. package/.agent/skills/languages/cpp/SKILL.md +1 -1
  471. package/.agent/skills/languages/crystal/META.yaml +2 -8
  472. package/.agent/skills/languages/crystal/SKILL.md +1 -1
  473. package/.agent/skills/languages/csharp/META.yaml +2 -2
  474. package/.agent/skills/languages/csharp/SKILL.md +1 -1
  475. package/.agent/skills/languages/elixir/META.yaml +2 -2
  476. package/.agent/skills/languages/elixir/SKILL.md +1 -1
  477. package/.agent/skills/languages/fsharp/META.yaml +2 -2
  478. package/.agent/skills/languages/fsharp/SKILL.md +1 -1
  479. package/.agent/skills/languages/go/META.yaml +2 -8
  480. package/.agent/skills/languages/go/SKILL.md +1 -1
  481. package/.agent/skills/languages/haskell/META.yaml +2 -2
  482. package/.agent/skills/languages/haskell/SKILL.md +1 -1
  483. package/.agent/skills/languages/java/META.yaml +2 -8
  484. package/.agent/skills/languages/java/SKILL.md +1 -1
  485. package/.agent/skills/languages/javascript/META.yaml +2 -8
  486. package/.agent/skills/languages/javascript/SKILL.md +1 -1
  487. package/.agent/skills/languages/julia/META.yaml +2 -2
  488. package/.agent/skills/languages/julia/SKILL.md +1 -1
  489. package/.agent/skills/languages/kotlin/META.yaml +2 -2
  490. package/.agent/skills/languages/kotlin/SKILL.md +1 -1
  491. package/.agent/skills/languages/lua/META.yaml +2 -8
  492. package/.agent/skills/languages/lua/SKILL.md +3 -3
  493. package/.agent/skills/languages/nim/META.yaml +2 -8
  494. package/.agent/skills/languages/nim/SKILL.md +1 -1
  495. package/.agent/skills/languages/ocaml/META.yaml +2 -2
  496. package/.agent/skills/languages/ocaml/SKILL.md +1 -1
  497. package/.agent/skills/languages/perl/META.yaml +2 -2
  498. package/.agent/skills/languages/perl/SKILL.md +1 -1
  499. package/.agent/skills/languages/php/META.yaml +2 -2
  500. package/.agent/skills/languages/php/SKILL.md +1 -1
  501. package/.agent/skills/languages/python/META.yaml +2 -8
  502. package/.agent/skills/languages/python/SKILL.md +1 -1
  503. package/.agent/skills/languages/r/META.yaml +2 -2
  504. package/.agent/skills/languages/r/SKILL.md +1 -1
  505. package/.agent/skills/languages/ruby/META.yaml +2 -2
  506. package/.agent/skills/languages/ruby/SKILL.md +1 -1
  507. package/.agent/skills/languages/rust/META.yaml +2 -8
  508. package/.agent/skills/languages/rust/SKILL.md +1 -1
  509. package/.agent/skills/languages/scala/META.yaml +2 -2
  510. package/.agent/skills/languages/scala/SKILL.md +1 -1
  511. package/.agent/skills/languages/solidity/META.yaml +2 -2
  512. package/.agent/skills/languages/solidity/SKILL.md +1 -1
  513. package/.agent/skills/languages/swift/META.yaml +2 -2
  514. package/.agent/skills/languages/swift/SKILL.md +1 -1
  515. package/.agent/skills/languages/typescript/META.yaml +2 -8
  516. package/.agent/skills/languages/typescript/SKILL.md +1 -1
  517. package/.agent/skills/languages/zig/META.yaml +5 -7
  518. package/.agent/skills/languages/zig/SKILL.md +1 -1
  519. package/.agent/skills/tooling/api-protocols/META.yaml +102 -0
  520. package/.agent/skills/tooling/api-protocols/SKILL.md +145 -0
  521. package/.agent/skills/tooling/api-protocols/data/graphql-patterns.yaml +115 -0
  522. package/.agent/skills/tooling/api-protocols/data/grpc-patterns.yaml +101 -0
  523. package/.agent/skills/tooling/api-protocols/data/trpc-patterns.yaml +97 -0
  524. package/.agent/skills/tooling/browser-agent/ADVANCED.md +242 -0
  525. package/.agent/skills/tooling/browser-agent/META.yaml +78 -0
  526. package/.agent/skills/tooling/browser-agent/SKILL.md +164 -0
  527. package/.agent/skills/tooling/browser-agent/data/element-discovery.yaml +208 -0
  528. package/.agent/skills/tooling/browser-agent/data/recording-patterns.yaml +74 -0
  529. package/.agent/skills/tooling/browser-agent/data/reporting-patterns.yaml +97 -0
  530. package/.agent/skills/tooling/browser-agent/data/subagent-patterns.yaml +158 -0
  531. package/.agent/skills/tooling/browser-agent/data/verification-flow.yaml +209 -0
  532. package/.agent/skills/tooling/cli-dev/META.yaml +55 -0
  533. package/.agent/skills/tooling/cli-dev/SKILL.md +83 -0
  534. package/.agent/skills/tooling/cli-dev/data/frameworks.yaml +128 -0
  535. package/.agent/skills/tooling/cli-dev/data/output-formats.yaml +58 -0
  536. package/.agent/skills/tooling/cli-dev/data/ux-patterns.yaml +97 -0
  537. package/.agent/skills/tooling/ide-extension/META.yaml +72 -0
  538. package/.agent/skills/tooling/ide-extension/SKILL.md +108 -0
  539. package/.agent/skills/tooling/ide-extension/data/jetbrains-patterns.yaml +118 -0
  540. package/.agent/skills/tooling/ide-extension/data/lsp-patterns.yaml +126 -0
  541. package/.agent/skills/tooling/ide-extension/data/vscode-patterns.yaml +172 -0
  542. package/.agent/skills/tooling/mcp/META.yaml +80 -0
  543. package/.agent/skills/tooling/mcp/SKILL.md +114 -0
  544. package/.agent/skills/tooling/mcp/data/security.yaml +116 -0
  545. package/.agent/skills/tooling/mcp/data/tool-design.yaml +124 -0
  546. package/.agent/skills/tooling/mcp/data/transport-patterns.yaml +95 -0
  547. package/.agent/templates/README.md +2 -2
  548. package/.agent/templates/debug-report.md +1 -1
  549. package/.agent/templates/deploy-plan.md +1 -1
  550. package/.agent/templates/doc-template.md +1 -1
  551. package/.agent/templates/index.yaml +2 -2
  552. package/.agent/templates/migrate-plan.md +1 -1
  553. package/.agent/templates/phase-template.md +1 -1
  554. package/.agent/templates/tasks/audit.yaml +1 -1
  555. package/.agent/templates/tasks/bug_fix.yaml +1 -1
  556. package/.agent/templates/tasks/code_implementation.yaml +1 -1
  557. package/.agent/templates/tasks/refactor.yaml +1 -1
  558. package/.agent/templates/test-report.md +1 -1
  559. package/.agent/workflows/code.md +22 -1
  560. package/.agent/workflows/deploy.md +5 -1
  561. package/.agent/workflows/e2e.md +112 -0
  562. package/.agent/workflows/fix.md +1 -1
  563. package/.agent/workflows/prompt.md +325 -0
  564. package/.agent/workflows/scaffold.md +1 -1
  565. package/.agent/workflows/tdd.md +108 -0
  566. package/.agent/workflows/verify.md +116 -0
  567. package/.agent/workflows/visualize.md +50 -18
  568. package/dist/commands/add.d.ts.map +1 -1
  569. package/dist/commands/add.js +9 -1
  570. package/dist/commands/add.js.map +1 -1
  571. package/dist/commands/config.d.ts.map +1 -1
  572. package/dist/commands/config.js +24 -8
  573. package/dist/commands/config.js.map +1 -1
  574. package/dist/commands/hsa.d.ts.map +1 -1
  575. package/dist/commands/hsa.js +106 -20
  576. package/dist/commands/hsa.js.map +1 -1
  577. package/dist/commands/init.d.ts.map +1 -1
  578. package/dist/commands/init.js +65 -61
  579. package/dist/commands/init.js.map +1 -1
  580. package/dist/commands/install-core.d.ts +2 -1
  581. package/dist/commands/install-core.d.ts.map +1 -1
  582. package/dist/commands/install-core.js +43 -16
  583. package/dist/commands/install-core.js.map +1 -1
  584. package/dist/commands/install-helpers.d.ts.map +1 -1
  585. package/dist/commands/install-helpers.js +23 -2
  586. package/dist/commands/install-helpers.js.map +1 -1
  587. package/dist/commands/install-hsa.d.ts +2 -5
  588. package/dist/commands/install-hsa.d.ts.map +1 -1
  589. package/dist/commands/install-hsa.js +2 -5
  590. package/dist/commands/install-hsa.js.map +1 -1
  591. package/dist/commands/install.d.ts +27 -0
  592. package/dist/commands/install.d.ts.map +1 -1
  593. package/dist/commands/install.js +68 -20
  594. package/dist/commands/install.js.map +1 -1
  595. package/dist/commands/list.d.ts.map +1 -1
  596. package/dist/commands/list.js +2 -1
  597. package/dist/commands/list.js.map +1 -1
  598. package/dist/commands/mcp-registry.d.ts +24 -9
  599. package/dist/commands/mcp-registry.d.ts.map +1 -1
  600. package/dist/commands/mcp-registry.js +39 -57
  601. package/dist/commands/mcp-registry.js.map +1 -1
  602. package/dist/commands/mcp-writers.d.ts.map +1 -1
  603. package/dist/commands/mcp-writers.js +6 -5
  604. package/dist/commands/mcp-writers.js.map +1 -1
  605. package/dist/commands/mcp.d.ts +1 -1
  606. package/dist/commands/mcp.d.ts.map +1 -1
  607. package/dist/commands/mcp.js +37 -9
  608. package/dist/commands/mcp.js.map +1 -1
  609. package/dist/commands/update.d.ts.map +1 -1
  610. package/dist/commands/update.js +16 -6
  611. package/dist/commands/update.js.map +1 -1
  612. package/dist/constants/cursor-globs.d.ts.map +1 -1
  613. package/dist/constants/cursor-globs.js +0 -6
  614. package/dist/constants/cursor-globs.js.map +1 -1
  615. package/dist/constants/ide-install-specs.js +2 -2
  616. package/dist/constants.d.ts +3 -3
  617. package/dist/constants.d.ts.map +1 -1
  618. package/dist/constants.js +3 -3
  619. package/dist/constants.js.map +1 -1
  620. package/dist/index.d.ts.map +1 -1
  621. package/dist/index.js +1 -9
  622. package/dist/index.js.map +1 -1
  623. package/dist/types/ide-install.js +1 -1
  624. package/dist/utils/copy-helpers.d.ts +7 -2
  625. package/dist/utils/copy-helpers.d.ts.map +1 -1
  626. package/dist/utils/copy-helpers.js +56 -42
  627. package/dist/utils/copy-helpers.js.map +1 -1
  628. package/dist/utils/install-manifest.d.ts +12 -0
  629. package/dist/utils/install-manifest.d.ts.map +1 -0
  630. package/dist/utils/install-manifest.js +26 -0
  631. package/dist/utils/install-manifest.js.map +1 -0
  632. package/dist/utils/validation.d.ts.map +1 -1
  633. package/dist/utils/validation.js +31 -1
  634. package/dist/utils/validation.js.map +1 -1
  635. package/package.json +1 -1
  636. package/.agent/core/embeddings.json +0 -2004
  637. package/.agent/core/session_cache.json +0 -50
  638. package/.agent/skills/cross-cutting/aws/META.yaml +0 -75
  639. package/.agent/skills/cross-cutting/ci-cd/META.yaml +0 -60
  640. package/.agent/skills/cross-cutting/docker/META.yaml +0 -65
  641. package/.agent/skills/cross-cutting/kubernetes/META.yaml +0 -70
  642. package/.agent/skills/cross-cutting/ui-ux-pro-max/SKILL.md +0 -565
  643. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/charts.yaml +0 -331
  644. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/colors.yaml +0 -1226
  645. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/component-decision.yaml +0 -287
  646. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/component-mapping.yaml +0 -318
  647. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/design-tokens.yaml +0 -525
  648. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/desktop-animation.yaml +0 -232
  649. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/desktop-architecture.yaml +0 -140
  650. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/directory-structure.yaml +0 -75
  651. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/icons.yaml +0 -918
  652. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/implementation-strategy.yaml +0 -107
  653. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/landing.yaml +0 -372
  654. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/platform-frameworks.yaml +0 -195
  655. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/platform-guidelines.yaml +0 -177
  656. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/products.yaml +0 -1339
  657. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/prompts.yaml +0 -180
  658. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/react-performance.yaml +0 -504
  659. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/desktop.yaml +0 -228
  660. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/flutter.yaml +0 -508
  661. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/html-tailwind.yaml +0 -543
  662. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/nextjs.yaml +0 -515
  663. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/nuxt-ui.yaml +0 -519
  664. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/nuxtjs.yaml +0 -599
  665. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/react-native.yaml +0 -496
  666. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/react.yaml +0 -526
  667. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/shadcn.yaml +0 -616
  668. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/svelte.yaml +0 -520
  669. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/swiftui.yaml +0 -486
  670. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/vue.yaml +0 -485
  671. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/styles.yaml +0 -1473
  672. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/typography.yaml +0 -647
  673. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/ui-reasoning.yaml +0 -1019
  674. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/ux-guidelines.yaml +0 -1009
  675. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/web-interface.yaml +0 -347
  676. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/__pycache__/core.cpython-310.pyc +0 -0
  677. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/__pycache__/core.cpython-314.pyc +0 -0
  678. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc +0 -0
  679. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/core.py +0 -393
  680. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/core_legacy.py +0 -303
  681. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/design_system.py +0 -496
  682. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/search.py +0 -76
  683. package/.agent/skills/devops/aws/ADVANCED.md +0 -547
  684. package/.agent/skills/devops/aws/SKILL.md +0 -711
  685. package/.agent/skills/devops/ci-cd/ADVANCED.md +0 -529
  686. package/.agent/skills/devops/ci-cd/SKILL.md +0 -821
  687. package/.agent/skills/devops/docker/ADVANCED.md +0 -495
  688. package/.agent/skills/devops/docker/SKILL.md +0 -653
  689. package/.agent/skills/devops/kubernetes/ADVANCED.md +0 -252
  690. package/.agent/skills/devops/kubernetes/SKILL.md +0 -621
  691. /package/.agent/core/{ARCH_REGISTRY.yaml → reference/ARCH_REGISTRY.yaml} +0 -0
  692. /package/.agent/core/{BRANDING.yaml → reference/BRANDING.yaml} +0 -0
  693. /package/.agent/core/{HSA.yaml → reference/HSA.yaml} +0 -0
  694. /package/.agent/core/{TEMPLATES.yaml → reference/TEMPLATES.yaml} +0 -0
  695. /package/.agent/rules/{incremental-changes.md → archive/incremental-changes.md} +0 -0
  696. /package/.agent/rules/{shell-commands.md → archive/shell-commands.md} +0 -0
  697. /package/.agent/skills/{cross-cutting → devops}/aws/data/ai_ml.yaml +0 -0
  698. /package/.agent/skills/{cross-cutting → devops}/aws/data/compute.yaml +0 -0
  699. /package/.agent/skills/{cross-cutting → devops}/aws/data/kubernetes.yaml +0 -0
  700. /package/.agent/skills/{cross-cutting → devops}/aws/data/storage.yaml +0 -0
  701. /package/.agent/skills/{cross-cutting → devops}/ci-cd/data/github_actions.yaml +0 -0
  702. /package/.agent/skills/{cross-cutting → devops}/ci-cd/data/security.yaml +0 -0
  703. /package/.agent/skills/{cross-cutting → devops}/docker/data/build.yaml +0 -0
  704. /package/.agent/skills/{cross-cutting → devops}/docker/data/compose.yaml +0 -0
  705. /package/.agent/skills/{cross-cutting → devops}/docker/data/security.yaml +0 -0
  706. /package/.agent/skills/{cross-cutting → devops}/kubernetes/data/networking.yaml +0 -0
  707. /package/.agent/skills/{cross-cutting → devops}/kubernetes/data/scheduling.yaml +0 -0
  708. /package/.agent/skills/{cross-cutting → devops}/kubernetes/data/security.yaml +0 -0
  709. /package/.agent/skills/{cross-cutting → devops}/kubernetes/data/workloads.yaml +0 -0
@@ -1,647 +1,647 @@
1
1
  metadata:
2
2
  skill: coding-rules
3
3
  domain: coding_rules
4
- version: 6.2.0
5
- updated: '2026-02-05'
6
- migrated_from: coding-rules.csv
4
+ version: 6.2.1
5
+ updated: "2026-02-05"
6
+ migrated_from: coding-rules.yaml
7
7
  patterns_count: 70
8
8
  columns:
9
- - category
10
- - rule_id
11
- - rule_name
12
- - description
13
- - applies_to
14
- - severity
15
- - example_good
16
- - example_bad
9
+ - category
10
+ - rule_id
11
+ - rule_name
12
+ - description
13
+ - applies_to
14
+ - severity
15
+ - example_good
16
+ - example_bad
17
17
  patterns:
18
- - id: item_001
19
- category: Naming
20
- rule_id: N001
21
- rule_name: Descriptive Names
22
- description: Names should reveal intent without comments
23
- applies_to: all
24
- severity: CRITICAL
25
- example_good: userAccountBalance
26
- example_bad: uab
27
- - id: item_002
28
- category: Naming
29
- rule_id: N002
30
- rule_name: Avoid Abbreviations
31
- description: Use full words except well-known acronyms
32
- applies_to: all
33
- severity: HIGH
34
- example_good: numberOfItems
35
- example_bad: numItms
36
- - id: item_003
37
- category: Naming
38
- rule_id: N003
39
- rule_name: Consistent Casing
40
- description: Follow language-specific casing conventions
41
- applies_to: all
42
- severity: CRITICAL
43
- example_good: getUserName (Java) get_user_name (Python)
44
- example_bad: GetUserName (Python)
45
- - id: item_004
46
- category: Naming
47
- rule_id: N004
48
- rule_name: Boolean Prefixes
49
- description: Prefix booleans with is/has/can/should
50
- applies_to: all
51
- severity: MEDIUM
52
- example_good: isValid hasAccess canEdit
53
- example_bad: valid access edit
54
- - id: item_005
55
- category: Naming
56
- rule_id: N005
57
- rule_name: Verb Methods
58
- description: Methods should start with verbs
59
- applies_to: all
60
- severity: HIGH
61
- example_good: calculateTotal fetchUser
62
- example_bad: total user
63
- - id: item_006
64
- category: Naming
65
- rule_id: N006
66
- rule_name: Noun Classes
67
- description: Classes should be nouns or noun phrases
68
- applies_to: all
69
- severity: HIGH
70
- example_good: UserRepository OrderProcessor
71
- example_bad: ProcessOrder DoCalculation
72
- - id: item_007
73
- category: Naming
74
- rule_id: N007
75
- rule_name: Interface Naming
76
- description: Follow language convention for interfaces
77
- applies_to: varies
78
- severity: MEDIUM
79
- example_good: 'C#: IUserRepository TS: UserRepository'
80
- example_bad: 'TS: IUserRepository (deprecated pattern)'
81
- - id: item_008
82
- category: Functions
83
- rule_id: F001
84
- rule_name: Single Responsibility
85
- description: Each function does one thing well
86
- applies_to: all
87
- severity: CRITICAL
88
- example_good: validateEmail() sendEmail()
89
- example_bad: validateAndSendEmail()
90
- - id: item_009
91
- category: Functions
92
- rule_id: F002
93
- rule_name: Max Parameters
94
- description: Limit parameters to 3-4 max
95
- applies_to: all
96
- severity: HIGH
97
- example_good: createUser(config)
98
- example_bad: createUser(name email age phone address)
99
- - id: item_010
100
- category: Functions
101
- rule_id: F003
102
- rule_name: Max Length
103
- description: Functions under 50 lines
104
- applies_to: all
105
- severity: MEDIUM
106
- example_good: Short focused functions
107
- example_bad: 300+ line functions
108
- - id: item_011
109
- category: Functions
110
- rule_id: F004
111
- rule_name: Pure Functions
112
- description: Prefer pure functions without side effects
113
- applies_to: all
114
- severity: MEDIUM
115
- example_good: calculateSum(a b) => a+b
116
- example_bad: calculateSum modifies global state
117
- - id: item_012
118
- category: Functions
119
- rule_id: F005
120
- rule_name: Early Return
121
- description: Return early to reduce nesting
122
- applies_to: all
123
- severity: MEDIUM
124
- example_good: if (!valid) return; process();
125
- example_bad: if (valid) { process(); }
126
- - id: item_013
127
- category: Classes
128
- rule_id: C001
129
- rule_name: Single Purpose
130
- description: Each class has one reason to change
131
- applies_to: all
132
- severity: CRITICAL
133
- example_good: UserValidator (only validates)
134
- example_bad: UserManagerValidatorLogger
135
- - id: item_014
136
- category: Classes
137
- rule_id: C002
138
- rule_name: Max Length
139
- description: Classes under 300 lines
140
- applies_to: all
141
- severity: MEDIUM
142
- example_good: Focused domain class
143
- example_bad: God class with 1000+ lines
144
- - id: item_015
145
- category: Classes
146
- rule_id: C003
147
- rule_name: Composition Over Inheritance
148
- description: Prefer composition to inheritance
149
- applies_to: all
150
- severity: HIGH
151
- example_good: 'class Car { engine: Engine }'
152
- example_bad: class Car extends Engine
153
- - id: item_016
154
- category: Classes
155
- rule_id: C004
156
- rule_name: Open-Closed
157
- description: Open for extension closed for modification
158
- applies_to: all
159
- severity: HIGH
160
- example_good: Use interfaces and polymorphism
161
- example_bad: Switch statements on types
162
- - id: item_017
163
- category: Classes
164
- rule_id: C005
165
- rule_name: Dependency Injection
166
- description: Inject dependencies don't create them
167
- applies_to: all
168
- severity: HIGH
169
- example_good: 'constructor(repo: IRepo)'
170
- example_bad: constructor() { this.repo = new Repo() }
171
- - id: item_018
172
- category: Error Handling
173
- rule_id: E001
174
- rule_name: Specific Exceptions
175
- description: Use specific not generic exceptions
176
- applies_to: all
177
- severity: HIGH
178
- example_good: throw new InvalidEmailException
179
- example_bad: throw new Error('something wrong')
180
- - id: item_019
181
- category: Error Handling
182
- rule_id: E002
183
- rule_name: No Silent Catch
184
- description: Never swallow exceptions silently
185
- applies_to: all
186
- severity: CRITICAL
187
- example_good: catch (e) { log(e); handle(); }
188
- example_bad: catch (e) { }
189
- - id: item_020
190
- category: Error Handling
191
- rule_id: E003
192
- rule_name: Error Messages
193
- description: Include context in error messages
194
- applies_to: all
195
- severity: HIGH
196
- example_good: Email 'x@y' format invalid
197
- example_bad: Invalid input
198
- - id: item_021
199
- category: Error Handling
200
- rule_id: E004
201
- rule_name: Result Types
202
- description: Consider Result<T E> over exceptions
203
- applies_to: Rust/TS/Go
204
- severity: MEDIUM
205
- example_good: Result<User Error>
206
- example_bad: throws everywhere
207
- - id: item_022
208
- category: Documentation
209
- rule_id: D001
210
- rule_name: Why Not What
211
- description: Comments explain why not what
212
- applies_to: all
213
- severity: HIGH
214
- example_good: // Timeout needed for legacy API
215
- example_bad: // Add 1 to counter
216
- - id: item_023
217
- category: Documentation
218
- rule_id: D002
219
- rule_name: Self-Documenting
220
- description: Code should be self-explanatory
221
- applies_to: all
222
- severity: MEDIUM
223
- example_good: customerAge = birthDate.yearsUntilNow()
224
- example_bad: a = b.calc()
225
- - id: item_024
226
- category: Documentation
227
- rule_id: D003
228
- rule_name: API Documentation
229
- description: Public APIs must be documented
230
- applies_to: all
231
- severity: HIGH
232
- example_good: '@param @returns documentation'
233
- example_bad: No docs on public methods
234
- - id: item_025
235
- category: Documentation
236
- rule_id: D004
237
- rule_name: Outdated Comments
238
- description: Remove outdated comments
239
- applies_to: all
240
- severity: HIGH
241
- example_good: Keep comments in sync
242
- example_bad: Comment says X code does Y
243
- - id: item_026
244
- category: Testing
245
- rule_id: T001
246
- rule_name: Test Naming
247
- description: Tests describe expected behavior
248
- applies_to: all
249
- severity: HIGH
250
- example_good: should_return_error_when_email_invalid
251
- example_bad: test1 testA
252
- - id: item_027
253
- category: Testing
254
- rule_id: T002
255
- rule_name: AAA Pattern
256
- description: Arrange-Act-Assert structure
257
- applies_to: all
258
- severity: MEDIUM
259
- example_good: Clear sections in test
260
- example_bad: Mixed arrange act assert
261
- - id: item_028
262
- category: Testing
263
- rule_id: T003
264
- rule_name: One Assert
265
- description: One logical assertion per test
266
- applies_to: all
267
- severity: MEDIUM
268
- example_good: Single focused assertion
269
- example_bad: Ten assertions in one test
270
- - id: item_029
271
- category: Testing
272
- rule_id: T004
273
- rule_name: No Logic
274
- description: No conditionals or loops in tests
275
- applies_to: all
276
- severity: HIGH
277
- example_good: Straightforward assertions
278
- example_bad: if/for in test code
279
- - id: item_030
280
- category: Performance
281
- rule_id: P001
282
- rule_name: Avoid Premature Optimization
283
- description: Optimize after profiling
284
- applies_to: all
285
- severity: MEDIUM
286
- example_good: Profile then optimize
287
- example_bad: Optimize without measurement
288
- - id: item_031
289
- category: Performance
290
- rule_id: P002
291
- rule_name: N+1 Queries
292
- description: Batch database queries
293
- applies_to: backend
294
- severity: HIGH
295
- example_good: SELECT with JOIN or batch
296
- example_bad: Query per item in loop
297
- - id: item_032
298
- category: Security
299
- rule_id: S001
300
- rule_name: Input Validation
301
- description: Validate all user input
302
- applies_to: all
303
- severity: CRITICAL
304
- example_good: Sanitize before use
305
- example_bad: Trust user input
306
- - id: item_033
307
- category: Security
308
- rule_id: S002
309
- rule_name: No Hardcoded Secrets
310
- description: Use environment variables
311
- applies_to: all
312
- severity: CRITICAL
313
- example_good: process.env.API_KEY
314
- example_bad: apiKey = 'abc123'
315
- - id: item_034
316
- category: Security
317
- rule_id: S003
318
- rule_name: Parameterized Queries
319
- description: Prevent SQL injection
320
- applies_to: backend
321
- severity: CRITICAL
322
- example_good: db.query('SELECT ? WHERE id = ?' [col id])
323
- example_bad: db.query('SELECT * WHERE id = ' + id)
324
- - id: item_035
325
- category: Memory
326
- rule_id: M001
327
- rule_name: Prefer Stack Allocation
328
- description: Use stack for small fixed-size data
329
- applies_to: C++/Rust/C/Go
330
- severity: HIGH
331
- example_good: int arr[100]; Point p;
332
- example_bad: new int[100] for small arrays
333
- - id: item_036
334
- category: Memory
335
- rule_id: M002
336
- rule_name: Smart Pointers Over Raw
337
- description: Use RAII smart pointers
338
- applies_to: C++
339
- severity: CRITICAL
340
- example_good: auto ptr = make_unique<Data>();
341
- example_bad: Data* p = new Data();
342
- - id: item_037
343
- category: Memory
344
- rule_id: M003
345
- rule_name: Reserve Collection Capacity
346
- description: Pre-allocate when size known
347
- applies_to: all
348
- severity: MEDIUM
349
- example_good: vec.reserve(1000);
350
- example_bad: Loop push_back without reserve
351
- - id: item_038
352
- category: Memory
353
- rule_id: M004
354
- rule_name: Avoid Memory Leaks
355
- description: Free allocated memory properly
356
- applies_to: C++/C
357
- severity: CRITICAL
358
- example_good: RAII/unique_ptr auto-deletes
359
- example_bad: malloc without free
360
- - id: item_039
361
- category: Memory
362
- rule_id: M005
363
- rule_name: RAII Pattern
364
- description: Acquire in constructor release in destructor
365
- applies_to: C++/Rust
366
- severity: HIGH
367
- example_good: ~File() { close(); }
368
- example_bad: Manual cleanup calls
369
- - id: item_040
370
- category: Memory
371
- rule_id: M006
372
- rule_name: Pool Allocations
373
- description: Reuse objects in hot paths
374
- applies_to: all
375
- severity: MEDIUM
376
- example_good: Object pool pattern
377
- example_bad: New allocation per request
378
- - id: item_041
379
- category: Memory
380
- rule_id: M007
381
- rule_name: Avoid Large Stack Objects
382
- description: Keep stack usage reasonable
383
- applies_to: C++/C/Rust
384
- severity: HIGH
385
- example_good: Heap for >1KB objects
386
- example_bad: char buffer[1000000];
387
- - id: item_042
388
- category: Memory
389
- rule_id: M008
390
- rule_name: Zero-Copy When Possible
391
- description: Avoid unnecessary copies
392
- applies_to: all
393
- severity: MEDIUM
394
- example_good: string_view/span
395
- example_bad: String copy for read-only
396
- - id: item_043
397
- category: Concurrency
398
- rule_id: CC001
399
- rule_name: Thread-Safe by Design
400
- description: Prefer immutability or message passing
401
- applies_to: all
402
- severity: CRITICAL
403
- example_good: Immutable objects + channels
404
- example_bad: Shared mutable global
405
- - id: item_044
406
- category: Concurrency
407
- rule_id: CC002
408
- rule_name: Avoid Shared Mutable State
409
- description: Minimize shared state
410
- applies_to: all
411
- severity: CRITICAL
412
- example_good: thread_local or const refs
413
- example_bad: static mut counter
414
- - id: item_045
415
- category: Concurrency
416
- rule_id: CC003
417
- rule_name: Lock Ordering
418
- description: Consistent lock acquisition order
419
- applies_to: all
420
- severity: CRITICAL
421
- example_good: Always lock A then B
422
- example_bad: 'Thread1: B A; Thread2: A B'
423
- - id: item_046
424
- category: Concurrency
425
- rule_id: CC004
426
- rule_name: Prefer Channels Over Locks
427
- description: Message passing over mutexes
428
- applies_to: Go/Rust
429
- severity: HIGH
430
- example_good: ch <- data
431
- example_bad: mutex.Lock(); data
432
- - id: item_047
433
- category: Concurrency
434
- rule_id: CC005
435
- rule_name: Async for I/O Sync for CPU
436
- description: Match pattern to workload
437
- applies_to: all
438
- severity: HIGH
439
- example_good: await fetch(); pool.compute();
440
- example_bad: await heavyComputation()
441
- - id: item_048
442
- category: Concurrency
443
- rule_id: CC006
444
- rule_name: Use Context for Cancellation
445
- description: Propagate cancellation signals
446
- applies_to: Go
447
- severity: HIGH
448
- example_good: ctx.Done() select
449
- example_bad: No timeout or cancel
450
- - id: item_049
451
- category: Concurrency
452
- rule_id: CC007
453
- rule_name: Limit Concurrency
454
- description: Bound worker pools
455
- applies_to: all
456
- severity: HIGH
457
- example_good: Semaphore or worker pool
458
- example_bad: Unbounded goroutine spawn
459
- - id: item_050
460
- category: Concurrency
461
- rule_id: CC008
462
- rule_name: Avoid Deadlocks
463
- description: Design for deadlock prevention
464
- applies_to: all
465
- severity: CRITICAL
466
- example_good: Timeout + lock hierarchy
467
- example_bad: Circular wait conditions
468
- - id: item_051
469
- category: API
470
- rule_id: API001
471
- rule_name: RESTful Resource Naming
472
- description: Use nouns not verbs for resources
473
- applies_to: backend
474
- severity: HIGH
475
- example_good: GET /api/users
476
- example_bad: GET /api/getUsers
477
- - id: item_052
478
- category: API
479
- rule_id: API002
480
- rule_name: API Versioning
481
- description: Version your APIs
482
- applies_to: backend
483
- severity: HIGH
484
- example_good: /api/v1/users
485
- example_bad: /api/users (breaking changes)
486
- - id: item_053
487
- category: API
488
- rule_id: API003
489
- rule_name: Consistent Error Format
490
- description: Structured error responses
491
- applies_to: backend
492
- severity: HIGH
493
- example_good: '{error: {code: ''INVALID_EMAIL''}}'
494
- example_bad: throw 'Invalid'
495
- - id: item_054
496
- category: API
497
- rule_id: API004
498
- rule_name: Pagination for Lists
499
- description: Don't return unbounded collections
500
- applies_to: backend
501
- severity: HIGH
502
- example_good: ?page=2&limit=20
503
- example_bad: Return 10000 items
504
- - id: item_055
505
- category: API
506
- rule_id: API005
507
- rule_name: Idempotent Operations
508
- description: PUT/DELETE should be idempotent
509
- applies_to: backend
510
- severity: HIGH
511
- example_good: Same result on retry
512
- example_bad: Side effects on retry
513
- - id: item_056
514
- category: API
515
- rule_id: API006
516
- rule_name: Rate Limiting
517
- description: Protect against abuse
518
- applies_to: backend
519
- severity: HIGH
520
- example_good: 429 Too Many Requests
521
- example_bad: No rate limits
522
- - id: item_057
523
- category: Database
524
- rule_id: DB001
525
- rule_name: Parameterized Queries
526
- description: Prevent SQL injection
527
- applies_to: backend
528
- severity: CRITICAL
529
- example_good: WHERE id = $1
530
- example_bad: WHERE id = ' + id
531
- - id: item_058
532
- category: Database
533
- rule_id: DB002
534
- rule_name: Avoid N+1 Queries
535
- description: Batch or join related data
536
- applies_to: backend
537
- severity: HIGH
538
- example_good: SELECT with JOIN
539
- example_bad: Query per item in loop
540
- - id: item_059
541
- category: Database
542
- rule_id: DB003
543
- rule_name: Use Indexes
544
- description: Index frequently queried columns
545
- applies_to: backend
546
- severity: HIGH
547
- example_good: CREATE INDEX on search cols
548
- example_bad: Full table scan
549
- - id: item_060
550
- category: Database
551
- rule_id: DB004
552
- rule_name: Connection Pooling
553
- description: Reuse database connections
554
- applies_to: backend
555
- severity: HIGH
556
- example_good: Pool with max connections
557
- example_bad: New connection per query
558
- - id: item_061
559
- category: Database
560
- rule_id: DB005
561
- rule_name: Transaction Boundaries
562
- description: Group related operations
563
- applies_to: backend
564
- severity: HIGH
565
- example_good: BEGIN COMMIT for atomicity
566
- example_bad: No transaction for multi-op
567
- - id: item_062
568
- category: Database
569
- rule_id: DB006
570
- rule_name: Soft Delete Consider
571
- description: Prefer soft delete for audit
572
- applies_to: backend
573
- severity: MEDIUM
574
- example_good: deleted_at timestamp
575
- example_bad: Hard delete important data
576
- - id: item_063
577
- category: Anti-Pattern
578
- rule_id: AP001
579
- rule_name: God Object
580
- description: Avoid classes that do everything
581
- applies_to: all
582
- severity: HIGH
583
- example_good: Split into focused classes
584
- example_bad: UserManagerValidatorLogger
585
- - id: item_064
586
- category: Anti-Pattern
587
- rule_id: AP002
588
- rule_name: Magic Numbers
589
- description: Use named constants
590
- applies_to: all
591
- severity: HIGH
592
- example_good: MAX_RETRY_COUNT = 3
593
- example_bad: if (count > 3)
594
- - id: item_065
595
- category: Anti-Pattern
596
- rule_id: AP003
597
- rule_name: Deep Nesting
598
- description: Max 3 levels of nesting
599
- applies_to: all
600
- severity: MEDIUM
601
- example_good: Early returns/guard clauses
602
- example_bad: if { if { if { if
603
- - id: item_066
604
- category: Anti-Pattern
605
- rule_id: AP004
606
- rule_name: Premature Abstraction
607
- description: Don't abstract too early
608
- applies_to: all
609
- severity: MEDIUM
610
- example_good: Rule of 3 before DRY
611
- example_bad: Interface for 1 implementation
612
- - id: item_067
613
- category: Anti-Pattern
614
- rule_id: AP005
615
- rule_name: Stringly Typed
616
- description: Use types over strings
617
- applies_to: all
618
- severity: HIGH
619
- example_good: enum Status { Active }
620
- example_bad: status = 'active'
621
- - id: item_068
622
- category: Anti-Pattern
623
- rule_id: AP006
624
- rule_name: Copy Paste Programming
625
- description: Extract common code
626
- applies_to: all
627
- severity: HIGH
628
- example_good: Shared utility function
629
- example_bad: Same code in 5 places
630
- - id: item_069
631
- category: Anti-Pattern
632
- rule_id: AP007
633
- rule_name: Callback Hell
634
- description: Use async/await or promises
635
- applies_to: JS/TS
636
- severity: HIGH
637
- example_good: await sequential();
638
- example_bad: callback(callback(callback))
639
- - id: item_070
640
- category: Anti-Pattern
641
- rule_id: AP008
642
- rule_name: Feature Envy
643
- description: Keep data and behavior together
644
- applies_to: all
645
- severity: MEDIUM
646
- example_good: Method on owning class
647
- example_bad: Accessing other object's fields
18
+ - id: item_001
19
+ category: Naming
20
+ rule_id: N001
21
+ rule_name: Descriptive Names
22
+ description: Names should reveal intent without comments
23
+ applies_to: all
24
+ severity: CRITICAL
25
+ example_good: userAccountBalance
26
+ example_bad: uab
27
+ - id: item_002
28
+ category: Naming
29
+ rule_id: N002
30
+ rule_name: Avoid Abbreviations
31
+ description: Use full words except well-known acronyms
32
+ applies_to: all
33
+ severity: HIGH
34
+ example_good: numberOfItems
35
+ example_bad: numItms
36
+ - id: item_003
37
+ category: Naming
38
+ rule_id: N003
39
+ rule_name: Consistent Casing
40
+ description: Follow language-specific casing conventions
41
+ applies_to: all
42
+ severity: CRITICAL
43
+ example_good: getUserName (Java) get_user_name (Python)
44
+ example_bad: GetUserName (Python)
45
+ - id: item_004
46
+ category: Naming
47
+ rule_id: N004
48
+ rule_name: Boolean Prefixes
49
+ description: Prefix booleans with is/has/can/should
50
+ applies_to: all
51
+ severity: MEDIUM
52
+ example_good: isValid hasAccess canEdit
53
+ example_bad: valid access edit
54
+ - id: item_005
55
+ category: Naming
56
+ rule_id: N005
57
+ rule_name: Verb Methods
58
+ description: Methods should start with verbs
59
+ applies_to: all
60
+ severity: HIGH
61
+ example_good: calculateTotal fetchUser
62
+ example_bad: total user
63
+ - id: item_006
64
+ category: Naming
65
+ rule_id: N006
66
+ rule_name: Noun Classes
67
+ description: Classes should be nouns or noun phrases
68
+ applies_to: all
69
+ severity: HIGH
70
+ example_good: UserRepository OrderProcessor
71
+ example_bad: ProcessOrder DoCalculation
72
+ - id: item_007
73
+ category: Naming
74
+ rule_id: N007
75
+ rule_name: Interface Naming
76
+ description: Follow language convention for interfaces
77
+ applies_to: varies
78
+ severity: MEDIUM
79
+ example_good: "C#: IUserRepository TS: UserRepository"
80
+ example_bad: "TS: IUserRepository (deprecated pattern)"
81
+ - id: item_008
82
+ category: Functions
83
+ rule_id: F001
84
+ rule_name: Single Responsibility
85
+ description: Each function does one thing well
86
+ applies_to: all
87
+ severity: CRITICAL
88
+ example_good: validateEmail() sendEmail()
89
+ example_bad: validateAndSendEmail()
90
+ - id: item_009
91
+ category: Functions
92
+ rule_id: F002
93
+ rule_name: Max Parameters
94
+ description: Limit parameters to 3-4 max
95
+ applies_to: all
96
+ severity: HIGH
97
+ example_good: createUser(config)
98
+ example_bad: createUser(name email age phone address)
99
+ - id: item_010
100
+ category: Functions
101
+ rule_id: F003
102
+ rule_name: Max Length
103
+ description: Functions under 50 lines
104
+ applies_to: all
105
+ severity: MEDIUM
106
+ example_good: Short focused functions
107
+ example_bad: 300+ line functions
108
+ - id: item_011
109
+ category: Functions
110
+ rule_id: F004
111
+ rule_name: Pure Functions
112
+ description: Prefer pure functions without side effects
113
+ applies_to: all
114
+ severity: MEDIUM
115
+ example_good: calculateSum(a b) => a+b
116
+ example_bad: calculateSum modifies global state
117
+ - id: item_012
118
+ category: Functions
119
+ rule_id: F005
120
+ rule_name: Early Return
121
+ description: Return early to reduce nesting
122
+ applies_to: all
123
+ severity: MEDIUM
124
+ example_good: if (!valid) return; process();
125
+ example_bad: if (valid) { process(); }
126
+ - id: item_013
127
+ category: Classes
128
+ rule_id: C001
129
+ rule_name: Single Purpose
130
+ description: Each class has one reason to change
131
+ applies_to: all
132
+ severity: CRITICAL
133
+ example_good: UserValidator (only validates)
134
+ example_bad: UserManagerValidatorLogger
135
+ - id: item_014
136
+ category: Classes
137
+ rule_id: C002
138
+ rule_name: Max Length
139
+ description: Classes under 300 lines
140
+ applies_to: all
141
+ severity: MEDIUM
142
+ example_good: Focused domain class
143
+ example_bad: God class with 1000+ lines
144
+ - id: item_015
145
+ category: Classes
146
+ rule_id: C003
147
+ rule_name: Composition Over Inheritance
148
+ description: Prefer composition to inheritance
149
+ applies_to: all
150
+ severity: HIGH
151
+ example_good: "class Car { engine: Engine }"
152
+ example_bad: class Car extends Engine
153
+ - id: item_016
154
+ category: Classes
155
+ rule_id: C004
156
+ rule_name: Open-Closed
157
+ description: Open for extension closed for modification
158
+ applies_to: all
159
+ severity: HIGH
160
+ example_good: Use interfaces and polymorphism
161
+ example_bad: Switch statements on types
162
+ - id: item_017
163
+ category: Classes
164
+ rule_id: C005
165
+ rule_name: Dependency Injection
166
+ description: Inject dependencies don't create them
167
+ applies_to: all
168
+ severity: HIGH
169
+ example_good: "constructor(repo: IRepo)"
170
+ example_bad: constructor() { this.repo = new Repo() }
171
+ - id: item_018
172
+ category: Error Handling
173
+ rule_id: E001
174
+ rule_name: Specific Exceptions
175
+ description: Use specific not generic exceptions
176
+ applies_to: all
177
+ severity: HIGH
178
+ example_good: throw new InvalidEmailException
179
+ example_bad: throw new Error('something wrong')
180
+ - id: item_019
181
+ category: Error Handling
182
+ rule_id: E002
183
+ rule_name: No Silent Catch
184
+ description: Never swallow exceptions silently
185
+ applies_to: all
186
+ severity: CRITICAL
187
+ example_good: catch (e) { log(e); handle(); }
188
+ example_bad: catch (e) { }
189
+ - id: item_020
190
+ category: Error Handling
191
+ rule_id: E003
192
+ rule_name: Error Messages
193
+ description: Include context in error messages
194
+ applies_to: all
195
+ severity: HIGH
196
+ example_good: Email 'x@y' format invalid
197
+ example_bad: Invalid input
198
+ - id: item_021
199
+ category: Error Handling
200
+ rule_id: E004
201
+ rule_name: Result Types
202
+ description: Consider Result<T E> over exceptions
203
+ applies_to: Rust/TS/Go
204
+ severity: MEDIUM
205
+ example_good: Result<User Error>
206
+ example_bad: throws everywhere
207
+ - id: item_022
208
+ category: Documentation
209
+ rule_id: D001
210
+ rule_name: Why Not What
211
+ description: Comments explain why not what
212
+ applies_to: all
213
+ severity: HIGH
214
+ example_good: // Timeout needed for legacy API
215
+ example_bad: // Add 1 to counter
216
+ - id: item_023
217
+ category: Documentation
218
+ rule_id: D002
219
+ rule_name: Self-Documenting
220
+ description: Code should be self-explanatory
221
+ applies_to: all
222
+ severity: MEDIUM
223
+ example_good: customerAge = birthDate.yearsUntilNow()
224
+ example_bad: a = b.calc()
225
+ - id: item_024
226
+ category: Documentation
227
+ rule_id: D003
228
+ rule_name: API Documentation
229
+ description: Public APIs must be documented
230
+ applies_to: all
231
+ severity: HIGH
232
+ example_good: "@param @returns documentation"
233
+ example_bad: No docs on public methods
234
+ - id: item_025
235
+ category: Documentation
236
+ rule_id: D004
237
+ rule_name: Outdated Comments
238
+ description: Remove outdated comments
239
+ applies_to: all
240
+ severity: HIGH
241
+ example_good: Keep comments in sync
242
+ example_bad: Comment says X code does Y
243
+ - id: item_026
244
+ category: Testing
245
+ rule_id: T001
246
+ rule_name: Test Naming
247
+ description: Tests describe expected behavior
248
+ applies_to: all
249
+ severity: HIGH
250
+ example_good: should_return_error_when_email_invalid
251
+ example_bad: test1 testA
252
+ - id: item_027
253
+ category: Testing
254
+ rule_id: T002
255
+ rule_name: AAA Pattern
256
+ description: Arrange-Act-Assert structure
257
+ applies_to: all
258
+ severity: MEDIUM
259
+ example_good: Clear sections in test
260
+ example_bad: Mixed arrange act assert
261
+ - id: item_028
262
+ category: Testing
263
+ rule_id: T003
264
+ rule_name: One Assert
265
+ description: One logical assertion per test
266
+ applies_to: all
267
+ severity: MEDIUM
268
+ example_good: Single focused assertion
269
+ example_bad: Ten assertions in one test
270
+ - id: item_029
271
+ category: Testing
272
+ rule_id: T004
273
+ rule_name: No Logic
274
+ description: No conditionals or loops in tests
275
+ applies_to: all
276
+ severity: HIGH
277
+ example_good: Straightforward assertions
278
+ example_bad: if/for in test code
279
+ - id: item_030
280
+ category: Performance
281
+ rule_id: P001
282
+ rule_name: Avoid Premature Optimization
283
+ description: Optimize after profiling
284
+ applies_to: all
285
+ severity: MEDIUM
286
+ example_good: Profile then optimize
287
+ example_bad: Optimize without measurement
288
+ - id: item_031
289
+ category: Performance
290
+ rule_id: P002
291
+ rule_name: N+1 Queries
292
+ description: Batch database queries
293
+ applies_to: backend
294
+ severity: HIGH
295
+ example_good: SELECT with JOIN or batch
296
+ example_bad: Query per item in loop
297
+ - id: item_032
298
+ category: Security
299
+ rule_id: S001
300
+ rule_name: Input Validation
301
+ description: Validate all user input
302
+ applies_to: all
303
+ severity: CRITICAL
304
+ example_good: Sanitize before use
305
+ example_bad: Trust user input
306
+ - id: item_033
307
+ category: Security
308
+ rule_id: S002
309
+ rule_name: No Hardcoded Secrets
310
+ description: Use environment variables
311
+ applies_to: all
312
+ severity: CRITICAL
313
+ example_good: process.env.API_KEY
314
+ example_bad: apiKey = 'abc123'
315
+ - id: item_034
316
+ category: Security
317
+ rule_id: S003
318
+ rule_name: Parameterized Queries
319
+ description: Prevent SQL injection
320
+ applies_to: backend
321
+ severity: CRITICAL
322
+ example_good: db.query('SELECT ? WHERE id = ?' [col id])
323
+ example_bad: db.query('SELECT * WHERE id = ' + id)
324
+ - id: item_035
325
+ category: Memory
326
+ rule_id: M001
327
+ rule_name: Prefer Stack Allocation
328
+ description: Use stack for small fixed-size data
329
+ applies_to: C++/Rust/C/Go
330
+ severity: HIGH
331
+ example_good: int arr[100]; Point p;
332
+ example_bad: new int[100] for small arrays
333
+ - id: item_036
334
+ category: Memory
335
+ rule_id: M002
336
+ rule_name: Smart Pointers Over Raw
337
+ description: Use RAII smart pointers
338
+ applies_to: C++
339
+ severity: CRITICAL
340
+ example_good: auto ptr = make_unique<Data>();
341
+ example_bad: Data* p = new Data();
342
+ - id: item_037
343
+ category: Memory
344
+ rule_id: M003
345
+ rule_name: Reserve Collection Capacity
346
+ description: Pre-allocate when size known
347
+ applies_to: all
348
+ severity: MEDIUM
349
+ example_good: vec.reserve(1000);
350
+ example_bad: Loop push_back without reserve
351
+ - id: item_038
352
+ category: Memory
353
+ rule_id: M004
354
+ rule_name: Avoid Memory Leaks
355
+ description: Free allocated memory properly
356
+ applies_to: C++/C
357
+ severity: CRITICAL
358
+ example_good: RAII/unique_ptr auto-deletes
359
+ example_bad: malloc without free
360
+ - id: item_039
361
+ category: Memory
362
+ rule_id: M005
363
+ rule_name: RAII Pattern
364
+ description: Acquire in constructor release in destructor
365
+ applies_to: C++/Rust
366
+ severity: HIGH
367
+ example_good: ~File() { close(); }
368
+ example_bad: Manual cleanup calls
369
+ - id: item_040
370
+ category: Memory
371
+ rule_id: M006
372
+ rule_name: Pool Allocations
373
+ description: Reuse objects in hot paths
374
+ applies_to: all
375
+ severity: MEDIUM
376
+ example_good: Object pool pattern
377
+ example_bad: New allocation per request
378
+ - id: item_041
379
+ category: Memory
380
+ rule_id: M007
381
+ rule_name: Avoid Large Stack Objects
382
+ description: Keep stack usage reasonable
383
+ applies_to: C++/C/Rust
384
+ severity: HIGH
385
+ example_good: Heap for >1KB objects
386
+ example_bad: char buffer[1000000];
387
+ - id: item_042
388
+ category: Memory
389
+ rule_id: M008
390
+ rule_name: Zero-Copy When Possible
391
+ description: Avoid unnecessary copies
392
+ applies_to: all
393
+ severity: MEDIUM
394
+ example_good: string_view/span
395
+ example_bad: String copy for read-only
396
+ - id: item_043
397
+ category: Concurrency
398
+ rule_id: CC001
399
+ rule_name: Thread-Safe by Design
400
+ description: Prefer immutability or message passing
401
+ applies_to: all
402
+ severity: CRITICAL
403
+ example_good: Immutable objects + channels
404
+ example_bad: Shared mutable global
405
+ - id: item_044
406
+ category: Concurrency
407
+ rule_id: CC002
408
+ rule_name: Avoid Shared Mutable State
409
+ description: Minimize shared state
410
+ applies_to: all
411
+ severity: CRITICAL
412
+ example_good: thread_local or const refs
413
+ example_bad: static mut counter
414
+ - id: item_045
415
+ category: Concurrency
416
+ rule_id: CC003
417
+ rule_name: Lock Ordering
418
+ description: Consistent lock acquisition order
419
+ applies_to: all
420
+ severity: CRITICAL
421
+ example_good: Always lock A then B
422
+ example_bad: "Thread1: B A; Thread2: A B"
423
+ - id: item_046
424
+ category: Concurrency
425
+ rule_id: CC004
426
+ rule_name: Prefer Channels Over Locks
427
+ description: Message passing over mutexes
428
+ applies_to: Go/Rust
429
+ severity: HIGH
430
+ example_good: ch <- data
431
+ example_bad: mutex.Lock(); data
432
+ - id: item_047
433
+ category: Concurrency
434
+ rule_id: CC005
435
+ rule_name: Async for I/O Sync for CPU
436
+ description: Match pattern to workload
437
+ applies_to: all
438
+ severity: HIGH
439
+ example_good: await fetch(); pool.compute();
440
+ example_bad: await heavyComputation()
441
+ - id: item_048
442
+ category: Concurrency
443
+ rule_id: CC006
444
+ rule_name: Use Context for Cancellation
445
+ description: Propagate cancellation signals
446
+ applies_to: Go
447
+ severity: HIGH
448
+ example_good: ctx.Done() select
449
+ example_bad: No timeout or cancel
450
+ - id: item_049
451
+ category: Concurrency
452
+ rule_id: CC007
453
+ rule_name: Limit Concurrency
454
+ description: Bound worker pools
455
+ applies_to: all
456
+ severity: HIGH
457
+ example_good: Semaphore or worker pool
458
+ example_bad: Unbounded goroutine spawn
459
+ - id: item_050
460
+ category: Concurrency
461
+ rule_id: CC008
462
+ rule_name: Avoid Deadlocks
463
+ description: Design for deadlock prevention
464
+ applies_to: all
465
+ severity: CRITICAL
466
+ example_good: Timeout + lock hierarchy
467
+ example_bad: Circular wait conditions
468
+ - id: item_051
469
+ category: API
470
+ rule_id: API001
471
+ rule_name: RESTful Resource Naming
472
+ description: Use nouns not verbs for resources
473
+ applies_to: backend
474
+ severity: HIGH
475
+ example_good: GET /api/users
476
+ example_bad: GET /api/getUsers
477
+ - id: item_052
478
+ category: API
479
+ rule_id: API002
480
+ rule_name: API Versioning
481
+ description: Version your APIs
482
+ applies_to: backend
483
+ severity: HIGH
484
+ example_good: /api/v1/users
485
+ example_bad: /api/users (breaking changes)
486
+ - id: item_053
487
+ category: API
488
+ rule_id: API003
489
+ rule_name: Consistent Error Format
490
+ description: Structured error responses
491
+ applies_to: backend
492
+ severity: HIGH
493
+ example_good: "{error: {code: 'INVALID_EMAIL'}}"
494
+ example_bad: throw 'Invalid'
495
+ - id: item_054
496
+ category: API
497
+ rule_id: API004
498
+ rule_name: Pagination for Lists
499
+ description: Don't return unbounded collections
500
+ applies_to: backend
501
+ severity: HIGH
502
+ example_good: ?page=2&limit=20
503
+ example_bad: Return 10000 items
504
+ - id: item_055
505
+ category: API
506
+ rule_id: API005
507
+ rule_name: Idempotent Operations
508
+ description: PUT/DELETE should be idempotent
509
+ applies_to: backend
510
+ severity: HIGH
511
+ example_good: Same result on retry
512
+ example_bad: Side effects on retry
513
+ - id: item_056
514
+ category: API
515
+ rule_id: API006
516
+ rule_name: Rate Limiting
517
+ description: Protect against abuse
518
+ applies_to: backend
519
+ severity: HIGH
520
+ example_good: 429 Too Many Requests
521
+ example_bad: No rate limits
522
+ - id: item_057
523
+ category: Database
524
+ rule_id: DB001
525
+ rule_name: Parameterized Queries
526
+ description: Prevent SQL injection
527
+ applies_to: backend
528
+ severity: CRITICAL
529
+ example_good: WHERE id = $1
530
+ example_bad: WHERE id = ' + id
531
+ - id: item_058
532
+ category: Database
533
+ rule_id: DB002
534
+ rule_name: Avoid N+1 Queries
535
+ description: Batch or join related data
536
+ applies_to: backend
537
+ severity: HIGH
538
+ example_good: SELECT with JOIN
539
+ example_bad: Query per item in loop
540
+ - id: item_059
541
+ category: Database
542
+ rule_id: DB003
543
+ rule_name: Use Indexes
544
+ description: Index frequently queried columns
545
+ applies_to: backend
546
+ severity: HIGH
547
+ example_good: CREATE INDEX on search cols
548
+ example_bad: Full table scan
549
+ - id: item_060
550
+ category: Database
551
+ rule_id: DB004
552
+ rule_name: Connection Pooling
553
+ description: Reuse database connections
554
+ applies_to: backend
555
+ severity: HIGH
556
+ example_good: Pool with max connections
557
+ example_bad: New connection per query
558
+ - id: item_061
559
+ category: Database
560
+ rule_id: DB005
561
+ rule_name: Transaction Boundaries
562
+ description: Group related operations
563
+ applies_to: backend
564
+ severity: HIGH
565
+ example_good: BEGIN COMMIT for atomicity
566
+ example_bad: No transaction for multi-op
567
+ - id: item_062
568
+ category: Database
569
+ rule_id: DB006
570
+ rule_name: Soft Delete Consider
571
+ description: Prefer soft delete for audit
572
+ applies_to: backend
573
+ severity: MEDIUM
574
+ example_good: deleted_at timestamp
575
+ example_bad: Hard delete important data
576
+ - id: item_063
577
+ category: Anti-Pattern
578
+ rule_id: AP001
579
+ rule_name: God Object
580
+ description: Avoid classes that do everything
581
+ applies_to: all
582
+ severity: HIGH
583
+ example_good: Split into focused classes
584
+ example_bad: UserManagerValidatorLogger
585
+ - id: item_064
586
+ category: Anti-Pattern
587
+ rule_id: AP002
588
+ rule_name: Magic Numbers
589
+ description: Use named constants
590
+ applies_to: all
591
+ severity: HIGH
592
+ example_good: MAX_RETRY_COUNT = 3
593
+ example_bad: if (count > 3)
594
+ - id: item_065
595
+ category: Anti-Pattern
596
+ rule_id: AP003
597
+ rule_name: Deep Nesting
598
+ description: Max 3 levels of nesting
599
+ applies_to: all
600
+ severity: MEDIUM
601
+ example_good: Early returns/guard clauses
602
+ example_bad: if { if { if { if
603
+ - id: item_066
604
+ category: Anti-Pattern
605
+ rule_id: AP004
606
+ rule_name: Premature Abstraction
607
+ description: Don't abstract too early
608
+ applies_to: all
609
+ severity: MEDIUM
610
+ example_good: Rule of 3 before DRY
611
+ example_bad: Interface for 1 implementation
612
+ - id: item_067
613
+ category: Anti-Pattern
614
+ rule_id: AP005
615
+ rule_name: Stringly Typed
616
+ description: Use types over strings
617
+ applies_to: all
618
+ severity: HIGH
619
+ example_good: enum Status { Active }
620
+ example_bad: status = 'active'
621
+ - id: item_068
622
+ category: Anti-Pattern
623
+ rule_id: AP006
624
+ rule_name: Copy Paste Programming
625
+ description: Extract common code
626
+ applies_to: all
627
+ severity: HIGH
628
+ example_good: Shared utility function
629
+ example_bad: Same code in 5 places
630
+ - id: item_069
631
+ category: Anti-Pattern
632
+ rule_id: AP007
633
+ rule_name: Callback Hell
634
+ description: Use async/await or promises
635
+ applies_to: JS/TS
636
+ severity: HIGH
637
+ example_good: await sequential();
638
+ example_bad: callback(callback(callback))
639
+ - id: item_070
640
+ category: Anti-Pattern
641
+ rule_id: AP008
642
+ rule_name: Feature Envy
643
+ description: Keep data and behavior together
644
+ applies_to: all
645
+ severity: MEDIUM
646
+ example_good: Method on owning class
647
+ example_bad: Accessing other object's fields