@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,348 @@
1
+ ---
2
+ name: r
3
+ detect: ["*.R", "*.Rmd", "*.qmd", "DESCRIPTION", ".Rproj", "renv.lock"]
4
+ version: "6.1.2"
5
+ category: data
6
+ tier: 2
7
+ ---
8
+
9
+ # R Patterns — DOMYH Awesome Code
10
+
11
+ > **Version**: R 4.4+ (2025-2026)
12
+ > **Ecosystem**: Tidyverse, Shiny, ggplot2
13
+ > **Philosophy**: Data analysis first, reproducibility
14
+
15
+ ---
16
+
17
+ ## 🎯 When to Use This Skill
18
+
19
+ Use for: Statistical analysis, data visualization, ML modeling, Shiny apps.
20
+ **NOT for**: Web backends (→ go/python), mobile (→ flutter).
21
+
22
+ ---
23
+
24
+ ## 📦 Recommended Stack (2025-2026)
25
+
26
+ ### Core Tidyverse
27
+
28
+ | Package | Use Case | Install |
29
+ | ----------- | -------------------- | ----------------------------- |
30
+ | **dplyr** | Data manipulation 🏆 | `install.packages("dplyr")` |
31
+ | **ggplot2** | Visualization 🏆 | `install.packages("ggplot2")` |
32
+ | **tidyr** | Data tidying | `install.packages("tidyr")` |
33
+ | **purrr** | Functional prog | `install.packages("purrr")` |
34
+ | **readr** | Fast I/O | `install.packages("readr")` |
35
+
36
+ ### Specialized
37
+
38
+ | Package | Use Case | Install |
39
+ | -------------- | --------------- | -------------------------------- |
40
+ | **data.table** | Big data 🏆 | `install.packages("data.table")` |
41
+ | **Shiny** | Web apps | `install.packages("shiny")` |
42
+ | **tidymodels** | ML pipeline | `install.packages("tidymodels")` |
43
+ | **renv** | Reproducibility | `install.packages("renv")` |
44
+
45
+ ---
46
+
47
+ ## 🔄 Tidyverse Patterns
48
+
49
+ ### Data Manipulation with dplyr
50
+
51
+ ```r
52
+ library(tidyverse)
53
+
54
+ # ✅ Pipe-based workflow
55
+ result <- data |>
56
+ filter(age >= 18, status == "active") |>
57
+ mutate(
58
+ age_group = case_when(
59
+ age < 30 ~ "young",
60
+ age < 50 ~ "middle",
61
+ TRUE ~ "senior"
62
+ ),
63
+ full_name = paste(first_name, last_name)
64
+ ) |>
65
+ group_by(department) |>
66
+ summarise(
67
+ count = n(),
68
+ avg_salary = mean(salary, na.rm = TRUE),
69
+ .groups = "drop"
70
+ ) |>
71
+ arrange(desc(count))
72
+ ```
73
+
74
+ ### Joining Data
75
+
76
+ ```r
77
+ # ✅ Multiple join types
78
+ users_with_orders <- users |>
79
+ left_join(orders, by = "user_id") |>
80
+ left_join(products, by = "product_id")
81
+
82
+ # ✅ Anti-join: users without orders
83
+ users_no_orders <- users |>
84
+ anti_join(orders, by = "user_id")
85
+
86
+ # ✅ Semi-join: users with orders (no duplicates)
87
+ users_with_orders_unique <- users |>
88
+ semi_join(orders, by = "user_id")
89
+ ```
90
+
91
+ ### Window Functions
92
+
93
+ ```r
94
+ data |>
95
+ group_by(department) |>
96
+ mutate(
97
+ rank = row_number(desc(salary)),
98
+ pct_rank = percent_rank(salary),
99
+ cumsum_salary = cumsum(salary),
100
+ lag_salary = lag(salary, 1),
101
+ lead_salary = lead(salary, 1)
102
+ ) |>
103
+ filter(rank <= 3) # Top 3 per department
104
+ ```
105
+
106
+ ---
107
+
108
+ ## 📊 ggplot2 Visualization
109
+
110
+ ### Complete Theme
111
+
112
+ ```r
113
+ library(ggplot2)
114
+
115
+ theme_domyh <- function() {
116
+ theme_minimal() +
117
+ theme(
118
+ text = element_text(family = "Inter"),
119
+ plot.title = element_text(size = 16, face = "bold"),
120
+ plot.subtitle = element_text(size = 12, color = "gray50"),
121
+ axis.title = element_text(size = 11),
122
+ legend.position = "bottom",
123
+ panel.grid.minor = element_blank()
124
+ )
125
+ }
126
+
127
+ # Usage
128
+ ggplot(data, aes(x = date, y = value, color = category)) +
129
+ geom_line(linewidth = 1) +
130
+ geom_point(size = 2) +
131
+ scale_color_viridis_d() +
132
+ labs(
133
+ title = "Sales Trend",
134
+ subtitle = "Monthly revenue by category",
135
+ x = NULL, y = "Revenue ($M)"
136
+ ) +
137
+ theme_domyh()
138
+ ```
139
+
140
+ ### Faceted Plots
141
+
142
+ ```r
143
+ # ✅ Grid of plots
144
+ ggplot(data, aes(x = x, y = y)) +
145
+ geom_point(alpha = 0.6) +
146
+ geom_smooth(method = "loess") +
147
+ facet_wrap(~category, scales = "free_y", ncol = 3) +
148
+ theme_domyh()
149
+
150
+ # ✅ Two-variable facet
151
+ ggplot(data, aes(x = x, y = y)) +
152
+ geom_boxplot() +
153
+ facet_grid(rows = vars(year), cols = vars(region))
154
+ ```
155
+
156
+ ---
157
+
158
+ ## 🌐 Shiny Web Apps
159
+
160
+ ### Modern Shiny Structure
161
+
162
+ ```r
163
+ # app.R
164
+ library(shiny)
165
+ library(bslib)
166
+
167
+ ui <- page_navbar(
168
+ theme = bs_theme(
169
+ bootswatch = "flatly",
170
+ primary = "#0d6efd"
171
+ ),
172
+ title = "Dashboard",
173
+
174
+ nav_panel("Overview",
175
+ layout_sidebar(
176
+ sidebar = sidebar(
177
+ selectInput("department", "Department", choices = NULL),
178
+ dateRangeInput("dates", "Date Range")
179
+ ),
180
+ card(
181
+ card_header("Key Metrics"),
182
+ plotOutput("main_plot")
183
+ )
184
+ )
185
+ ),
186
+
187
+ nav_panel("Details",
188
+ DT::dataTableOutput("details_table")
189
+ )
190
+ )
191
+
192
+ server <- function(input, output, session) {
193
+ # Reactive data
194
+ filtered_data <- reactive({
195
+ data |>
196
+ filter(
197
+ department == input$department,
198
+ date >= input$dates[1],
199
+ date <= input$dates[2]
200
+ )
201
+ })
202
+
203
+ # Update choices on load
204
+ observe({
205
+ updateSelectInput(session, "department",
206
+ choices = unique(data$department))
207
+ })
208
+
209
+ # Outputs
210
+ output$main_plot <- renderPlot({
211
+ filtered_data() |>
212
+ ggplot(aes(x = date, y = value)) +
213
+ geom_line() +
214
+ theme_domyh()
215
+ })
216
+
217
+ output$details_table <- DT::renderDataTable({
218
+ filtered_data()
219
+ })
220
+ }
221
+
222
+ shinyApp(ui, server)
223
+ ```
224
+
225
+ ---
226
+
227
+ ## 🤖 tidymodels ML Pipeline
228
+
229
+ ```r
230
+ library(tidymodels)
231
+
232
+ # ✅ Complete ML workflow
233
+ set.seed(123)
234
+
235
+ # Split data
236
+ splits <- initial_split(data, prop = 0.8, strata = outcome)
237
+ train_data <- training(splits)
238
+ test_data <- testing(splits)
239
+
240
+ # Recipe (preprocessing)
241
+ recipe <- recipe(outcome ~ ., data = train_data) |>
242
+ step_normalize(all_numeric_predictors()) |>
243
+ step_dummy(all_nominal_predictors()) |>
244
+ step_zv(all_predictors())
245
+
246
+ # Model specification
247
+ rf_spec <- rand_forest(
248
+ mtry = tune(),
249
+ trees = 500,
250
+ min_n = tune()
251
+ ) |>
252
+ set_engine("ranger") |>
253
+ set_mode("classification")
254
+
255
+ # Workflow
256
+ rf_workflow <- workflow() |>
257
+ add_recipe(recipe) |>
258
+ add_model(rf_spec)
259
+
260
+ # Cross-validation
261
+ cv_folds <- vfold_cv(train_data, v = 5, strata = outcome)
262
+
263
+ # Tune hyperparameters
264
+ rf_tune <- rf_workflow |>
265
+ tune_grid(
266
+ resamples = cv_folds,
267
+ grid = 20,
268
+ metrics = metric_set(roc_auc, accuracy)
269
+ )
270
+
271
+ # Best model
272
+ best_params <- select_best(rf_tune, metric = "roc_auc")
273
+ final_workflow <- finalize_workflow(rf_workflow, best_params)
274
+
275
+ # Fit final model
276
+ final_fit <- fit(final_workflow, train_data)
277
+
278
+ # Evaluate on test
279
+ predictions <- predict(final_fit, test_data, type = "prob") |>
280
+ bind_cols(test_data)
281
+
282
+ roc_auc(predictions, truth = outcome, .pred_class_1)
283
+ ```
284
+
285
+ ---
286
+
287
+ ## 📦 Package Development
288
+
289
+ ```r
290
+ # Create package structure
291
+ usethis::create_package("mypackage")
292
+ usethis::use_mit_license()
293
+ usethis::use_testthat()
294
+ usethis::use_pipe()
295
+
296
+ # Add dependencies
297
+ usethis::use_package("dplyr")
298
+ usethis::use_package("ggplot2", type = "Suggests")
299
+
300
+ # Document with roxygen2
301
+ #' Calculate summary statistics
302
+ #'
303
+ #' @param data A data frame
304
+ #' @param group_var Grouping variable (unquoted)
305
+ #' @param value_var Value variable (unquoted)
306
+ #' @return A tibble with summary statistics
307
+ #' @export
308
+ #' @examples
309
+ #' summarize_data(mtcars, cyl, mpg)
310
+ summarize_data <- function(data, group_var, value_var) {
311
+ data |>
312
+ dplyr::group_by({{ group_var }}) |>
313
+ dplyr::summarise(
314
+ mean = mean({{ value_var }}, na.rm = TRUE),
315
+ sd = sd({{ value_var }}, na.rm = TRUE),
316
+ n = dplyr::n(),
317
+ .groups = "drop"
318
+ )
319
+ }
320
+ ```
321
+
322
+ ---
323
+
324
+ ## ✅ Production Checklist
325
+
326
+ ### Code Quality
327
+
328
+ - [ ] `lintr::lint_package()` passing
329
+ - [ ] `R CMD check` with no errors
330
+ - [ ] roxygen2 documentation complete
331
+ - [ ] Style follows tidyverse style guide
332
+
333
+ ### Reproducibility
334
+
335
+ - [ ] renv.lock committed
336
+ - [ ] Seeds set for random operations
337
+ - [ ] Quarto/RMarkdown for reports
338
+ - [ ] Docker for deployment
339
+
340
+ ### Testing
341
+
342
+ - [ ] testthat tests written
343
+ - [ ] Coverage > 70%
344
+ - [ ] Integration tests for Shiny
345
+
346
+ ---
347
+
348
+ _DOMYH Awesome Code • R 4.4+ Tidyverse_
@@ -0,0 +1,355 @@
1
+ # =============================================================================
2
+ # R Core Patterns (Feb 2026)
3
+ # Version: R 4.4
4
+ # =============================================================================
5
+
6
+ metadata:
7
+ skill: r
8
+ domain: core
9
+ version: "4.4"
10
+ updated: "2026-02-05"
11
+ patterns_count: 5
12
+
13
+ patterns:
14
+ - id: r001
15
+ name: Tidyverse Data Manipulation
16
+ category: data
17
+ version: "dplyr2.1"
18
+ description: |
19
+ Data wrangling with dplyr.
20
+ Pipelines, verbs, transformations.
21
+ text: dplyr pipe filter select mutate group summarize
22
+ example: |
23
+ library(tidyverse)
24
+
25
+ # ✅ Load and preview data
26
+ df <- read_csv("data/sales.csv")
27
+ glimpse(df)
28
+
29
+ # ✅ Basic verbs with pipe |>
30
+ result <- df |>
31
+ filter(year >= 2024, !is.na(amount)) |>
32
+ select(date, customer, product, amount) |>
33
+ mutate(
34
+ month = month(date, label = TRUE),
35
+ amount_usd = amount * exchange_rate
36
+ ) |>
37
+ arrange(desc(amount))
38
+
39
+ # ✅ Group and summarize
40
+ summary_stats <- df |>
41
+ group_by(category, region) |>
42
+ summarize(
43
+ total = sum(amount, na.rm = TRUE),
44
+ avg = mean(amount, na.rm = TRUE),
45
+ count = n(),
46
+ .groups = "drop"
47
+ )
48
+
49
+ # ✅ Window functions
50
+ ranked <- df |>
51
+ group_by(category) |>
52
+ mutate(
53
+ rank = row_number(desc(amount)),
54
+ pct_of_total = amount / sum(amount) * 100,
55
+ cumulative = cumsum(amount)
56
+ ) |>
57
+ filter(rank <= 10)
58
+
59
+ # ✅ Joins
60
+ customers <- read_csv("customers.csv")
61
+ orders <- read_csv("orders.csv")
62
+
63
+ combined <- orders |>
64
+ left_join(customers, by = "customer_id") |>
65
+ inner_join(products, by = "product_id")
66
+
67
+ # ✅ Pivot operations
68
+ wide_data <- df |>
69
+ pivot_wider(
70
+ names_from = product,
71
+ values_from = amount,
72
+ values_fill = 0
73
+ )
74
+
75
+ long_data <- wide_data |>
76
+ pivot_longer(
77
+ cols = -customer,
78
+ names_to = "product",
79
+ values_to = "amount"
80
+ )
81
+ severity: HIGH
82
+ docs_url: https://dplyr.tidyverse.org/
83
+
84
+ - id: r002
85
+ name: ggplot2 Visualization
86
+ category: visualization
87
+ version: "ggplot2"
88
+ description: |
89
+ Grammar of graphics.
90
+ Layers, aesthetics, themes.
91
+ text: ggplot geom aes theme facet scale
92
+ example: |
93
+ library(ggplot2)
94
+
95
+ # ✅ Basic scatter plot
96
+ ggplot(df, aes(x = income, y = spending, color = segment)) +
97
+ geom_point(alpha = 0.7, size = 3) +
98
+ geom_smooth(method = "lm", se = FALSE) +
99
+ labs(
100
+ title = "Income vs Spending by Segment",
101
+ x = "Annual Income ($)",
102
+ y = "Spending Score"
103
+ ) +
104
+ theme_minimal()
105
+
106
+ # ✅ Bar chart with groups
107
+ ggplot(summary_df, aes(x = reorder(category, -total), y = total, fill = region)) +
108
+ geom_col(position = "dodge") +
109
+ scale_y_continuous(labels = scales::comma) +
110
+ scale_fill_viridis_d() +
111
+ coord_flip() +
112
+ labs(title = "Sales by Category and Region")
113
+
114
+ # ✅ Time series
115
+ ggplot(ts_data, aes(x = date, y = value)) +
116
+ geom_line(color = "#2E86AB", linewidth = 1) +
117
+ geom_area(alpha = 0.2, fill = "#2E86AB") +
118
+ scale_x_date(date_breaks = "1 month", date_labels = "%b %Y") +
119
+ theme(axis.text.x = element_text(angle = 45, hjust = 1))
120
+
121
+ # ✅ Faceted plots
122
+ ggplot(df, aes(x = value)) +
123
+ geom_histogram(bins = 30, fill = "steelblue", alpha = 0.7) +
124
+ facet_wrap(~ category, scales = "free_y", ncol = 3) +
125
+ theme_bw()
126
+
127
+ # ✅ Combined plot types
128
+ ggplot(df, aes(x = factor(year), y = amount)) +
129
+ geom_violin(fill = "lightblue", alpha = 0.5) +
130
+ geom_boxplot(width = 0.2, outlier.shape = NA) +
131
+ stat_summary(fun = mean, geom = "point", shape = 18, size = 3, color = "red")
132
+
133
+ # ✅ Custom theme
134
+ theme_custom <- theme_minimal() +
135
+ theme(
136
+ plot.title = element_text(size = 16, face = "bold"),
137
+ axis.title = element_text(size = 12),
138
+ legend.position = "bottom",
139
+ panel.grid.minor = element_blank()
140
+ )
141
+
142
+ # ✅ Save plot
143
+ ggsave("output/plot.png", width = 10, height = 8, dpi = 300)
144
+ severity: HIGH
145
+ docs_url: https://ggplot2.tidyverse.org/
146
+
147
+ - id: r003
148
+ name: Functional Programming
149
+ category: language
150
+ version: "purrr"
151
+ description: |
152
+ Functional patterns with purrr.
153
+ Map, reduce, iterate.
154
+ text: map purrr reduce keep walk lambda
155
+ example: |
156
+ library(purrr)
157
+
158
+ # ✅ Map functions
159
+ numbers <- list(1, 2, 3, 4, 5)
160
+ squared <- map(numbers, ~ .x^2) # Returns list
161
+ squared_dbl <- map_dbl(numbers, ~ .x^2) # Returns vector
162
+
163
+ # ✅ Map variants
164
+ files <- list.files("data", pattern = "\\.csv$", full.names = TRUE)
165
+ dfs <- map(files, read_csv) # List of data frames
166
+
167
+ # map_dfr - bind rows
168
+ combined <- map_dfr(files, read_csv, .id = "source")
169
+
170
+ # map2 - two inputs
171
+ result <- map2(names, ages, ~ paste(.x, "is", .y, "years old"))
172
+
173
+ # pmap - multiple inputs
174
+ result <- pmap(list(a = 1:3, b = 4:6, c = 7:9), ~ ..1 + ..2 + ..3)
175
+
176
+ # ✅ Reduce and accumulate
177
+ total <- reduce(numbers, `+`) # Sum all
178
+ running <- accumulate(numbers, `+`) # Running sum
179
+
180
+ # Reduce with initial value
181
+ merged_df <- reduce(list_of_dfs, left_join, .init = base_df)
182
+
183
+ # ✅ Filtering
184
+ keep(numbers, ~ .x > 2) # Keep elements where predicate is TRUE
185
+ discard(numbers, ~ .x > 2) # Discard where TRUE
186
+ compact(list(1, NULL, 2, NULL, 3)) # Remove NULLs
187
+
188
+ # ✅ Possibly - handle errors gracefully
189
+ safe_log <- possibly(log, otherwise = NA_real_)
190
+ map_dbl(c(1, -1, 10), safe_log) # [0, NA, 2.303]
191
+
192
+ # ✅ Walk - side effects
193
+ walk(plots, ~ ggsave(paste0(.x$name, ".png"), .x$plot))
194
+
195
+ # ✅ Nested data
196
+ nested <- df |>
197
+ group_by(category) |>
198
+ nest()
199
+
200
+ models <- nested |>
201
+ mutate(model = map(data, ~ lm(y ~ x, data = .x)))
202
+ severity: MEDIUM
203
+ docs_url: https://purrr.tidyverse.org/
204
+
205
+ - id: r004
206
+ name: Statistical Modeling
207
+ category: statistics
208
+ version: "R4.4"
209
+ description: |
210
+ Regression and hypothesis testing.
211
+ tidymodels for ML.
212
+ text: lm glm regression anova tidymodels fit
213
+ example: |
214
+ # ✅ Linear regression
215
+ model <- lm(price ~ sqft + bedrooms + bathrooms, data = housing)
216
+ summary(model)
217
+
218
+ # Predictions
219
+ new_data <- tibble(sqft = 2000, bedrooms = 3, bathrooms = 2)
220
+ predict(model, newdata = new_data, interval = "confidence")
221
+
222
+ # ✅ Model diagnostics
223
+ par(mfrow = c(2, 2))
224
+ plot(model)
225
+
226
+ # ✅ ANOVA
227
+ anova_result <- aov(score ~ group, data = experiment)
228
+ summary(anova_result)
229
+ TukeyHSD(anova_result) # Post-hoc test
230
+
231
+ # ✅ Logistic regression
232
+ logit_model <- glm(
233
+ purchased ~ age + income + visits,
234
+ data = customers,
235
+ family = binomial
236
+ )
237
+
238
+ # Odds ratios
239
+ exp(coef(logit_model))
240
+
241
+ # ✅ tidymodels workflow
242
+ library(tidymodels)
243
+
244
+ # Split data
245
+ set.seed(42)
246
+ split <- initial_split(df, prop = 0.8)
247
+ train <- training(split)
248
+ test <- testing(split)
249
+
250
+ # Define recipe
251
+ recipe <- recipe(target ~ ., data = train) |>
252
+ step_normalize(all_numeric_predictors()) |>
253
+ step_dummy(all_nominal_predictors())
254
+
255
+ # Define model
256
+ model_spec <- rand_forest(trees = 500) |>
257
+ set_engine("ranger") |>
258
+ set_mode("classification")
259
+
260
+ # Create workflow
261
+ wf <- workflow() |>
262
+ add_recipe(recipe) |>
263
+ add_model(model_spec)
264
+
265
+ # Fit and evaluate
266
+ fitted <- fit(wf, train)
267
+ predictions <- predict(fitted, test)
268
+
269
+ metrics <- test |>
270
+ bind_cols(predictions) |>
271
+ metrics(truth = target, estimate = .pred_class)
272
+ severity: HIGH
273
+ docs_url: https://www.tidymodels.org/
274
+
275
+ - id: r005
276
+ name: Shiny Applications
277
+ category: web
278
+ version: "Shiny"
279
+ description: |
280
+ Interactive web apps.
281
+ Reactive programming.
282
+ text: shiny reactive render input output ui server
283
+ example: |
284
+ library(shiny)
285
+ library(bslib)
286
+
287
+ # ✅ UI definition
288
+ ui <- page_sidebar(
289
+ title = "Sales Dashboard",
290
+ sidebar = sidebar(
291
+ selectInput("category", "Category",
292
+ choices = c("All", "Electronics", "Clothing", "Food")),
293
+ dateRangeInput("dates", "Date Range",
294
+ start = Sys.Date() - 30, end = Sys.Date()),
295
+ sliderInput("min_amount", "Min Amount", 0, 1000, 100)
296
+ ),
297
+
298
+ # Main content
299
+ card(
300
+ card_header("Sales Overview"),
301
+ plotOutput("sales_plot")
302
+ ),
303
+ card(
304
+ card_header("Data Table"),
305
+ DTOutput("data_table")
306
+ )
307
+ )
308
+
309
+ # ✅ Server logic
310
+ server <- function(input, output, session) {
311
+
312
+ # Reactive data
313
+ filtered_data <- reactive({
314
+ data <- sales_df
315
+
316
+ if (input$category != "All") {
317
+ data <- filter(data, category == input$category)
318
+ }
319
+
320
+ data |>
321
+ filter(
322
+ date >= input$dates[1],
323
+ date <= input$dates[2],
324
+ amount >= input$min_amount
325
+ )
326
+ })
327
+
328
+ # Render plot
329
+ output$sales_plot <- renderPlot({
330
+ ggplot(filtered_data(), aes(x = date, y = amount, fill = product)) +
331
+ geom_col() +
332
+ scale_y_continuous(labels = scales::dollar) +
333
+ theme_minimal() +
334
+ labs(title = "Daily Sales")
335
+ })
336
+
337
+ # Render table
338
+ output$data_table <- renderDT({
339
+ datatable(filtered_data(),
340
+ options = list(pageLength = 10),
341
+ filter = "top")
342
+ })
343
+
344
+ # Reactive values for state
345
+ rv <- reactiveValues(selected_id = NULL)
346
+
347
+ observeEvent(input$data_table_rows_selected, {
348
+ rv$selected_id <- filtered_data()[input$data_table_rows_selected, ]$id
349
+ })
350
+ }
351
+
352
+ # ✅ Run app
353
+ shinyApp(ui, server)
354
+ severity: MEDIUM
355
+ docs_url: https://shiny.posit.co/