@nockdev/awf 6.2.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 (727) hide show
  1. package/.agent/build.yaml +178 -0
  2. package/.agent/config.yaml +235 -0
  3. package/.agent/core/ACTIVE_MEMORY.yaml +344 -0
  4. package/.agent/core/ARCH_REGISTRY.yaml +252 -0
  5. package/.agent/core/AUDIT_POLICY.md +68 -0
  6. package/.agent/core/BRANDING.yaml +185 -0
  7. package/.agent/core/CACHE.md +59 -0
  8. package/.agent/core/CHECKPOINT.yaml +153 -0
  9. package/.agent/core/CLEANUP_ENGINE.yaml +326 -0
  10. package/.agent/core/CODING_STYLES.yaml +346 -0
  11. package/.agent/core/COMMANDS.md +93 -0
  12. package/.agent/core/CONTEXT_INJECTOR.yaml +325 -0
  13. package/.agent/core/CONTEXT_LOADER.yaml +323 -0
  14. package/.agent/core/CONTEXT_OPTIMIZATION.yaml +286 -0
  15. package/.agent/core/CONTEXT_PRIORITY.yaml +357 -0
  16. package/.agent/core/CUSTOMIZE.md +138 -0
  17. package/.agent/core/DATA_SAFETY.md +92 -0
  18. package/.agent/core/FLOW_ENGINE.yaml +300 -0
  19. package/.agent/core/GRAPH_MEMORY.yaml +420 -0
  20. package/.agent/core/HSA.yaml +357 -0
  21. package/.agent/core/HYBRID_ROUTER.yaml +346 -0
  22. package/.agent/core/INTENT_DETECTION.yaml +384 -0
  23. package/.agent/core/LIBRARY_REGISTRY.yaml +401 -0
  24. package/.agent/core/MCP_TOOLS.yaml +414 -0
  25. package/.agent/core/MEMORY_CONSOLIDATION.yaml +352 -0
  26. package/.agent/core/MEMORY_ENGINE.yaml +353 -0
  27. package/.agent/core/MEMORY_PATHS.yaml +79 -0
  28. package/.agent/core/MEMORY_UTILS.yaml +212 -0
  29. package/.agent/core/PATTERNS.yaml +319 -0
  30. package/.agent/core/PERMISSIONS.md +100 -0
  31. package/.agent/core/README.md +91 -0
  32. package/.agent/core/REFLECTION_ENGINE.yaml +348 -0
  33. package/.agent/core/ROUTER.yaml +424 -0
  34. package/.agent/core/SCORING_FORMULA.yaml +103 -0
  35. package/.agent/core/SEMANTIC_ENGINE.yaml +162 -0
  36. package/.agent/core/SKILLS_FLOW.yaml +341 -0
  37. package/.agent/core/SKILL_SCHEMA.yaml +266 -0
  38. package/.agent/core/STATE_MACHINE.yaml +409 -0
  39. package/.agent/core/SUMMARIZATION_ENGINE.yaml +258 -0
  40. package/.agent/core/TEMPLATES.yaml +364 -0
  41. package/.agent/core/TOKEN_BUDGETS.yaml +157 -0
  42. package/.agent/core/TOKEN_LOADING.yaml +197 -0
  43. package/.agent/core/TOKEN_SUMMARY.yaml +121 -0
  44. package/.agent/core/VERSION.yaml +240 -0
  45. package/.agent/core/embeddings.json +2004 -0
  46. package/.agent/core/session_cache.json +50 -0
  47. package/.agent/i18n/README.md +30 -0
  48. package/.agent/i18n/en.yaml +302 -0
  49. package/.agent/i18n/vi.yaml +302 -0
  50. package/.agent/ide/README.md +47 -0
  51. package/.agent/ide/amazonq.json +35 -0
  52. package/.agent/ide/amp.json +35 -0
  53. package/.agent/ide/antigravity.json +47 -0
  54. package/.agent/ide/augment.json +35 -0
  55. package/.agent/ide/claude.json +42 -0
  56. package/.agent/ide/cline.json +34 -0
  57. package/.agent/ide/codex.json +37 -0
  58. package/.agent/ide/cody.json +35 -0
  59. package/.agent/ide/continue.json +35 -0
  60. package/.agent/ide/cursor.json +42 -0
  61. package/.agent/ide/gemini.json +46 -0
  62. package/.agent/ide/jetbrains.json +35 -0
  63. package/.agent/ide/kiro.json +35 -0
  64. package/.agent/ide/opencode.json +35 -0
  65. package/.agent/ide/roo.json +35 -0
  66. package/.agent/ide/tabnine.json +35 -0
  67. package/.agent/ide/trae.json +35 -0
  68. package/.agent/ide/vscode.json +34 -0
  69. package/.agent/ide/windsurf.json +56 -0
  70. package/.agent/ide/zed.json +36 -0
  71. package/.agent/manifest.yaml +416 -0
  72. package/.agent/memory/README.md +148 -0
  73. package/.agent/memory/active_memories.json +35 -0
  74. package/.agent/memory/archive/.gitkeep +0 -0
  75. package/.agent/memory/audit_summary.json +58 -0
  76. package/.agent/memory/cleanup_log.json +34 -0
  77. package/.agent/memory/consolidated.md +75 -0
  78. package/.agent/memory/core_memory/persona.json +30 -0
  79. package/.agent/memory/core_memory/project.json +25 -0
  80. package/.agent/memory/core_memory/rules.json +29 -0
  81. package/.agent/memory/core_memory/user.json +24 -0
  82. package/.agent/memory/decisions.md +40 -0
  83. package/.agent/memory/graph/knowledge_graph.json +12 -0
  84. package/.agent/memory/insights.md +52 -0
  85. package/.agent/memory/metrics.json +48 -0
  86. package/.agent/memory/patterns/errors.json +11 -0
  87. package/.agent/memory/patterns/successes.json +10 -0
  88. package/.agent/memory/session.md +64 -0
  89. package/.agent/memory/session_rules.json +19 -0
  90. package/.agent/memory/state.json +81 -0
  91. package/.agent/memory/vectors/README.md +129 -0
  92. package/.agent/personas/README.md +180 -0
  93. package/.agent/personas/architect.md +186 -0
  94. package/.agent/personas/auditor.md +222 -0
  95. package/.agent/personas/debugger.md +210 -0
  96. package/.agent/personas/developer.md +183 -0
  97. package/.agent/personas/devops.md +268 -0
  98. package/.agent/personas/documenter.md +262 -0
  99. package/.agent/personas/orchestrator.md +240 -0
  100. package/.agent/personas/persona.schema.yaml +209 -0
  101. package/.agent/personas/planner.md +171 -0
  102. package/.agent/personas/researcher.md +194 -0
  103. package/.agent/personas/security.md +212 -0
  104. package/.agent/personas/tester.md +247 -0
  105. package/.agent/rules/README.md +231 -0
  106. package/.agent/rules/SACRED_RULES.xml +142 -0
  107. package/.agent/rules/constitutional/tier-0-core.yaml +182 -0
  108. package/.agent/rules/constitutional/tier-1-safety.yaml +272 -0
  109. package/.agent/rules/constitutional/tier-2-execution.yaml +294 -0
  110. package/.agent/rules/data/build-systems.yaml +126 -0
  111. package/.agent/rules/data/quality-standards.json +59 -0
  112. package/.agent/rules/duplication-prevention.md +138 -0
  113. package/.agent/rules/incremental-changes.md +146 -0
  114. package/.agent/rules/modules/context-management.yaml +158 -0
  115. package/.agent/rules/modules/edit-verification.yaml +197 -0
  116. package/.agent/rules/modules/evidence.yaml +185 -0
  117. package/.agent/rules/modules/git-workflow.yaml +165 -0
  118. package/.agent/rules/modules/language.yaml +155 -0
  119. package/.agent/rules/modules/online-research.yaml +192 -0
  120. package/.agent/rules/modules/quality.yaml +185 -0
  121. package/.agent/rules/modules/reflection.yaml +209 -0
  122. package/.agent/rules/modules/stop-conditions.yaml +196 -0
  123. package/.agent/rules/modules/terminal-safety.yaml +229 -0
  124. package/.agent/rules/modules/versioning.yaml +97 -0
  125. package/.agent/rules/modules/yagni.yaml +167 -0
  126. package/.agent/rules/project-detection.md +317 -0
  127. package/.agent/rules/prompt-injection-guard.md +260 -0
  128. package/.agent/rules/shell-commands.md +210 -0
  129. package/.agent/rules/validation-framework.md +189 -0
  130. package/.agent/skills/DEVELOPMENT.yaml +226 -0
  131. package/.agent/skills/README.md +69 -0
  132. package/.agent/skills/_categories.yaml +145 -0
  133. package/.agent/skills/_router.yaml +232 -0
  134. package/.agent/skills/core/_index.yaml +12 -0
  135. package/.agent/skills/core/api-design/META.yaml +64 -0
  136. package/.agent/skills/core/api-design/SKILL.md +169 -0
  137. package/.agent/skills/core/api-design/data/api-versioning.yaml +217 -0
  138. package/.agent/skills/core/api-design/data/error-responses.yaml +135 -0
  139. package/.agent/skills/core/api-design/data/graphql-patterns.yaml +165 -0
  140. package/.agent/skills/core/api-design/data/grpc-patterns.yaml +165 -0
  141. package/.agent/skills/core/api-design/data/http-status-codes.yaml +176 -0
  142. package/.agent/skills/core/api-design/data/pagination.yaml +121 -0
  143. package/.agent/skills/core/api-design/data/rate-limiting.yaml +135 -0
  144. package/.agent/skills/core/api-design/data/rest-patterns.yaml +195 -0
  145. package/.agent/skills/core/api-design/data/test-apis.yaml +217 -0
  146. package/.agent/skills/core/authentication/META.yaml +73 -0
  147. package/.agent/skills/core/authentication/SKILL.md +166 -0
  148. package/.agent/skills/core/authentication/data/anti-patterns.yaml +135 -0
  149. package/.agent/skills/core/authentication/data/core-patterns.yaml +256 -0
  150. package/.agent/skills/core/authentication/data/jwt-patterns.yaml +255 -0
  151. package/.agent/skills/core/authentication/data/language-csharp.yaml +215 -0
  152. package/.agent/skills/core/authentication/data/language-go.yaml +215 -0
  153. package/.agent/skills/core/authentication/data/language-java.yaml +215 -0
  154. package/.agent/skills/core/authentication/data/language-mobile.yaml +215 -0
  155. package/.agent/skills/core/authentication/data/language-python.yaml +215 -0
  156. package/.agent/skills/core/authentication/data/language-rust.yaml +215 -0
  157. package/.agent/skills/core/authentication/data/language-typescript.yaml +215 -0
  158. package/.agent/skills/core/authentication/data/mfa-patterns.yaml +175 -0
  159. package/.agent/skills/core/authentication/data/oauth-patterns.yaml +255 -0
  160. package/.agent/skills/core/authentication/data/oauth.yaml +248 -0
  161. package/.agent/skills/core/authentication/data/passkeys-webauthn.yaml +215 -0
  162. package/.agent/skills/core/authentication/data/passkeys.yaml +208 -0
  163. package/.agent/skills/core/authentication/data/password-patterns.yaml +175 -0
  164. package/.agent/skills/core/authentication/data/password.yaml +168 -0
  165. package/.agent/skills/core/authentication/data/session-patterns.yaml +215 -0
  166. package/.agent/skills/core/error-handling/META.yaml +71 -0
  167. package/.agent/skills/core/error-handling/SKILL.md +156 -0
  168. package/.agent/skills/core/error-handling/data/anti-patterns.yaml +105 -0
  169. package/.agent/skills/core/error-handling/data/api-error-patterns.yaml +135 -0
  170. package/.agent/skills/core/error-handling/data/core-patterns.yaml +226 -0
  171. package/.agent/skills/core/error-handling/data/error-codes.yaml +165 -0
  172. package/.agent/skills/core/error-handling/data/error-messages.yaml +165 -0
  173. package/.agent/skills/core/error-handling/data/language-c-cpp.yaml +226 -0
  174. package/.agent/skills/core/error-handling/data/language-go-rust.yaml +226 -0
  175. package/.agent/skills/core/error-handling/data/language-python-java.yaml +226 -0
  176. package/.agent/skills/core/error-handling/data/language-swift-kotlin.yaml +226 -0
  177. package/.agent/skills/core/error-handling/data/language-typescript-php-ruby.yaml +226 -0
  178. package/.agent/skills/core/error-handling/data/resilience-patterns.yaml +191 -0
  179. package/.agent/skills/core/error-handling/data/ui-error-patterns.yaml +135 -0
  180. package/.agent/skills/core/logging/META.yaml +73 -0
  181. package/.agent/skills/core/logging/SKILL.md +184 -0
  182. package/.agent/skills/core/logging/data/aggregation-patterns.yaml +191 -0
  183. package/.agent/skills/core/logging/data/anti-patterns.yaml +121 -0
  184. package/.agent/skills/core/logging/data/core-patterns.yaml +226 -0
  185. package/.agent/skills/core/logging/data/language-csharp.yaml +191 -0
  186. package/.agent/skills/core/logging/data/language-go.yaml +191 -0
  187. package/.agent/skills/core/logging/data/language-java.yaml +191 -0
  188. package/.agent/skills/core/logging/data/language-kotlin.yaml +156 -0
  189. package/.agent/skills/core/logging/data/language-others.yaml +184 -0
  190. package/.agent/skills/core/logging/data/language-python.yaml +191 -0
  191. package/.agent/skills/core/logging/data/language-rust.yaml +191 -0
  192. package/.agent/skills/core/logging/data/language-swift.yaml +156 -0
  193. package/.agent/skills/core/logging/data/language-typescript.yaml +191 -0
  194. package/.agent/skills/core/logging/data/otel-logging.yaml +156 -0
  195. package/.agent/skills/core/observability/META.yaml +76 -0
  196. package/.agent/skills/core/observability/SKILL.md +153 -0
  197. package/.agent/skills/core/observability/data/alerting-patterns.yaml +165 -0
  198. package/.agent/skills/core/observability/data/anti-patterns.yaml +105 -0
  199. package/.agent/skills/core/observability/data/core-patterns.yaml +195 -0
  200. package/.agent/skills/core/observability/data/language-cpp.yaml +165 -0
  201. package/.agent/skills/core/observability/data/language-csharp.yaml +165 -0
  202. package/.agent/skills/core/observability/data/language-go.yaml +165 -0
  203. package/.agent/skills/core/observability/data/language-java.yaml +165 -0
  204. package/.agent/skills/core/observability/data/language-others.yaml +255 -0
  205. package/.agent/skills/core/observability/data/language-python.yaml +165 -0
  206. package/.agent/skills/core/observability/data/language-rust.yaml +165 -0
  207. package/.agent/skills/core/observability/data/language-typescript.yaml +165 -0
  208. package/.agent/skills/core/observability/data/metrics-patterns.yaml +135 -0
  209. package/.agent/skills/core/observability/data/metrics-prometheus.yaml +165 -0
  210. package/.agent/skills/core/observability/data/otel-core.yaml +195 -0
  211. package/.agent/skills/core/observability/data/profiling-patterns.yaml +135 -0
  212. package/.agent/skills/core/observability/data/tracing-patterns.yaml +165 -0
  213. package/.agent/skills/core/observability/data/tracing-tools.yaml +135 -0
  214. package/.agent/skills/core/security/ADVANCED.md +269 -0
  215. package/.agent/skills/core/security/META.yaml +97 -0
  216. package/.agent/skills/core/security/SKILL.md +234 -0
  217. package/.agent/skills/core/security/data/ai-ml-security.yaml +261 -0
  218. package/.agent/skills/core/security/data/api-security.yaml +230 -0
  219. package/.agent/skills/core/security/data/auth-patterns.yaml +195 -0
  220. package/.agent/skills/core/security/data/binary-exploitation.yaml +339 -0
  221. package/.agent/skills/core/security/data/cloud-security.yaml +269 -0
  222. package/.agent/skills/core/security/data/cwe-top25.yaml +415 -0
  223. package/.agent/skills/core/security/data/language-specific/c-security.yaml +295 -0
  224. package/.agent/skills/core/security/data/language-specific/cpp-security.yaml +295 -0
  225. package/.agent/skills/core/security/data/language-specific/csharp-security.yaml +219 -0
  226. package/.agent/skills/core/security/data/language-specific/go-security.yaml +219 -0
  227. package/.agent/skills/core/security/data/language-specific/java-security.yaml +295 -0
  228. package/.agent/skills/core/security/data/language-specific/kotlin-security.yaml +198 -0
  229. package/.agent/skills/core/security/data/language-specific/php-security.yaml +219 -0
  230. package/.agent/skills/core/security/data/language-specific/python-security.yaml +295 -0
  231. package/.agent/skills/core/security/data/language-specific/ruby-security.yaml +198 -0
  232. package/.agent/skills/core/security/data/language-specific/rust-security.yaml +240 -0
  233. package/.agent/skills/core/security/data/language-specific/solidity-security.yaml +369 -0
  234. package/.agent/skills/core/security/data/language-specific/swift-security.yaml +198 -0
  235. package/.agent/skills/core/security/data/language-specific/typescript-security.yaml +295 -0
  236. package/.agent/skills/core/security/data/mobile-security.yaml +369 -0
  237. package/.agent/skills/core/security/data/network-security.yaml +297 -0
  238. package/.agent/skills/core/security/data/owasp-top10.yaml +171 -0
  239. package/.agent/skills/core/security/data/reverse-engineering.yaml +497 -0
  240. package/.agent/skills/core/security/data/supply-chain.yaml +219 -0
  241. package/.agent/skills/cross-cutting/_index.yaml +15 -0
  242. package/.agent/skills/cross-cutting/audit-pro/META.yaml +43 -0
  243. package/.agent/skills/cross-cutting/audit-pro/data/checklists.yaml +644 -0
  244. package/.agent/skills/cross-cutting/audit-pro/data/scoring.yaml +101 -0
  245. package/.agent/skills/cross-cutting/aws/META.yaml +75 -0
  246. package/.agent/skills/cross-cutting/aws/data/ai_ml.yaml +194 -0
  247. package/.agent/skills/cross-cutting/aws/data/compute.yaml +191 -0
  248. package/.agent/skills/cross-cutting/aws/data/kubernetes.yaml +199 -0
  249. package/.agent/skills/cross-cutting/aws/data/storage.yaml +174 -0
  250. package/.agent/skills/cross-cutting/bun/META.yaml +58 -0
  251. package/.agent/skills/cross-cutting/bun/SKILL.md +357 -0
  252. package/.agent/skills/cross-cutting/bun/data/database.yaml +85 -0
  253. package/.agent/skills/cross-cutting/bun/data/runtime.yaml +170 -0
  254. package/.agent/skills/cross-cutting/bun/data/tooling.yaml +192 -0
  255. package/.agent/skills/cross-cutting/ci-cd/META.yaml +60 -0
  256. package/.agent/skills/cross-cutting/ci-cd/data/github_actions.yaml +248 -0
  257. package/.agent/skills/cross-cutting/ci-cd/data/security.yaml +211 -0
  258. package/.agent/skills/cross-cutting/coding-rules/META.yaml +61 -0
  259. package/.agent/skills/cross-cutting/coding-rules/SKILL.md +171 -0
  260. package/.agent/skills/cross-cutting/coding-rules/data/architecture-patterns.yaml +96 -0
  261. package/.agent/skills/cross-cutting/coding-rules/data/build-systems.yaml +346 -0
  262. package/.agent/skills/cross-cutting/coding-rules/data/coding-rules.yaml +647 -0
  263. package/.agent/skills/cross-cutting/coding-rules/data/concurrency-patterns.yaml +108 -0
  264. package/.agent/skills/cross-cutting/coding-rules/data/design-patterns.yaml +260 -0
  265. package/.agent/skills/cross-cutting/coding-rules/data/framework-signatures.yaml +344 -0
  266. package/.agent/skills/cross-cutting/coding-rules/data/memory-management.yaml +108 -0
  267. package/.agent/skills/cross-cutting/coding-rules/data/naming-conventions.yaml +320 -0
  268. package/.agent/skills/cross-cutting/coding-rules/data/performance-benchmarks.yaml +164 -0
  269. package/.agent/skills/cross-cutting/coding-rules/data/solid-principles.yaml +80 -0
  270. package/.agent/skills/cross-cutting/coding-rules/data/test-frameworks.yaml +183 -0
  271. package/.agent/skills/cross-cutting/database/ADVANCED.md +465 -0
  272. package/.agent/skills/cross-cutting/database/META.yaml +22 -0
  273. package/.agent/skills/cross-cutting/database/SKILL.md +816 -0
  274. package/.agent/skills/cross-cutting/database/data/anti_patterns.yaml +116 -0
  275. package/.agent/skills/cross-cutting/database/data/distributed.yaml +152 -0
  276. package/.agent/skills/cross-cutting/database/data/mongodb.yaml +132 -0
  277. package/.agent/skills/cross-cutting/database/data/mysql.yaml +130 -0
  278. package/.agent/skills/cross-cutting/database/data/orm.yaml +104 -0
  279. package/.agent/skills/cross-cutting/database/data/postgresql.yaml +170 -0
  280. package/.agent/skills/cross-cutting/database/data/redis.yaml +129 -0
  281. package/.agent/skills/cross-cutting/deno/META.yaml +68 -0
  282. package/.agent/skills/cross-cutting/deno/SKILL.md +343 -0
  283. package/.agent/skills/cross-cutting/deno/data/runtime.yaml +260 -0
  284. package/.agent/skills/cross-cutting/deno/data/security.yaml +168 -0
  285. package/.agent/skills/cross-cutting/deno/data/tooling.yaml +133 -0
  286. package/.agent/skills/cross-cutting/docker/META.yaml +65 -0
  287. package/.agent/skills/cross-cutting/docker/data/build.yaml +197 -0
  288. package/.agent/skills/cross-cutting/docker/data/compose.yaml +229 -0
  289. package/.agent/skills/cross-cutting/docker/data/security.yaml +164 -0
  290. package/.agent/skills/cross-cutting/electron/META.yaml +174 -0
  291. package/.agent/skills/cross-cutting/electron/SKILL.md +862 -0
  292. package/.agent/skills/cross-cutting/electron/data/build.yaml +105 -0
  293. package/.agent/skills/cross-cutting/electron/data/crash.yaml +103 -0
  294. package/.agent/skills/cross-cutting/electron/data/ipc.yaml +85 -0
  295. package/.agent/skills/cross-cutting/electron/data/native.yaml +157 -0
  296. package/.agent/skills/cross-cutting/electron/data/security.yaml +89 -0
  297. package/.agent/skills/cross-cutting/electron/data/storage.yaml +100 -0
  298. package/.agent/skills/cross-cutting/electron/data/testing.yaml +103 -0
  299. package/.agent/skills/cross-cutting/electron/data/updates.yaml +99 -0
  300. package/.agent/skills/cross-cutting/electron/data/window.yaml +83 -0
  301. package/.agent/skills/cross-cutting/kubernetes/META.yaml +70 -0
  302. package/.agent/skills/cross-cutting/kubernetes/data/networking.yaml +270 -0
  303. package/.agent/skills/cross-cutting/kubernetes/data/scheduling.yaml +267 -0
  304. package/.agent/skills/cross-cutting/kubernetes/data/security.yaml +253 -0
  305. package/.agent/skills/cross-cutting/kubernetes/data/workloads.yaml +251 -0
  306. package/.agent/skills/cross-cutting/sql/META.yaml +88 -0
  307. package/.agent/skills/cross-cutting/sql/SKILL.md +296 -0
  308. package/.agent/skills/cross-cutting/sql/data/indexing.yaml +147 -0
  309. package/.agent/skills/cross-cutting/sql/data/json.yaml +156 -0
  310. package/.agent/skills/cross-cutting/sql/data/performance.yaml +204 -0
  311. package/.agent/skills/cross-cutting/sql/data/queries.yaml +150 -0
  312. package/.agent/skills/cross-cutting/tailwind/META.yaml +72 -0
  313. package/.agent/skills/cross-cutting/tailwind/SKILL.md +344 -0
  314. package/.agent/skills/cross-cutting/tailwind/data/build.yaml +143 -0
  315. package/.agent/skills/cross-cutting/tailwind/data/config.yaml +109 -0
  316. package/.agent/skills/cross-cutting/tailwind/data/migration.yaml +149 -0
  317. package/.agent/skills/cross-cutting/tailwind/data/responsive.yaml +148 -0
  318. package/.agent/skills/cross-cutting/tailwind/data/states.yaml +152 -0
  319. package/.agent/skills/cross-cutting/tailwind/data/theme.yaml +126 -0
  320. package/.agent/skills/cross-cutting/tailwind/data/utilities.yaml +182 -0
  321. package/.agent/skills/cross-cutting/tailwind/data/variants.yaml +154 -0
  322. package/.agent/skills/cross-cutting/testing/ADVANCED.md +245 -0
  323. package/.agent/skills/cross-cutting/testing/META.yaml +49 -0
  324. package/.agent/skills/cross-cutting/testing/SKILL.md +263 -0
  325. package/.agent/skills/cross-cutting/testing/data/frameworks.yaml +300 -0
  326. package/.agent/skills/cross-cutting/testing/data/patterns.yaml +168 -0
  327. package/.agent/skills/cross-cutting/ui-ux-pro-max/META.yaml +108 -0
  328. package/.agent/skills/cross-cutting/ui-ux-pro-max/SKILL.md +565 -0
  329. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/charts.yaml +331 -0
  330. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/colors.yaml +1226 -0
  331. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/component-decision.yaml +287 -0
  332. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/component-mapping.yaml +318 -0
  333. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/design-tokens.yaml +525 -0
  334. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/desktop-animation.yaml +232 -0
  335. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/desktop-architecture.yaml +140 -0
  336. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/desktop-colors.yaml +467 -0
  337. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/directory-structure.yaml +75 -0
  338. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/icons.yaml +918 -0
  339. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/implementation-strategy.yaml +107 -0
  340. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/landing.yaml +372 -0
  341. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/platform-frameworks.yaml +195 -0
  342. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/platform-guidelines.yaml +177 -0
  343. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/products.yaml +1339 -0
  344. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/prompts.yaml +180 -0
  345. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/react-performance.yaml +504 -0
  346. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/desktop.yaml +228 -0
  347. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/flutter.yaml +508 -0
  348. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/html-tailwind.yaml +543 -0
  349. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/nextjs.yaml +515 -0
  350. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/nuxt-ui.yaml +519 -0
  351. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/nuxtjs.yaml +599 -0
  352. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/react-native.yaml +496 -0
  353. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/react.yaml +526 -0
  354. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/shadcn.yaml +616 -0
  355. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/svelte.yaml +520 -0
  356. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/swiftui.yaml +486 -0
  357. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/vue.yaml +485 -0
  358. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/styles.yaml +1473 -0
  359. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/typography.yaml +647 -0
  360. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/ui-reasoning.yaml +1019 -0
  361. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/ux-guidelines.yaml +1009 -0
  362. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/web-interface.yaml +347 -0
  363. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/__pycache__/core.cpython-310.pyc +0 -0
  364. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/__pycache__/core.cpython-314.pyc +0 -0
  365. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc +0 -0
  366. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/core.py +393 -0
  367. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/core_legacy.py +303 -0
  368. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/design_system.py +496 -0
  369. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/search.py +76 -0
  370. package/.agent/skills/cross-cutting/web-perf/META.yaml +92 -0
  371. package/.agent/skills/cross-cutting/web-perf/SKILL.md +181 -0
  372. package/.agent/skills/cross-cutting/web-perf/data/cls_optimization.yaml +189 -0
  373. package/.agent/skills/cross-cutting/web-perf/data/core_web_vitals.yaml +282 -0
  374. package/.agent/skills/cross-cutting/web-perf/data/inp_optimization.yaml +240 -0
  375. package/.agent/skills/cross-cutting/web-perf/data/lcp_optimization.yaml +202 -0
  376. package/.agent/skills/cross-cutting/web-perf/data/measurement.yaml +170 -0
  377. package/.agent/skills/devops/_index.yaml +9 -0
  378. package/.agent/skills/devops/aws/ADVANCED.md +547 -0
  379. package/.agent/skills/devops/aws/META.yaml +84 -0
  380. package/.agent/skills/devops/aws/SKILL.md +711 -0
  381. package/.agent/skills/devops/ci-cd/ADVANCED.md +529 -0
  382. package/.agent/skills/devops/ci-cd/META.yaml +21 -0
  383. package/.agent/skills/devops/ci-cd/SKILL.md +821 -0
  384. package/.agent/skills/devops/docker/ADVANCED.md +495 -0
  385. package/.agent/skills/devops/docker/META.yaml +20 -0
  386. package/.agent/skills/devops/docker/SKILL.md +653 -0
  387. package/.agent/skills/devops/kubernetes/ADVANCED.md +252 -0
  388. package/.agent/skills/devops/kubernetes/META.yaml +15 -0
  389. package/.agent/skills/devops/kubernetes/SKILL.md +621 -0
  390. package/.agent/skills/frameworks/_index.yaml +13 -0
  391. package/.agent/skills/frameworks/angular/META.yaml +70 -0
  392. package/.agent/skills/frameworks/angular/SKILL.md +319 -0
  393. package/.agent/skills/frameworks/angular/data/core.yaml +209 -0
  394. package/.agent/skills/frameworks/angular/data/performance.yaml +210 -0
  395. package/.agent/skills/frameworks/angular/data/server.yaml +175 -0
  396. package/.agent/skills/frameworks/flutter/ADVANCED.md +491 -0
  397. package/.agent/skills/frameworks/flutter/META.yaml +64 -0
  398. package/.agent/skills/frameworks/flutter/SKILL.md +541 -0
  399. package/.agent/skills/frameworks/flutter/data/core.yaml +210 -0
  400. package/.agent/skills/frameworks/flutter/data/platform.yaml +246 -0
  401. package/.agent/skills/frameworks/flutter/data/state.yaml +250 -0
  402. package/.agent/skills/frameworks/nextjs/ADVANCED.md +225 -0
  403. package/.agent/skills/frameworks/nextjs/META.yaml +67 -0
  404. package/.agent/skills/frameworks/nextjs/SKILL.md +593 -0
  405. package/.agent/skills/frameworks/nextjs/data/caching.yaml +210 -0
  406. package/.agent/skills/frameworks/nextjs/data/core.yaml +255 -0
  407. package/.agent/skills/frameworks/nextjs/data/server.yaml +248 -0
  408. package/.agent/skills/frameworks/nuxt/META.yaml +57 -0
  409. package/.agent/skills/frameworks/nuxt/SKILL.md +283 -0
  410. package/.agent/skills/frameworks/nuxt/data/core.yaml +309 -0
  411. package/.agent/skills/frameworks/nuxt/data/server.yaml +271 -0
  412. package/.agent/skills/frameworks/react/ADVANCED.md +676 -0
  413. package/.agent/skills/frameworks/react/META.yaml +60 -0
  414. package/.agent/skills/frameworks/react/SKILL.md +263 -0
  415. package/.agent/skills/frameworks/react/data/core.yaml +278 -0
  416. package/.agent/skills/frameworks/react/data/server.yaml +283 -0
  417. package/.agent/skills/frameworks/react-native/META.yaml +59 -0
  418. package/.agent/skills/frameworks/react-native/SKILL.md +301 -0
  419. package/.agent/skills/frameworks/react-native/data/core.yaml +260 -0
  420. package/.agent/skills/frameworks/react-native/data/platform.yaml +287 -0
  421. package/.agent/skills/frameworks/svelte/META.yaml +62 -0
  422. package/.agent/skills/frameworks/svelte/SKILL.md +398 -0
  423. package/.agent/skills/frameworks/svelte/data/runes.yaml +239 -0
  424. package/.agent/skills/frameworks/svelte/data/sveltekit.yaml +244 -0
  425. package/.agent/skills/frameworks/vue/ADVANCED.md +214 -0
  426. package/.agent/skills/frameworks/vue/META.yaml +58 -0
  427. package/.agent/skills/frameworks/vue/SKILL.md +356 -0
  428. package/.agent/skills/frameworks/vue/data/advanced.yaml +253 -0
  429. package/.agent/skills/frameworks/vue/data/core.yaml +270 -0
  430. package/.agent/skills/index.json +143 -0
  431. package/.agent/skills/languages/_index.yaml +33 -0
  432. package/.agent/skills/languages/asm/ADVANCED.md +750 -0
  433. package/.agent/skills/languages/asm/META.yaml +84 -0
  434. package/.agent/skills/languages/asm/SKILL.md +753 -0
  435. package/.agent/skills/languages/asm/data/advanced.yaml +295 -0
  436. package/.agent/skills/languages/asm/data/core.yaml +280 -0
  437. package/.agent/skills/languages/c/ADVANCED.md +625 -0
  438. package/.agent/skills/languages/c/META.yaml +58 -0
  439. package/.agent/skills/languages/c/SKILL.md +748 -0
  440. package/.agent/skills/languages/c/data/core.yaml +179 -0
  441. package/.agent/skills/languages/c/data/embedded.yaml +251 -0
  442. package/.agent/skills/languages/c/data/memory.yaml +253 -0
  443. package/.agent/skills/languages/clojure/META.yaml +13 -0
  444. package/.agent/skills/languages/clojure/SKILL.md +130 -0
  445. package/.agent/skills/languages/clojure/data/core.yaml +326 -0
  446. package/.agent/skills/languages/cpp/ADVANCED.md +457 -0
  447. package/.agent/skills/languages/cpp/META.yaml +61 -0
  448. package/.agent/skills/languages/cpp/SKILL.md +936 -0
  449. package/.agent/skills/languages/cpp/data/core.yaml +304 -0
  450. package/.agent/skills/languages/cpp/data/memory.yaml +247 -0
  451. package/.agent/skills/languages/cpp/data/modern.yaml +334 -0
  452. package/.agent/skills/languages/crystal/META.yaml +30 -0
  453. package/.agent/skills/languages/crystal/SKILL.md +117 -0
  454. package/.agent/skills/languages/crystal/data/async.yaml +264 -0
  455. package/.agent/skills/languages/crystal/data/core.yaml +279 -0
  456. package/.agent/skills/languages/csharp/ADVANCED.md +592 -0
  457. package/.agent/skills/languages/csharp/META.yaml +23 -0
  458. package/.agent/skills/languages/csharp/SKILL.md +620 -0
  459. package/.agent/skills/languages/csharp/data/aspnet.yaml +448 -0
  460. package/.agent/skills/languages/csharp/data/core.yaml +362 -0
  461. package/.agent/skills/languages/elixir/META.yaml +18 -0
  462. package/.agent/skills/languages/elixir/SKILL.md +368 -0
  463. package/.agent/skills/languages/elixir/data/core.yaml +392 -0
  464. package/.agent/skills/languages/fsharp/META.yaml +14 -0
  465. package/.agent/skills/languages/fsharp/SKILL.md +113 -0
  466. package/.agent/skills/languages/fsharp/data/core.yaml +396 -0
  467. package/.agent/skills/languages/go/ADVANCED.md +260 -0
  468. package/.agent/skills/languages/go/META.yaml +64 -0
  469. package/.agent/skills/languages/go/SKILL.md +489 -0
  470. package/.agent/skills/languages/go/data/concurrency.yaml +424 -0
  471. package/.agent/skills/languages/go/data/core.yaml +399 -0
  472. package/.agent/skills/languages/go/data/http.yaml +507 -0
  473. package/.agent/skills/languages/haskell/META.yaml +18 -0
  474. package/.agent/skills/languages/haskell/SKILL.md +305 -0
  475. package/.agent/skills/languages/haskell/data/core.yaml +347 -0
  476. package/.agent/skills/languages/java/ADVANCED.md +450 -0
  477. package/.agent/skills/languages/java/META.yaml +89 -0
  478. package/.agent/skills/languages/java/SKILL.md +495 -0
  479. package/.agent/skills/languages/java/data/core.yaml +307 -0
  480. package/.agent/skills/languages/java/data/spring.yaml +437 -0
  481. package/.agent/skills/languages/javascript/ADVANCED.md +530 -0
  482. package/.agent/skills/languages/javascript/META.yaml +105 -0
  483. package/.agent/skills/languages/javascript/SKILL.md +455 -0
  484. package/.agent/skills/languages/javascript/data/async.yaml +290 -0
  485. package/.agent/skills/languages/javascript/data/core.yaml +380 -0
  486. package/.agent/skills/languages/javascript/data/modern.yaml +269 -0
  487. package/.agent/skills/languages/julia/META.yaml +13 -0
  488. package/.agent/skills/languages/julia/SKILL.md +174 -0
  489. package/.agent/skills/languages/julia/data/core.yaml +356 -0
  490. package/.agent/skills/languages/kotlin/ADVANCED.md +539 -0
  491. package/.agent/skills/languages/kotlin/META.yaml +24 -0
  492. package/.agent/skills/languages/kotlin/SKILL.md +525 -0
  493. package/.agent/skills/languages/kotlin/data/android.yaml +495 -0
  494. package/.agent/skills/languages/kotlin/data/core.yaml +366 -0
  495. package/.agent/skills/languages/lua/ADVANCED.md +257 -0
  496. package/.agent/skills/languages/lua/META.yaml +58 -0
  497. package/.agent/skills/languages/lua/SKILL.md +492 -0
  498. package/.agent/skills/languages/lua/data/core.yaml +264 -0
  499. package/.agent/skills/languages/lua/data/embedding.yaml +300 -0
  500. package/.agent/skills/languages/nim/META.yaml +30 -0
  501. package/.agent/skills/languages/nim/SKILL.md +116 -0
  502. package/.agent/skills/languages/nim/data/async.yaml +257 -0
  503. package/.agent/skills/languages/nim/data/core.yaml +241 -0
  504. package/.agent/skills/languages/ocaml/META.yaml +13 -0
  505. package/.agent/skills/languages/ocaml/SKILL.md +123 -0
  506. package/.agent/skills/languages/ocaml/data/core.yaml +357 -0
  507. package/.agent/skills/languages/perl/META.yaml +13 -0
  508. package/.agent/skills/languages/perl/SKILL.md +115 -0
  509. package/.agent/skills/languages/perl/data/core.yaml +360 -0
  510. package/.agent/skills/languages/php/ADVANCED.md +199 -0
  511. package/.agent/skills/languages/php/META.yaml +18 -0
  512. package/.agent/skills/languages/php/SKILL.md +488 -0
  513. package/.agent/skills/languages/php/data/core.yaml +392 -0
  514. package/.agent/skills/languages/php/data/laravel.yaml +525 -0
  515. package/.agent/skills/languages/python/ADVANCED.md +207 -0
  516. package/.agent/skills/languages/python/META.yaml +91 -0
  517. package/.agent/skills/languages/python/SKILL.md +495 -0
  518. package/.agent/skills/languages/python/data/async.yaml +265 -0
  519. package/.agent/skills/languages/python/data/core.yaml +259 -0
  520. package/.agent/skills/languages/python/data/fastapi.yaml +296 -0
  521. package/.agent/skills/languages/python/data/testing.yaml +226 -0
  522. package/.agent/skills/languages/r/META.yaml +16 -0
  523. package/.agent/skills/languages/r/SKILL.md +348 -0
  524. package/.agent/skills/languages/r/data/core.yaml +355 -0
  525. package/.agent/skills/languages/ruby/ADVANCED.md +381 -0
  526. package/.agent/skills/languages/ruby/META.yaml +19 -0
  527. package/.agent/skills/languages/ruby/SKILL.md +417 -0
  528. package/.agent/skills/languages/ruby/data/core.yaml +448 -0
  529. package/.agent/skills/languages/ruby/data/rails.yaml +415 -0
  530. package/.agent/skills/languages/rust/ADVANCED.md +212 -0
  531. package/.agent/skills/languages/rust/META.yaml +87 -0
  532. package/.agent/skills/languages/rust/SKILL.md +377 -0
  533. package/.agent/skills/languages/rust/data/async.yaml +404 -0
  534. package/.agent/skills/languages/rust/data/axum.yaml +450 -0
  535. package/.agent/skills/languages/rust/data/core.yaml +356 -0
  536. package/.agent/skills/languages/scala/META.yaml +17 -0
  537. package/.agent/skills/languages/scala/SKILL.md +202 -0
  538. package/.agent/skills/languages/scala/data/core.yaml +349 -0
  539. package/.agent/skills/languages/solidity/META.yaml +13 -0
  540. package/.agent/skills/languages/solidity/SKILL.md +188 -0
  541. package/.agent/skills/languages/solidity/data/core.yaml +528 -0
  542. package/.agent/skills/languages/swift/ADVANCED.md +231 -0
  543. package/.agent/skills/languages/swift/META.yaml +18 -0
  544. package/.agent/skills/languages/swift/SKILL.md +342 -0
  545. package/.agent/skills/languages/swift/data/core.yaml +489 -0
  546. package/.agent/skills/languages/typescript/ADVANCED.md +186 -0
  547. package/.agent/skills/languages/typescript/META.yaml +92 -0
  548. package/.agent/skills/languages/typescript/SKILL.md +306 -0
  549. package/.agent/skills/languages/typescript/data/async.yaml +397 -0
  550. package/.agent/skills/languages/typescript/data/core.yaml +283 -0
  551. package/.agent/skills/languages/typescript/data/validation.yaml +338 -0
  552. package/.agent/skills/languages/zig/META.yaml +52 -0
  553. package/.agent/skills/languages/zig/SKILL.md +354 -0
  554. package/.agent/skills/languages/zig/data/async.yaml +314 -0
  555. package/.agent/skills/languages/zig/data/core.yaml +302 -0
  556. package/.agent/templates/README.md +42 -0
  557. package/.agent/templates/audit-report.md +153 -0
  558. package/.agent/templates/chains/debug/step1-reproduce.md +83 -0
  559. package/.agent/templates/chains/debug/step2-isolate.md +73 -0
  560. package/.agent/templates/chains/debug/step3-analyze.md +86 -0
  561. package/.agent/templates/chains/debug/step4-fix.md +85 -0
  562. package/.agent/templates/chains/debug/step5-verify.md +122 -0
  563. package/.agent/templates/chains/implement/step1-plan.md +88 -0
  564. package/.agent/templates/chains/implement/step2-code.md +87 -0
  565. package/.agent/templates/chains/implement/step3-test.md +87 -0
  566. package/.agent/templates/chains/implement/step4-doc.md +118 -0
  567. package/.agent/templates/chains/review/step1-understand.md +74 -0
  568. package/.agent/templates/chains/review/step2-analyze.md +110 -0
  569. package/.agent/templates/chains/review/step3-fix.md +93 -0
  570. package/.agent/templates/chains/review/step4-summary.md +104 -0
  571. package/.agent/templates/debug-report.md +50 -0
  572. package/.agent/templates/deploy-plan.md +54 -0
  573. package/.agent/templates/doc-template.md +57 -0
  574. package/.agent/templates/findings.md +122 -0
  575. package/.agent/templates/index.yaml +239 -0
  576. package/.agent/templates/migrate-plan.md +50 -0
  577. package/.agent/templates/phase-template.md +72 -0
  578. package/.agent/templates/project-plan.md +87 -0
  579. package/.agent/templates/prompts/context_block.md +114 -0
  580. package/.agent/templates/prompts/guardrails_block.md +116 -0
  581. package/.agent/templates/prompts/persona_base.md +155 -0
  582. package/.agent/templates/prompts/tools_block.md +137 -0
  583. package/.agent/templates/reflection/critic.md +110 -0
  584. package/.agent/templates/reflection/error_analysis.md +149 -0
  585. package/.agent/templates/reflection/success_analysis.md +174 -0
  586. package/.agent/templates/task-list.md +144 -0
  587. package/.agent/templates/tasks/audit.yaml +146 -0
  588. package/.agent/templates/tasks/bug_fix.yaml +121 -0
  589. package/.agent/templates/tasks/code_implementation.yaml +110 -0
  590. package/.agent/templates/tasks/refactor.yaml +157 -0
  591. package/.agent/templates/test-report.md +52 -0
  592. package/.agent/workflows/ap.md +135 -0
  593. package/.agent/workflows/code.md +130 -0
  594. package/.agent/workflows/debug.md +230 -0
  595. package/.agent/workflows/deploy.md +192 -0
  596. package/.agent/workflows/dev.md +137 -0
  597. package/.agent/workflows/doc.md +124 -0
  598. package/.agent/workflows/env.md +98 -0
  599. package/.agent/workflows/fix.md +76 -0
  600. package/.agent/workflows/generate.md +28 -0
  601. package/.agent/workflows/git.md +97 -0
  602. package/.agent/workflows/help.md +75 -0
  603. package/.agent/workflows/init.md +148 -0
  604. package/.agent/workflows/migrate.md +135 -0
  605. package/.agent/workflows/monitor.md +133 -0
  606. package/.agent/workflows/onboard.md +144 -0
  607. package/.agent/workflows/orchestrate.md +117 -0
  608. package/.agent/workflows/perf.md +106 -0
  609. package/.agent/workflows/plan.md +106 -0
  610. package/.agent/workflows/recap.md +101 -0
  611. package/.agent/workflows/refactor.md +161 -0
  612. package/.agent/workflows/revert.md +99 -0
  613. package/.agent/workflows/review.md +106 -0
  614. package/.agent/workflows/scaffold.md +119 -0
  615. package/.agent/workflows/security.md +186 -0
  616. package/.agent/workflows/status.md +103 -0
  617. package/.agent/workflows/test.md +157 -0
  618. package/.agent/workflows/think.md +126 -0
  619. package/.agent/workflows/upgrade.md +109 -0
  620. package/.agent/workflows/visualize.md +295 -0
  621. package/.agent/workflows/workflow.md +196 -0
  622. package/README.md +64 -0
  623. package/dist/commands/add.d.ts +2 -0
  624. package/dist/commands/add.d.ts.map +1 -0
  625. package/dist/commands/add.js +70 -0
  626. package/dist/commands/add.js.map +1 -0
  627. package/dist/commands/config.d.ts +4 -0
  628. package/dist/commands/config.d.ts.map +1 -0
  629. package/dist/commands/config.js +152 -0
  630. package/dist/commands/config.js.map +1 -0
  631. package/dist/commands/doctor.d.ts +4 -0
  632. package/dist/commands/doctor.d.ts.map +1 -0
  633. package/dist/commands/doctor.js +98 -0
  634. package/dist/commands/doctor.js.map +1 -0
  635. package/dist/commands/hsa.d.ts +4 -0
  636. package/dist/commands/hsa.d.ts.map +1 -0
  637. package/dist/commands/hsa.js +194 -0
  638. package/dist/commands/hsa.js.map +1 -0
  639. package/dist/commands/info.d.ts +2 -0
  640. package/dist/commands/info.d.ts.map +1 -0
  641. package/dist/commands/info.js +149 -0
  642. package/dist/commands/info.js.map +1 -0
  643. package/dist/commands/init.d.ts +4 -0
  644. package/dist/commands/init.d.ts.map +1 -0
  645. package/dist/commands/init.js +262 -0
  646. package/dist/commands/init.js.map +1 -0
  647. package/dist/commands/install-core.d.ts +4 -0
  648. package/dist/commands/install-core.d.ts.map +1 -0
  649. package/dist/commands/install-core.js +85 -0
  650. package/dist/commands/install-core.js.map +1 -0
  651. package/dist/commands/install-helpers.d.ts +27 -0
  652. package/dist/commands/install-helpers.d.ts.map +1 -0
  653. package/dist/commands/install-helpers.js +125 -0
  654. package/dist/commands/install-helpers.js.map +1 -0
  655. package/dist/commands/install-hsa.d.ts +18 -0
  656. package/dist/commands/install-hsa.d.ts.map +1 -0
  657. package/dist/commands/install-hsa.js +61 -0
  658. package/dist/commands/install-hsa.js.map +1 -0
  659. package/dist/commands/install.d.ts +4 -0
  660. package/dist/commands/install.d.ts.map +1 -0
  661. package/dist/commands/install.js +310 -0
  662. package/dist/commands/install.js.map +1 -0
  663. package/dist/commands/list.d.ts +4 -0
  664. package/dist/commands/list.d.ts.map +1 -0
  665. package/dist/commands/list.js +91 -0
  666. package/dist/commands/list.js.map +1 -0
  667. package/dist/commands/mcp-registry.d.ts +48 -0
  668. package/dist/commands/mcp-registry.d.ts.map +1 -0
  669. package/dist/commands/mcp-registry.js +246 -0
  670. package/dist/commands/mcp-registry.js.map +1 -0
  671. package/dist/commands/mcp-writers.d.ts +20 -0
  672. package/dist/commands/mcp-writers.d.ts.map +1 -0
  673. package/dist/commands/mcp-writers.js +144 -0
  674. package/dist/commands/mcp-writers.js.map +1 -0
  675. package/dist/commands/mcp.d.ts +10 -0
  676. package/dist/commands/mcp.d.ts.map +1 -0
  677. package/dist/commands/mcp.js +319 -0
  678. package/dist/commands/mcp.js.map +1 -0
  679. package/dist/commands/update.d.ts +4 -0
  680. package/dist/commands/update.d.ts.map +1 -0
  681. package/dist/commands/update.js +79 -0
  682. package/dist/commands/update.js.map +1 -0
  683. package/dist/constants/cursor-globs.d.ts +17 -0
  684. package/dist/constants/cursor-globs.d.ts.map +1 -0
  685. package/dist/constants/cursor-globs.js +62 -0
  686. package/dist/constants/cursor-globs.js.map +1 -0
  687. package/dist/constants/ide-install-specs.d.ts +36 -0
  688. package/dist/constants/ide-install-specs.d.ts.map +1 -0
  689. package/dist/constants/ide-install-specs.js +870 -0
  690. package/dist/constants/ide-install-specs.js.map +1 -0
  691. package/dist/constants/ides.d.ts +105 -0
  692. package/dist/constants/ides.d.ts.map +1 -0
  693. package/dist/constants/ides.js +412 -0
  694. package/dist/constants/ides.js.map +1 -0
  695. package/dist/constants/skills.d.ts +40 -0
  696. package/dist/constants/skills.d.ts.map +1 -0
  697. package/dist/constants/skills.js +78 -0
  698. package/dist/constants/skills.js.map +1 -0
  699. package/dist/constants.d.ts +39 -0
  700. package/dist/constants.d.ts.map +1 -0
  701. package/dist/constants.js +75 -0
  702. package/dist/constants.js.map +1 -0
  703. package/dist/index.d.ts +8 -0
  704. package/dist/index.d.ts.map +1 -0
  705. package/dist/index.js +122 -0
  706. package/dist/index.js.map +1 -0
  707. package/dist/types/flags.d.ts +47 -0
  708. package/dist/types/flags.d.ts.map +1 -0
  709. package/dist/types/flags.js +4 -0
  710. package/dist/types/flags.js.map +1 -0
  711. package/dist/types/ide-install.d.ts +175 -0
  712. package/dist/types/ide-install.d.ts.map +1 -0
  713. package/dist/types/ide-install.js +29 -0
  714. package/dist/types/ide-install.js.map +1 -0
  715. package/dist/utils/copy-helpers.d.ts +60 -0
  716. package/dist/utils/copy-helpers.d.ts.map +1 -0
  717. package/dist/utils/copy-helpers.js +617 -0
  718. package/dist/utils/copy-helpers.js.map +1 -0
  719. package/dist/utils/index.d.ts +3 -0
  720. package/dist/utils/index.d.ts.map +1 -0
  721. package/dist/utils/index.js +5 -0
  722. package/dist/utils/index.js.map +1 -0
  723. package/dist/utils/validation.d.ts +29 -0
  724. package/dist/utils/validation.d.ts.map +1 -0
  725. package/dist/utils/validation.js +211 -0
  726. package/dist/utils/validation.js.map +1 -0
  727. package/package.json +64 -0
