@haposoft/cafekit 0.16.0-rc.7 β†’ 0.16.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 (299) hide show
  1. package/README.md +116 -27
  2. package/bin/__tests__/codex-hooks-ownership.test.js +239 -0
  3. package/bin/__tests__/codex-hooks.test.js +295 -0
  4. package/bin/__tests__/codex-native.test.js +2289 -34
  5. package/bin/__tests__/develop-contract.test.js +400 -23
  6. package/bin/__tests__/installer-safety.test.js +3 -3
  7. package/bin/__tests__/optional-skill-inventory.test.js +249 -0
  8. package/bin/__tests__/output-styles.test.js +214 -0
  9. package/bin/__tests__/package-inventory.test.js +2131 -16
  10. package/bin/__tests__/runtime-schema.test.js +111 -0
  11. package/bin/__tests__/secret-output-guardrail.test.js +122 -0
  12. package/bin/__tests__/skill-routing-source.test.js +172 -0
  13. package/bin/__tests__/specs-v2-execution-closeout.test.js +1 -1
  14. package/bin/install.js +10 -0
  15. package/bin/lib/codex-install.js +170 -5
  16. package/bin/lib/context.js +14 -0
  17. package/bin/lib/i18n.js +12 -6
  18. package/bin/lib/skill-deps.js +5 -5
  19. package/bin/phases/claude-runtime.js +23 -0
  20. package/bin/phases/claude-settings.js +8 -0
  21. package/bin/phases/codex-hooks.js +156 -0
  22. package/bin/phases/codex-runtime.js +29 -38
  23. package/bin/phases/copy-payload.js +8 -2
  24. package/bin/phases/select-skill-bundles.js +96 -0
  25. package/bin/phases/skill-inventory.js +71 -0
  26. package/bin/phases/skills-setup.js +9 -2
  27. package/bin/phases/write-metadata.js +8 -5
  28. package/package.json +8 -2
  29. package/src/claude/CLAUDE.md +3 -3
  30. package/src/claude/agents/brainstormer.md +52 -69
  31. package/src/claude/agents/code-auditor.md +32 -14
  32. package/src/claude/agents/debugger.md +35 -20
  33. package/src/claude/agents/deployer.md +12 -5
  34. package/src/claude/agents/docs-keeper.md +11 -1
  35. package/src/claude/agents/implementer.md +25 -13
  36. package/src/claude/agents/inspector.md +6 -3
  37. package/src/claude/agents/project-manager.md +1 -1
  38. package/src/claude/agents/researcher.md +26 -55
  39. package/src/claude/agents/spec-maker.md +24 -13
  40. package/src/claude/agents/strategist.md +52 -0
  41. package/src/claude/agents/test-runner.md +117 -132
  42. package/src/claude/agents/ui-ux-designer.md +1 -1
  43. package/src/claude/hooks/__tests__/fixtures/statusline-default.golden +1 -0
  44. package/src/claude/hooks/__tests__/precompact.test.js +158 -0
  45. package/src/claude/hooks/__tests__/spec-gate.test.js +87 -4
  46. package/src/claude/hooks/__tests__/state.test.js +254 -3
  47. package/src/claude/hooks/__tests__/statusline.test.js +196 -0
  48. package/src/claude/hooks/agent.cjs +1 -1
  49. package/src/claude/hooks/docs-sync.cjs +12 -10
  50. package/src/claude/hooks/inspect-block.cjs +1 -1
  51. package/src/claude/hooks/lib/config.cjs +3 -0
  52. package/src/claude/hooks/lib/hook-state-dir.cjs +39 -0
  53. package/src/claude/hooks/lib/secret-keywords.cjs +42 -0
  54. package/src/claude/hooks/precompact.cjs +105 -0
  55. package/src/claude/hooks/rules.cjs +1 -1
  56. package/src/claude/hooks/secret-output-guardrail.cjs +43 -0
  57. package/src/claude/hooks/session.cjs +27 -1
  58. package/src/claude/hooks/spec-gate.cjs +3 -3
  59. package/src/claude/hooks/spec-state.cjs +32 -5
  60. package/src/claude/hooks/state.cjs +1 -1
  61. package/src/claude/hooks/task-scaffold-guard.cjs +1 -1
  62. package/src/claude/hooks/usage.cjs +1 -1
  63. package/src/claude/migration-manifest.json +29 -15
  64. package/src/claude/output-styles/coding-level-0-eli5.md +103 -0
  65. package/src/claude/output-styles/coding-level-1-junior.md +124 -0
  66. package/src/claude/output-styles/coding-level-2-mid.md +146 -0
  67. package/src/claude/output-styles/coding-level-3-senior.md +148 -0
  68. package/src/claude/output-styles/coding-level-4-lead.md +159 -0
  69. package/src/claude/output-styles/coding-level-5-god.md +91 -0
  70. package/src/claude/references/debugger/core-philosophy.md +5 -3
  71. package/src/claude/references/debugger/frontend-verification.md +2 -2
  72. package/src/claude/references/debugger/log-ci-analysis.md +13 -1
  73. package/src/claude/references/debugger/parallel-agent-hydration.md +19 -34
  74. package/src/claude/references/debugger/performance-diagnostics.md +2 -2
  75. package/src/claude/references/debugger/root-cause-tracing.md +37 -6
  76. package/src/claude/references/debugger/side-effect-gate.md +3 -1
  77. package/src/claude/references/debugger/verification-protocol.md +13 -12
  78. package/src/claude/rules/orchestrator.md +7 -1
  79. package/src/claude/rules/process-management.md +39 -0
  80. package/src/claude/rules/review-audit-self-decision.md +48 -0
  81. package/src/claude/rules/skill-domain-routing.md +26 -24
  82. package/src/claude/rules/skill-workflow-routing.md +22 -14
  83. package/src/claude/rules/workflow.md +3 -3
  84. package/src/claude/runtime.json +1 -0
  85. package/src/claude/runtime.schema.json +205 -0
  86. package/src/claude/scripts/generate-skill-catalog.cjs +156 -122
  87. package/src/claude/scripts/provenance.cjs +18 -5
  88. package/src/claude/scripts/spec-receipt.cjs +76 -21
  89. package/src/claude/scripts/spec-resolver.cjs +144 -4
  90. package/src/claude/scripts/workflow-policy.cjs +1 -1
  91. package/src/claude/settings/settings.json +16 -0
  92. package/src/claude/skills/agent-browser/SKILL.md +1 -1
  93. package/src/claude/skills/ai-multimodal/SKILL.md +1 -1
  94. package/src/claude/skills/brainstorm/SKILL.md +193 -172
  95. package/src/claude/skills/brainstorm/references/question-framework.md +105 -167
  96. package/src/claude/skills/chrome-devtools/SKILL.md +1 -1
  97. package/src/claude/skills/code-review/SKILL.md +43 -25
  98. package/src/claude/skills/code-review/references/spec-compliance-review.md +3 -4
  99. package/src/claude/skills/code-review/references/verification-gate.md +1 -1
  100. package/src/claude/skills/debug/SKILL.md +48 -19
  101. package/src/claude/skills/delegate/SKILL.md +1 -1
  102. package/src/claude/skills/develop/SKILL.md +92 -65
  103. package/src/claude/skills/develop/references/parallel-waves.md +36 -63
  104. package/src/claude/skills/develop/references/quality-gate.md +31 -4
  105. package/src/claude/skills/develop/references/subagent-patterns.md +21 -7
  106. package/src/claude/skills/docs/SKILL.md +42 -23
  107. package/src/claude/skills/docs/references/init-workflow.md +4 -4
  108. package/src/claude/skills/docs/references/reconstruct-workflow.md +6 -6
  109. package/src/claude/skills/docs/references/standard-docs-workflow.md +6 -2
  110. package/src/claude/skills/docs/references/summarize-workflow.md +2 -2
  111. package/src/claude/skills/docs/references/update-workflow.md +9 -7
  112. package/src/claude/skills/docs/templates/requirements-as-is.md +1 -1
  113. package/src/claude/skills/docx/SKILL.md +1 -1
  114. package/src/claude/skills/git/SKILL.md +1 -1
  115. package/src/claude/skills/git/references/commit-protocols.md +1 -1
  116. package/src/claude/skills/git/references/finish-branch.md +1 -1
  117. package/src/claude/skills/hotfix/SKILL.md +159 -170
  118. package/src/claude/skills/hotfix/references/diagnosis-protocol.md +14 -9
  119. package/src/claude/skills/hotfix/references/parallel-patterns.md +27 -13
  120. package/src/claude/skills/hotfix/references/prevention-gate.md +5 -0
  121. package/src/claude/skills/hotfix/references/review-cycle.md +21 -15
  122. package/src/claude/skills/hotfix/references/workflow-specialized.md +53 -21
  123. package/src/claude/skills/inspect/SKILL.md +55 -46
  124. package/src/claude/skills/inspect/references/internal-inspection.md +21 -5
  125. package/src/claude/skills/loop/SKILL.md +114 -0
  126. package/src/claude/skills/loop/references/bounded-loop-protocol.md +104 -0
  127. package/src/claude/skills/loop/references/metric-and-guard-contract.md +76 -0
  128. package/src/claude/skills/pdf/SKILL.md +1 -1
  129. package/src/claude/skills/pptx/SKILL.md +1 -1
  130. package/src/claude/skills/question/SKILL.md +16 -13
  131. package/src/claude/skills/research/SKILL.md +70 -43
  132. package/src/claude/skills/route/SKILL.md +94 -0
  133. package/src/claude/skills/route/references/agent-timing.md +46 -0
  134. package/src/claude/skills/route/references/chaining-patterns.md +53 -0
  135. package/src/claude/skills/route/references/task-taxonomy.md +48 -0
  136. package/src/claude/skills/specs/SKILL.md +48 -57
  137. package/src/claude/skills/specs/references/review.md +26 -8
  138. package/src/claude/skills/specs/references/templates.md +76 -31
  139. package/src/claude/skills/specs/templates/requirements-init.md +1 -1
  140. package/src/claude/skills/specs/templates/research.md +2 -2
  141. package/src/claude/skills/sync/SKILL.md +6 -6
  142. package/src/claude/skills/sync/references/sync-protocols.md +1 -1
  143. package/src/claude/skills/test/SKILL.md +120 -120
  144. package/src/claude/skills/test/references/execution-strategy.md +208 -361
  145. package/src/claude/skills/test/references/failure-triage.md +55 -121
  146. package/src/claude/skills/test/references/test-memory.md +20 -34
  147. package/src/claude/skills/ui-ux-pro-max/SKILL.md +1 -1
  148. package/src/claude/skills/web-testing/SKILL.md +1 -1
  149. package/src/claude/skills/xlsx/SKILL.md +1 -1
  150. package/src/claude/status.cjs +135 -33
  151. package/src/codex/AGENTS.md +14 -4
  152. package/src/codex/hooks/docs-sync.cjs +8 -3
  153. package/src/codex/hooks/lib/hook-context.cjs +18 -4
  154. package/src/codex/hooks/rules.cjs +29 -1
  155. package/src/codex/hooks/secret-output-guardrail.cjs +30 -0
  156. package/src/codex/hooks/spec-gate.cjs +3 -8
  157. package/src/codex/hooks/spec-state.cjs +34 -5
  158. package/src/codex/hooks.json +5 -0
  159. package/src/codex/runtime.json +2 -0
  160. package/src/common/.env.example +1 -1
  161. package/src/claude/skills/backend-development/SKILL.md +0 -101
  162. package/src/claude/skills/backend-development/references/backend-api-design.md +0 -495
  163. package/src/claude/skills/backend-development/references/backend-architecture.md +0 -454
  164. package/src/claude/skills/backend-development/references/backend-authentication.md +0 -338
  165. package/src/claude/skills/backend-development/references/backend-code-quality.md +0 -659
  166. package/src/claude/skills/backend-development/references/backend-debugging.md +0 -904
  167. package/src/claude/skills/backend-development/references/backend-devops.md +0 -491
  168. package/src/claude/skills/backend-development/references/backend-mindset.md +0 -387
  169. package/src/claude/skills/backend-development/references/backend-performance.md +0 -397
  170. package/src/claude/skills/backend-development/references/backend-security.md +0 -342
  171. package/src/claude/skills/backend-development/references/backend-technologies.md +0 -256
  172. package/src/claude/skills/backend-development/references/backend-testing.md +0 -429
  173. package/src/claude/skills/devops/.env.example +0 -76
  174. package/src/claude/skills/devops/SKILL.md +0 -102
  175. package/src/claude/skills/devops/references/browser-rendering.md +0 -305
  176. package/src/claude/skills/devops/references/cloudflare-d1-kv.md +0 -123
  177. package/src/claude/skills/devops/references/cloudflare-platform.md +0 -271
  178. package/src/claude/skills/devops/references/cloudflare-r2-storage.md +0 -280
  179. package/src/claude/skills/devops/references/cloudflare-workers-advanced.md +0 -312
  180. package/src/claude/skills/devops/references/cloudflare-workers-apis.md +0 -309
  181. package/src/claude/skills/devops/references/cloudflare-workers-basics.md +0 -418
  182. package/src/claude/skills/devops/references/docker-basics.md +0 -297
  183. package/src/claude/skills/devops/references/docker-compose.md +0 -292
  184. package/src/claude/skills/devops/references/gcloud-platform.md +0 -297
  185. package/src/claude/skills/devops/references/gcloud-services.md +0 -304
  186. package/src/claude/skills/devops/references/kubernetes-basics.md +0 -95
  187. package/src/claude/skills/devops/references/kubernetes-helm-advanced.md +0 -70
  188. package/src/claude/skills/devops/references/kubernetes-helm.md +0 -81
  189. package/src/claude/skills/devops/references/kubernetes-kubectl.md +0 -74
  190. package/src/claude/skills/devops/references/kubernetes-security-advanced.md +0 -94
  191. package/src/claude/skills/devops/references/kubernetes-security.md +0 -89
  192. package/src/claude/skills/devops/references/kubernetes-troubleshooting-advanced.md +0 -74
  193. package/src/claude/skills/devops/references/kubernetes-troubleshooting.md +0 -49
  194. package/src/claude/skills/devops/references/kubernetes-workflows-advanced.md +0 -75
  195. package/src/claude/skills/devops/references/kubernetes-workflows.md +0 -76
  196. package/src/claude/skills/devops/scripts/cloudflare_deploy.py +0 -269
  197. package/src/claude/skills/devops/scripts/docker_optimize.py +0 -332
  198. package/src/claude/skills/devops/scripts/requirements.txt +0 -20
  199. package/src/claude/skills/devops/scripts/tests/requirements.txt +0 -3
  200. package/src/claude/skills/devops/scripts/tests/test_cloudflare_deploy.py +0 -285
  201. package/src/claude/skills/devops/scripts/tests/test_docker_optimize.py +0 -436
  202. package/src/claude/skills/frontend-design/SKILL.md +0 -135
  203. package/src/claude/skills/frontend-design/references/ai-multimodal-overview.md +0 -165
  204. package/src/claude/skills/frontend-design/references/analysis-best-practices.md +0 -80
  205. package/src/claude/skills/frontend-design/references/analysis-prompts.md +0 -141
  206. package/src/claude/skills/frontend-design/references/analysis-techniques.md +0 -118
  207. package/src/claude/skills/frontend-design/references/animejs.md +0 -396
  208. package/src/claude/skills/frontend-design/references/anti-slop-rules.md +0 -103
  209. package/src/claude/skills/frontend-design/references/asset-generation.md +0 -337
  210. package/src/claude/skills/frontend-design/references/bento-motion-engine.md +0 -142
  211. package/src/claude/skills/frontend-design/references/design-extraction-overview.md +0 -71
  212. package/src/claude/skills/frontend-design/references/extraction-best-practices.md +0 -141
  213. package/src/claude/skills/frontend-design/references/extraction-output-templates.md +0 -162
  214. package/src/claude/skills/frontend-design/references/extraction-prompts.md +0 -127
  215. package/src/claude/skills/frontend-design/references/magicui-components.md +0 -129
  216. package/src/claude/skills/frontend-design/references/performance-guardrails.md +0 -169
  217. package/src/claude/skills/frontend-design/references/premium-design-patterns.md +0 -93
  218. package/src/claude/skills/frontend-design/references/redesign-audit-checklist.md +0 -114
  219. package/src/claude/skills/frontend-design/references/technical-accessibility.md +0 -119
  220. package/src/claude/skills/frontend-design/references/technical-best-practices.md +0 -97
  221. package/src/claude/skills/frontend-design/references/technical-optimization.md +0 -44
  222. package/src/claude/skills/frontend-design/references/technical-overview.md +0 -90
  223. package/src/claude/skills/frontend-design/references/technical-workflows.md +0 -150
  224. package/src/claude/skills/frontend-design/references/visual-analysis-overview.md +0 -95
  225. package/src/claude/skills/frontend-design/references/workflow-3d.md +0 -102
  226. package/src/claude/skills/frontend-design/references/workflow-describe.md +0 -87
  227. package/src/claude/skills/frontend-design/references/workflow-immersive.md +0 -87
  228. package/src/claude/skills/frontend-design/references/workflow-quick.md +0 -57
  229. package/src/claude/skills/frontend-design/references/workflow-screenshot.md +0 -63
  230. package/src/claude/skills/frontend-design/references/workflow-video.md +0 -74
  231. package/src/claude/skills/frontend-development/SKILL.md +0 -406
  232. package/src/claude/skills/frontend-development/resources/common-patterns.md +0 -331
  233. package/src/claude/skills/frontend-development/resources/complete-examples.md +0 -872
  234. package/src/claude/skills/frontend-development/resources/component-patterns.md +0 -502
  235. package/src/claude/skills/frontend-development/resources/data-fetching.md +0 -767
  236. package/src/claude/skills/frontend-development/resources/file-organization.md +0 -502
  237. package/src/claude/skills/frontend-development/resources/loading-and-error-states.md +0 -501
  238. package/src/claude/skills/frontend-development/resources/performance.md +0 -406
  239. package/src/claude/skills/frontend-development/resources/routing-guide.md +0 -364
  240. package/src/claude/skills/frontend-development/resources/styling-guide.md +0 -428
  241. package/src/claude/skills/frontend-development/resources/typescript-standards.md +0 -418
  242. package/src/claude/skills/mobile-development/SKILL.md +0 -218
  243. package/src/claude/skills/mobile-development/references/mobile-android.md +0 -604
  244. package/src/claude/skills/mobile-development/references/mobile-best-practices.md +0 -544
  245. package/src/claude/skills/mobile-development/references/mobile-debugging.md +0 -1089
  246. package/src/claude/skills/mobile-development/references/mobile-frameworks.md +0 -465
  247. package/src/claude/skills/mobile-development/references/mobile-ios.md +0 -496
  248. package/src/claude/skills/mobile-development/references/mobile-mindset.md +0 -542
  249. package/src/claude/skills/react-best-practices/AGENTS.md +0 -2249
  250. package/src/claude/skills/react-best-practices/README.md +0 -123
  251. package/src/claude/skills/react-best-practices/SKILL.md +0 -128
  252. package/src/claude/skills/react-best-practices/metadata.json +0 -15
  253. package/src/claude/skills/react-best-practices/rules/_sections.md +0 -46
  254. package/src/claude/skills/react-best-practices/rules/_template.md +0 -28
  255. package/src/claude/skills/react-best-practices/rules/advanced-event-handler-refs.md +0 -55
  256. package/src/claude/skills/react-best-practices/rules/advanced-use-latest.md +0 -49
  257. package/src/claude/skills/react-best-practices/rules/async-api-routes.md +0 -38
  258. package/src/claude/skills/react-best-practices/rules/async-defer-await.md +0 -80
  259. package/src/claude/skills/react-best-practices/rules/async-dependencies.md +0 -36
  260. package/src/claude/skills/react-best-practices/rules/async-parallel.md +0 -28
  261. package/src/claude/skills/react-best-practices/rules/async-suspense-boundaries.md +0 -99
  262. package/src/claude/skills/react-best-practices/rules/bundle-barrel-imports.md +0 -59
  263. package/src/claude/skills/react-best-practices/rules/bundle-conditional.md +0 -31
  264. package/src/claude/skills/react-best-practices/rules/bundle-defer-third-party.md +0 -49
  265. package/src/claude/skills/react-best-practices/rules/bundle-dynamic-imports.md +0 -35
  266. package/src/claude/skills/react-best-practices/rules/bundle-preload.md +0 -50
  267. package/src/claude/skills/react-best-practices/rules/client-event-listeners.md +0 -74
  268. package/src/claude/skills/react-best-practices/rules/client-swr-dedup.md +0 -56
  269. package/src/claude/skills/react-best-practices/rules/js-batch-dom-css.md +0 -82
  270. package/src/claude/skills/react-best-practices/rules/js-cache-function-results.md +0 -80
  271. package/src/claude/skills/react-best-practices/rules/js-cache-property-access.md +0 -28
  272. package/src/claude/skills/react-best-practices/rules/js-cache-storage.md +0 -70
  273. package/src/claude/skills/react-best-practices/rules/js-combine-iterations.md +0 -32
  274. package/src/claude/skills/react-best-practices/rules/js-early-exit.md +0 -50
  275. package/src/claude/skills/react-best-practices/rules/js-hoist-regexp.md +0 -45
  276. package/src/claude/skills/react-best-practices/rules/js-index-maps.md +0 -37
  277. package/src/claude/skills/react-best-practices/rules/js-length-check-first.md +0 -49
  278. package/src/claude/skills/react-best-practices/rules/js-min-max-loop.md +0 -82
  279. package/src/claude/skills/react-best-practices/rules/js-set-map-lookups.md +0 -24
  280. package/src/claude/skills/react-best-practices/rules/js-tosorted-immutable.md +0 -57
  281. package/src/claude/skills/react-best-practices/rules/rendering-activity.md +0 -26
  282. package/src/claude/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -47
  283. package/src/claude/skills/react-best-practices/rules/rendering-conditional-render.md +0 -40
  284. package/src/claude/skills/react-best-practices/rules/rendering-content-visibility.md +0 -38
  285. package/src/claude/skills/react-best-practices/rules/rendering-hoist-jsx.md +0 -46
  286. package/src/claude/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +0 -82
  287. package/src/claude/skills/react-best-practices/rules/rendering-svg-precision.md +0 -28
  288. package/src/claude/skills/react-best-practices/rules/rerender-defer-reads.md +0 -39
  289. package/src/claude/skills/react-best-practices/rules/rerender-dependencies.md +0 -45
  290. package/src/claude/skills/react-best-practices/rules/rerender-derived-state.md +0 -29
  291. package/src/claude/skills/react-best-practices/rules/rerender-functional-setstate.md +0 -74
  292. package/src/claude/skills/react-best-practices/rules/rerender-lazy-state-init.md +0 -58
  293. package/src/claude/skills/react-best-practices/rules/rerender-memo.md +0 -44
  294. package/src/claude/skills/react-best-practices/rules/rerender-transitions.md +0 -40
  295. package/src/claude/skills/react-best-practices/rules/server-after-nonblocking.md +0 -73
  296. package/src/claude/skills/react-best-practices/rules/server-cache-lru.md +0 -41
  297. package/src/claude/skills/react-best-practices/rules/server-cache-react.md +0 -26
  298. package/src/claude/skills/react-best-practices/rules/server-parallel-fetching.md +0 -79
  299. package/src/claude/skills/react-best-practices/rules/server-serialization.md +0 -38
