@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,936 @@
1
+ ---
2
+ name: cpp
3
+ detect: ["CMakeLists.txt", "*.cpp", "*.cxx", "*.cc", "*.hpp", "*.hxx", "*.h"]
4
+ version: "6.1.2"
5
+ category: language
6
+ tier: 1
7
+ ---
8
+
9
+ # C++ Development Patterns — DOMYH Awesome Code
10
+
11
+ > Modern C++ (C++20/23/26) patterns — NOT Pure C
12
+
13
+ ## � Language Detection
14
+
15
+ ```yaml
16
+ cpp_indicators: # C++ skill activates
17
+ - "#include <iostream>"
18
+ - "#include <vector>"
19
+ - "#include <string>"
20
+ - "#include <memory>"
21
+ - "std::"
22
+ - "class "
23
+ - "namespace "
24
+ - "template<"
25
+ - "auto "
26
+ - "new/delete operators"
27
+ - ".cpp, .cxx, .cc, .hpp files"
28
+
29
+ c_only_indicators: # Switch to C skill
30
+ - ".c files only"
31
+ - "#include <stdio.h>" (without C++ headers)
32
+ - "No std::, class, namespace, template"
33
+ - "malloc/free only"
34
+ ```
35
+
36
+ ---
37
+
38
+ ## 📊 C++ Standards Comparison
39
+
40
+ | Standard | Year | Key Features |
41
+ | --------- | ---- | -------------------------------------------------------------- |
42
+ | **C++17** | 2017 | structured bindings, std::optional, std::variant, if constexpr |
43
+ | **C++20** | 2020 | concepts, ranges, coroutines, modules, std::format, std::span |
44
+ | **C++23** | 2024 | std::expected, std::print, import std, enhanced ranges |
45
+ | **C++26** | 2026 | reflection, contracts, std::execution, constexpr containers |
46
+
47
+ ---
48
+
49
+ ## 🛠️ IDE & Toolchain Support (2025-2026)
50
+
51
+ ### Visual Studio 2026
52
+
53
+ ```yaml
54
+ msvc_version: v14.50 (19.50)
55
+ cmake: 4.1.1 (built-in)
56
+ features:
57
+ - C++23 full conformance
58
+ - C++26 partial support
59
+ - CMake Presets support
60
+ - vcpkg integrated
61
+ - GitHub Copilot integration
62
+ ```
63
+
64
+ ### CLion 2025.3+
65
+
66
+ ```yaml
67
+ toolchains:
68
+ - MSVC 14.50 (VS2026)
69
+ - GCC 14+
70
+ - Clang 18+
71
+ features:
72
+ - CMake Presets (v2-10)
73
+ - vcpkg integration
74
+ - Conan support
75
+ - Nova engine (improved parsing)
76
+ ```
77
+
78
+ ### VS Code
79
+
80
+ ```yaml
81
+ extensions:
82
+ - C/C++ (Microsoft)
83
+ - CMake Tools
84
+ - clangd (alternative language server)
85
+ features:
86
+ - CMakePresets.json support
87
+ - vcpkg/Conan integration
88
+ - Remote development
89
+ ```
90
+
91
+ ---
92
+
93
+ ## � Header Optimization (CRITICAL Best Practice)
94
+
95
+ > **GOAL**: Minimize includes in `.h` files → Faster compilation, less coupling
96
+
97
+ ### 1. Forward Declarations (Prefer over #include in headers)
98
+
99
+ ```cpp
100
+ // ❌ BAD: Heavy includes in header file
101
+ // user.h
102
+ #include <string> // Full include
103
+ #include <vector> // Full include
104
+ #include <memory> // Full include
105
+ #include "database.h" // Heavy include!
106
+ #include "logger.h" // Heavy include!
107
+
108
+ class User {
109
+ std::unique_ptr<Database> db_; // Requires full Database type
110
+ std::string name_;
111
+ std::vector<int> orders_;
112
+ };
113
+ ```
114
+
115
+ ```cpp
116
+ // ✅ GOOD: Forward declarations + minimal includes
117
+ // user.h
118
+ #include <string> // Required (used directly)
119
+ #include <memory> // Required for unique_ptr
120
+
121
+ class Database; // Forward declaration only!
122
+ class Logger; // Forward declaration only!
123
+
124
+ class User {
125
+ std::unique_ptr<Database> db_; // OK with incomplete type
126
+ std::string name_;
127
+ std::vector<int>* orders_; // Pointer = OK with forward decl
128
+ };
129
+ ```
130
+
131
+ ```cpp
132
+ // user.cpp - Include the full headers here
133
+ #include "user.h" // Own header FIRST
134
+ #include <vector> // Now we need full definition
135
+ #include "database.h" // Full include in implementation
136
+ #include "logger.h" // Full include in implementation
137
+ ```
138
+
139
+ ### 2. When Forward Declaration Works
140
+
141
+ | Scenario | Forward Decl OK? | Notes |
142
+ | ----------------------------- | ------------------- | ----------------------------- |
143
+ | Pointer to class (`T*`) | ✅ Yes | Size known (pointer size) |
144
+ | Reference to class (`T&`) | ✅ Yes | Size known |
145
+ | `std::unique_ptr<T>` | ⚠️ Partial | Need full type for destructor |
146
+ | `std::shared_ptr<T>` | ✅ Yes | Incomplete type allowed |
147
+ | Class member (`T member`) | ❌ No | Size required |
148
+ | Inheritance (`class A : B`) | ❌ No | Full type required |
149
+ | Template parameter | ⚠️ Depends | Often needs full type |
150
+ | Function parameter (`f(T x)`) | ⚠️ Declaration only | Implementation needs full |
151
+ | Function return (`T f()`) | ⚠️ Declaration only | Implementation needs full |
152
+
153
+ ### 3. PIMPL Idiom (Pointer to Implementation)
154
+
155
+ > **Purpose**: Hide implementation, reduce compilation dependencies, ABI stability
156
+
157
+ ```cpp
158
+ // widget.h - PUBLIC HEADER (minimal includes!)
159
+ #pragma once
160
+ #include <memory> // Only for unique_ptr
161
+
162
+ class Widget {
163
+ public:
164
+ Widget();
165
+ ~Widget(); // Must be declared (impl needs complete type)
166
+
167
+ // Move operations
168
+ Widget(Widget&& other) noexcept;
169
+ Widget& operator=(Widget&& other) noexcept;
170
+
171
+ // Deleted copy (or implement in .cpp)
172
+ Widget(const Widget&) = delete;
173
+ Widget& operator=(const Widget&) = delete;
174
+
175
+ void doSomething();
176
+ int getValue() const;
177
+
178
+ private:
179
+ struct Impl; // Forward declaration
180
+ std::unique_ptr<Impl> pimpl_; // Opaque pointer
181
+ };
182
+ ```
183
+
184
+ ```cpp
185
+ // widget.cpp - IMPLEMENTATION (heavy includes here)
186
+ #include "widget.h"
187
+ #include <string> // Heavy STL
188
+ #include <vector> // Heavy STL
189
+ #include <unordered_map> // Heavy STL
190
+ #include "database.h" // Heavy dependency
191
+ #include "network_client.h" // Heavy dependency
192
+ #include <windows.h> // Platform header - ONLY in .cpp!
193
+
194
+ struct Widget::Impl {
195
+ std::string name;
196
+ std::vector<int> data;
197
+ std::unordered_map<int, std::string> cache;
198
+ std::unique_ptr<Database> db;
199
+ NetworkClient client;
200
+ HANDLE winHandle; // Windows-specific - hidden from header
201
+
202
+ void internalHelper() { /* ... */ }
203
+ };
204
+
205
+ Widget::Widget() : pimpl_(std::make_unique<Impl>()) {}
206
+
207
+ Widget::~Widget() = default; // Must be in .cpp where Impl is complete
208
+
209
+ Widget::Widget(Widget&& other) noexcept = default;
210
+ Widget& Widget::operator=(Widget&& other) noexcept = default;
211
+
212
+ void Widget::doSomething() {
213
+ pimpl_->internalHelper();
214
+ }
215
+
216
+ int Widget::getValue() const {
217
+ return static_cast<int>(pimpl_->data.size());
218
+ }
219
+ ```
220
+
221
+ ### 4. Dangerous Headers (NEVER include in .h files)
222
+
223
+ | Header | Problem | Solution |
224
+ | ----------------------- | ------------------------------------ | ----------------------- |
225
+ | `<windows.h>` | 15k+ lines, macros pollute namespace | PIMPL or forward decl |
226
+ | `<winsock2.h>` | Heavy, conflicts | PIMPL only in .cpp |
227
+ | `<algorithm>` | 10k+ lines | Forward decl iterators |
228
+ | `<iostream>` | Heavy, static init | Forward declare streams |
229
+ | `<regex>` | Extremely heavy | PIMPL |
230
+ | `<thread>` | Platform headers | PIMPL |
231
+ | `<filesystem>` | Heavy | PIMPL |
232
+ | Project's large headers | Compilation cascade | Forward decl |
233
+
234
+ ### 5. Include-What-You-Use (IWYU)
235
+
236
+ ```bash
237
+ # Run IWYU on single file
238
+ include-what-you-use -Xiwyu --mapping_file=iwyu.imp myfile.cpp
239
+
240
+ # CMake integration
241
+ set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE include-what-you-use)
242
+
243
+ # IWYU pragmas
244
+ #include "heavy.h" // IWYU pragma: keep (prevent removal)
245
+ // IWYU pragma: no_include "deprecated.h" (prevent suggestion)
246
+ ```
247
+
248
+ ### 6. Precompiled Headers (PCH)
249
+
250
+ ```cmake
251
+ # CMakeLists.txt - Modern PCH (CMake 3.16+)
252
+ target_precompile_headers(myapp PRIVATE
253
+ # STL headers (stable, include once)
254
+ <vector>
255
+ <string>
256
+ <memory>
257
+ <algorithm>
258
+ <unordered_map>
259
+
260
+ # Third-party (stable)
261
+ <fmt/core.h>
262
+ <spdlog/spdlog.h>
263
+
264
+ # Project stable headers
265
+ "common/types.h"
266
+ "common/constants.h"
267
+ )
268
+ ```
269
+
270
+ ### 7. C++20 Modules (Future-Proof)
271
+
272
+ ```cpp
273
+ // math.cppm - Module interface
274
+ export module math;
275
+
276
+ export int add(int a, int b);
277
+ export int multiply(int a, int b);
278
+
279
+ // math.cpp - Module implementation
280
+ module math;
281
+
282
+ int add(int a, int b) { return a + b; }
283
+ int multiply(int a, int b) { return a * b; }
284
+
285
+ // main.cpp - Using module
286
+ import math; // Fast import, no re-parsing!
287
+ import std; // Import entire std library (C++23)
288
+
289
+ int main() {
290
+ return add(1, 2);
291
+ }
292
+ ```
293
+
294
+ ### 8. Header Include Order (Best Practice)
295
+
296
+ ```cpp
297
+ // myclass.cpp
298
+
299
+ // 1. OWN HEADER FIRST (validates self-containment)
300
+ #include "myclass.h"
301
+
302
+ // 2. C system headers
303
+ #include <cstdio>
304
+ #include <cstdlib>
305
+
306
+ // 3. C++ STL headers
307
+ #include <string>
308
+ #include <vector>
309
+ #include <algorithm>
310
+
311
+ // 4. Third-party library headers
312
+ #include <fmt/core.h>
313
+ #include <spdlog/spdlog.h>
314
+ #include <nlohmann/json.hpp>
315
+
316
+ // 5. Project headers (alphabetical)
317
+ #include "database/connection.h"
318
+ #include "utils/string_utils.h"
319
+ ```
320
+
321
+ ---
322
+
323
+ ## �📦 Build & Package Management
324
+
325
+ ### CMake (Modern)
326
+
327
+ ```cmake
328
+ cmake_minimum_required(VERSION 3.25)
329
+ project(MyApp VERSION 1.0.0 LANGUAGES CXX)
330
+
331
+ set(CMAKE_CXX_STANDARD 23)
332
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
333
+ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
334
+
335
+ # Find packages
336
+ find_package(fmt REQUIRED)
337
+ find_package(spdlog REQUIRED)
338
+
339
+ add_executable(myapp
340
+ src/main.cpp
341
+ src/utils.cpp
342
+ )
343
+
344
+ target_link_libraries(myapp PRIVATE
345
+ fmt::fmt
346
+ spdlog::spdlog
347
+ )
348
+
349
+ # Include directories
350
+ target_include_directories(myapp PRIVATE
351
+ ${CMAKE_SOURCE_DIR}/include
352
+ )
353
+ ```
354
+
355
+ ### CMakePresets.json
356
+
357
+ ```json
358
+ {
359
+ "version": 6,
360
+ "configurePresets": [
361
+ {
362
+ "name": "dev",
363
+ "displayName": "Development",
364
+ "generator": "Ninja",
365
+ "binaryDir": "${sourceDir}/build/${presetName}",
366
+ "cacheVariables": {
367
+ "CMAKE_BUILD_TYPE": "Debug",
368
+ "CMAKE_CXX_STANDARD": "23"
369
+ }
370
+ },
371
+ {
372
+ "name": "release",
373
+ "displayName": "Release",
374
+ "generator": "Ninja",
375
+ "binaryDir": "${sourceDir}/build/${presetName}",
376
+ "cacheVariables": {
377
+ "CMAKE_BUILD_TYPE": "Release"
378
+ }
379
+ }
380
+ ],
381
+ "buildPresets": [
382
+ { "name": "dev", "configurePreset": "dev" },
383
+ { "name": "release", "configurePreset": "release" }
384
+ ]
385
+ }
386
+ ```
387
+
388
+ ### vcpkg
389
+
390
+ ```bash
391
+ # Install packages
392
+ vcpkg install fmt spdlog nlohmann-json
393
+
394
+ # CMake integration
395
+ cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake
396
+ ```
397
+
398
+ ### Conan 2.0
399
+
400
+ ```ini
401
+ # conanfile.txt
402
+ [requires]
403
+ fmt/10.2.1
404
+ spdlog/1.13.0
405
+
406
+ [generators]
407
+ CMakeDeps
408
+ CMakeToolchain
409
+
410
+ [layout]
411
+ cmake_layout
412
+ ```
413
+
414
+ ---
415
+
416
+ ## 📚 STL Containers Reference
417
+
418
+ ### Sequence Containers
419
+
420
+ | Container | Access | Insert/Delete | Use Case |
421
+ | ---------------------- | ------ | ------------------ | ------------------- |
422
+ | `std::vector<T>` | O(1) | O(1) amortized end | Dynamic array |
423
+ | `std::deque<T>` | O(1) | O(1) both ends | Double-ended queue |
424
+ | `std::list<T>` | O(n) | O(1) anywhere | Frequent insertions |
425
+ | `std::array<T,N>` | O(1) | Fixed | Compile-time size |
426
+ | `std::forward_list<T>` | O(n) | O(1) | Singly linked |
427
+
428
+ ### Associative Containers
429
+
430
+ | Container | Access | Insert | Ordered | Use Case |
431
+ | ------------------------- | -------- | -------- | ------- | ---------------- |
432
+ | `std::map<K,V>` | O(log n) | O(log n) | Yes | Key-value sorted |
433
+ | `std::set<T>` | O(log n) | O(log n) | Yes | Unique sorted |
434
+ | `std::multimap<K,V>` | O(log n) | O(log n) | Yes | Multiple values |
435
+ | `std::unordered_map<K,V>` | O(1) avg | O(1) avg | No | Fast lookups |
436
+ | `std::unordered_set<T>` | O(1) avg | O(1) avg | No | Fast membership |
437
+
438
+ ### Container Usage
439
+
440
+ ```cpp
441
+ #include <vector>
442
+ #include <map>
443
+ #include <unordered_map>
444
+ #include <array>
445
+
446
+ // ✅ Vector with reserve
447
+ std::vector<int> nums;
448
+ nums.reserve(1000); // Pre-allocate
449
+ nums.push_back(42);
450
+ nums.emplace_back(100);
451
+
452
+ // ✅ Range-based for
453
+ for (const auto& num : nums) {
454
+ std::cout << num << '\n';
455
+ }
456
+
457
+ // ✅ Map with structured bindings
458
+ std::map<std::string, int> scores{{"Alice", 100}, {"Bob", 85}};
459
+ for (const auto& [name, score] : scores) {
460
+ std::cout << name << ": " << score << '\n';
461
+ }
462
+
463
+ // ✅ Unordered map for O(1) lookups
464
+ std::unordered_map<int, std::string> idToName;
465
+ idToName[1] = "John";
466
+ if (auto it = idToName.find(1); it != idToName.end()) {
467
+ std::cout << it->second << '\n';
468
+ }
469
+
470
+ // ✅ Fixed-size array
471
+ std::array<int, 5> arr{1, 2, 3, 4, 5};
472
+ ```
473
+
474
+ ---
475
+
476
+ ## 🔧 Modern C++ Features
477
+
478
+ ### C++20: Concepts
479
+
480
+ ```cpp
481
+ #include <concepts>
482
+
483
+ // Define concept
484
+ template<typename T>
485
+ concept Numeric = std::integral<T> || std::floating_point<T>;
486
+
487
+ // Use concept
488
+ template<Numeric T>
489
+ T add(T a, T b) {
490
+ return a + b;
491
+ }
492
+
493
+ // Requires clause
494
+ template<typename T>
495
+ requires std::copyable<T>
496
+ void process(T value) {
497
+ // ...
498
+ }
499
+ ```
500
+
501
+ ### C++20: Ranges
502
+
503
+ ```cpp
504
+ #include <ranges>
505
+ #include <vector>
506
+ #include <algorithm>
507
+
508
+ std::vector<int> nums{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
509
+
510
+ // ✅ Ranges with views (lazy evaluation)
511
+ auto result = nums
512
+ | std::views::filter([](int n) { return n % 2 == 0; })
513
+ | std::views::transform([](int n) { return n * 2; })
514
+ | std::views::take(3);
515
+
516
+ for (int n : result) {
517
+ std::cout << n << ' '; // 4 8 12
518
+ }
519
+
520
+ // ✅ Range algorithms
521
+ std::ranges::sort(nums);
522
+ auto found = std::ranges::find(nums, 5);
523
+ bool all_positive = std::ranges::all_of(nums, [](int n) { return n > 0; });
524
+ ```
525
+
526
+ ### C++20: std::format
527
+
528
+ ```cpp
529
+ #include <format>
530
+ #include <string>
531
+
532
+ std::string msg = std::format("User {}: {}", id, name);
533
+ std::string formatted = std::format("{:0>8}", 42); // "00000042"
534
+ std::string hex = std::format("{:#x}", 255); // "0xff"
535
+ ```
536
+
537
+ ### C++23: std::expected
538
+
539
+ ```cpp
540
+ #include <expected>
541
+ #include <string>
542
+
543
+ enum class Error { NotFound, Invalid };
544
+
545
+ std::expected<User, Error> findUser(int id) {
546
+ if (auto it = users.find(id); it != users.end()) {
547
+ return it->second;
548
+ }
549
+ return std::unexpected(Error::NotFound);
550
+ }
551
+
552
+ // Usage
553
+ auto result = findUser(42);
554
+ if (result) {
555
+ std::cout << result->name;
556
+ } else {
557
+ std::cerr << "Error: " << static_cast<int>(result.error());
558
+ }
559
+
560
+ // Or with transform
561
+ result.transform([](const User& u) { return u.name; })
562
+ .or_else([](Error e) { return "Unknown"; });
563
+ ```
564
+
565
+ ### C++23: std::print
566
+
567
+ ```cpp
568
+ #include <print>
569
+
570
+ // Type-safe printf replacement
571
+ std::print("Hello, {}!\n", name);
572
+ std::println("User {}: score = {}", id, score); // with newline
573
+
574
+ // Formatted output
575
+ std::print("{:>10} | {:>5}\n", "Name", "Score");
576
+ ```
577
+
578
+ ### C++23: Modules
579
+
580
+ ```cpp
581
+ // mymodule.cppm
582
+ export module mymodule;
583
+
584
+ export class Widget {
585
+ public:
586
+ void process();
587
+ };
588
+
589
+ export void helper();
590
+
591
+ // main.cpp
592
+ import mymodule; // Import custom module
593
+ import std; // Import entire standard library!
594
+
595
+ int main() {
596
+ Widget w;
597
+ w.process();
598
+ }
599
+ ```
600
+
601
+ ---
602
+
603
+ ## 🧠 Memory Management
604
+
605
+ ### Smart Pointers
606
+
607
+ ```cpp
608
+ #include <memory>
609
+
610
+ // ✅ unique_ptr (exclusive ownership)
611
+ auto widget = std::make_unique<Widget>(config);
612
+
613
+ // ✅ shared_ptr (shared ownership)
614
+ auto resource = std::make_shared<Resource>();
615
+ auto copy = resource; // Reference count = 2
616
+
617
+ // ✅ weak_ptr (non-owning reference)
618
+ std::weak_ptr<Resource> weak = resource;
619
+ if (auto locked = weak.lock()) {
620
+ // Use locked safely
621
+ }
622
+
623
+ // ✅ Custom deleter
624
+ auto file = std::unique_ptr<FILE, decltype(&fclose)>(
625
+ fopen("data.txt", "r"), fclose
626
+ );
627
+ ```
628
+
629
+ ### Move Semantics
630
+
631
+ ```cpp
632
+ class Buffer {
633
+ std::unique_ptr<uint8_t[]> data_;
634
+ size_t size_;
635
+
636
+ public:
637
+ // Move constructor
638
+ Buffer(Buffer&& other) noexcept
639
+ : data_(std::move(other.data_))
640
+ , size_(std::exchange(other.size_, 0)) {}
641
+
642
+ // Move assignment
643
+ Buffer& operator=(Buffer&& other) noexcept {
644
+ if (this != &other) {
645
+ data_ = std::move(other.data_);
646
+ size_ = std::exchange(other.size_, 0);
647
+ }
648
+ return *this;
649
+ }
650
+ };
651
+ ```
652
+
653
+ ---
654
+
655
+ ## 🔄 Concurrency
656
+
657
+ ### std::jthread (C++20)
658
+
659
+ ```cpp
660
+ #include <thread>
661
+ #include <stop_token>
662
+
663
+ std::jthread worker([](std::stop_token stoken) {
664
+ while (!stoken.stop_requested()) {
665
+ // Do work
666
+ }
667
+ });
668
+
669
+ // Automatic join on destruction
670
+ // Can request stop: worker.request_stop();
671
+ ```
672
+
673
+ ### std::atomic
674
+
675
+ ```cpp
676
+ #include <atomic>
677
+
678
+ std::atomic<int> counter{0};
679
+
680
+ void increment() {
681
+ counter.fetch_add(1, std::memory_order_relaxed);
682
+ }
683
+
684
+ int get() {
685
+ return counter.load(std::memory_order_acquire);
686
+ }
687
+ ```
688
+
689
+ ---
690
+
691
+ ## ⚠️ Platform-Specific Headers (CRITICAL)
692
+
693
+ ### Windows Headers Conflicts
694
+
695
+ > **CRITICAL**: Windows headers have many conflicts. Follow this order exactly!
696
+
697
+ #### 1. Include Order (winsock2.h BEFORE windows.h)
698
+
699
+ ```cpp
700
+ // ✅ CORRECT ORDER - winsock2.h MUST come before windows.h
701
+ #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff
702
+ #define NOMINMAX // Prevent min/max macros
703
+ #define STRICT // Enable strict type checking
704
+ #define UNICODE // Use Unicode APIs
705
+ #define _UNICODE
706
+
707
+ #include <winsock2.h> // 1st - Winsock 2.0
708
+ #include <ws2tcpip.h> // 2nd - TCP/IP extensions
709
+ #include <windows.h> // 3rd - Windows API
710
+
711
+ // ❌ WRONG - causes redefinition errors!
712
+ #include <windows.h> // includes winsock.h (1.1)
713
+ #include <winsock2.h> // conflicts with winsock.h!
714
+ ```
715
+
716
+ #### 2. Essential Macros (Define BEFORE any Windows includes)
717
+
718
+ ```cpp
719
+ // pch.h or stdafx.h - Put at TOP of precompiled header
720
+ #ifndef WIN32_LEAN_AND_MEAN
721
+ #define WIN32_LEAN_AND_MEAN // Exclude: Cryptography, DDE, RPC, Shell, Winsock 1.1
722
+ #endif
723
+
724
+ #ifndef NOMINMAX
725
+ #define NOMINMAX // Prevent Windows min/max macros
726
+ #endif // Allows std::min, std::max to work
727
+
728
+ #ifndef STRICT
729
+ #define STRICT // Strict type checking for handles
730
+ #endif
731
+
732
+ // Now safe to include Windows headers
733
+ #include <windows.h>
734
+ ```
735
+
736
+ #### 3. min/max Macro Conflicts
737
+
738
+ ```cpp
739
+ // ❌ Problem: Windows defines min/max as macros
740
+ #include <windows.h>
741
+ #include <algorithm>
742
+ int x = std::min(a, b); // ERROR: macro expansion!
743
+
744
+ // ✅ Solution 1: Use NOMINMAX (recommended)
745
+ #define NOMINMAX
746
+ #include <windows.h>
747
+ #include <algorithm>
748
+ int x = std::min(a, b); // Works!
749
+
750
+ // ✅ Solution 2: Parentheses workaround
751
+ int x = (std::min)(a, b); // Prevents macro expansion
752
+
753
+ // ✅ Solution 3: #undef after include
754
+ #include <windows.h>
755
+ #undef min
756
+ #undef max
757
+ #include <algorithm>
758
+ ```
759
+
760
+ #### 4. WIN32_LEAN_AND_MEAN Exclusions
761
+
762
+ ```cpp
763
+ // WIN32_LEAN_AND_MEAN excludes these - include manually if needed:
764
+ #define WIN32_LEAN_AND_MEAN
765
+ #include <windows.h>
766
+
767
+ // If you need these, include AFTER windows.h:
768
+ #include <shellapi.h> // Shell API
769
+ #include <mmsystem.h> // Multimedia
770
+ #include <wincrypt.h> // Cryptography
771
+ #include <commdlg.h> // Common dialogs
772
+ #include <dde.h> // DDE
773
+ ```
774
+
775
+ ### Windows Headers Quick Reference
776
+
777
+ | Header | Purpose | Notes |
778
+ | -------------- | -------------------- | ----------------------------- |
779
+ | `<windows.h>` | Core Windows API | Always use with LEAN_AND_MEAN |
780
+ | `<winsock2.h>` | Sockets (Winsock 2) | MUST include BEFORE windows.h |
781
+ | `<ws2tcpip.h>` | TCP/IP, getaddrinfo | Include after winsock2.h |
782
+ | `<windowsx.h>` | Message crackers | Helper macros |
783
+ | `<commctrl.h>` | Common controls | ListView, TreeView, etc. |
784
+ | `<shlobj.h>` | Shell interface | Folder browser, etc. |
785
+ | `<shobjidl.h>` | Shell COM interfaces | Modern file dialogs |
786
+ | `<tchar.h>` | TCHAR portability | Legacy, prefer wchar_t |
787
+
788
+ ---
789
+
790
+ ### Linux/POSIX Headers
791
+
792
+ #### 1. Define \_REENTRANT for Thread-Safe Functions
793
+
794
+ ```cpp
795
+ // ✅ Define BEFORE any system headers
796
+ #define _REENTRANT // Thread-safe libc functions
797
+ #define _POSIX_C_SOURCE 200809L // POSIX.1-2008
798
+
799
+ #include <pthread.h>
800
+ #include <unistd.h>
801
+ #include <signal.h>
802
+ ```
803
+
804
+ #### 2. Signal Handling with Threads (Critical)
805
+
806
+ ```cpp
807
+ #include <pthread.h>
808
+ #include <signal.h>
809
+
810
+ // ✅ Block signals in worker threads, handle in dedicated thread
811
+ int main() {
812
+ sigset_t set;
813
+ sigemptyset(&set);
814
+ sigaddset(&set, SIGINT);
815
+ sigaddset(&set, SIGTERM);
816
+
817
+ // Block signals in main thread (inherited by child threads)
818
+ pthread_sigmask(SIG_BLOCK, &set, NULL);
819
+
820
+ // Create worker threads (they inherit blocked signals)
821
+ pthread_t worker;
822
+ pthread_create(&worker, NULL, worker_func, NULL);
823
+
824
+ // Handle signals in main thread with sigwait
825
+ int sig;
826
+ while (sigwait(&set, &sig) == 0) {
827
+ if (sig == SIGINT || sig == SIGTERM) {
828
+ // Clean shutdown
829
+ break;
830
+ }
831
+ }
832
+
833
+ pthread_join(worker, NULL);
834
+ return 0;
835
+ }
836
+
837
+ // ❌ AVOID: Signal handlers with threads (race conditions!)
838
+ // Use sigwait() or signalfd() instead
839
+ ```
840
+
841
+ #### 3. Common POSIX Headers
842
+
843
+ | Header | Purpose | Key Functions |
844
+ | ---------------- | ---------------- | ----------------------------------- |
845
+ | `<unistd.h>` | POSIX API | read, write, close, fork, exec |
846
+ | `<pthread.h>` | Threads | pthread*create, pthread_mutex*\* |
847
+ | `<signal.h>` | Signals | sigaction, sigwait, pthread_sigmask |
848
+ | `<fcntl.h>` | File control | open, fcntl, O\_\* flags |
849
+ | `<sys/types.h>` | Type definitions | pid_t, size_t, ssize_t |
850
+ | `<sys/socket.h>` | Sockets | socket, bind, listen, accept |
851
+ | `<netinet/in.h>` | Internet addr | sockaddr_in, htons, ntohs |
852
+ | `<arpa/inet.h>` | IP conversion | inet_pton, inet_ntop |
853
+ | `<sys/stat.h>` | File status | stat, fstat, mkdir |
854
+ | `<sys/mman.h>` | Memory mapping | mmap, munmap, mprotect |
855
+ | `<dlfcn.h>` | Dynamic loading | dlopen, dlsym, dlclose |
856
+
857
+ ---
858
+
859
+ ### Cross-Platform Patterns
860
+
861
+ ```cpp
862
+ // Platform detection
863
+ #if defined(_WIN32) || defined(_WIN64)
864
+ #define PLATFORM_WINDOWS
865
+ #elif defined(__linux__)
866
+ #define PLATFORM_LINUX
867
+ #elif defined(__APPLE__)
868
+ #define PLATFORM_MACOS
869
+ #endif
870
+
871
+ // Platform-specific includes
872
+ #ifdef PLATFORM_WINDOWS
873
+ #define WIN32_LEAN_AND_MEAN
874
+ #define NOMINMAX
875
+ #include <windows.h>
876
+ #include <winsock2.h>
877
+ #else
878
+ #include <unistd.h>
879
+ #include <sys/socket.h>
880
+ #include <netinet/in.h>
881
+ #include <pthread.h>
882
+ #endif
883
+
884
+ // Sleep abstraction
885
+ inline void sleep_ms(int ms) {
886
+ #ifdef PLATFORM_WINDOWS
887
+ Sleep(ms);
888
+ #else
889
+ usleep(ms * 1000);
890
+ #endif
891
+ }
892
+ ```
893
+
894
+ ---
895
+
896
+ ## 📚 Essential Libraries
897
+
898
+ | Category | Library | Description |
899
+ | ----------------- | --------------------- | ----------------------------------------- |
900
+ | **Formatting** | fmt | Fast formatting (std::format predecessor) |
901
+ | **Logging** | spdlog | Fast async logging |
902
+ | **JSON** | nlohmann/json | Easy JSON manipulation |
903
+ | **JSON (fast)** | Glaze, simdjson | High-performance JSON |
904
+ | **HTTP** | cpr, cpp-httplib | HTTP client |
905
+ | **Testing** | GoogleTest, Catch2 | Unit testing |
906
+ | **CLI** | CLI11 | Command line parsing |
907
+ | **Serialization** | Protobuf, Flatbuffers | Binary serialization |
908
+
909
+ ---
910
+
911
+ ## ✅ Production Checklist
912
+
913
+ ### Code Quality
914
+
915
+ - [ ] C++20 minimum, C++23 preferred
916
+ - [ ] Smart pointers, no raw new/delete
917
+ - [ ] Move semantics for expensive types
918
+ - [ ] const correctness applied
919
+ - [ ] RAII for all resources
920
+
921
+ ### Build
922
+
923
+ - [ ] CMake 3.25+ with presets
924
+ - [ ] vcpkg or Conan for dependencies
925
+ - [ ] Compiler warnings as errors
926
+ - [ ] Static analysis (clang-tidy)
927
+
928
+ ### Testing
929
+
930
+ - [ ] GoogleTest or Catch2
931
+ - [ ] Code coverage ≥80%
932
+ - [ ] Sanitizers enabled (ASan, UBSan)
933
+
934
+ ---
935
+
936
+ _DOMYH Awesome Code • C++ Development (C++20/23/26) • 2025-2026_