@@ -0,0 +1,179 @@
1
+ # =============================================================================
2
+ # C Core Patterns (Feb 2026)
3
+ # Version: C23/C2x
4
+ # =============================================================================
5
+
6
+ metadata:
7
+ skill: c
8
+ domain: core
9
+ version: "C23"
10
+ updated: "2026-02-05"
11
+ patterns_count: 4
12
+
13
+ patterns:
14
+ - id: c001
15
+ name: C23 typeof
16
+ category: types
17
+ version: "C23"
18
+ description: |
19
+ typeof operator for type inference (C23).
20
+ Like C++ auto but for C.
21
+ text: typeof typeof_unqual type inference c23
22
+ example: |
23
+ // ✅ C23 typeof - infer type from expression
24
+ int arr[10];
25
+ typeof(arr[0]) x = 5; // x is int
26
+
27
+ typeof(arr) ptr; // ptr is int[10]
28
+ typeof_unqual(arr) y; // y is int[10] (removes const/volatile)
29
+
30
+ // ✅ Use in macros for type-safe generics
31
+ #define max(a, b) ({ \
32
+ typeof(a) _a = (a); \
33
+ typeof(b) _b = (b); \
34
+ _a > _b ? _a : _b; \
35
+ })
36
+
37
+ // ✅ Create variables matching another
38
+ void process(int* data, size_t len) {
39
+ typeof(*data) sum = 0; // sum is int
40
+ for (size_t i = 0; i < len; i++) {
41
+ sum += data[i];
42
+ }
43
+ }
44
+
45
+ // ✅ Function pointer type inference
46
+ int add(int a, int b) { return a + b; }
47
+ typeof(add)* func_ptr = add; // Function pointer
48
+ severity: MEDIUM
49
+ docs_url: https://en.cppreference.com/w/c/language/typeof
50
+
51
+ - id: c002
52
+ name: C23 constexpr
53
+ category: constants
54
+ version: "C23"
55
+ description: |
56
+ Compile-time constants with constexpr.
57
+ Arrays with computed sizes.
58
+ text: constexpr compile-time constant static
59
+ example: |
60
+ // ✅ C23 constexpr - compile-time evaluation
61
+ constexpr int BUFFER_SIZE = 1024;
62
+ constexpr int DOUBLE_BUF = BUFFER_SIZE * 2;
63
+
64
+ // ✅ Use in array declarations
65
+ char buffer[BUFFER_SIZE]; // Works at compile time
66
+
67
+ // ✅ constexpr with expressions
68
+ constexpr int fib5 = 5; // Must be evaluable at compile time
69
+
70
+ // ✅ Difference from const
71
+ const int runtime_val = get_runtime_value(); // Runtime
72
+ constexpr int compile_val = 42; // Compile time
73
+
74
+ // ❌ Cannot use runtime values
75
+ // constexpr int bad = runtime_val; // Error!
76
+
77
+ // ✅ Type qualifiers preserved
78
+ constexpr const char* msg = "Hello";
79
+
80
+ // ✅ Static assertions with constexpr
81
+ static_assert(BUFFER_SIZE >= 512, "Buffer too small");
82
+ severity: MEDIUM
83
+ docs_url: https://en.cppreference.com/w/c/language/constexpr
84
+
85
+ - id: c003
86
+ name: C23 nullptr
87
+ category: pointers
88
+ version: "C23"
89
+ description: |
90
+ Type-safe null pointer constant.
91
+ Replaces NULL macro issues.
92
+ text: nullptr null pointer nullptr_t type-safe
93
+ example: |
94
+ #include <stddef.h> // For nullptr_t
95
+
96
+ // ✅ C23 nullptr - type-safe null
97
+ int* ptr = nullptr; // Clear intent
98
+
99
+ // ✅ Why nullptr is better than NULL
100
+ // NULL is typically defined as ((void*)0) or just 0
101
+ // This can cause issues with function overloading (in C++)
102
+ // and varargs
103
+
104
+ // ❌ Problem with NULL in varargs
105
+ void log_ptr(const char* fmt, ...) { /* ... */ }
106
+ // log_ptr("ptr: %p", NULL); // May pass as int 0!
107
+ log_ptr("ptr: %p", nullptr); // ✅ Correct: passes as pointer
108
+
109
+ // ✅ nullptr_t type
110
+ typedef typeof(nullptr) nullptr_t; // Or from <stddef.h>
111
+
112
+ void accepts_null(nullptr_t n) {
113
+ // Only accepts nullptr
114
+ }
115
+
116
+ // ✅ Comparison
117
+ if (ptr == nullptr) {
118
+ // Handle null case
119
+ }
120
+
121
+ // ✅ In structs
122
+ struct Node {
123
+ int value;
124
+ struct Node* next;
125
+ };
126
+
127
+ struct Node node = { .value = 42, .next = nullptr };
128
+ severity: MEDIUM
129
+ docs_url: https://en.cppreference.com/w/c/types/nullptr_t
130
+
131
+ - id: c004
132
+ name: C23 Embed Directive
133
+ category: preprocessor
134
+ version: "C23"
135
+ description: |
136
+ Embed binary files directly in source.
137
+ Replacement for xxd/bin2c.
138
+ text: embed binary include resource file
139
+ example: |
140
+ // ✅ C23 #embed - include binary files
141
+
142
+ // Embed an image as array
143
+ static const unsigned char icon[] = {
144
+ #embed "icon.png"
145
+ };
146
+ static const size_t icon_size = sizeof(icon);
147
+
148
+ // ✅ With limit parameter
149
+ static const unsigned char header[] = {
150
+ #embed "large_file.bin" limit(1024)
151
+ };
152
+
153
+ // ✅ With prefix/suffix
154
+ static const unsigned char data[] = {
155
+ #embed "data.bin" prefix(0xAA, 0xBB,) suffix(, 0xCC, 0xDD)
156
+ };
157
+
158
+ // ✅ Conditional embedding
159
+ #if __has_embed("config.bin")
160
+ static const unsigned char config[] = {
161
+ #embed "config.bin"
162
+ };
163
+ #else
164
+ static const unsigned char config[] = {0};
165
+ #endif
166
+
167
+ // ✅ Use embedded data
168
+ void process_icon(void) {
169
+ for (size_t i = 0; i < icon_size; i++) {
170
+ process_byte(icon[i]);
171
+ }
172
+ }
173
+
174
+ // Benefits over xxd:
175
+ // - No build step
176
+ // - Compile-time size known
177
+ // - Works with any build system
178
+ severity: HIGH
179
+ docs_url: https://en.cppreference.com/w/c/preprocessor/embed
@@ -0,0 +1,251 @@
1
+ # =============================================================================
2
+ # C Embedded Patterns (Feb 2026)
3
+ # Version: Embedded / MISRA
4
+ # =============================================================================
5
+
6
+ metadata:
7
+ skill: c
8
+ domain: embedded
9
+ version: "C23"
10
+ updated: "2026-02-05"
11
+ patterns_count: 4
12
+
13
+ patterns:
14
+ - id: c201
15
+ name: Volatile for Hardware
16
+ category: embedded
17
+ version: "C"
18
+ description: |
19
+ volatile keyword for memory-mapped I/O.
20
+ Prevent optimization of hardware accesses.
21
+ text: volatile hardware register mmio memory-mapped
22
+ example: |
23
+ #include <stdint.h>
24
+
25
+ // ✅ Memory-mapped I/O register
26
+ #define GPIO_BASE 0x40020000
27
+ #define GPIO_ODR (*(volatile uint32_t*)(GPIO_BASE + 0x14))
28
+ #define GPIO_IDR (*(volatile uint32_t*)(GPIO_BASE + 0x10))
29
+
30
+ // Set pin high
31
+ GPIO_ODR |= (1 << 5);
32
+
33
+ // Read pin state
34
+ uint32_t state = GPIO_IDR & (1 << 5);
35
+
36
+ // ✅ Why volatile is required:
37
+ void wait_for_ready(void) {
38
+ // Without volatile, compiler may optimize to infinite loop
39
+ // thinking STATUS never changes
40
+ volatile uint32_t* status = (volatile uint32_t*)0x40000000;
41
+ while ((*status & 0x01) == 0) {
42
+ // Wait for ready bit
43
+ }
44
+ }
45
+
46
+ // ✅ Struct for register groups
47
+ typedef struct {
48
+ volatile uint32_t CR; // Control
49
+ volatile uint32_t SR; // Status
50
+ volatile uint32_t DR; // Data
51
+ volatile uint32_t reserved[5];
52
+ } UART_TypeDef;
53
+
54
+ #define UART1 ((UART_TypeDef*)0x40011000)
55
+
56
+ void uart_send(uint8_t byte) {
57
+ while (!(UART1->SR & (1 << 7))); // Wait for TXE
58
+ UART1->DR = byte;
59
+ }
60
+
61
+ // ✅ volatile for ISR-modified variables
62
+ volatile int isr_flag = 0;
63
+
64
+ void interrupt_handler(void) {
65
+ isr_flag = 1;
66
+ }
67
+
68
+ void main_loop(void) {
69
+ while (!isr_flag); // Need volatile or may never exit
70
+ }
71
+ severity: HIGH
72
+ docs_url: https://en.cppreference.com/w/c/language/volatile
73
+
74
+ - id: c202
75
+ name: Bit Fields and Packing
76
+ category: embedded
77
+ version: "C"
78
+ description: |
79
+ Compact data with bit fields.
80
+ Memory-efficient structures.
81
+ text: bitfield packed struct bit manipulation
82
+ example: |
83
+ #include <stdint.h>
84
+
85
+ // ✅ Bit fields for flags
86
+ typedef struct {
87
+ uint8_t enabled : 1;
88
+ uint8_t mode : 3; // 0-7
89
+ uint8_t priority : 2; // 0-3
90
+ uint8_t reserved : 2;
91
+ } DeviceFlags;
92
+
93
+ // ✅ Packed struct for protocol
94
+ #pragma pack(push, 1)
95
+ typedef struct {
96
+ uint8_t header;
97
+ uint16_t length;
98
+ uint32_t sequence;
99
+ uint8_t payload[0]; // Flexible array
100
+ } Packet;
101
+ #pragma pack(pop)
102
+ _Static_assert(sizeof(Packet) == 7, "Packet must be 7 bytes");
103
+
104
+ // ✅ GCC/Clang attribute syntax
105
+ typedef struct __attribute__((packed)) {
106
+ uint8_t type;
107
+ uint32_t value;
108
+ } CompactData;
109
+
110
+ // ✅ Bit manipulation macros
111
+ #define BIT(n) (1UL << (n))
112
+ #define SET_BIT(x, n) ((x) |= BIT(n))
113
+ #define CLEAR_BIT(x, n) ((x) &= ~BIT(n))
114
+ #define TOGGLE_BIT(x, n) ((x) ^= BIT(n))
115
+ #define CHECK_BIT(x, n) (((x) >> (n)) & 1)
116
+
117
+ // ✅ Extract/insert fields
118
+ #define FIELD_GET(x, mask, shift) (((x) >> (shift)) & (mask))
119
+ #define FIELD_SET(x, val, mask, shift) \
120
+ (((x) & ~((mask) << (shift))) | (((val) & (mask)) << (shift)))
121
+
122
+ // Usage
123
+ uint32_t reg = 0;
124
+ reg = FIELD_SET(reg, 5, 0x0F, 4); // Set bits [7:4] to 5
125
+ int val = FIELD_GET(reg, 0x0F, 4); // Get bits [7:4]
126
+ severity: MEDIUM
127
+ docs_url: https://en.cppreference.com/w/c/language/bit_field
128
+
129
+ - id: c203
130
+ name: Interrupt Handling
131
+ category: embedded
132
+ version: "C"
133
+ description: |
134
+ ISR patterns for embedded systems.
135
+ Critical sections, atomics.
136
+ text: interrupt isr critical section atomic nested
137
+ example: |
138
+ #include <stdint.h>
139
+ #include <stdatomic.h>
140
+
141
+ // ✅ ISR function (ARM Cortex-M example)
142
+ void TIM2_IRQHandler(void) __attribute__((interrupt));
143
+ void TIM2_IRQHandler(void) {
144
+ // Keep ISRs short!
145
+ if (TIM2->SR & TIM_SR_UIF) {
146
+ TIM2->SR &= ~TIM_SR_UIF; // Clear flag
147
+ tick_count++;
148
+ }
149
+ }
150
+
151
+ // ✅ Critical section (disable interrupts)
152
+ static inline uint32_t enter_critical(void) {
153
+ uint32_t primask;
154
+ __asm volatile ("mrs %0, primask" : "=r" (primask));
155
+ __asm volatile ("cpsid i" ::: "memory");
156
+ return primask;
157
+ }
158
+
159
+ static inline void exit_critical(uint32_t primask) {
160
+ __asm volatile ("msr primask, %0" :: "r" (primask) : "memory");
161
+ }
162
+
163
+ // Usage
164
+ void safe_increment(int* counter) {
165
+ uint32_t state = enter_critical();
166
+ (*counter)++;
167
+ exit_critical(state);
168
+ }
169
+
170
+ // ✅ C11 Atomics (if available)
171
+ atomic_int shared_counter = 0;
172
+
173
+ void isr_with_atomic(void) {
174
+ atomic_fetch_add(&shared_counter, 1);
175
+ }
176
+
177
+ // ✅ Ring buffer for ISR communication
178
+ #define RING_SIZE 32
179
+ volatile uint8_t ring_buffer[RING_SIZE];
180
+ volatile uint8_t ring_head = 0;
181
+ volatile uint8_t ring_tail = 0;
182
+
183
+ void isr_push(uint8_t byte) {
184
+ uint8_t next = (ring_head + 1) % RING_SIZE;
185
+ if (next != ring_tail) {
186
+ ring_buffer[ring_head] = byte;
187
+ ring_head = next;
188
+ }
189
+ }
190
+ severity: HIGH
191
+ docs_url: https://developer.arm.com/documentation/
192
+
193
+ - id: c204
194
+ name: MISRA C Guidelines
195
+ category: safety
196
+ version: "MISRA"
197
+ description: |
198
+ Safety-critical coding guidelines.
199
+ Automotive, medical, aerospace.
200
+ text: misra safety-critical coding guidelines automotive
201
+ example: |
202
+ // ✅ MISRA C key rules summary
203
+
204
+ // Rule 1.3: No undefined behavior
205
+ // Always initialize variables
206
+ int x = 0; // ✅ Good
207
+ // int x; // ❌ Uninitialized
208
+
209
+ // Rule 10.1: Use explicit types
210
+ uint32_t counter = 0U; // ✅ Use unsigned suffix
211
+
212
+ // Rule 11.3: No pointer-to-pointer casts
213
+ // ❌ int* p = (int*)0x1234;
214
+ // ✅ Use stdint.h and explicit casts through uintptr_t
215
+ uintptr_t addr = 0x1234;
216
+ int* p = (int*)addr;
217
+
218
+ // Rule 12.3: Avoid side effects in conditions
219
+ // ❌ if (x++ > 0) { }
220
+ // ✅
221
+ if (x > 0) {
222
+ x++;
223
+ }
224
+
225
+ // Rule 14.3: Use braces for all control statements
226
+ if (condition) {
227
+ do_something();
228
+ } // ✅ Even single statements
229
+
230
+ // Rule 15.5: Single exit point per function
231
+ int function(int input) {
232
+ int result;
233
+ if (input > 0) {
234
+ result = input * 2;
235
+ } else {
236
+ result = 0;
237
+ }
238
+ return result; // ✅ Single return
239
+ }
240
+
241
+ // Rule 17.7: Return value must be used
242
+ // ❌ malloc(100);
243
+ void* ptr = malloc(100); // ✅ Assigned
244
+ (void)printf("test"); // ✅ Cast to void if intentionally ignored
245
+
246
+ // Rule 20.7: Macro parameters in parentheses
247
+ #define SQUARE(x) ((x) * (x)) // ✅ Parentheses around x
248
+
249
+ // Tools: PC-lint, Polyspace, Parasoft C/C++test, cppcheck --addon=misra
250
+ severity: HIGH
251
+ docs_url: https://misra.org.uk/
@@ -0,0 +1,253 @@
1
+ # =============================================================================
2
+ # C Memory Patterns (Feb 2026)
3
+ # Version: Modern C with Sanitizers
4
+ # =============================================================================
5
+
6
+ metadata:
7
+ skill: c
8
+ domain: memory
9
+ version: "C23"
10
+ updated: "2026-02-05"
11
+ patterns_count: 4
12
+
13
+ patterns:
14
+ - id: c101
15
+ name: Safe malloc Pattern
16
+ category: memory
17
+ version: "C"
18
+ description: |
19
+ Defensive malloc with NULL checking.
20
+ Avoid memory leaks and crashes.
21
+ text: malloc calloc realloc free memory allocation
22
+ example: |
23
+ #include <stdlib.h>
24
+ #include <string.h>
25
+
26
+ // ✅ Safe allocation pattern
27
+ void* safe_malloc(size_t size) {
28
+ if (size == 0) return NULL;
29
+
30
+ void* ptr = malloc(size);
31
+ if (!ptr) {
32
+ // Handle allocation failure
33
+ perror("malloc failed");
34
+ exit(EXIT_FAILURE); // Or return NULL for graceful handling
35
+ }
36
+ return ptr;
37
+ }
38
+
39
+ // ✅ calloc for zero-initialized memory
40
+ int* array = calloc(100, sizeof(int)); // All zeros
41
+
42
+ // ✅ Safe realloc pattern (avoid memory leak)
43
+ int* resize_array(int* arr, size_t new_count) {
44
+ int* new_arr = realloc(arr, new_count * sizeof(int));
45
+ if (!new_arr && new_count > 0) {
46
+ // Original arr is still valid if realloc fails!
47
+ return arr; // Keep original on failure
48
+ }
49
+ return new_arr;
50
+ }
51
+
52
+ // ✅ Cleanup pattern with goto
53
+ int process_data(void) {
54
+ int result = -1;
55
+ char* buf1 = malloc(1024);
56
+ char* buf2 = malloc(2048);
57
+
58
+ if (!buf1 || !buf2) goto cleanup;
59
+
60
+ // Do work...
61
+ result = 0;
62
+
63
+ cleanup:
64
+ free(buf2); // free(NULL) is safe
65
+ free(buf1);
66
+ return result;
67
+ }
68
+
69
+ // ✅ Set pointer to NULL after free
70
+ free(ptr);
71
+ ptr = NULL; // Avoid dangling pointer
72
+ severity: HIGH
73
+ docs_url: https://en.cppreference.com/w/c/memory/malloc
74
+
75
+ - id: c102
76
+ name: Address Sanitizer
77
+ category: debugging
78
+ version: "Modern"
79
+ description: |
80
+ Compile-time instrumentation for memory bugs.
81
+ Detect buffer overflows, use-after-free.
82
+ text: asan sanitizer buffer overflow use-after-free
83
+ example: |
84
+ // ✅ Compile with AddressSanitizer
85
+ // gcc -fsanitize=address -fno-omit-frame-pointer -g main.c
86
+ // clang -fsanitize=address -fno-omit-frame-pointer -g main.c
87
+
88
+ // ✅ Common bugs ASan detects:
89
+
90
+ // 1. Buffer overflow
91
+ void overflow_example(void) {
92
+ int arr[10];
93
+ arr[10] = 42; // ASan: stack-buffer-overflow
94
+ }
95
+
96
+ // 2. Heap buffer overflow
97
+ void heap_overflow(void) {
98
+ int* p = malloc(10 * sizeof(int));
99
+ p[10] = 42; // ASan: heap-buffer-overflow
100
+ free(p);
101
+ }
102
+
103
+ // 3. Use after free
104
+ void use_after_free(void) {
105
+ int* p = malloc(sizeof(int));
106
+ free(p);
107
+ *p = 42; // ASan: heap-use-after-free
108
+ }
109
+
110
+ // 4. Double free
111
+ void double_free(void) {
112
+ int* p = malloc(sizeof(int));
113
+ free(p);
114
+ free(p); // ASan: double-free
115
+ }
116
+
117
+ // 5. Memory leak (with -fsanitize=leak)
118
+ void leak(void) {
119
+ int* p = malloc(sizeof(int));
120
+ // No free - ASan: memory leak
121
+ }
122
+
123
+ // ✅ CMake configuration
124
+ // set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fsanitize=address")
125
+
126
+ // ✅ Runtime options
127
+ // ASAN_OPTIONS=detect_leaks=1:halt_on_error=0 ./program
128
+ severity: HIGH
129
+ docs_url: https://clang.llvm.org/docs/AddressSanitizer.html
130
+
131
+ - id: c103
132
+ name: Valgrind Patterns
133
+ category: debugging
134
+ version: "Modern"
135
+ description: |
136
+ Runtime memory analysis with Valgrind.
137
+ Detect leaks, uninitialized reads.
138
+ text: valgrind memcheck leak detection memory debugging
139
+ example: |
140
+ // ✅ Run with Valgrind
141
+ // valgrind --leak-check=full --show-leak-kinds=all ./program
142
+
143
+ // ✅ Valgrind client requests (optional debugging)
144
+ #include <valgrind/memcheck.h>
145
+
146
+ void custom_allocator(void) {
147
+ void* pool = malloc(1024);
148
+
149
+ // Tell Valgrind this memory is now "allocated" to user
150
+ VALGRIND_MALLOCLIKE_BLOCK(pool, 1024, 0, 0);
151
+
152
+ // Mark as uninitialized
153
+ VALGRIND_MAKE_MEM_UNDEFINED(pool, 1024);
154
+
155
+ // When freed
156
+ VALGRIND_FREELIKE_BLOCK(pool, 0);
157
+ free(pool);
158
+ }
159
+
160
+ // ✅ Suppress false positives
161
+ // Create a suppression file: valgrind --gen-suppressions=all
162
+
163
+ // ✅ Common Valgrind output interpretation:
164
+ // "definitely lost" - Memory you allocated but never freed
165
+ // "indirectly lost" - Lost because parent pointer was lost
166
+ // "possibly lost" - Pointer arithmetic hid the pointer
167
+ // "still reachable" - Not freed but still accessible at exit
168
+
169
+ // ✅ Uninitialized value detection
170
+ void uninit_example(void) {
171
+ int x;
172
+ if (x == 0) { // Valgrind: Conditional jump depends on uninit
173
+ printf("zero\n");
174
+ }
175
+ }
176
+
177
+ // ✅ Useful flags
178
+ // --track-origins=yes : Show where uninit values came from
179
+ // --num-callers=20 : More stack frames
180
+ // --suppressions=file : Ignore known issues
181
+ severity: MEDIUM
182
+ docs_url: https://valgrind.org/docs/manual/mc-manual.html
183
+
184
+ - id: c104
185
+ name: Arena Allocator
186
+ category: memory
187
+ version: "Modern"
188
+ description: |
189
+ Bulk allocation and deallocation pattern.
190
+ Fast allocations, single free.
191
+ text: arena allocator memory pool bump allocator
192
+ example: |
193
+ #include <stdlib.h>
194
+ #include <stdint.h>
195
+ #include <stdalign.h>
196
+
197
+ // ✅ Simple arena allocator
198
+ typedef struct {
199
+ uint8_t* base;
200
+ size_t size;
201
+ size_t offset;
202
+ } Arena;
203
+
204
+ Arena arena_create(size_t size) {
205
+ return (Arena){
206
+ .base = malloc(size),
207
+ .size = size,
208
+ .offset = 0
209
+ };
210
+ }
211
+
212
+ void* arena_alloc(Arena* a, size_t size, size_t align) {
213
+ // Align the offset
214
+ size_t aligned = (a->offset + align - 1) & ~(align - 1);
215
+
216
+ if (aligned + size > a->size) {
217
+ return NULL; // Out of memory
218
+ }
219
+
220
+ void* ptr = a->base + aligned;
221
+ a->offset = aligned + size;
222
+ return ptr;
223
+ }
224
+
225
+ void arena_reset(Arena* a) {
226
+ a->offset = 0; // "Free" all allocations instantly
227
+ }
228
+
229
+ void arena_destroy(Arena* a) {
230
+ free(a->base);
231
+ a->base = NULL;
232
+ a->size = 0;
233
+ a->offset = 0;
234
+ }
235
+
236
+ // ✅ Usage
237
+ void process_frame(void) {
238
+ Arena scratch = arena_create(1024 * 1024); // 1MB
239
+
240
+ // Allocate freely during frame
241
+ int* data = arena_alloc(&scratch, 1000 * sizeof(int), alignof(int));
242
+ char* str = arena_alloc(&scratch, 256, 1);
243
+
244
+ // Do work...
245
+
246
+ // Free everything at once
247
+ arena_reset(&scratch);
248
+
249
+ // Or destroy when done
250
+ arena_destroy(&scratch);
251
+ }
252
+ severity: MEDIUM
253
+ docs_url: https://en.wikipedia.org/wiki/Region-based_memory_management
@@ -0,0 +1,13 @@
1
+ name: clojure
2
+ version: "6.2.0"
3
+ category: functional
4
+ tier: 3
5
+
6
+ domains:
7
+ core: 5
8
+
9
+ desc: "Clojure development patterns for Clojure 1.11+. Lisp on JVM, functional, immutable data, REPL-driven."
10
+
11
+ related_skills:
12
+ - java
13
+ - haskell