@nockdev/awf 6.2.0 → 6.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (709) hide show
  1. package/.agent/build.yaml +3 -3
  2. package/.agent/config.yaml +21 -146
  3. package/.agent/core/AGENT_BEHAVIOR.md +86 -0
  4. package/.agent/core/AUDIT_POLICY.md +1 -1
  5. package/.agent/core/CACHE.md +1 -1
  6. package/.agent/core/COMMANDS.md +16 -7
  7. package/.agent/core/CUSTOMIZE.md +61 -3
  8. package/.agent/core/DATA_SAFETY.md +1 -1
  9. package/.agent/core/MEMORY_PATHS.yaml +2 -2
  10. package/.agent/core/PERMISSIONS.md +1 -1
  11. package/.agent/core/README.md +1 -1
  12. package/.agent/core/VERSION.yaml +18 -8
  13. package/.agent/core/{ACTIVE_MEMORY.yaml → archive/ACTIVE_MEMORY.yaml} +2 -2
  14. package/.agent/core/{CHECKPOINT.yaml → archive/CHECKPOINT.yaml} +2 -2
  15. package/.agent/core/{CLEANUP_ENGINE.yaml → archive/CLEANUP_ENGINE.yaml} +2 -2
  16. package/.agent/core/{CONTEXT_INJECTOR.yaml → archive/CONTEXT_INJECTOR.yaml} +2 -2
  17. package/.agent/core/{CONTEXT_LOADER.yaml → archive/CONTEXT_LOADER.yaml} +1 -1
  18. package/.agent/core/{CONTEXT_OPTIMIZATION.yaml → archive/CONTEXT_OPTIMIZATION.yaml} +1 -1
  19. package/.agent/core/{CONTEXT_PRIORITY.yaml → archive/CONTEXT_PRIORITY.yaml} +2 -2
  20. package/.agent/core/{FLOW_ENGINE.yaml → archive/FLOW_ENGINE.yaml} +1 -1
  21. package/.agent/core/{GRAPH_MEMORY.yaml → archive/GRAPH_MEMORY.yaml} +1 -1
  22. package/.agent/core/{HYBRID_ROUTER.yaml → archive/HYBRID_ROUTER.yaml} +1 -1
  23. package/.agent/core/{INTENT_DETECTION.yaml → archive/INTENT_DETECTION.yaml} +1 -1
  24. package/.agent/core/{MEMORY_CONSOLIDATION.yaml → archive/MEMORY_CONSOLIDATION.yaml} +3 -3
  25. package/.agent/core/{MEMORY_ENGINE.yaml → archive/MEMORY_ENGINE.yaml} +2 -2
  26. package/.agent/core/{MEMORY_UTILS.yaml → archive/MEMORY_UTILS.yaml} +1 -1
  27. package/.agent/core/{REFLECTION_ENGINE.yaml → archive/REFLECTION_ENGINE.yaml} +1 -1
  28. package/.agent/core/{ROUTER.yaml → archive/ROUTER.yaml} +5 -5
  29. package/.agent/core/{SCORING_FORMULA.yaml → archive/SCORING_FORMULA.yaml} +2 -2
  30. package/.agent/core/{SEMANTIC_ENGINE.yaml → archive/SEMANTIC_ENGINE.yaml} +1 -1
  31. package/.agent/core/{SKILLS_FLOW.yaml → archive/SKILLS_FLOW.yaml} +2 -2
  32. package/.agent/core/{STATE_MACHINE.yaml → archive/STATE_MACHINE.yaml} +1 -1
  33. package/.agent/core/{SUMMARIZATION_ENGINE.yaml → archive/SUMMARIZATION_ENGINE.yaml} +2 -2
  34. package/.agent/core/{TOKEN_BUDGETS.yaml → archive/TOKEN_BUDGETS.yaml} +2 -2
  35. package/.agent/core/{TOKEN_LOADING.yaml → archive/TOKEN_LOADING.yaml} +2 -2
  36. package/.agent/core/{TOKEN_SUMMARY.yaml → archive/TOKEN_SUMMARY.yaml} +2 -2
  37. package/.agent/core/{CODING_STYLES.yaml → reference/CODING_STYLES.yaml} +1 -1
  38. package/.agent/core/{LIBRARY_REGISTRY.yaml → reference/LIBRARY_REGISTRY.yaml} +1 -1
  39. package/.agent/core/{MCP_TOOLS.yaml → reference/MCP_TOOLS.yaml} +2 -2
  40. package/.agent/core/{PATTERNS.yaml → reference/PATTERNS.yaml} +1 -1
  41. package/.agent/core/{SKILL_SCHEMA.yaml → reference/SKILL_SCHEMA.yaml} +2 -2
  42. package/.agent/i18n/en.yaml +6 -6
  43. package/.agent/i18n/vi.yaml +6 -6
  44. package/.agent/ide/README.md +1 -1
  45. package/.agent/ide/amazonq.json +3 -3
  46. package/.agent/ide/amp.json +4 -3
  47. package/.agent/ide/antigravity.json +4 -3
  48. package/.agent/ide/augment.json +4 -4
  49. package/.agent/ide/claude.json +4 -3
  50. package/.agent/ide/cline.json +4 -3
  51. package/.agent/ide/codex.json +6 -1
  52. package/.agent/ide/cody.json +4 -3
  53. package/.agent/ide/continue.json +4 -3
  54. package/.agent/ide/cursor.json +4 -3
  55. package/.agent/ide/gemini.json +4 -3
  56. package/.agent/ide/jetbrains.json +4 -3
  57. package/.agent/ide/kiro.json +4 -3
  58. package/.agent/ide/opencode.json +4 -3
  59. package/.agent/ide/roo.json +4 -3
  60. package/.agent/ide/tabnine.json +4 -3
  61. package/.agent/ide/trae.json +4 -3
  62. package/.agent/ide/vscode.json +4 -3
  63. package/.agent/ide/windsurf.json +4 -3
  64. package/.agent/ide/zed.json +4 -3
  65. package/.agent/manifest.yaml +142 -34
  66. package/.agent/memory/core_memory/persona.json +2 -2
  67. package/.agent/memory/core_memory/project.json +1 -1
  68. package/.agent/memory/core_memory/rules.json +1 -1
  69. package/.agent/memory/core_memory/user.json +1 -1
  70. package/.agent/memory/graph/knowledge_graph.json +1 -1
  71. package/.agent/memory/patterns/errors.json +1 -1
  72. package/.agent/memory/patterns/successes.json +1 -1
  73. package/.agent/memory/state.json +3 -3
  74. package/.agent/personas/README.md +1 -1
  75. package/.agent/personas/architect.md +1 -1
  76. package/.agent/personas/auditor.md +1 -1
  77. package/.agent/personas/debugger.md +1 -1
  78. package/.agent/personas/developer.md +1 -1
  79. package/.agent/personas/devops.md +1 -1
  80. package/.agent/personas/documenter.md +1 -1
  81. package/.agent/personas/orchestrator.md +1 -1
  82. package/.agent/personas/persona.schema.yaml +1 -1
  83. package/.agent/personas/planner.md +1 -1
  84. package/.agent/personas/researcher.md +1 -1
  85. package/.agent/personas/security.md +1 -1
  86. package/.agent/personas/tester.md +1 -1
  87. package/.agent/private/README.md +74 -0
  88. package/.agent/private/_index.yaml +23 -0
  89. package/.agent/private/_template/META.yaml +38 -0
  90. package/.agent/private/_template/SKILL.md +43 -0
  91. package/.agent/private/_template/data/.gitkeep +0 -0
  92. package/.agent/private/autodomyh-api/META.yaml +48 -0
  93. package/.agent/private/autodomyh-api/SKILL.md +141 -0
  94. package/.agent/private/autodomyh-api/data/conventions.yaml +107 -0
  95. package/.agent/rules/README.md +24 -18
  96. package/.agent/rules/SACRED_RULES.xml +42 -36
  97. package/.agent/rules/{constitutional → archive/constitutional}/tier-0-core.yaml +5 -5
  98. package/.agent/rules/{constitutional → archive/constitutional}/tier-1-safety.yaml +5 -5
  99. package/.agent/rules/{constitutional → archive/constitutional}/tier-2-execution.yaml +6 -6
  100. package/.agent/rules/{modules → archive}/context-management.yaml +1 -1
  101. package/.agent/rules/{duplication-prevention.md → archive/duplication-prevention.md} +1 -1
  102. package/.agent/rules/{modules → archive}/evidence.yaml +1 -1
  103. package/.agent/rules/{project-detection.md → archive/project-detection.md} +1 -1
  104. package/.agent/rules/{modules → archive}/reflection.yaml +1 -1
  105. package/.agent/rules/{modules → archive}/versioning.yaml +3 -3
  106. package/.agent/rules/data/build-systems.yaml +2 -2
  107. package/.agent/rules/modules/agent-delegation.yaml +136 -0
  108. package/.agent/rules/modules/edit-verification.yaml +1 -1
  109. package/.agent/rules/modules/git-workflow.yaml +1 -1
  110. package/.agent/rules/modules/language.yaml +1 -1
  111. package/.agent/rules/modules/online-research.yaml +1 -1
  112. package/.agent/rules/modules/performance-optimization.yaml +141 -0
  113. package/.agent/rules/modules/quality.yaml +1 -1
  114. package/.agent/rules/modules/stop-conditions.yaml +1 -1
  115. package/.agent/rules/modules/terminal-safety.yaml +1 -1
  116. package/.agent/rules/modules/yagni.yaml +1 -1
  117. package/.agent/rules/validation-framework.md +1 -1
  118. package/.agent/skills/DEVELOPMENT.yaml +5 -5
  119. package/.agent/skills/README.md +19 -16
  120. package/.agent/skills/_categories.yaml +60 -8
  121. package/.agent/skills/_router.yaml +61 -19
  122. package/.agent/skills/ai-ml/ai-agents/META.yaml +127 -0
  123. package/.agent/skills/ai-ml/ai-agents/SKILL.md +139 -0
  124. package/.agent/skills/ai-ml/ai-agents/data/agent-rules.yaml +120 -0
  125. package/.agent/skills/ai-ml/ai-agents/data/llm-integration.yaml +129 -0
  126. package/.agent/skills/ai-ml/ai-agents/data/memory-patterns.yaml +123 -0
  127. package/.agent/skills/ai-ml/ai-agents/data/orchestration-patterns.yaml +101 -0
  128. package/.agent/skills/ai-ml/gemini-live/META.yaml +55 -0
  129. package/.agent/skills/ai-ml/gemini-live/SKILL.md +155 -0
  130. package/.agent/skills/ai-ml/gemini-live/data/code-execution.yaml +131 -0
  131. package/.agent/skills/ai-ml/gemini-live/data/context-caching.yaml +96 -0
  132. package/.agent/skills/ai-ml/gemini-live/data/grounding.yaml +97 -0
  133. package/.agent/skills/ai-ml/gemini-live/data/live-api.yaml +103 -0
  134. package/.agent/skills/ai-ml/gemini-media-gen/META.yaml +56 -0
  135. package/.agent/skills/ai-ml/gemini-media-gen/SKILL.md +128 -0
  136. package/.agent/skills/ai-ml/gemini-media-gen/data/files-api.yaml +96 -0
  137. package/.agent/skills/ai-ml/gemini-media-gen/data/image-models.yaml +112 -0
  138. package/.agent/skills/ai-ml/gemini-media-gen/data/image-prompts.yaml +131 -0
  139. package/.agent/skills/ai-ml/gemini-media-gen/data/video-generation.yaml +131 -0
  140. package/.agent/skills/ai-ml/gemini-tts/META.yaml +49 -0
  141. package/.agent/skills/ai-ml/gemini-tts/SKILL.md +124 -0
  142. package/.agent/skills/ai-ml/gemini-tts/data/markup-tags.yaml +95 -0
  143. package/.agent/skills/ai-ml/gemini-tts/data/models.yaml +124 -0
  144. package/.agent/skills/ai-ml/gemini-tts/data/prompting-patterns.yaml +81 -0
  145. package/.agent/skills/ai-ml/prompt-engineering/META.yaml +77 -0
  146. package/.agent/skills/ai-ml/prompt-engineering/SKILL.md +217 -0
  147. package/.agent/skills/ai-ml/prompt-engineering/data/gemini3-patterns.yaml +170 -0
  148. package/.agent/skills/ai-ml/prompt-engineering/data/output-patterns.yaml +73 -0
  149. package/.agent/skills/ai-ml/prompt-engineering/data/provider-patterns.yaml +82 -0
  150. package/.agent/skills/ai-ml/prompt-engineering/data/reasoning-patterns.yaml +86 -0
  151. package/.agent/skills/ai-ml/prompt-engineering/data/safety-patterns.yaml +71 -0
  152. package/.agent/skills/ai-ml/prompt-engineering/data/tool-patterns.yaml +173 -0
  153. package/.agent/skills/ai-ml/rag-patterns/META.yaml +57 -0
  154. package/.agent/skills/ai-ml/rag-patterns/SKILL.md +92 -0
  155. package/.agent/skills/ai-ml/rag-patterns/data/chunking-strategies.yaml +71 -0
  156. package/.agent/skills/ai-ml/rag-patterns/data/embedding-models.yaml +76 -0
  157. package/.agent/skills/ai-ml/rag-patterns/data/evaluation.yaml +92 -0
  158. package/.agent/skills/ai-ml/rag-patterns/data/retrieval-patterns.yaml +101 -0
  159. package/.agent/skills/ai-ml/rag-patterns/data/vector-databases.yaml +103 -0
  160. package/.agent/skills/ai-ml/vector-search/META.yaml +63 -0
  161. package/.agent/skills/ai-ml/vector-search/SKILL.md +110 -0
  162. package/.agent/skills/ai-ml/vector-search/data/embedding-models.yaml +117 -0
  163. package/.agent/skills/ai-ml/vector-search/data/search-patterns.yaml +118 -0
  164. package/.agent/skills/ai-ml/vector-search/data/vector-dbs.yaml +155 -0
  165. package/.agent/skills/core/api-design/META.yaml +1 -5
  166. package/.agent/skills/core/api-design/SKILL.md +20 -26
  167. package/.agent/skills/core/api-design/data/api-versioning.yaml +211 -211
  168. package/.agent/skills/core/api-design/data/error-responses.yaml +129 -129
  169. package/.agent/skills/core/api-design/data/graphql-patterns.yaml +159 -159
  170. package/.agent/skills/core/api-design/data/grpc-patterns.yaml +159 -159
  171. package/.agent/skills/core/api-design/data/http-status-codes.yaml +170 -170
  172. package/.agent/skills/core/api-design/data/modern-api-patterns.yaml +160 -0
  173. package/.agent/skills/core/api-design/data/pagination.yaml +115 -115
  174. package/.agent/skills/core/api-design/data/rate-limiting.yaml +129 -129
  175. package/.agent/skills/core/api-design/data/rest-patterns.yaml +189 -189
  176. package/.agent/skills/core/api-design/data/test-apis.yaml +211 -211
  177. package/.agent/skills/core/authentication/META.yaml +1 -5
  178. package/.agent/skills/core/authentication/SKILL.md +36 -43
  179. package/.agent/skills/core/authentication/data/anti-patterns.yaml +129 -129
  180. package/.agent/skills/core/authentication/data/core-patterns.yaml +250 -250
  181. package/.agent/skills/core/authentication/data/jwt-patterns.yaml +249 -249
  182. package/.agent/skills/core/authentication/data/language-csharp.yaml +209 -209
  183. package/.agent/skills/core/authentication/data/language-go.yaml +209 -209
  184. package/.agent/skills/core/authentication/data/language-java.yaml +209 -209
  185. package/.agent/skills/core/authentication/data/language-mobile.yaml +209 -209
  186. package/.agent/skills/core/authentication/data/language-python.yaml +209 -209
  187. package/.agent/skills/core/authentication/data/language-rust.yaml +209 -209
  188. package/.agent/skills/core/authentication/data/language-typescript.yaml +209 -209
  189. package/.agent/skills/core/authentication/data/mfa-patterns.yaml +169 -169
  190. package/.agent/skills/core/authentication/data/oauth-patterns.yaml +249 -249
  191. package/.agent/skills/core/authentication/data/oauth.yaml +243 -243
  192. package/.agent/skills/core/authentication/data/passkey-patterns.yaml +149 -0
  193. package/.agent/skills/core/authentication/data/passkeys-webauthn.yaml +209 -209
  194. package/.agent/skills/core/authentication/data/passkeys.yaml +203 -203
  195. package/.agent/skills/core/authentication/data/password-patterns.yaml +169 -169
  196. package/.agent/skills/core/authentication/data/password.yaml +163 -163
  197. package/.agent/skills/core/authentication/data/session-patterns.yaml +209 -209
  198. package/.agent/skills/core/error-handling/META.yaml +1 -5
  199. package/.agent/skills/core/error-handling/SKILL.md +21 -25
  200. package/.agent/skills/core/error-handling/data/anti-patterns.yaml +99 -99
  201. package/.agent/skills/core/error-handling/data/api-error-patterns.yaml +2 -2
  202. package/.agent/skills/core/error-handling/data/core-patterns.yaml +2 -2
  203. package/.agent/skills/core/error-handling/data/error-codes.yaml +159 -159
  204. package/.agent/skills/core/error-handling/data/error-messages.yaml +2 -2
  205. package/.agent/skills/core/error-handling/data/language-c-cpp.yaml +220 -220
  206. package/.agent/skills/core/error-handling/data/language-go-rust.yaml +2 -2
  207. package/.agent/skills/core/error-handling/data/language-python-java.yaml +220 -220
  208. package/.agent/skills/core/error-handling/data/language-swift-kotlin.yaml +220 -220
  209. package/.agent/skills/core/error-handling/data/language-typescript-php-ruby.yaml +220 -220
  210. package/.agent/skills/core/error-handling/data/resilience-patterns.yaml +2 -2
  211. package/.agent/skills/core/error-handling/data/ui-error-patterns.yaml +129 -129
  212. package/.agent/skills/core/logging/META.yaml +1 -5
  213. package/.agent/skills/core/logging/SKILL.md +28 -42
  214. package/.agent/skills/core/logging/data/aggregation-patterns.yaml +185 -185
  215. package/.agent/skills/core/logging/data/anti-patterns.yaml +115 -115
  216. package/.agent/skills/core/logging/data/core-patterns.yaml +220 -220
  217. package/.agent/skills/core/logging/data/language-csharp.yaml +185 -185
  218. package/.agent/skills/core/logging/data/language-go.yaml +185 -185
  219. package/.agent/skills/core/logging/data/language-java.yaml +185 -185
  220. package/.agent/skills/core/logging/data/language-kotlin.yaml +150 -150
  221. package/.agent/skills/core/logging/data/language-others.yaml +178 -178
  222. package/.agent/skills/core/logging/data/language-python.yaml +185 -185
  223. package/.agent/skills/core/logging/data/language-rust.yaml +185 -185
  224. package/.agent/skills/core/logging/data/language-swift.yaml +150 -150
  225. package/.agent/skills/core/logging/data/language-typescript.yaml +185 -185
  226. package/.agent/skills/core/logging/data/otel-logging.yaml +150 -150
  227. package/.agent/skills/core/observability/META.yaml +1 -5
  228. package/.agent/skills/core/observability/SKILL.md +29 -38
  229. package/.agent/skills/core/observability/data/alerting-patterns.yaml +159 -159
  230. package/.agent/skills/core/observability/data/anti-patterns.yaml +99 -99
  231. package/.agent/skills/core/observability/data/core-patterns.yaml +189 -189
  232. package/.agent/skills/core/observability/data/language-cpp.yaml +159 -159
  233. package/.agent/skills/core/observability/data/language-csharp.yaml +159 -159
  234. package/.agent/skills/core/observability/data/language-go.yaml +159 -159
  235. package/.agent/skills/core/observability/data/language-java.yaml +159 -159
  236. package/.agent/skills/core/observability/data/language-others.yaml +249 -249
  237. package/.agent/skills/core/observability/data/language-python.yaml +159 -159
  238. package/.agent/skills/core/observability/data/language-rust.yaml +159 -159
  239. package/.agent/skills/core/observability/data/language-typescript.yaml +159 -159
  240. package/.agent/skills/core/observability/data/metrics-patterns.yaml +129 -129
  241. package/.agent/skills/core/observability/data/metrics-prometheus.yaml +159 -159
  242. package/.agent/skills/core/observability/data/otel-core.yaml +189 -189
  243. package/.agent/skills/core/observability/data/profiling-patterns.yaml +129 -129
  244. package/.agent/skills/core/observability/data/tracing-patterns.yaml +159 -159
  245. package/.agent/skills/core/observability/data/tracing-tools.yaml +129 -129
  246. package/.agent/skills/core/security/META.yaml +1 -5
  247. package/.agent/skills/core/security/SKILL.md +25 -25
  248. package/.agent/skills/core/security/data/ai-ml-security.yaml +255 -255
  249. package/.agent/skills/core/security/data/api-security.yaml +224 -224
  250. package/.agent/skills/core/security/data/auth-patterns.yaml +189 -189
  251. package/.agent/skills/core/security/data/binary-exploitation.yaml +333 -333
  252. package/.agent/skills/core/security/data/cloud-security.yaml +263 -263
  253. package/.agent/skills/core/security/data/cwe-top25.yaml +409 -409
  254. package/.agent/skills/core/security/data/language-specific/c-security.yaml +289 -289
  255. package/.agent/skills/core/security/data/language-specific/cpp-security.yaml +289 -289
  256. package/.agent/skills/core/security/data/language-specific/csharp-security.yaml +213 -213
  257. package/.agent/skills/core/security/data/language-specific/go-security.yaml +213 -213
  258. package/.agent/skills/core/security/data/language-specific/java-security.yaml +289 -289
  259. package/.agent/skills/core/security/data/language-specific/kotlin-security.yaml +192 -192
  260. package/.agent/skills/core/security/data/language-specific/php-security.yaml +213 -213
  261. package/.agent/skills/core/security/data/language-specific/python-security.yaml +289 -289
  262. package/.agent/skills/core/security/data/language-specific/ruby-security.yaml +192 -192
  263. package/.agent/skills/core/security/data/language-specific/rust-security.yaml +234 -234
  264. package/.agent/skills/core/security/data/language-specific/solidity-security.yaml +363 -363
  265. package/.agent/skills/core/security/data/language-specific/swift-security.yaml +192 -192
  266. package/.agent/skills/core/security/data/language-specific/typescript-security.yaml +289 -289
  267. package/.agent/skills/core/security/data/mobile-security.yaml +363 -363
  268. package/.agent/skills/core/security/data/network-security.yaml +291 -291
  269. package/.agent/skills/core/security/data/owasp-llm-top10.yaml +122 -0
  270. package/.agent/skills/core/security/data/owasp-top10.yaml +165 -165
  271. package/.agent/skills/core/security/data/reverse-engineering.yaml +491 -491
  272. package/.agent/skills/core/security/data/supply-chain.yaml +213 -213
  273. package/.agent/skills/cross-cutting/_index.yaml +4 -2
  274. package/.agent/skills/cross-cutting/accessibility/META.yaml +45 -0
  275. package/.agent/skills/cross-cutting/accessibility/SKILL.md +121 -0
  276. package/.agent/skills/cross-cutting/accessibility/data/aria-patterns.yaml +88 -0
  277. package/.agent/skills/cross-cutting/accessibility/data/testing-tools.yaml +60 -0
  278. package/.agent/skills/cross-cutting/accessibility/data/wcag-guidelines.yaml +98 -0
  279. package/.agent/skills/cross-cutting/audit-pro/META.yaml +2 -6
  280. package/.agent/skills/cross-cutting/bun/META.yaml +2 -8
  281. package/.agent/skills/cross-cutting/bun/SKILL.md +8 -12
  282. package/.agent/skills/cross-cutting/coding-rules/META.yaml +4 -11
  283. package/.agent/skills/cross-cutting/coding-rules/SKILL.md +38 -46
  284. package/.agent/skills/cross-cutting/coding-rules/data/adr-patterns.yaml +102 -0
  285. package/.agent/skills/cross-cutting/coding-rules/data/architecture-patterns.yaml +289 -90
  286. package/.agent/skills/cross-cutting/coding-rules/data/build-systems.yaml +340 -340
  287. package/.agent/skills/cross-cutting/coding-rules/data/coding-rules.yaml +641 -641
  288. package/.agent/skills/cross-cutting/coding-rules/data/concurrency-patterns.yaml +102 -102
  289. package/.agent/skills/cross-cutting/coding-rules/data/design-patterns.yaml +254 -254
  290. package/.agent/skills/cross-cutting/coding-rules/data/framework-directories.yaml +446 -0
  291. package/.agent/skills/cross-cutting/coding-rules/data/framework-signatures.yaml +338 -338
  292. package/.agent/skills/cross-cutting/coding-rules/data/memory-management.yaml +102 -102
  293. package/.agent/skills/cross-cutting/coding-rules/data/naming-conventions.yaml +314 -314
  294. package/.agent/skills/cross-cutting/coding-rules/data/performance-benchmarks.yaml +158 -158
  295. package/.agent/skills/cross-cutting/coding-rules/data/solid-principles.yaml +74 -74
  296. package/.agent/skills/cross-cutting/coding-rules/data/test-frameworks.yaml +177 -177
  297. package/.agent/skills/cross-cutting/database/META.yaml +2 -2
  298. package/.agent/skills/cross-cutting/database/SKILL.md +10 -19
  299. package/.agent/skills/cross-cutting/deno/META.yaml +2 -8
  300. package/.agent/skills/cross-cutting/deno/SKILL.md +8 -12
  301. package/.agent/skills/cross-cutting/domyh-design/ADVANCED.md +247 -0
  302. package/.agent/skills/cross-cutting/{ui-ux-pro-max → domyh-design}/META.yaml +44 -13
  303. package/.agent/skills/cross-cutting/domyh-design/SKILL.md +171 -0
  304. package/.agent/skills/cross-cutting/domyh-design/data/animation-ui-kits.yaml +198 -0
  305. package/.agent/skills/cross-cutting/domyh-design/data/charts.yaml +331 -0
  306. package/.agent/skills/cross-cutting/domyh-design/data/colors.yaml +1226 -0
  307. package/.agent/skills/cross-cutting/domyh-design/data/component-decision.yaml +287 -0
  308. package/.agent/skills/cross-cutting/domyh-design/data/component-effects.yaml +673 -0
  309. package/.agent/skills/cross-cutting/domyh-design/data/component-mapping.yaml +318 -0
  310. package/.agent/skills/cross-cutting/domyh-design/data/design-system-prompts.yaml +174 -0
  311. package/.agent/skills/cross-cutting/domyh-design/data/design-tokens.yaml +525 -0
  312. package/.agent/skills/cross-cutting/domyh-design/data/desktop-animation.yaml +680 -0
  313. package/.agent/skills/cross-cutting/domyh-design/data/desktop-architecture.yaml +140 -0
  314. package/.agent/skills/cross-cutting/{ui-ux-pro-max → domyh-design}/data/desktop-colors.yaml +4 -4
  315. package/.agent/skills/cross-cutting/domyh-design/data/directory-structure.yaml +80 -0
  316. package/.agent/skills/cross-cutting/domyh-design/data/icons.yaml +918 -0
  317. package/.agent/skills/cross-cutting/domyh-design/data/image-gen-prompts.yaml +678 -0
  318. package/.agent/skills/cross-cutting/domyh-design/data/image-gen-workflows.yaml +202 -0
  319. package/.agent/skills/cross-cutting/domyh-design/data/implementation-strategy.yaml +107 -0
  320. package/.agent/skills/cross-cutting/domyh-design/data/landing.yaml +373 -0
  321. package/.agent/skills/cross-cutting/domyh-design/data/micro-interactions.yaml +528 -0
  322. package/.agent/skills/cross-cutting/domyh-design/data/platform-frameworks.yaml +195 -0
  323. package/.agent/skills/cross-cutting/domyh-design/data/platform-guidelines.yaml +177 -0
  324. package/.agent/skills/cross-cutting/domyh-design/data/products.yaml +1339 -0
  325. package/.agent/skills/cross-cutting/domyh-design/data/prompts.yaml +207 -0
  326. package/.agent/skills/cross-cutting/domyh-design/data/react-performance.yaml +504 -0
  327. package/.agent/skills/cross-cutting/domyh-design/data/scroll-animation-patterns.yaml +398 -0
  328. package/.agent/skills/cross-cutting/domyh-design/data/stacks/desktop.yaml +228 -0
  329. package/.agent/skills/cross-cutting/domyh-design/data/stacks/flutter.yaml +508 -0
  330. package/.agent/skills/cross-cutting/domyh-design/data/stacks/html-tailwind.yaml +543 -0
  331. package/.agent/skills/cross-cutting/domyh-design/data/stacks/nextjs.yaml +515 -0
  332. package/.agent/skills/cross-cutting/domyh-design/data/stacks/nuxt-ui.yaml +519 -0
  333. package/.agent/skills/cross-cutting/domyh-design/data/stacks/nuxtjs.yaml +599 -0
  334. package/.agent/skills/cross-cutting/domyh-design/data/stacks/react-native.yaml +496 -0
  335. package/.agent/skills/cross-cutting/domyh-design/data/stacks/react.yaml +526 -0
  336. package/.agent/skills/cross-cutting/domyh-design/data/stacks/shadcn.yaml +616 -0
  337. package/.agent/skills/cross-cutting/domyh-design/data/stacks/svelte.yaml +520 -0
  338. package/.agent/skills/cross-cutting/domyh-design/data/stacks/swiftui.yaml +486 -0
  339. package/.agent/skills/cross-cutting/domyh-design/data/stacks/vue.yaml +485 -0
  340. package/.agent/skills/cross-cutting/domyh-design/data/styles.yaml +1473 -0
  341. package/.agent/skills/cross-cutting/domyh-design/data/tailwind-animation-plugins.yaml +462 -0
  342. package/.agent/skills/cross-cutting/domyh-design/data/typography.yaml +647 -0
  343. package/.agent/skills/cross-cutting/domyh-design/data/ui-reasoning.yaml +1019 -0
  344. package/.agent/skills/cross-cutting/domyh-design/data/ux-guidelines.yaml +1009 -0
  345. package/.agent/skills/cross-cutting/domyh-design/data/web-animation-libraries.yaml +541 -0
  346. package/.agent/skills/cross-cutting/domyh-design/data/web-interface.yaml +347 -0
  347. package/.agent/skills/cross-cutting/domyh-design/data/webview-animation-optimization.yaml +685 -0
  348. package/.agent/skills/cross-cutting/electron/SKILL.md +10 -14
  349. package/.agent/skills/cross-cutting/event-driven/META.yaml +108 -0
  350. package/.agent/skills/cross-cutting/event-driven/SKILL.md +123 -0
  351. package/.agent/skills/cross-cutting/event-driven/data/broker-comparison.yaml +123 -0
  352. package/.agent/skills/cross-cutting/event-driven/data/eda-patterns.yaml +120 -0
  353. package/.agent/skills/cross-cutting/event-driven/data/production-patterns.yaml +120 -0
  354. package/.agent/skills/cross-cutting/microservices/META.yaml +90 -0
  355. package/.agent/skills/cross-cutting/microservices/SKILL.md +120 -0
  356. package/.agent/skills/cross-cutting/microservices/data/communication.yaml +163 -0
  357. package/.agent/skills/cross-cutting/microservices/data/cqrs-patterns.yaml +199 -0
  358. package/.agent/skills/cross-cutting/microservices/data/deployment.yaml +153 -0
  359. package/.agent/skills/cross-cutting/microservices/data/event-sourcing.yaml +231 -0
  360. package/.agent/skills/cross-cutting/microservices/data/observability.yaml +152 -0
  361. package/.agent/skills/cross-cutting/microservices/data/resilience.yaml +189 -0
  362. package/.agent/skills/cross-cutting/microservices/data/saga-patterns.yaml +161 -0
  363. package/.agent/skills/cross-cutting/microservices/data/service-mesh.yaml +179 -0
  364. package/.agent/skills/cross-cutting/monorepo/META.yaml +54 -0
  365. package/.agent/skills/cross-cutting/monorepo/SKILL.md +108 -0
  366. package/.agent/skills/cross-cutting/monorepo/data/ci-cd-strategies.yaml +74 -0
  367. package/.agent/skills/cross-cutting/monorepo/data/nx-patterns.yaml +74 -0
  368. package/.agent/skills/cross-cutting/monorepo/data/turborepo-patterns.yaml +84 -0
  369. package/.agent/skills/cross-cutting/monorepo/data/versioning.yaml +83 -0
  370. package/.agent/skills/cross-cutting/monorepo/data/workspace-patterns.yaml +85 -0
  371. package/.agent/skills/cross-cutting/playwright/ADVANCED.md +289 -0
  372. package/.agent/skills/cross-cutting/playwright/META.yaml +90 -0
  373. package/.agent/skills/cross-cutting/playwright/SKILL.md +210 -0
  374. package/.agent/skills/cross-cutting/playwright/data/ai-agents.yaml +137 -0
  375. package/.agent/skills/cross-cutting/playwright/data/config-templates.yaml +141 -0
  376. package/.agent/skills/cross-cutting/playwright/data/interaction-checklist.yaml +398 -0
  377. package/.agent/skills/cross-cutting/playwright/data/locator-patterns.yaml +96 -0
  378. package/.agent/skills/cross-cutting/playwright/data/mcp-tools.yaml +153 -0
  379. package/.agent/skills/cross-cutting/playwright/data/open-source-tools.yaml +95 -0
  380. package/.agent/skills/cross-cutting/real-time/META.yaml +72 -0
  381. package/.agent/skills/cross-cutting/real-time/SKILL.md +128 -0
  382. package/.agent/skills/cross-cutting/real-time/data/socketio-patterns.yaml +165 -0
  383. package/.agent/skills/cross-cutting/real-time/data/sse-patterns.yaml +181 -0
  384. package/.agent/skills/cross-cutting/real-time/data/websocket-patterns.yaml +176 -0
  385. package/.agent/skills/cross-cutting/seo/META.yaml +47 -0
  386. package/.agent/skills/cross-cutting/seo/SKILL.md +114 -0
  387. package/.agent/skills/cross-cutting/seo/data/core-web-vitals.yaml +93 -0
  388. package/.agent/skills/cross-cutting/seo/data/structured-data.yaml +82 -0
  389. package/.agent/skills/cross-cutting/seo/data/technical-seo.yaml +75 -0
  390. package/.agent/skills/cross-cutting/sql/META.yaml +2 -8
  391. package/.agent/skills/cross-cutting/sql/SKILL.md +8 -12
  392. package/.agent/skills/cross-cutting/tailwind/META.yaml +3 -20
  393. package/.agent/skills/cross-cutting/tailwind/SKILL.md +13 -11
  394. package/.agent/skills/cross-cutting/tauri/META.yaml +75 -0
  395. package/.agent/skills/cross-cutting/tauri/SKILL.md +127 -0
  396. package/.agent/skills/cross-cutting/tauri/data/build.yaml +141 -0
  397. package/.agent/skills/cross-cutting/tauri/data/plugins.yaml +157 -0
  398. package/.agent/skills/cross-cutting/tauri/data/security.yaml +134 -0
  399. package/.agent/skills/cross-cutting/tdd-workflow/META.yaml +58 -0
  400. package/.agent/skills/cross-cutting/tdd-workflow/SKILL.md +128 -0
  401. package/.agent/skills/cross-cutting/tdd-workflow/data/anti-patterns.yaml +70 -0
  402. package/.agent/skills/cross-cutting/tdd-workflow/data/bdd-atdd-patterns.yaml +77 -0
  403. package/.agent/skills/cross-cutting/tdd-workflow/data/core-tdd-cycle.yaml +104 -0
  404. package/.agent/skills/cross-cutting/tdd-workflow/data/coverage-strategies.yaml +105 -0
  405. package/.agent/skills/cross-cutting/tdd-workflow/data/language-patterns.yaml +115 -0
  406. package/.agent/skills/cross-cutting/tdd-workflow/data/test-doubles.yaml +93 -0
  407. package/.agent/skills/cross-cutting/testing/META.yaml +1 -5
  408. package/.agent/skills/cross-cutting/testing/SKILL.md +13 -26
  409. package/.agent/skills/cross-cutting/testing/data/e2e-patterns.yaml +136 -0
  410. package/.agent/skills/cross-cutting/testing/data/frameworks.yaml +3 -3
  411. package/.agent/skills/cross-cutting/testing/data/patterns.yaml +149 -147
  412. package/.agent/skills/cross-cutting/wasm/META.yaml +47 -0
  413. package/.agent/skills/cross-cutting/wasm/SKILL.md +88 -0
  414. package/.agent/skills/cross-cutting/wasm/data/browser-patterns.yaml +106 -0
  415. package/.agent/skills/cross-cutting/wasm/data/component-model.yaml +85 -0
  416. package/.agent/skills/cross-cutting/wasm/data/server-patterns.yaml +89 -0
  417. package/.agent/skills/cross-cutting/web-perf/META.yaml +3 -9
  418. package/.agent/skills/cross-cutting/web-perf/SKILL.md +9 -18
  419. package/.agent/skills/devops/aws/META.yaml +48 -63
  420. package/.agent/skills/devops/azure/META.yaml +44 -0
  421. package/.agent/skills/devops/azure/SKILL.md +43 -0
  422. package/.agent/skills/devops/azure/data/cli.yaml +69 -0
  423. package/.agent/skills/devops/azure/data/compute.yaml +83 -0
  424. package/.agent/skills/devops/azure/data/data-services.yaml +126 -0
  425. package/.agent/skills/devops/ci-cd/META.yaml +47 -14
  426. package/.agent/skills/devops/docker/META.yaml +53 -14
  427. package/.agent/skills/devops/gcp/META.yaml +43 -0
  428. package/.agent/skills/devops/gcp/SKILL.md +43 -0
  429. package/.agent/skills/devops/gcp/data/cli.yaml +39 -0
  430. package/.agent/skills/devops/gcp/data/compute.yaml +92 -0
  431. package/.agent/skills/devops/gcp/data/data-services.yaml +97 -0
  432. package/.agent/skills/devops/kubernetes/META.yaml +56 -7
  433. package/.agent/skills/devops/terraform/META.yaml +47 -0
  434. package/.agent/skills/devops/terraform/SKILL.md +73 -0
  435. package/.agent/skills/devops/terraform/data/ci-cd.yaml +89 -0
  436. package/.agent/skills/devops/terraform/data/hcl-patterns.yaml +131 -0
  437. package/.agent/skills/devops/terraform/data/providers.yaml +96 -0
  438. package/.agent/skills/frameworks/angular/META.yaml +20 -6
  439. package/.agent/skills/frameworks/angular/SKILL.md +1 -1
  440. package/.agent/skills/frameworks/flutter/META.yaml +20 -6
  441. package/.agent/skills/frameworks/flutter/SKILL.md +1 -1
  442. package/.agent/skills/frameworks/nextjs/ADVANCED.md +2 -2
  443. package/.agent/skills/frameworks/nextjs/META.yaml +22 -8
  444. package/.agent/skills/frameworks/nextjs/SKILL.md +4 -4
  445. package/.agent/skills/frameworks/nextjs/data/server.yaml +4 -4
  446. package/.agent/skills/frameworks/nuxt/META.yaml +21 -7
  447. package/.agent/skills/frameworks/nuxt/SKILL.md +2 -2
  448. package/.agent/skills/frameworks/nuxt/data/core.yaml +14 -2
  449. package/.agent/skills/frameworks/nuxt/data/server.yaml +14 -2
  450. package/.agent/skills/frameworks/react/META.yaml +20 -7
  451. package/.agent/skills/frameworks/react/SKILL.md +7 -11
  452. package/.agent/skills/frameworks/react/data/core.yaml +14 -2
  453. package/.agent/skills/frameworks/react/data/server.yaml +16 -4
  454. package/.agent/skills/frameworks/react-native/META.yaml +19 -6
  455. package/.agent/skills/frameworks/react-native/SKILL.md +1 -1
  456. package/.agent/skills/frameworks/svelte/META.yaml +19 -6
  457. package/.agent/skills/frameworks/svelte/SKILL.md +1 -1
  458. package/.agent/skills/frameworks/vue/META.yaml +20 -8
  459. package/.agent/skills/frameworks/vue/SKILL.md +7 -7
  460. package/.agent/skills/frameworks/vue/data/advanced.yaml +19 -7
  461. package/.agent/skills/frameworks/vue/data/core.yaml +13 -1
  462. package/.agent/skills/index.json +67 -14
  463. package/.agent/skills/languages/asm/META.yaml +2 -8
  464. package/.agent/skills/languages/asm/SKILL.md +1 -1
  465. package/.agent/skills/languages/c/META.yaml +2 -8
  466. package/.agent/skills/languages/c/SKILL.md +1 -1
  467. package/.agent/skills/languages/clojure/META.yaml +2 -2
  468. package/.agent/skills/languages/clojure/SKILL.md +1 -1
  469. package/.agent/skills/languages/cpp/META.yaml +2 -8
  470. package/.agent/skills/languages/cpp/SKILL.md +1 -1
  471. package/.agent/skills/languages/crystal/META.yaml +2 -8
  472. package/.agent/skills/languages/crystal/SKILL.md +1 -1
  473. package/.agent/skills/languages/csharp/META.yaml +2 -2
  474. package/.agent/skills/languages/csharp/SKILL.md +1 -1
  475. package/.agent/skills/languages/elixir/META.yaml +2 -2
  476. package/.agent/skills/languages/elixir/SKILL.md +1 -1
  477. package/.agent/skills/languages/fsharp/META.yaml +2 -2
  478. package/.agent/skills/languages/fsharp/SKILL.md +1 -1
  479. package/.agent/skills/languages/go/META.yaml +2 -8
  480. package/.agent/skills/languages/go/SKILL.md +1 -1
  481. package/.agent/skills/languages/haskell/META.yaml +2 -2
  482. package/.agent/skills/languages/haskell/SKILL.md +1 -1
  483. package/.agent/skills/languages/java/META.yaml +2 -8
  484. package/.agent/skills/languages/java/SKILL.md +1 -1
  485. package/.agent/skills/languages/javascript/META.yaml +2 -8
  486. package/.agent/skills/languages/javascript/SKILL.md +1 -1
  487. package/.agent/skills/languages/julia/META.yaml +2 -2
  488. package/.agent/skills/languages/julia/SKILL.md +1 -1
  489. package/.agent/skills/languages/kotlin/META.yaml +2 -2
  490. package/.agent/skills/languages/kotlin/SKILL.md +1 -1
  491. package/.agent/skills/languages/lua/META.yaml +2 -8
  492. package/.agent/skills/languages/lua/SKILL.md +3 -3
  493. package/.agent/skills/languages/nim/META.yaml +2 -8
  494. package/.agent/skills/languages/nim/SKILL.md +1 -1
  495. package/.agent/skills/languages/ocaml/META.yaml +2 -2
  496. package/.agent/skills/languages/ocaml/SKILL.md +1 -1
  497. package/.agent/skills/languages/perl/META.yaml +2 -2
  498. package/.agent/skills/languages/perl/SKILL.md +1 -1
  499. package/.agent/skills/languages/php/META.yaml +2 -2
  500. package/.agent/skills/languages/php/SKILL.md +1 -1
  501. package/.agent/skills/languages/python/META.yaml +2 -8
  502. package/.agent/skills/languages/python/SKILL.md +1 -1
  503. package/.agent/skills/languages/r/META.yaml +2 -2
  504. package/.agent/skills/languages/r/SKILL.md +1 -1
  505. package/.agent/skills/languages/ruby/META.yaml +2 -2
  506. package/.agent/skills/languages/ruby/SKILL.md +1 -1
  507. package/.agent/skills/languages/rust/META.yaml +2 -8
  508. package/.agent/skills/languages/rust/SKILL.md +1 -1
  509. package/.agent/skills/languages/scala/META.yaml +2 -2
  510. package/.agent/skills/languages/scala/SKILL.md +1 -1
  511. package/.agent/skills/languages/solidity/META.yaml +2 -2
  512. package/.agent/skills/languages/solidity/SKILL.md +1 -1
  513. package/.agent/skills/languages/swift/META.yaml +2 -2
  514. package/.agent/skills/languages/swift/SKILL.md +1 -1
  515. package/.agent/skills/languages/typescript/META.yaml +2 -8
  516. package/.agent/skills/languages/typescript/SKILL.md +1 -1
  517. package/.agent/skills/languages/zig/META.yaml +5 -7
  518. package/.agent/skills/languages/zig/SKILL.md +1 -1
  519. package/.agent/skills/tooling/api-protocols/META.yaml +102 -0
  520. package/.agent/skills/tooling/api-protocols/SKILL.md +145 -0
  521. package/.agent/skills/tooling/api-protocols/data/graphql-patterns.yaml +115 -0
  522. package/.agent/skills/tooling/api-protocols/data/grpc-patterns.yaml +101 -0
  523. package/.agent/skills/tooling/api-protocols/data/trpc-patterns.yaml +97 -0
  524. package/.agent/skills/tooling/browser-agent/ADVANCED.md +242 -0
  525. package/.agent/skills/tooling/browser-agent/META.yaml +78 -0
  526. package/.agent/skills/tooling/browser-agent/SKILL.md +164 -0
  527. package/.agent/skills/tooling/browser-agent/data/element-discovery.yaml +208 -0
  528. package/.agent/skills/tooling/browser-agent/data/recording-patterns.yaml +74 -0
  529. package/.agent/skills/tooling/browser-agent/data/reporting-patterns.yaml +97 -0
  530. package/.agent/skills/tooling/browser-agent/data/subagent-patterns.yaml +158 -0
  531. package/.agent/skills/tooling/browser-agent/data/verification-flow.yaml +209 -0
  532. package/.agent/skills/tooling/cli-dev/META.yaml +55 -0
  533. package/.agent/skills/tooling/cli-dev/SKILL.md +83 -0
  534. package/.agent/skills/tooling/cli-dev/data/frameworks.yaml +128 -0
  535. package/.agent/skills/tooling/cli-dev/data/output-formats.yaml +58 -0
  536. package/.agent/skills/tooling/cli-dev/data/ux-patterns.yaml +97 -0
  537. package/.agent/skills/tooling/ide-extension/META.yaml +72 -0
  538. package/.agent/skills/tooling/ide-extension/SKILL.md +108 -0
  539. package/.agent/skills/tooling/ide-extension/data/jetbrains-patterns.yaml +118 -0
  540. package/.agent/skills/tooling/ide-extension/data/lsp-patterns.yaml +126 -0
  541. package/.agent/skills/tooling/ide-extension/data/vscode-patterns.yaml +172 -0
  542. package/.agent/skills/tooling/mcp/META.yaml +80 -0
  543. package/.agent/skills/tooling/mcp/SKILL.md +114 -0
  544. package/.agent/skills/tooling/mcp/data/security.yaml +116 -0
  545. package/.agent/skills/tooling/mcp/data/tool-design.yaml +124 -0
  546. package/.agent/skills/tooling/mcp/data/transport-patterns.yaml +95 -0
  547. package/.agent/templates/README.md +2 -2
  548. package/.agent/templates/debug-report.md +1 -1
  549. package/.agent/templates/deploy-plan.md +1 -1
  550. package/.agent/templates/doc-template.md +1 -1
  551. package/.agent/templates/index.yaml +2 -2
  552. package/.agent/templates/migrate-plan.md +1 -1
  553. package/.agent/templates/phase-template.md +1 -1
  554. package/.agent/templates/tasks/audit.yaml +1 -1
  555. package/.agent/templates/tasks/bug_fix.yaml +1 -1
  556. package/.agent/templates/tasks/code_implementation.yaml +1 -1
  557. package/.agent/templates/tasks/refactor.yaml +1 -1
  558. package/.agent/templates/test-report.md +1 -1
  559. package/.agent/workflows/code.md +22 -1
  560. package/.agent/workflows/deploy.md +5 -1
  561. package/.agent/workflows/e2e.md +112 -0
  562. package/.agent/workflows/fix.md +1 -1
  563. package/.agent/workflows/prompt.md +325 -0
  564. package/.agent/workflows/scaffold.md +1 -1
  565. package/.agent/workflows/tdd.md +108 -0
  566. package/.agent/workflows/verify.md +116 -0
  567. package/.agent/workflows/visualize.md +50 -18
  568. package/dist/commands/add.d.ts.map +1 -1
  569. package/dist/commands/add.js +9 -1
  570. package/dist/commands/add.js.map +1 -1
  571. package/dist/commands/config.d.ts.map +1 -1
  572. package/dist/commands/config.js +24 -8
  573. package/dist/commands/config.js.map +1 -1
  574. package/dist/commands/hsa.d.ts.map +1 -1
  575. package/dist/commands/hsa.js +106 -20
  576. package/dist/commands/hsa.js.map +1 -1
  577. package/dist/commands/init.d.ts.map +1 -1
  578. package/dist/commands/init.js +65 -61
  579. package/dist/commands/init.js.map +1 -1
  580. package/dist/commands/install-core.d.ts +2 -1
  581. package/dist/commands/install-core.d.ts.map +1 -1
  582. package/dist/commands/install-core.js +43 -16
  583. package/dist/commands/install-core.js.map +1 -1
  584. package/dist/commands/install-helpers.d.ts.map +1 -1
  585. package/dist/commands/install-helpers.js +23 -2
  586. package/dist/commands/install-helpers.js.map +1 -1
  587. package/dist/commands/install-hsa.d.ts +2 -5
  588. package/dist/commands/install-hsa.d.ts.map +1 -1
  589. package/dist/commands/install-hsa.js +2 -5
  590. package/dist/commands/install-hsa.js.map +1 -1
  591. package/dist/commands/install.d.ts +27 -0
  592. package/dist/commands/install.d.ts.map +1 -1
  593. package/dist/commands/install.js +68 -20
  594. package/dist/commands/install.js.map +1 -1
  595. package/dist/commands/list.d.ts.map +1 -1
  596. package/dist/commands/list.js +2 -1
  597. package/dist/commands/list.js.map +1 -1
  598. package/dist/commands/mcp-registry.d.ts +24 -9
  599. package/dist/commands/mcp-registry.d.ts.map +1 -1
  600. package/dist/commands/mcp-registry.js +39 -57
  601. package/dist/commands/mcp-registry.js.map +1 -1
  602. package/dist/commands/mcp-writers.d.ts.map +1 -1
  603. package/dist/commands/mcp-writers.js +6 -5
  604. package/dist/commands/mcp-writers.js.map +1 -1
  605. package/dist/commands/mcp.d.ts +1 -1
  606. package/dist/commands/mcp.d.ts.map +1 -1
  607. package/dist/commands/mcp.js +37 -9
  608. package/dist/commands/mcp.js.map +1 -1
  609. package/dist/commands/update.d.ts.map +1 -1
  610. package/dist/commands/update.js +16 -6
  611. package/dist/commands/update.js.map +1 -1
  612. package/dist/constants/cursor-globs.d.ts.map +1 -1
  613. package/dist/constants/cursor-globs.js +0 -6
  614. package/dist/constants/cursor-globs.js.map +1 -1
  615. package/dist/constants/ide-install-specs.js +2 -2
  616. package/dist/constants.d.ts +3 -3
  617. package/dist/constants.d.ts.map +1 -1
  618. package/dist/constants.js +3 -3
  619. package/dist/constants.js.map +1 -1
  620. package/dist/index.d.ts.map +1 -1
  621. package/dist/index.js +1 -9
  622. package/dist/index.js.map +1 -1
  623. package/dist/types/ide-install.js +1 -1
  624. package/dist/utils/copy-helpers.d.ts +7 -2
  625. package/dist/utils/copy-helpers.d.ts.map +1 -1
  626. package/dist/utils/copy-helpers.js +56 -42
  627. package/dist/utils/copy-helpers.js.map +1 -1
  628. package/dist/utils/install-manifest.d.ts +12 -0
  629. package/dist/utils/install-manifest.d.ts.map +1 -0
  630. package/dist/utils/install-manifest.js +26 -0
  631. package/dist/utils/install-manifest.js.map +1 -0
  632. package/dist/utils/validation.d.ts.map +1 -1
  633. package/dist/utils/validation.js +31 -1
  634. package/dist/utils/validation.js.map +1 -1
  635. package/package.json +1 -1
  636. package/.agent/core/embeddings.json +0 -2004
  637. package/.agent/core/session_cache.json +0 -50
  638. package/.agent/skills/cross-cutting/aws/META.yaml +0 -75
  639. package/.agent/skills/cross-cutting/ci-cd/META.yaml +0 -60
  640. package/.agent/skills/cross-cutting/docker/META.yaml +0 -65
  641. package/.agent/skills/cross-cutting/kubernetes/META.yaml +0 -70
  642. package/.agent/skills/cross-cutting/ui-ux-pro-max/SKILL.md +0 -565
  643. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/charts.yaml +0 -331
  644. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/colors.yaml +0 -1226
  645. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/component-decision.yaml +0 -287
  646. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/component-mapping.yaml +0 -318
  647. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/design-tokens.yaml +0 -525
  648. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/desktop-animation.yaml +0 -232
  649. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/desktop-architecture.yaml +0 -140
  650. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/directory-structure.yaml +0 -75
  651. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/icons.yaml +0 -918
  652. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/implementation-strategy.yaml +0 -107
  653. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/landing.yaml +0 -372
  654. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/platform-frameworks.yaml +0 -195
  655. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/platform-guidelines.yaml +0 -177
  656. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/products.yaml +0 -1339
  657. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/prompts.yaml +0 -180
  658. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/react-performance.yaml +0 -504
  659. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/desktop.yaml +0 -228
  660. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/flutter.yaml +0 -508
  661. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/html-tailwind.yaml +0 -543
  662. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/nextjs.yaml +0 -515
  663. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/nuxt-ui.yaml +0 -519
  664. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/nuxtjs.yaml +0 -599
  665. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/react-native.yaml +0 -496
  666. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/react.yaml +0 -526
  667. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/shadcn.yaml +0 -616
  668. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/svelte.yaml +0 -520
  669. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/swiftui.yaml +0 -486
  670. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/vue.yaml +0 -485
  671. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/styles.yaml +0 -1473
  672. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/typography.yaml +0 -647
  673. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/ui-reasoning.yaml +0 -1019
  674. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/ux-guidelines.yaml +0 -1009
  675. package/.agent/skills/cross-cutting/ui-ux-pro-max/data/web-interface.yaml +0 -347
  676. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/__pycache__/core.cpython-310.pyc +0 -0
  677. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/__pycache__/core.cpython-314.pyc +0 -0
  678. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc +0 -0
  679. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/core.py +0 -393
  680. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/core_legacy.py +0 -303
  681. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/design_system.py +0 -496
  682. package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/search.py +0 -76
  683. package/.agent/skills/devops/aws/ADVANCED.md +0 -547
  684. package/.agent/skills/devops/aws/SKILL.md +0 -711
  685. package/.agent/skills/devops/ci-cd/ADVANCED.md +0 -529
  686. package/.agent/skills/devops/ci-cd/SKILL.md +0 -821
  687. package/.agent/skills/devops/docker/ADVANCED.md +0 -495
  688. package/.agent/skills/devops/docker/SKILL.md +0 -653
  689. package/.agent/skills/devops/kubernetes/ADVANCED.md +0 -252
  690. package/.agent/skills/devops/kubernetes/SKILL.md +0 -621
  691. /package/.agent/core/{ARCH_REGISTRY.yaml → reference/ARCH_REGISTRY.yaml} +0 -0
  692. /package/.agent/core/{BRANDING.yaml → reference/BRANDING.yaml} +0 -0
  693. /package/.agent/core/{HSA.yaml → reference/HSA.yaml} +0 -0
  694. /package/.agent/core/{TEMPLATES.yaml → reference/TEMPLATES.yaml} +0 -0
  695. /package/.agent/rules/{incremental-changes.md → archive/incremental-changes.md} +0 -0
  696. /package/.agent/rules/{shell-commands.md → archive/shell-commands.md} +0 -0
  697. /package/.agent/skills/{cross-cutting → devops}/aws/data/ai_ml.yaml +0 -0
  698. /package/.agent/skills/{cross-cutting → devops}/aws/data/compute.yaml +0 -0
  699. /package/.agent/skills/{cross-cutting → devops}/aws/data/kubernetes.yaml +0 -0
  700. /package/.agent/skills/{cross-cutting → devops}/aws/data/storage.yaml +0 -0
  701. /package/.agent/skills/{cross-cutting → devops}/ci-cd/data/github_actions.yaml +0 -0
  702. /package/.agent/skills/{cross-cutting → devops}/ci-cd/data/security.yaml +0 -0
  703. /package/.agent/skills/{cross-cutting → devops}/docker/data/build.yaml +0 -0
  704. /package/.agent/skills/{cross-cutting → devops}/docker/data/compose.yaml +0 -0
  705. /package/.agent/skills/{cross-cutting → devops}/docker/data/security.yaml +0 -0
  706. /package/.agent/skills/{cross-cutting → devops}/kubernetes/data/networking.yaml +0 -0
  707. /package/.agent/skills/{cross-cutting → devops}/kubernetes/data/scheduling.yaml +0 -0
  708. /package/.agent/skills/{cross-cutting → devops}/kubernetes/data/security.yaml +0 -0
  709. /package/.agent/skills/{cross-cutting → devops}/kubernetes/data/workloads.yaml +0 -0