@@ -1,396 +0,0 @@
1
- # Anime.js v4 Reference Guide for AI Assistants
2
-
3
- ## 🚨 CRITICAL: ALWAYS USE ANIME.JS V4 SYNTAX 🚨
4
-
5
- **This project uses Anime.js v4.x.x - DO NOT use v3 syntax under any circumstances**
6
-
7
- **If you're about to write `import anime from 'animejs'` - STOP!**
8
- **That's v3. This project uses v4. Use the correct import below.**
9
-
10
- ## πŸš€ Quick Start - Essential Setup
11
-
12
- ### 1. Correct v4 Import (REQUIRED)
13
- ```javascript
14
- // βœ… CORRECT v4 imports
15
- import { animate, createTimeline, stagger, utils, svg, eases, engine } from 'animejs';
16
-
17
- // ❌ WRONG v3 import - NEVER USE THIS
18
- // import anime from 'animejs';
19
- ```
20
-
21
- ### 2. Configure Time Units to Seconds (SET ONCE IN APP ENTRY POINT)
22
- ```javascript
23
- // ⚠️ IMPORTANT: Set this ONLY ONCE in your app's main entry point
24
- // For React: App.js/App.tsx or index.js/index.tsx
25
- // For Vue: main.js/main.ts
26
- // For vanilla JS: The main script file that loads first
27
-
28
- import { engine } from 'animejs';
29
-
30
- // Set ONLY in the app's entry point, NOT in components
31
- engine.timeUnit = 's';
32
-
33
- // Now ALL durations use seconds everywhere: 1 = 1 second, 0.5 = 500ms
34
- // DO NOT set this in individual components - it's a global setting!
35
- ```
36
-
37
- ### 3. Single-Line Format for Simple Animations (REQUIRED)
38
- ```javascript
39
- // βœ… GOOD - Clean, readable, one line for simple tweens
40
- animate('.element', { x: 250, duration: 1, ease: 'outQuad' });
41
-
42
- // ❌ BAD - Unnecessary multi-line for simple tweens
43
- animate('.element', {
44
- x: 250,
45
- duration: 1,
46
- ease: 'outQuad'
47
- });
48
- ```
49
-
50
- ## βœ… Quick Validation Checklist
51
-
52
- Before generating anime.js code, verify:
53
- - [ ] Using `import { animate, ... } from 'animejs'` NOT `import anime`
54
- - [ ] Set `engine.timeUnit = 's'` ONLY ONCE in app entry point (NOT in components)
55
- - [ ] Using seconds for all durations (1 = 1 second)
56
- - [ ] Simple animations on ONE LINE
57
- - [ ] Using `animate()` NOT `anime()`
58
- - [ ] Using `createTimeline()` NOT `anime.timeline()`
59
- - [ ] Using `ease:` NOT `easing:`
60
- - [ ] Using `to:` for values, NOT `value:`
61
- - [ ] Using `on` prefix for callbacks (onUpdate, onComplete)
62
- - [ ] Using `loop` and `alternate` NOT `direction`
63
- - [ ] Using correct v4 stagger syntax with `stagger()`
64
- - [ ] Using shorthand properties (x, y, z) when possible
65
-
66
- ## 🎯 Core API - Most Common Patterns
67
-
68
- ### Basic Animation (single line for simple tweens)
69
- ```javascript
70
- // Simple tween - ALWAYS one line
71
- animate('.element', { x: 250, rotate: 180, duration: 0.8, ease: 'inOutQuad' });
72
-
73
- // Fade in - one line
74
- animate('.element', { opacity: [0, 1], y: [20, 0], duration: 0.6, ease: 'outQuad' });
75
-
76
- // Scale bounce - one line
77
- animate('.element', { scale: [0, 1], duration: 0.8, ease: 'outElastic(1, 0.5)' });
78
-
79
- // Infinite loop - one line
80
- animate('.element', { rotate: 360, duration: 2, loop: true, ease: 'linear' });
81
- ```
82
-
83
- ### Timeline Creation
84
- ```javascript
85
- const tl = createTimeline({ defaults: { duration: 1, ease: 'outQuad' } });
86
-
87
- tl.add('.element1', { x: 250 })
88
- .add('.element2', { y: 100 }, '+=0.2') // 0.2s after previous
89
- .add('.element3', { rotate: 180 }, '<'); // at start of previous
90
- ```
91
-
92
- ### Stagger Animations (single line)
93
- ```javascript
94
- animate('.elements', { x: 250, delay: stagger(0.1) }); // 0.1s between each
95
- animate('.elements', { x: 250, delay: stagger(0.1, { from: 'center' }) });
96
- ```
97
-
98
- ## ❌ Common AI Mistakes to Avoid
99
-
100
- ### MISTAKE #1: Using v3 Import Pattern
101
- ```javascript
102
- // ❌ WRONG - This is v3
103
- import anime from 'animejs';
104
- anime({ targets: '.element', translateX: 250 });
105
-
106
- // βœ… CORRECT - Always use v4
107
- import { animate } from 'animejs';
108
- animate('.element', { x: 250 });
109
- ```
110
-
111
- ### MISTAKE #2: Using 'targets' Property
112
- ```javascript
113
- // ❌ WRONG - 'targets' is v3
114
- animate({ targets: '.element', translateX: 250 });
115
-
116
- // βœ… CORRECT - First parameter is the target
117
- animate('.element', { x: 250 });
118
- ```
119
-
120
- ### MISTAKE #3: Using 'easing' Instead of 'ease'
121
- ```javascript
122
- // ❌ WRONG
123
- animate('.element', { x: 250, easing: 'easeInOutQuad' });
124
-
125
- // βœ… CORRECT
126
- animate('.element', { x: 250, ease: 'inOutQuad' });
127
- ```
128
-
129
- ### MISTAKE #4: Using 'value' for Animation Values
130
- ```javascript
131
- // ❌ WRONG - 'value' is v3
132
- animate('.element', { x: { value: 250 } });
133
-
134
- // βœ… CORRECT - Use 'to' for values
135
- animate('.element', { x: { to: 250 } });
136
- ```
137
-
138
- ### MISTAKE #5: Wrong Timeline Syntax
139
- ```javascript
140
- // ❌ WRONG - anime.timeline() is v3
141
- const tl = anime.timeline();
142
-
143
- // βœ… CORRECT - Use createTimeline
144
- import { createTimeline } from 'animejs';
145
- const tl = createTimeline();
146
- ```
147
-
148
- ## πŸ“‹ Property Syntax Reference (v3 β†’ v4)
149
-
150
- ### Animation Values
151
- ```javascript
152
- // βœ… v4: Use 'to' for target values
153
- { opacity: { to: 0.5 } }
154
- { x: { to: [0, 100] } }
155
-
156
- // ❌ v3: DON'T use 'value'
157
- // { opacity: { value: 0.5 } }
158
- ```
159
-
160
- ### Easing Functions
161
- ```javascript
162
- // βœ… v4: Use 'ease' (no 'ease' prefix)
163
- { ease: 'inOutQuad' }
164
- { ease: 'outElastic(1, 0.5)' }
165
- { ease: 'cubicBezier(0.4, 0, 0.2, 1)' }
166
-
167
- // ❌ v3: DON'T use 'easing' or 'ease' prefix
168
- // { easing: 'easeInOutQuad' }
169
- ```
170
-
171
- ### Direction & Looping
172
- ```javascript
173
- // βœ… v4
174
- {
175
- loop: true, // infinite loop
176
- loop: 3, // loop 3 times
177
- alternate: true, // alternate direction
178
- reversed: true // play in reverse
179
- }
180
-
181
- // ❌ v3: DON'T use 'direction'
182
- // { direction: 'alternate' }
183
- ```
184
-
185
- ### Transform Properties (Shorthand Preferred)
186
- ```javascript
187
- // βœ… Both syntaxes work in v4:
188
- animate('.element', { x: 100, y: 50, z: 25 }); // shorthand (preferred)
189
- animate('.element', { translateX: 100, translateY: 50, translateZ: 25 }); // explicit
190
- ```
191
-
192
- ### Callbacks (ALL prefixed with 'on')
193
- ```javascript
194
- // βœ… v4: Simple callback - keep on one line
195
- animate('.element', { x: 250, duration: 1, onComplete: () => console.log('Done!') });
196
-
197
- // βœ… v4: Multiple callbacks - use multi-line
198
- animate('.element', {
199
- x: 250,
200
- duration: 1,
201
- onBegin: (anim) => console.log('Started'),
202
- onUpdate: (anim) => console.log('Progress:', anim.progress),
203
- onComplete: (anim) => console.log('Finished')
204
- });
205
-
206
- // ❌ v3: DON'T use unprefixed callbacks
207
- // { update: () => {}, complete: () => {} }
208
- ```
209
-
210
- ## πŸ“ Code Formatting Guidelines
211
-
212
- ### ALWAYS Use Single-Line Format for Simple Animations
213
- **This is mandatory for readability** - Use for animations with ≀4 properties:
214
- ```javascript
215
- // βœ… GOOD - Clean, readable, one line
216
- animate('.element', { x: 250, duration: 1, ease: 'outQuad' });
217
- animate('.box', { opacity: 0.5, scale: 0.8, duration: 0.3 });
218
-
219
- // ❌ BAD - Unnecessary multi-line for simple tweens
220
- animate('.element', {
221
- x: 250,
222
- duration: 1,
223
- ease: 'outQuad'
224
- });
225
- ```
226
-
227
- ### Multi-Line Format (Only for Complex Animations)
228
- Use for animations with >4 properties or callbacks:
229
- ```javascript
230
- // Complex animation with callbacks - multi-line is appropriate
231
- animate('.element', {
232
- x: { to: [0, 100, 50], duration: 2 },
233
- y: { to: [0, -50, 0], duration: 2 },
234
- scale: [0, 1.2, 1],
235
- ease: 'outElastic(1, 0.5)',
236
- onComplete: () => console.log('Done!')
237
- });
238
- ```
239
-
240
- ## 🎨 Common Animation Patterns
241
-
242
- ### Hover Animation (single line per animation)
243
- ```javascript
244
- element.addEventListener('mouseenter', () => animate(element, { scale: 1.1, duration: 0.3, ease: 'outQuad' }));
245
- element.addEventListener('mouseleave', () => animate(element, { scale: 1, duration: 0.3, ease: 'outQuad' }));
246
- ```
247
-
248
- ### Sequential Timeline
249
- ```javascript
250
- const tl = createTimeline({ defaults: { duration: 0.5 } });
251
- tl.add('.step1', { x: 100 })
252
- .add('.step2', { y: 100 })
253
- .add('.step3', { scale: 2 });
254
- ```
255
-
256
- ### Scroll-triggered Animation
257
- ```javascript
258
- import { createScrollObserver } from 'animejs';
259
-
260
- createScrollObserver({
261
- target: '.scroll-element',
262
- root: document.querySelector('.scroll-container'),
263
- play: () => animate('.element', { x: 250, duration: 1 }),
264
- visibility: 0.5
265
- });
266
- ```
267
-
268
- ## πŸ”§ Advanced Features
269
-
270
- ### SVG Animations
271
- ```javascript
272
- import { animate, svg } from 'animejs';
273
-
274
- // Morph path (single line)
275
- animate('#path1', { d: svg.morphTo('#path2'), duration: 1 });
276
-
277
- // Draw SVG line
278
- const drawable = svg.createDrawable('.svg-path');
279
- animate(drawable, { draw: '0% 100%', duration: 2 });
280
-
281
- // Motion path (single line for simple usage)
282
- const motionPath = svg.createMotionPath('#motion-path');
283
- animate('.element', { x: motionPath.translateX, y: motionPath.translateY, rotate: motionPath.rotate });
284
- ```
285
-
286
- ### Utility Functions
287
- ```javascript
288
- import { utils } from 'animejs';
289
-
290
- // DOM selection
291
- const elements = utils.$('.elements');
292
-
293
- // Get current value
294
- const currentX = utils.get('.element', 'translateX');
295
-
296
- // Set values immediately
297
- utils.set('.element', { x: 100, opacity: 0.5 });
298
-
299
- // Remove animations
300
- utils.remove('.element');
301
-
302
- // Math utilities
303
- utils.random(0, 100);
304
- utils.shuffle([1, 2, 3, 4]);
305
- utils.lerp(0, 100, 0.5); // 50
306
- utils.clamp(150, 0, 100); // 100
307
- ```
308
-
309
- ### TypeScript Support
310
- ```typescript
311
- import { animate, createTimeline, JSAnimation, Timeline, AnimationParams, TimelineParams } from 'animejs';
312
-
313
- // Single line for simple animations
314
- const animation: JSAnimation = animate('.element', { x: 250, duration: 1 } as AnimationParams);
315
-
316
- const timeline: Timeline = createTimeline({ defaults: { duration: 0.8 } } as TimelineParams);
317
- ```
318
-
319
- ## ⚑ Performance Tips
320
-
321
- 1. **Use transforms over position properties**
322
- ```javascript
323
- // βœ… Good - uses transform
324
- animate('.element', { x: 100 });
325
-
326
- // ❌ Avoid - triggers layout
327
- animate('.element', { left: 100 });
328
- ```
329
-
330
- 2. **Batch animations in timelines**
331
- ```javascript
332
- // βœ… Good - single timeline
333
- const tl = createTimeline();
334
- elements.forEach(el => tl.add(el, { x: 100 }));
335
-
336
- // ❌ Avoid - multiple animations
337
- elements.forEach(el => animate(el, { x: 100 }));
338
- ```
339
-
340
- 3. **Use will-change CSS property for complex animations**
341
- ```css
342
- .animated-element {
343
- will-change: transform, opacity;
344
- }
345
- ```
346
-
347
- ## 🚫 How to Identify V3 Code (DON'T USE)
348
-
349
- If you see ANY of these patterns, it's v3 and MUST be updated:
350
-
351
- ```javascript
352
- // All of these are V3 - NEVER USE:
353
- anime({ ... })
354
- anime.timeline()
355
- anime.stagger()
356
- anime.random()
357
- anime.remove()
358
- anime.get()
359
- anime.set()
360
- anime.running
361
- { targets: '...' }
362
- { easing: '...' }
363
- { value: ... }
364
- { direction: 'alternate' }
365
- ```
366
-
367
- ## πŸ’‘ AI Code Generation Rules
368
-
369
- When asked to create animations with anime.js:
370
-
371
- 1. **ONLY** set `engine.timeUnit = 's'` ONCE in the app's main entry point (App.js, main.js, index.js) - NEVER in components
372
- 2. **ALWAYS** use seconds for all durations (1 = 1 second)
373
- 3. **ALWAYS** format simple animations on ONE LINE
374
- 4. **ALWAYS** start with v4 imports
375
- 5. **NEVER** use `anime()` function
376
- 6. **ALWAYS** use `animate()` for animations
377
- 7. **NEVER** include `targets` property
378
- 8. **ALWAYS** use `ease` not `easing`
379
- 9. **NEVER** use `value`, use `to` instead
380
- 10. **ALWAYS** prefix callbacks with `on`
381
- 11. **NEVER** use `direction`, use `alternate` and `reversed`
382
- 12. **ALWAYS** use `createTimeline()` for timelines
383
- 13. **PREFER** shorthand (`x`) over explicit (`translateX`)
384
- 14. **FORMAT** short animations on single line (≀4 properties)
385
- 15. **NEVER** generate v3 syntax under any circumstances
386
-
387
- ## NPM Installation
388
- ```bash
389
- npm install animejs
390
- ```
391
-
392
- ## Version Check
393
- ```javascript
394
- // Current version: 4.x.x
395
- // If you see any code using anime({ targets: ... }), it's v3 and needs updating!
396
- ```
@@ -1,103 +0,0 @@
1
- # Anti-Slop Rules: Avoiding AI Design Fingerprints
2
-
3
- These are patterns LLMs gravitate toward by default. Treat them as "overused AI defaults" β€” not absolute bans. Context matters. A SaaS dashboard and a personal blog have different rules.
4
-
5
- ## Typography
6
-
7
- **Strongly prefer alternatives to:**
8
- - `Inter` β€” ubiquitous to the point of being invisible. Prefer `Geist`, `Outfit`, `Cabinet Grotesk`, `Satoshi`, `Plus Jakarta Sans`
9
- - `Roboto` / `Arial` / `Open Sans` β€” browser defaults with no character
10
- - `Space Grotesk` β€” overused in "tech startup" contexts
11
-
12
- **Alternatives:** Variable fonts, display serifs (editorial), tight grotesks (minimal SaaS), humanist sans (consumer apps)
13
-
14
- **Avoid:**
15
- - Serif fonts on dashboards/data UIs β€” reserve for creative/editorial work
16
- - Only Regular (400) + Bold (700) β€” use 500/600 for subtler hierarchy
17
- - Orphaned words β€” use `text-wrap: balance` or `text-wrap: pretty`
18
- - All-caps subheaders everywhere β€” try lowercase italic, sentence case, small-caps
19
-
20
- ## Color
21
-
22
- **Strongly prefer alternatives to:**
23
- - AI purple/blue gradient aesthetic β€” the single most common LLM design fingerprint
24
- - Pure `#000000` β€” use off-black: `#0a0a0a`, `#111`, Zinc-950, or tinted dark
25
- - Oversaturated accents (saturation > 80%) β€” desaturate to blend elegantly
26
- - Gradient text on large headers β€” use sparingly, never on body copy
27
-
28
- **Principles:**
29
- - Max 1 accent color per project. Remove the rest.
30
- - Stick to one gray family β€” never mix warm and cool grays
31
- - Tint shadows to match background hue (dark navy shadow on navy bg), not pure black
32
- - Flat design with zero texture feels sterile β€” add subtle noise/grain
33
-
34
- ## Layout
35
-
36
- **Strongly prefer alternatives to:**
37
- - 3-column equal card layouts as feature rows β€” the most generic AI layout. Use 2-col zig-zag, asymmetric grid, horizontal scroll, or masonry
38
- - Centered hero with centered H1 at high variance β€” try split-screen, left-aligned, or asymmetric whitespace
39
- - `h-screen` for full-height sections β€” always use `min-h-[100dvh]` (iOS Safari viewport bug)
40
- - Complex flexbox `calc()` math for grids β€” use CSS Grid instead
41
-
42
- **Avoid:**
43
- - Everything centered and symmetrical β€” break with offset margins or mixed aspect ratios
44
- - Equal card heights forced by flexbox β€” allow variable heights or use masonry
45
- - Uniform border-radius everywhere β€” vary: tighter on inner elements, softer on containers
46
- - Missing max-width β€” always constrain to ~1200-1440px with auto margins
47
-
48
- ## Content (The "Jane Doe" Effect)
49
-
50
- **Avoid:**
51
- - Generic names: "John Doe", "Jane Smith", "Sarah Chan" β€” use realistic, diverse names
52
- - Round fake numbers: `99.99%`, `50%`, `$100.00` β€” use organic data: `47.2%`, `$99.00`
53
- - Startup slop names: "Acme", "Nexus", "SmartFlow" β€” invent contextual brand names
54
- - AI copywriting clichΓ©s: "Elevate", "Seamless", "Unleash", "Next-Gen", "Game-changer", "Delve", "Tapestry" β€” write plain, specific language
55
- - Lorem Ipsum β€” write real draft copy, even if rough
56
- - Exclamation marks in success messages β€” be confident, not loud
57
- - "Oops!" error messages β€” be direct: "Connection failed. Try again."
58
- - Title Case On Every Single Header β€” use sentence case
59
-
60
- ## Visual Effects
61
-
62
- **Strongly prefer alternatives to:**
63
- - Neon/outer glows (`box-shadow` glows) β€” use inner borders or subtle tinted shadows instead
64
- - Custom mouse cursors β€” outdated, hurt performance and accessibility
65
- - Standard `ease-in-out` / `linear` transitions β€” use spring physics or custom cubic-beziers
66
-
67
- **Allowed with care:**
68
- - Gradient text β€” sparingly on accent elements, never on body or large headers
69
- - Glassmorphism β€” only when it goes beyond `backdrop-blur` (add inner border + refraction shadow)
70
-
71
- ## Components
72
-
73
- **Strongly prefer alternatives to:**
74
- - Unstyled/default shadcn components β€” always customize radii, colors, and shadows
75
- - Generic card (border + shadow + white bg) at high visual density β€” use spacing/dividers instead
76
- - Standard Lucide/Feather icons as the only icon set β€” try Phosphor, Heroicons, or custom SVG for differentiation
77
- - Rocketship for "Launch", shield for "Security" β€” avoid clichΓ© icon metaphors
78
- - 3-card carousel testimonials with dots β€” masonry wall, embedded posts, or single rotating quote
79
- - Pill-shaped "New"/"Beta" badges everywhere β€” try square badges or plain text labels
80
- - Avatar circles exclusively β€” try squircles or rounded squares
81
-
82
- ## External Resources
83
-
84
- **Avoid:**
85
- - Unsplash direct links β€” use `https://picsum.photos/seed/{name}/800/600` or SVG UI Avatars
86
- - Same avatar image for multiple users β€” use unique assets
87
- - Stock "diverse team" photos β€” use real photos, candid shots, or consistent illustration style
88
-
89
- ## AI Tells: Quick Self-Check
90
-
91
- Before shipping, scan for these instant giveaways:
92
- - [ ] Inter font anywhere in the project?
93
- - [ ] Purple or blue gradient as the main aesthetic?
94
- - [ ] Three equal-width cards in a row?
95
- - [ ] Centered hero text over a dark gradient image?
96
- - [ ] "John Doe" or "Acme Corp" in any content?
97
- - [ ] Round placeholder numbers (50%, $100)?
98
- - [ ] "Elevate your workflow" or similar AI copy?
99
- - [ ] Pure `#000000` as background?
100
- - [ ] Generic spinner (no skeleton loader)?
101
- - [ ] No hover/active states on buttons?
102
-
103
- If any box is checked, the design reads as AI-generated. Address before delivery.