@@ -0,0 +1,685 @@
1
+ metadata:
2
+ skill: domyh-design
3
+ domain: webview_animation_optimization
4
+ version: 6.2.1
5
+ updated: "2026-02-12"
6
+ description: "C++ WebView2, QtWebEngine, Tauri — single-EXE, embedded resources, GPU-only CSS/JS animation rules"
7
+ patterns_count: 32
8
+ columns:
9
+ - platform
10
+ - technique
11
+ - description
12
+ - code_example
13
+ - performance_rating
14
+ - avoid
15
+
16
+ patterns:
17
+ # ── WebView2 Single-EXE Deployment ────────────────────────────
18
+
19
+ - id: wv_001
20
+ platform: webview2
21
+ technique: Static link WebView2Loader
22
+ category: deployment
23
+ description: >
24
+ Loại bỏ WebView2Loader.dll riêng bằng cách static link vào executable.
25
+ Exe sẽ tự link mà không cần DLL bên ngoài.
26
+ code_example: |
27
+ <!-- .vcxproj / PropertyGroup -->
28
+ <WebView2LoaderPreference>Static</WebView2LoaderPreference>
29
+
30
+ <!-- OR NuGet: Microsoft.Web.WebView2 tự hỗ trợ static linking -->
31
+ performance_rating: "5"
32
+ avoid: Không static link khi cần update WebView2Loader riêng biệt
33
+
34
+ - id: wv_002
35
+ platform: webview2
36
+ technique: WebResourceRequested event
37
+ category: resource-embedding
38
+ description: >
39
+ Serve HTML/CSS/JS từ memory thay vì file system.
40
+ Embed web content vào .rc resource file, load tại runtime qua virtual URL scheme.
41
+ code_example: |
42
+ // C++ — Register filter cho custom scheme
43
+ webviewWindow->AddWebResourceRequestedFilter(
44
+ L"https://app.local/*",
45
+ COREWEBVIEW2_WEB_RESOURCE_CONTEXT_ALL);
46
+
47
+ webviewWindow->add_WebResourceRequested(
48
+ Callback<ICoreWebView2WebResourceRequestedEventHandler>(
49
+ [](ICoreWebView2* sender, ICoreWebView2WebResourceRequestedEventArgs* args) -> HRESULT {
50
+ // Load from embedded resource
51
+ wil::com_ptr<ICoreWebView2WebResourceResponse> response;
52
+ HRSRC hRes = FindResource(hInstance, MAKEINTRESOURCE(IDR_INDEX_HTML), RT_RCDATA);
53
+ HGLOBAL hData = LoadResource(hInstance, hRes);
54
+ DWORD size = SizeofResource(hInstance, hRes);
55
+
56
+ auto stream = SHCreateMemStream((BYTE*)LockResource(hData), size);
57
+ environment->CreateWebResourceResponse(stream, 200, L"OK",
58
+ L"Content-Type: text/html", &response);
59
+ args->put_Response(response.get());
60
+ return S_OK;
61
+ }).Get(), nullptr);
62
+ performance_rating: "5"
63
+ avoid: Không dùng cho web content phức tạp cần hot-reload trong dev
64
+
65
+ - id: wv_003
66
+ platform: webview2
67
+ technique: NavigateToString
68
+ category: resource-embedding
69
+ description: >
70
+ Cho inline HTML đơn giản — load trực tiếp HTML string vào WebView2.
71
+ Không hỗ trợ external resource (CSS/JS link phải inline).
72
+ code_example: |
73
+ // C++ — Inline HTML
74
+ webviewWindow->NavigateToString(
75
+ L"<html><head><style>body{margin:0;font-family:system-ui}</style></head>"
76
+ L"<body><h1>Hello WebView2</h1></body></html>");
77
+ performance_rating: "4"
78
+ avoid: Không dùng khi cần load external CSS/JS files
79
+
80
+ - id: wv_004
81
+ platform: webview2
82
+ technique: SetVirtualHostNameToFolderMapping
83
+ category: resource-embedding
84
+ description: >
85
+ Map thư mục local thành virtual hostname.
86
+ Web content access qua URL thay vì file:// protocol.
87
+ code_example: |
88
+ // C++ — Map local folder
89
+ webviewWindow3->SetVirtualHostNameToFolderMapping(
90
+ L"app.local",
91
+ L"C:\\path\\to\\web\\assets",
92
+ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND_ALLOW);
93
+
94
+ // Navigate
95
+ webviewWindow->Navigate(L"https://app.local/index.html");
96
+ performance_rating: "4"
97
+ avoid: Không dùng cho production single-exe (file cần tồn tại trên disk)
98
+
99
+ - id: wv_005
100
+ platform: webview2
101
+ technique: Evergreen WebView2 Runtime
102
+ category: deployment
103
+ description: >
104
+ Dùng Microsoft Edge WebView2 Runtime đã cài sẵn trên Windows 10/11.
105
+ Không cần bundle browser engine — giảm exe size đáng kể.
106
+ code_example: |
107
+ // Check runtime availability
108
+ LPWSTR versionInfo;
109
+ HRESULT hr = GetAvailableCoreWebView2BrowserVersionString(nullptr, &versionInfo);
110
+ if (FAILED(hr)) {
111
+ // Prompt user to install WebView2 Runtime
112
+ ShellExecute(nullptr, L"open",
113
+ L"https://go.microsoft.com/fwlink/p/?LinkId=2124703", nullptr, nullptr, SW_SHOW);
114
+ }
115
+ performance_rating: "5"
116
+ avoid: Nếu target Windows 7/8 (không có Evergreen)
117
+
118
+ - id: wv_006
119
+ platform: webview2
120
+ technique: webview/webview header-only library
121
+ category: lightweight-alternative
122
+ description: >
123
+ Header-only C/C++ library cho WebView — binary output từ 48KB.
124
+ Cross-platform: WebView2 trên Windows, WebKit trên macOS/Linux.
125
+ code_example: |
126
+ // C++ — Minimal webview app
127
+ #include "webview/webview.h"
128
+ int main() {
129
+ webview::webview w(true, nullptr);
130
+ w.set_title("My App");
131
+ w.set_size(800, 600, WEBVIEW_HINT_NONE);
132
+ w.set_html("<html><body><h1>Hello!</h1></body></html>");
133
+ w.run();
134
+ return 0;
135
+ }
136
+ // Compile: cl /EHsc /std:c++17 main.cpp /link WebView2Loader.lib
137
+ // Binary: ~48KB (without debug symbols)
138
+ performance_rating: "5"
139
+ avoid: Cần advanced WebView2 API features (WebResourceRequested, DevTools, etc.)
140
+
141
+ # ── CSS Animation cho Embedded WebView ────────────────────────
142
+
143
+ - id: wv_007
144
+ platform: webview-css
145
+ technique: GPU-only properties
146
+ category: css-performance
147
+ description: >
148
+ CHỈ animate transform và opacity — 2 property duy nhất GPU-accelerated.
149
+ Không trigger layout hoặc paint.
150
+ code_example: |
151
+ /* ✅ GPU-only — 60fps */
152
+ .animated { transition: transform 200ms ease, opacity 200ms ease; }
153
+ .animated:hover { transform: scale(1.05); opacity: 0.9; }
154
+
155
+ /* ❌ AVOID — triggers layout */
156
+ .bad { transition: width 200ms, height 200ms, top 200ms, left 200ms; }
157
+ performance_rating: "5"
158
+ avoid: width, height, top, left, margin, padding, border-width
159
+
160
+ - id: wv_008
161
+ platform: webview-css
162
+ technique: will-change thận trọng
163
+ category: css-performance
164
+ description: >
165
+ Dùng will-change để hint GPU compositing layer.
166
+ Chỉ apply khi element SẮP animate. Remove sau khi xong.
167
+ code_example: |
168
+ /* ✅ Correct: chỉ khi cần */
169
+ .will-animate:hover { will-change: transform; }
170
+ .will-animate.animating { will-change: transform, opacity; }
171
+
172
+ /* ❌ AVOID: global will-change */
173
+ * { will-change: transform; } /* GPU memory explosion */
174
+ performance_rating: conditional
175
+ avoid: Overuse trên nhiều elements — consume GPU memory
176
+
177
+ - id: wv_009
178
+ platform: webview-css
179
+ technique: CSS transitions over JS animation
180
+ category: css-performance
181
+ description: >
182
+ CSS transitions chạy trên browser compositor thread — không block main thread.
183
+ Prefer CSS cho simple state changes.
184
+ code_example: |
185
+ /* ✅ CSS — compositor thread */
186
+ .btn { transition: transform 200ms ease; }
187
+ .btn:hover { transform: translateY(-2px); }
188
+
189
+ /* ❌ Nặng hơn — JS main thread */
190
+ // element.animate([{transform:'translateY(0)'},{transform:'translateY(-2px)'}], 200)
191
+ performance_rating: "5"
192
+ avoid: Dùng JS animation cho simple hover effects
193
+
194
+ - id: wv_010
195
+ platform: webview-css
196
+ technique: Inline CSS cho single-page embed
197
+ category: css-performance
198
+ description: >
199
+ Khi embed trong WebView, inline CSS giảm HTTP request.
200
+ Tối ưu cho single-page apps.
201
+ code_example: |
202
+ <style>
203
+ /* All CSS inline — no external request */
204
+ :root { --primary: #3b82f6; --bg: #0f172a; }
205
+ body { margin: 0; font-family: system-ui; background: var(--bg); }
206
+ .animated { transition: transform 200ms ease; }
207
+ </style>
208
+ performance_rating: "5"
209
+ avoid: Khi CSS > 50KB (tách file và cache)
210
+
211
+ - id: wv_011
212
+ platform: webview-css
213
+ technique: Avoid layout animations
214
+ category: css-avoid
215
+ description: >
216
+ Layout properties trigger expensive reflow.
217
+ Dùng transform thay thế.
218
+ code_example: |
219
+ /* ❌ Layout animation — triggers reflow */
220
+ .sidebar { width: 0; transition: width 300ms; }
221
+ .sidebar.open { width: 280px; }
222
+
223
+ /* ✅ Transform — GPU only */
224
+ .sidebar { transform: translateX(-100%); transition: transform 300ms; }
225
+ .sidebar.open { transform: translateX(0); }
226
+ performance_rating: "5"
227
+ avoid: ALWAYS avoid animating width/height/top/left/margin
228
+
229
+ - id: wv_012
230
+ platform: webview-css
231
+ technique: Avoid box-shadow animation
232
+ category: css-avoid
233
+ description: >
234
+ box-shadow animation triggers paint on every frame.
235
+ Dùng pseudo-element với opacity thay thế.
236
+ code_example: |
237
+ /* ❌ Paint every frame */
238
+ .card { transition: box-shadow 300ms; }
239
+ .card:hover { box-shadow: 0 8px 24px rgba(0,0,0,0.2); }
240
+
241
+ /* ✅ Opacity only — GPU */
242
+ .card::after {
243
+ content: ''; position: absolute; inset: 0;
244
+ box-shadow: 0 8px 24px rgba(0,0,0,0.2);
245
+ opacity: 0; transition: opacity 300ms;
246
+ }
247
+ .card:hover::after { opacity: 1; }
248
+ performance_rating: "5"
249
+ avoid: Direct box-shadow transition
250
+
251
+ # ── JavaScript cho Embedded WebView ───────────────────────────
252
+
253
+ - id: wv_013
254
+ platform: webview-js
255
+ technique: requestAnimationFrame
256
+ category: js-performance
257
+ description: >
258
+ Dùng rAF cho mọi JS animation — sync với display refresh rate.
259
+ Tự pause khi tab inactive — tiết kiệm battery.
260
+ code_example: |
261
+ function animate(timestamp) {
262
+ // Update animation state
263
+ element.style.transform = `translateX(${progress}px)`;
264
+ if (!done) requestAnimationFrame(animate);
265
+ }
266
+ requestAnimationFrame(animate);
267
+ performance_rating: "5"
268
+ avoid: setInterval/setTimeout cho animation
269
+
270
+ - id: wv_014
271
+ platform: webview-js
272
+ technique: Avoid heavy DOM operations during animation
273
+ category: js-avoid
274
+ description: >
275
+ Không đọc layout properties (offsetWidth, getBoundingClientRect) trong animation frame.
276
+ Layout thrashing kills performance.
277
+ code_example: |
278
+ /* ❌ Layout thrashing */
279
+ function animate() {
280
+ const width = element.offsetWidth; // Force layout!
281
+ element.style.transform = `translateX(${width}px)`;
282
+ requestAnimationFrame(animate);
283
+ }
284
+
285
+ /* ✅ Cache layout reads */
286
+ const width = element.offsetWidth; // Read once before loop
287
+ function animate() {
288
+ element.style.transform = `translateX(${width}px)`;
289
+ requestAnimationFrame(animate);
290
+ }
291
+ performance_rating: "5"
292
+ avoid: Reading layout properties inside rAF loop
293
+
294
+ - id: wv_015
295
+ platform: webview-js
296
+ technique: Web Animation API (WAAPI)
297
+ category: js-performance
298
+ description: >
299
+ Native browser API — no library needed.
300
+ Runs on compositor thread like CSS animations.
301
+ code_example: |
302
+ element.animate([
303
+ { transform: 'translateY(0)', opacity: 1 },
304
+ { transform: 'translateY(-20px)', opacity: 0 }
305
+ ], {
306
+ duration: 300,
307
+ easing: 'ease-out',
308
+ fill: 'forwards'
309
+ });
310
+ performance_rating: "5"
311
+ avoid: Nếu cần timeline orchestration (dùng GSAP)
312
+
313
+ # ── Tailwind CSS Purge cho WebView ────────────────────────────
314
+
315
+ - id: wv_016
316
+ platform: tailwind-webview
317
+ technique: Tailwind JIT + content purge
318
+ category: css-optimization
319
+ description: >
320
+ Tailwind CSS JIT mode + content config → output CSS ~10KB cho production.
321
+ Critical cho embedded WebView — giảm memory usage.
322
+ code_example: |
323
+ /* tailwind.config.js */
324
+ module.exports = {
325
+ content: ['./src/**/*.{html,js}'], /* Chỉ scan files thực tế */
326
+ theme: {
327
+ extend: {
328
+ /* Chỉ extend cần thiết */
329
+ },
330
+ },
331
+ }
332
+ /* Build: npx tailwindcss -o styles.css --minify */
333
+ /* Output: ~8-12KB cho typical single-page app */
334
+ performance_rating: "5"
335
+ avoid: Không include toàn bộ Tailwind (3MB+) trong embedded app
336
+
337
+ - id: wv_017
338
+ platform: tailwind-webview
339
+ technique: Critical CSS extraction
340
+ category: css-optimization
341
+ description: >
342
+ Extract chỉ CSS cần cho above-the-fold content.
343
+ Inline vào HTML, defer phần còn lại.
344
+ code_example: |
345
+ /* Use critters or critical to extract */
346
+ /* npm install critters */
347
+ /* Vite plugin: vite-plugin-critical */
348
+ /* Result: ~2-5KB inline CSS for first paint */
349
+ performance_rating: "5"
350
+ avoid: Khi toàn bộ CSS đã nhỏ (< 15KB)
351
+
352
+ # ── Tauri Integration ─────────────────────────────────────────
353
+
354
+ - id: wv_018
355
+ platform: tauri
356
+ technique: Tauri v2 embedded webview
357
+ category: deployment
358
+ description: >
359
+ Tauri dùng WebView2 trên Windows (same engine as native WebView2 apps).
360
+ CSS animation performance identical. Binary size ~3-5MB (vs Electron ~150MB).
361
+ code_example: |
362
+ /* Tauri uses system WebView2 — same CSS/JS performance */
363
+ /* Key advantage: smaller binary, Rust security */
364
+
365
+ // tauri.conf.json
366
+ {
367
+ "build": {
368
+ "distDir": "../dist", // Web assets
369
+ "devPath": "http://localhost:3000"
370
+ },
371
+ "bundle": {
372
+ "active": true,
373
+ "targets": ["nsis", "msi"] // Windows installer
374
+ }
375
+ }
376
+ performance_rating: "5"
377
+ avoid: Khi cần WebView2-specific APIs (dùng native C++ trực tiếp)
378
+
379
+ - id: wv_019
380
+ platform: tauri
381
+ technique: Tauri IPC cho native features
382
+ category: integration
383
+ description: >
384
+ Gọi Rust backend từ frontend JS cho heavy computation.
385
+ Giữ animation logic hoàn toàn trong web layer.
386
+ code_example: |
387
+ // Frontend (JS)
388
+ import { invoke } from '@tauri-apps/api/core';
389
+ const result = await invoke('process_data', { input: data });
390
+
391
+ // Backend (Rust)
392
+ #[tauri::command]
393
+ fn process_data(input: String) -> String {
394
+ // Heavy computation here — not in JS
395
+ format!("Processed: {}", input)
396
+ }
397
+ performance_rating: "5"
398
+ avoid: Không dùng IPC cho simple UI state
399
+
400
+ # ── QtWebEngine Integration ──────────────────────────────────
401
+
402
+ - id: wv_020
403
+ platform: qtwebengine
404
+ technique: QtWebEngine CSS animation
405
+ category: css-performance
406
+ description: >
407
+ QtWebEngine dùng Chromium — cùng CSS animation engine với Chrome.
408
+ Tuy nhiên JS animation có thể chậm hơn native browser do overhead.
409
+ code_example: |
410
+ // QML — Load web content
411
+ WebEngineView {
412
+ url: "qrc:///web/index.html" // Embedded in Qt resources
413
+ settings.javascriptEnabled: true
414
+ }
415
+ performance_rating: "4"
416
+ avoid: Complex JS animation logic — prefer CSS transitions
417
+
418
+ - id: wv_021
419
+ platform: qtwebengine
420
+ technique: Qt Resource System (qrc)
421
+ category: resource-embedding
422
+ description: >
423
+ Embed HTML/CSS/JS trong Qt resource file (.qrc).
424
+ Access qua qrc:// protocol — compiled vào binary.
425
+ code_example: |
426
+ // resources.qrc
427
+ <RCC>
428
+ <qresource prefix="/web">
429
+ <file>index.html</file>
430
+ <file>styles.css</file>
431
+ <file>app.js</file>
432
+ </qresource>
433
+ </RCC>
434
+
435
+ // QML
436
+ WebEngineView {
437
+ url: "qrc:///web/index.html"
438
+ }
439
+ performance_rating: "5"
440
+ avoid: Khi web content cần hot-reload trong development
441
+
442
+ # ── Performance Measurement ───────────────────────────────────
443
+
444
+ - id: wv_022
445
+ platform: all-webview
446
+ technique: Performance API measurement
447
+ category: monitoring
448
+ description: >
449
+ Dùng Performance API để measure animation frame timing trong WebView.
450
+ code_example: |
451
+ // Measure animation frame timing
452
+ let lastTime = 0;
453
+ let frameCount = 0;
454
+ function measureFPS(timestamp) {
455
+ frameCount++;
456
+ if (timestamp - lastTime >= 1000) {
457
+ console.log(`FPS: ${frameCount}`);
458
+ frameCount = 0;
459
+ lastTime = timestamp;
460
+ }
461
+ requestAnimationFrame(measureFPS);
462
+ }
463
+ requestAnimationFrame(measureFPS);
464
+
465
+ // Measure specific animation
466
+ performance.mark('animation-start');
467
+ // ... animation ...
468
+ performance.mark('animation-end');
469
+ performance.measure('animation', 'animation-start', 'animation-end');
470
+ performance_rating: diagnostic
471
+ avoid: Để trong production code
472
+
473
+ # ── prefers-reduced-motion ────────────────────────────────────
474
+
475
+ - id: wv_023
476
+ platform: all-webview
477
+ technique: Respect prefers-reduced-motion
478
+ category: accessibility
479
+ description: >
480
+ Bắt buộc cho mọi embedded WebView app. Disable animations cho users.
481
+ code_example: |
482
+ @media (prefers-reduced-motion: reduce) {
483
+ *, *::before, *::after {
484
+ animation-duration: 0.01ms !important;
485
+ animation-iteration-count: 1 !important;
486
+ transition-duration: 0.01ms !important;
487
+ }
488
+ }
489
+
490
+ /* JS check */
491
+ const reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
492
+ performance_rating: "5"
493
+ avoid: NEVER skip — accessibility requirement
494
+
495
+ # ── WebView Memory Optimization ───────────────────────────────
496
+
497
+ - id: wv_024
498
+ platform: all-webview
499
+ technique: Dispose off-screen WebView
500
+ category: memory
501
+ description: >
502
+ Khi WebView không visible — pause hoặc dispose.
503
+ WebView2 memory footprint ~80-150MB.
504
+ code_example: |
505
+ // C++ WebView2 — Visibility change
506
+ webviewController->put_IsVisible(FALSE); // Reduce memory when hidden
507
+
508
+ // Tauri — WebView visibility
509
+ // Handled automatically by window minimize
510
+
511
+ // Qt — Visibility
512
+ webEngineView->setVisible(false);
513
+ performance_rating: "4"
514
+ avoid: Dispose khi user có thể quay lại nhanh
515
+
516
+ # ── Resource Loading Strategy ─────────────────────────────────
517
+
518
+ - id: wv_025
519
+ platform: all-webview
520
+ technique: Preload critical resources
521
+ category: loading
522
+ description: >
523
+ Preload fonts, critical CSS inline, defer non-critical JS.
524
+ code_example: |
525
+ <head>
526
+ <!-- Critical CSS inline -->
527
+ <style>/* critical styles */</style>
528
+
529
+ <!-- Preload fonts -->
530
+ <link rel="preload" href="font.woff2" as="font" type="font/woff2" crossorigin>
531
+
532
+ <!-- Defer non-critical JS -->
533
+ <script src="app.js" defer></script>
534
+ </head>
535
+ performance_rating: "5"
536
+ avoid: Preload quá nhiều resource cùng lúc
537
+
538
+ # ── Single Page Embedded App Template ─────────────────────────
539
+
540
+ - id: wv_026
541
+ platform: webview2
542
+ technique: Complete single-page embed template
543
+ category: template
544
+ description: >
545
+ Template đầy đủ cho single-page C++ WebView2 app
546
+ với inline CSS, GPU-only animation, dark mode.
547
+ code_example: |
548
+ <!DOCTYPE html>
549
+ <html lang="en">
550
+ <head>
551
+ <meta charset="UTF-8">
552
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
553
+ <style>
554
+ :root {
555
+ --bg: #0f172a; --surface: #1e293b; --text: #e2e8f0;
556
+ --primary: #3b82f6; --primary-glow: rgba(59,130,246,0.3);
557
+ }
558
+ * { margin: 0; padding: 0; box-sizing: border-box; }
559
+ body { background: var(--bg); color: var(--text); font-family: system-ui; }
560
+
561
+ /* GPU-only transitions */
562
+ .card {
563
+ background: var(--surface); border-radius: 12px; padding: 24px;
564
+ transition: transform 200ms ease, opacity 200ms ease;
565
+ }
566
+ .card:hover { transform: translateY(-2px); }
567
+
568
+ .btn {
569
+ background: var(--primary); color: white; border: none;
570
+ padding: 10px 20px; border-radius: 8px; cursor: pointer;
571
+ transition: transform 150ms ease;
572
+ }
573
+ .btn:hover { transform: scale(1.02); }
574
+ .btn:active { transform: scale(0.98); }
575
+
576
+ @media (prefers-reduced-motion: reduce) {
577
+ *, *::before, *::after {
578
+ animation-duration: 0.01ms !important;
579
+ transition-duration: 0.01ms !important;
580
+ }
581
+ }
582
+ </style>
583
+ </head>
584
+ <body>
585
+ <div class="card">
586
+ <h1>WebView2 App</h1>
587
+ <button class="btn">Action</button>
588
+ </div>
589
+ </body>
590
+ </html>
591
+ performance_rating: "5"
592
+ avoid: Dùng như reference, customize theo nhu cầu
593
+
594
+ # ── Font Loading cho Embedded ─────────────────────────────────
595
+
596
+ - id: wv_027
597
+ platform: all-webview
598
+ technique: System font stack
599
+ category: fonts
600
+ description: >
601
+ Dùng system fonts — không cần load font files.
602
+ Fastest font rendering, zero network/resource overhead.
603
+ code_example: |
604
+ body {
605
+ font-family:
606
+ system-ui, -apple-system, BlinkMacSystemFont,
607
+ 'Segoe UI', Roboto, 'Helvetica Neue',
608
+ Arial, sans-serif;
609
+ }
610
+ code, pre {
611
+ font-family:
612
+ 'Cascadia Code', 'Fira Code', 'JetBrains Mono',
613
+ Consolas, monospace;
614
+ }
615
+ performance_rating: "5"
616
+ avoid: Khi brand font là yêu cầu bắt buộc
617
+
618
+ # ── WebView2 Security for Embedded Content ────────────────────
619
+
620
+ - id: wv_028
621
+ platform: webview2
622
+ technique: Disable unnecessary features
623
+ category: security
624
+ description: >
625
+ Disable features không cần trong embedded app để giảm attack surface.
626
+ code_example: |
627
+ // C++ — Disable dev tools, context menu, etc.
628
+ ICoreWebView2Settings* settings;
629
+ webviewWindow->get_Settings(&settings);
630
+ settings->put_IsScriptEnabled(TRUE); // Keep for app logic
631
+ settings->put_AreDefaultScriptDialogsEnabled(FALSE);
632
+ settings->put_AreDevToolsEnabled(FALSE); // Disable in production
633
+ settings->put_IsStatusBarEnabled(FALSE);
634
+ settings->put_AreDefaultContextMenusEnabled(FALSE);
635
+ settings->put_AreHostObjectsAllowed(FALSE); // Unless needed
636
+ performance_rating: security
637
+ avoid: Disable IsScriptEnabled nếu app cần JS
638
+
639
+ # ── Comparison Matrix ─────────────────────────────────────────
640
+
641
+ comparison:
642
+ title: WebView Embedded App — Framework Comparison
643
+ columns: [aspect, webview2_native, tauri, qtwebengine, electron]
644
+ rows:
645
+ - aspect: Binary size (min)
646
+ webview2_native: ~2MB
647
+ tauri: ~3-5MB
648
+ qtwebengine: ~50MB+
649
+ electron: ~150MB+
650
+
651
+ - aspect: CSS animation perf
652
+ webview2_native: Chromium native
653
+ tauri: Same (WebView2 on Windows)
654
+ qtwebengine: Chromium (slight overhead)
655
+ electron: Chromium native
656
+
657
+ - aspect: Single EXE possible
658
+ webview2_native: "Yes (static link)"
659
+ tauri: "Yes (NSIS/MSI)"
660
+ qtwebengine: "Yes (windeployqt)"
661
+ electron: "Yes (electron-builder)"
662
+
663
+ - aspect: Memory usage
664
+ webview2_native: ~80-100MB
665
+ tauri: ~80-100MB
666
+ qtwebengine: ~120-200MB
667
+ electron: ~200-400MB
668
+
669
+ - aspect: Embed resources
670
+ webview2_native: WebResourceRequested / .rc
671
+ tauri: Built-in (distDir)
672
+ qtwebengine: Qt Resources (.qrc)
673
+ electron: "asar archive"
674
+
675
+ - aspect: Runtime dependency
676
+ webview2_native: Evergreen WebView2
677
+ tauri: Evergreen WebView2
678
+ qtwebengine: Bundled Chromium
679
+ electron: Bundled Chromium
680
+
681
+ - aspect: Cross-platform
682
+ webview2_native: Windows only
683
+ tauri: Windows/macOS/Linux
684
+ qtwebengine: Windows/macOS/Linux
685
+ electron: Windows/macOS/Linux