tribunal-kit 6.0.1 → 7.0.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 (349) hide show
  1. package/.agent/ARCHITECTURE.md +9 -6
  2. package/.agent/agents/accessibility-reviewer.md +23 -16
  3. package/.agent/agents/ai-code-reviewer.md +25 -21
  4. package/.agent/agents/anti-pattern-reviewer.md +12 -7
  5. package/.agent/agents/api-architect.md +1 -0
  6. package/.agent/agents/backend-specialist.md +23 -22
  7. package/.agent/agents/cloud-engineer.md +1 -0
  8. package/.agent/agents/code-archaeologist.md +1 -0
  9. package/.agent/agents/complexity-reviewer.md +10 -7
  10. package/.agent/agents/database-architect.md +3 -2
  11. package/.agent/agents/db-latency-auditor.md +6 -2
  12. package/.agent/agents/debugger.md +3 -2
  13. package/.agent/agents/dependency-reviewer.md +1 -0
  14. package/.agent/agents/devops-engineer.md +9 -8
  15. package/.agent/agents/documentation-writer.md +6 -5
  16. package/.agent/agents/explorer-agent.md +1 -0
  17. package/.agent/agents/frontend-reviewer.md +21 -17
  18. package/.agent/agents/frontend-specialist.md +23 -20
  19. package/.agent/agents/game-developer.md +1 -0
  20. package/.agent/agents/interaction-reviewer.md +10 -5
  21. package/.agent/agents/logic-reviewer.md +3 -0
  22. package/.agent/agents/minimalist-reviewer.md +6 -0
  23. package/.agent/agents/mobile-developer.md +7 -6
  24. package/.agent/agents/mobile-reviewer.md +14 -13
  25. package/.agent/agents/orchestrator.md +3 -0
  26. package/.agent/agents/penetration-tester.md +1 -0
  27. package/.agent/agents/performance-optimizer.md +6 -5
  28. package/.agent/agents/performance-reviewer.md +6 -6
  29. package/.agent/agents/pipeline-reviewer.md +144 -0
  30. package/.agent/agents/precedence-reviewer.md +1 -0
  31. package/.agent/agents/product-manager.md +1 -0
  32. package/.agent/agents/product-owner.md +1 -0
  33. package/.agent/agents/product-reviewer.md +12 -7
  34. package/.agent/agents/project-planner.md +3 -0
  35. package/.agent/agents/qa-automation-engineer.md +50 -43
  36. package/.agent/agents/resilience-reviewer.md +1 -0
  37. package/.agent/agents/schema-reviewer.md +1 -0
  38. package/.agent/agents/security-auditor.md +24 -24
  39. package/.agent/agents/seo-specialist.md +33 -23
  40. package/.agent/agents/sql-reviewer.md +5 -4
  41. package/.agent/agents/supervisor-agent.md +12 -2
  42. package/.agent/agents/swarm-worker-contracts.md +13 -13
  43. package/.agent/agents/swarm-worker-registry.md +51 -51
  44. package/.agent/agents/system-architect.md +1 -0
  45. package/.agent/agents/test-coverage-reviewer.md +25 -22
  46. package/.agent/agents/test-engineer.md +12 -11
  47. package/.agent/agents/throughput-optimizer.md +45 -40
  48. package/.agent/agents/type-safety-reviewer.md +5 -4
  49. package/.agent/agents/ui-ux-auditor.md +6 -4
  50. package/.agent/agents/ui-visual-auditor.md +3 -0
  51. package/.agent/agents/ux-reviewer.md +11 -6
  52. package/.agent/agents/visual-reviewer.md +11 -6
  53. package/.agent/agents/vitals-reviewer.md +5 -4
  54. package/.agent/history/memory/.memory.idx +1532 -1
  55. package/.agent/history/memory/MEMORY.md +102 -1
  56. package/.agent/mcp_config.json +1 -6
  57. package/.agent/routing_index.json +2033 -263
  58. package/.agent/rules/GEMINI.md +11 -9
  59. package/.agent/rules/GEMINI_PLANNER.md +19 -21
  60. package/.agent/scripts/_colors.js +52 -54
  61. package/.agent/scripts/_utils.js +52 -53
  62. package/.agent/scripts/auto_preview.js +39 -43
  63. package/.agent/scripts/bundle_analyzer.js +47 -60
  64. package/.agent/scripts/case_law_manager.js +200 -294
  65. package/.agent/scripts/checklist.js +73 -94
  66. package/.agent/scripts/cicd_validator.js +305 -0
  67. package/.agent/scripts/compile_router.py +4 -111
  68. package/.agent/scripts/context_broker.js +317 -412
  69. package/.agent/scripts/contract_engine.js +402 -0
  70. package/.agent/scripts/dependency_analyzer.js +112 -124
  71. package/.agent/scripts/graph_builder.js +75 -103
  72. package/.agent/scripts/graph_visualizer.js +10 -12
  73. package/.agent/scripts/graph_zoom.js +38 -55
  74. package/.agent/scripts/guardrail_engine.js +195 -145
  75. package/.agent/scripts/impact_classifier.js +55 -30
  76. package/.agent/scripts/inner_loop_validator.js +108 -159
  77. package/.agent/scripts/integrity_manifest.js +59 -67
  78. package/.agent/scripts/lint_runner.js +65 -75
  79. package/.agent/scripts/marathon_harness.js +131 -208
  80. package/.agent/scripts/migrate_skills_frontmatter.py +4 -63
  81. package/.agent/scripts/minify_context.js +29 -33
  82. package/.agent/scripts/minimal_change_engine.js +95 -87
  83. package/.agent/scripts/mutation_runner.js +46 -62
  84. package/.agent/scripts/pipeline_engine.js +320 -209
  85. package/.agent/scripts/prompt_compiler.js +118 -93
  86. package/.agent/scripts/schema_validator.js +73 -121
  87. package/.agent/scripts/security_scan.js +88 -117
  88. package/.agent/scripts/session_manager.js +52 -69
  89. package/.agent/scripts/signal_detector.js +24 -22
  90. package/.agent/scripts/skill_evolution.js +184 -245
  91. package/.agent/scripts/skill_integrator.js +35 -48
  92. package/.agent/scripts/socratic_gate_policy.js +15 -12
  93. package/.agent/scripts/strengthen_skills.js +29 -33
  94. package/.agent/scripts/swarm_dispatcher.js +120 -151
  95. package/.agent/scripts/test_runner.js +54 -56
  96. package/.agent/scripts/token_budget_broker.js +9 -7
  97. package/.agent/scripts/trace_engine.js +126 -0
  98. package/.agent/scripts/verify_all.js +76 -93
  99. package/.agent/scripts/visual_audit.js +16 -21
  100. package/.agent/skill_topic_map.json +22 -3
  101. package/.agent/skills/12-principles-of-animation/SKILL.md +7 -0
  102. package/.agent/skills/60fps-animation/SKILL.md +7 -0
  103. package/.agent/skills/accessible-animation/SKILL.md +5 -1
  104. package/.agent/skills/adapt/SKILL.md +7 -1
  105. package/.agent/skills/advanced-rag-pipelines/SKILL.md +1 -0
  106. package/.agent/skills/agent-organizer/SKILL.md +1 -0
  107. package/.agent/skills/agentic-patterns/SKILL.md +33 -25
  108. package/.agent/skills/agentic-workflows-2026/SKILL.md +6 -2
  109. package/.agent/skills/ai-app-hardening/SKILL.md +9 -8
  110. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +7 -6
  111. package/.agent/skills/animation-on-scroll/SKILL.md +24 -15
  112. package/.agent/skills/animation-systems/SKILL.md +11 -10
  113. package/.agent/skills/antfu-conventions/SKILL.md +7 -2
  114. package/.agent/skills/api-patterns/SKILL.md +14 -10
  115. package/.agent/skills/api-security-auditor/SKILL.md +15 -14
  116. package/.agent/skills/app-builder/SKILL.md +1 -0
  117. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +2 -2
  118. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +1 -1
  119. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +12 -12
  120. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +3 -3
  121. package/.agent/skills/apple-design/SKILL.md +8 -7
  122. package/.agent/skills/architecture/SKILL.md +3 -2
  123. package/.agent/skills/audit-and-fix/SKILL.md +8 -5
  124. package/.agent/skills/authentication-best-practices/SKILL.md +9 -8
  125. package/.agent/skills/backend-security-expert/SKILL.md +1 -0
  126. package/.agent/skills/baseline-ui/SKILL.md +8 -7
  127. package/.agent/skills/bash-linux/SKILL.md +1 -0
  128. package/.agent/skills/behavioral-modes/SKILL.md +1 -0
  129. package/.agent/skills/better-colors/SKILL.md +11 -7
  130. package/.agent/skills/better-typography/SKILL.md +30 -16
  131. package/.agent/skills/better-ui/SKILL.md +17 -10
  132. package/.agent/skills/bolder/SKILL.md +6 -0
  133. package/.agent/skills/brainstorming/SKILL.md +6 -4
  134. package/.agent/skills/browser-native-ai/SKILL.md +5 -4
  135. package/.agent/skills/build-primitive/SKILL.md +5 -0
  136. package/.agent/skills/building-native-ui/SKILL.md +1 -0
  137. package/.agent/skills/cicd-pro/SKILL.md +2 -1
  138. package/.agent/skills/clarify/SKILL.md +19 -14
  139. package/.agent/skills/clean-code/SKILL.md +16 -15
  140. package/.agent/skills/cloud-architect/SKILL.md +1 -0
  141. package/.agent/skills/cobejs/SKILL.md +7 -9
  142. package/.agent/skills/code-review-checklist/SKILL.md +1 -0
  143. package/.agent/skills/codebase-design/SKILL.md +7 -2
  144. package/.agent/skills/colorize/SKILL.md +8 -3
  145. package/.agent/skills/compact-landing/SKILL.md +8 -3
  146. package/.agent/skills/company-logos/SKILL.md +6 -0
  147. package/.agent/skills/config-validator/SKILL.md +10 -9
  148. package/.agent/skills/containerization-pro/SKILL.md +6 -5
  149. package/.agent/skills/context-engineering-pro/SKILL.md +5 -4
  150. package/.agent/skills/create-design-md/SKILL.md +13 -5
  151. package/.agent/skills/critique/SKILL.md +10 -8
  152. package/.agent/skills/csharp-developer/SKILL.md +1 -0
  153. package/.agent/skills/data-validation-schemas/SKILL.md +28 -23
  154. package/.agent/skills/database-design/SKILL.md +2 -1
  155. package/.agent/skills/delight/SKILL.md +6 -0
  156. package/.agent/skills/deployment-procedures/SKILL.md +2 -1
  157. package/.agent/skills/design-lab/SKILL.md +5 -0
  158. package/.agent/skills/devops-engineer/SKILL.md +3 -2
  159. package/.agent/skills/devops-incident-responder/SKILL.md +2 -1
  160. package/.agent/skills/diagnosing-bugs/SKILL.md +12 -2
  161. package/.agent/skills/distill/SKILL.md +7 -2
  162. package/.agent/skills/documentation-templates/SKILL.md +3 -2
  163. package/.agent/skills/domain-modeling/SKILL.md +12 -4
  164. package/.agent/skills/duckdb-analytical-sql/SKILL.md +7 -3
  165. package/.agent/skills/edge-ai-mobile/SKILL.md +5 -1
  166. package/.agent/skills/edge-computing/SKILL.md +9 -8
  167. package/.agent/skills/emil-design-eng/SKILL.md +43 -27
  168. package/.agent/skills/error-resilience/SKILL.md +34 -16
  169. package/.agent/skills/expo-router-v4/SKILL.md +2 -1
  170. package/.agent/skills/extract-design-system/SKILL.md +12 -11
  171. package/.agent/skills/fabel-protocol/SKILL.md +24 -17
  172. package/.agent/skills/fixing-accessibility/SKILL.md +23 -16
  173. package/.agent/skills/fixing-metadata/SKILL.md +24 -13
  174. package/.agent/skills/fixing-motion-performance/SKILL.md +7 -5
  175. package/.agent/skills/framer-motion-expert/SKILL.md +29 -15
  176. package/.agent/skills/frontend-design/SKILL.md +21 -13
  177. package/.agent/skills/frontend-security-expert/SKILL.md +1 -0
  178. package/.agent/skills/game-design-expert/SKILL.md +1 -0
  179. package/.agent/skills/game-engineering-expert/SKILL.md +1 -0
  180. package/.agent/skills/generative-ui-expert/SKILL.md +3 -2
  181. package/.agent/skills/geo-fundamentals/SKILL.md +2 -1
  182. package/.agent/skills/git-pro/SKILL.md +10 -9
  183. package/.agent/skills/github-operations/SKILL.md +2 -1
  184. package/.agent/skills/gpt-taste/SKILL.md +7 -0
  185. package/.agent/skills/gsap-core/SKILL.md +26 -22
  186. package/.agent/skills/gsap-frameworks/SKILL.md +6 -5
  187. package/.agent/skills/gsap-performance/SKILL.md +4 -3
  188. package/.agent/skills/gsap-plugins/SKILL.md +34 -33
  189. package/.agent/skills/gsap-react/SKILL.md +9 -8
  190. package/.agent/skills/gsap-scrolltrigger/SKILL.md +34 -33
  191. package/.agent/skills/gsap-timeline/SKILL.md +18 -15
  192. package/.agent/skills/gsap-utils/SKILL.md +25 -24
  193. package/.agent/skills/harden/SKILL.md +9 -3
  194. package/.agent/skills/harness-protocol/SKILL.md +1 -0
  195. package/.agent/skills/i18n-localization/SKILL.md +10 -9
  196. package/.agent/skills/impeccable/SKILL.md +5 -0
  197. package/.agent/skills/improve-codebase-architecture/SKILL.md +10 -5
  198. package/.agent/skills/improve-ui/SKILL.md +12 -5
  199. package/.agent/skills/intelligent-routing/SKILL.md +7 -6
  200. package/.agent/skills/knowledge-graph/SKILL.md +1 -0
  201. package/.agent/skills/landing-page/SKILL.md +1 -0
  202. package/.agent/skills/lint-and-validate/SKILL.md +9 -4
  203. package/.agent/skills/llm-engineering/SKILL.md +55 -54
  204. package/.agent/skills/local-first/SKILL.md +20 -19
  205. package/.agent/skills/local-first-architecture/SKILL.md +6 -1
  206. package/.agent/skills/lottie-animation/SKILL.md +7 -3
  207. package/.agent/skills/marquee-loop/SKILL.md +1 -0
  208. package/.agent/skills/masked-reveal/SKILL.md +17 -4
  209. package/.agent/skills/mcp-builder/SKILL.md +13 -10
  210. package/.agent/skills/micro-interaction/SKILL.md +20 -5
  211. package/.agent/skills/mobile-design/SKILL.md +26 -15
  212. package/.agent/skills/monorepo-management/SKILL.md +3 -2
  213. package/.agent/skills/morphing-icons/SKILL.md +16 -6
  214. package/.agent/skills/motion-engineering/SKILL.md +19 -15
  215. package/.agent/skills/nextjs-react-expert/SKILL.md +26 -21
  216. package/.agent/skills/nodejs-best-practices/SKILL.md +89 -76
  217. package/.agent/skills/observability/SKILL.md +45 -44
  218. package/.agent/skills/opentelemetry-observability/SKILL.md +2 -1
  219. package/.agent/skills/page-transition-animation/SKILL.md +6 -3
  220. package/.agent/skills/parallel-agents/SKILL.md +7 -2
  221. package/.agent/skills/performance-profiling/SKILL.md +24 -13
  222. package/.agent/skills/plan-writing/SKILL.md +1 -0
  223. package/.agent/skills/platform-engineer/SKILL.md +3 -2
  224. package/.agent/skills/platform-engineering-opentofu/SKILL.md +1 -0
  225. package/.agent/skills/playwright-ai-e2e/SKILL.md +3 -2
  226. package/.agent/skills/playwright-best-practices/SKILL.md +29 -28
  227. package/.agent/skills/polish/SKILL.md +13 -12
  228. package/.agent/skills/powershell-windows/SKILL.md +1 -0
  229. package/.agent/skills/pricing-page/SKILL.md +8 -3
  230. package/.agent/skills/product-aware-heuristics/SKILL.md +122 -72
  231. package/.agent/skills/progressive-blur/SKILL.md +9 -4
  232. package/.agent/skills/project-idioms/SKILL.md +1 -0
  233. package/.agent/skills/property-based-testing/SKILL.md +10 -12
  234. package/.agent/skills/python-patterns/SKILL.md +1 -0
  235. package/.agent/skills/python-pro/SKILL.md +1 -0
  236. package/.agent/skills/quieter/SKILL.md +6 -0
  237. package/.agent/skills/react-doctor/SKILL.md +6 -0
  238. package/.agent/skills/react-specialist/SKILL.md +32 -28
  239. package/.agent/skills/readme-builder/SKILL.md +1 -0
  240. package/.agent/skills/realtime-patterns/SKILL.md +34 -33
  241. package/.agent/skills/red-team-tactics/SKILL.md +1 -0
  242. package/.agent/skills/redesign-skill/SKILL.md +6 -0
  243. package/.agent/skills/review-animations/SKILL.md +5 -2
  244. package/.agent/skills/review-animations/STANDARDS.md +37 -23
  245. package/.agent/skills/rust-pro/SKILL.md +1 -0
  246. package/.agent/skills/seo-fundamentals/SKILL.md +4 -3
  247. package/.agent/skills/server-management/SKILL.md +1 -0
  248. package/.agent/skills/shadcn-ui-expert/SKILL.md +28 -22
  249. package/.agent/skills/shape/SKILL.md +9 -2
  250. package/.agent/skills/skill-creator/SKILL.md +1 -0
  251. package/.agent/skills/soft-skill/SKILL.md +6 -0
  252. package/.agent/skills/sounds-on-the-web/SKILL.md +1 -0
  253. package/.agent/skills/sql-pro/SKILL.md +1 -0
  254. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +1 -0
  255. package/.agent/skills/svg-animation/SKILL.md +16 -7
  256. package/.agent/skills/swiftui-expert/SKILL.md +1 -0
  257. package/.agent/skills/swiss-design/SKILL.md +5 -0
  258. package/.agent/skills/system-design-pro/SKILL.md +1 -0
  259. package/.agent/skills/systematic-debugging/SKILL.md +1 -0
  260. package/.agent/skills/tailwind-patterns/SKILL.md +25 -11
  261. package/.agent/skills/taste-skill/SKILL.md +6 -0
  262. package/.agent/skills/tdd-workflow/SKILL.md +5 -0
  263. package/.agent/skills/test-result-analyzer/SKILL.md +1 -0
  264. package/.agent/skills/testing-patterns/SKILL.md +123 -115
  265. package/.agent/skills/thermo-nuclear-code-quality-review/SKILL.md +5 -0
  266. package/.agent/skills/thinking-protocol/SKILL.md +3 -0
  267. package/.agent/skills/to-spring-or-not-to-spring/SKILL.md +9 -8
  268. package/.agent/skills/transitions-dev/SKILL.md +19 -6
  269. package/.agent/skills/trend-researcher/SKILL.md +1 -0
  270. package/.agent/skills/typescript-advanced/SKILL.md +23 -18
  271. package/.agent/skills/typeset/SKILL.md +10 -1
  272. package/.agent/skills/ui-reasoning-engine/SKILL.md +67 -48
  273. package/.agent/skills/ui-skill-packs/SKILL.md +6 -1
  274. package/.agent/skills/ui-skills-root/SKILL.md +39 -38
  275. package/.agent/skills/ui-ux-pro-max/SKILL.md +34 -26
  276. package/.agent/skills/ui-ux-researcher/SKILL.md +1 -0
  277. package/.agent/skills/vector-search-pgvector/SKILL.md +3 -2
  278. package/.agent/skills/vue-expert/SKILL.md +22 -19
  279. package/.agent/skills/vulnerability-scanner/SKILL.md +22 -21
  280. package/.agent/skills/web-accessibility-auditor/SKILL.md +2 -1
  281. package/.agent/skills/web-design-guidelines/SKILL.md +16 -10
  282. package/.agent/skills/web-quality-audit/SKILL.md +5 -0
  283. package/.agent/skills/webapp-testing/SKILL.md +14 -13
  284. package/.agent/skills/webgpu-performance/SKILL.md +1 -0
  285. package/.agent/skills/whimsy-injector/SKILL.md +9 -5
  286. package/.agent/skills/workflow-optimizer/SKILL.md +1 -0
  287. package/.agent/skills/zero-trust-passkeys/SKILL.md +11 -6
  288. package/.agent/templates/DESIGN.md +119 -110
  289. package/.agent/templates/design-tokens.json +9 -6
  290. package/.agent/workflows/acf.md +1 -0
  291. package/.agent/workflows/api-tester.md +1 -0
  292. package/.agent/workflows/audit.md +1 -0
  293. package/.agent/workflows/brainstorm.md +1 -0
  294. package/.agent/workflows/changelog.md +1 -0
  295. package/.agent/workflows/contract.md +60 -0
  296. package/.agent/workflows/create.md +1 -0
  297. package/.agent/workflows/debug.md +1 -0
  298. package/.agent/workflows/deploy.md +1 -0
  299. package/.agent/workflows/enhance.md +1 -0
  300. package/.agent/workflows/fix-ci.md +89 -0
  301. package/.agent/workflows/fix.md +1 -0
  302. package/.agent/workflows/generate.md +1 -0
  303. package/.agent/workflows/marathon.md +1 -0
  304. package/.agent/workflows/migrate.md +1 -0
  305. package/.agent/workflows/minimal.md +9 -7
  306. package/.agent/workflows/orchestrate.md +1 -0
  307. package/.agent/workflows/performance-benchmarker.md +1 -0
  308. package/.agent/workflows/pipeline.md +26 -21
  309. package/.agent/workflows/plan.md +1 -0
  310. package/.agent/workflows/preview.md +1 -0
  311. package/.agent/workflows/refactor.md +3 -2
  312. package/.agent/workflows/review-ai.md +4 -3
  313. package/.agent/workflows/review.md +1 -0
  314. package/.agent/workflows/session.md +1 -0
  315. package/.agent/workflows/status.md +1 -0
  316. package/.agent/workflows/strengthen-skills.md +1 -0
  317. package/.agent/workflows/super-prompt.md +1 -0
  318. package/.agent/workflows/swarm.md +15 -3
  319. package/.agent/workflows/test.md +8 -7
  320. package/.agent/workflows/tribunal-backend.md +3 -2
  321. package/.agent/workflows/tribunal-cicd.md +104 -0
  322. package/.agent/workflows/tribunal-database.md +1 -0
  323. package/.agent/workflows/tribunal-frontend.md +8 -6
  324. package/.agent/workflows/tribunal-full.md +2 -1
  325. package/.agent/workflows/tribunal-mobile.md +6 -5
  326. package/.agent/workflows/tribunal-performance.md +1 -0
  327. package/.agent/workflows/tribunal-speed.md +1 -0
  328. package/.agent/workflows/tribunal-ui.md +29 -21
  329. package/.agent/workflows/ui-ux-pro-max.md +19 -15
  330. package/CONTRIBUTING.md +3 -3
  331. package/README.md +94 -44
  332. package/SECURITY.md +10 -10
  333. package/bin/mcp-server.js +385 -252
  334. package/bin/tribunal-kit.js +29 -30
  335. package/bin/wrapper.js +40 -46
  336. package/dist/cli.js +6 -0
  337. package/dist/commands/case.js +2 -0
  338. package/dist/commands/contract.js +440 -0
  339. package/dist/commands/status.js +6 -0
  340. package/dist/index.d.ts +8 -1
  341. package/package.json +13 -12
  342. package/scripts/benchmark.js +62 -86
  343. package/scripts/changelog.js +67 -73
  344. package/scripts/fix-vbc.js +13 -15
  345. package/scripts/fix-vbc.ps1 +2 -118
  346. package/scripts/stress_benchmark.js +358 -0
  347. package/scripts/sync-version.js +71 -41
  348. package/scripts/validate-payload.js +23 -30
  349. package/scripts/visual_audit.js +23 -13
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before auditing or fixing animation performance, you MUST inspect:
23
+
23
24
  1. Browser Rendering Pipeline (Section 22) → Restrict properties to Composite-only (`transform`, `opacity`) and eliminate Layout/Paint animators
24
25
  2. Layout Thrashing (Section 33) → Batch all DOM reads (`offsetHeight`, `getBoundingClientRect`) before executing DOM writes (`style.height = ...`)
25
26
  3. `will-change` VRAM management (Section 53) → Remove `will-change` hints upon animation completion
@@ -31,6 +32,7 @@ Guidelines for auditing and resolving web animation jank, layout thrashing, and
31
32
  ## 1. Browser Rendering Pipeline & Compositor Rules
32
33
 
33
34
  Animations trigger one of 3 rendering costs:
35
+
34
36
  1. **Layout (Expensive)**: Animating `width`, `height`, `margin`, `padding`, `top`, `left`, `flex`, `grid`. Forces full geometry recalculation across the page.
35
37
  2. **Paint (Moderate)**: Animating `color`, `background-color`, `border-color`, `box-shadow`, `filter`. Forces pixel repaint.
36
38
  3. **Composite (GPU Fast)**: Animating **`transform`** (`translate`, `scale`, `rotate`) and **`opacity`**. Offloaded entirely to GPU compositor thread!
@@ -75,11 +77,11 @@ elements.forEach((el, i) => {
75
77
 
76
78
  ## Anti-Slop Table
77
79
 
78
- | Performance Issue | Motion Performance Fix | FPS Gain |
79
- | --- | --- | --- |
80
- | Animating `height: 0` to `auto` | FLIP technique or `scaleY` transform animation | 15fps → 60fps |
81
- | Scroll listener mutating inline CSS | `CSS scroll-timeline` or `IntersectionObserver` | Prevents main-thread scroll jank |
82
- | `transition: all 0.3s` | `transition: transform 200ms cubic-bezier(0.16,1,0.3,1), opacity 200ms ease` | Eliminates accidental layout/color recalculations |
80
+ | Performance Issue | Motion Performance Fix | FPS Gain |
81
+ | ----------------------------------- | ---------------------------------------------------------------------------- | ------------------------------------------------- |
82
+ | Animating `height: 0` to `auto` | FLIP technique or `scaleY` transform animation | 15fps → 60fps |
83
+ | Scroll listener mutating inline CSS | `CSS scroll-timeline` or `IntersectionObserver` | Prevents main-thread scroll jank |
84
+ | `transition: all 0.3s` | `transition: transform 200ms cubic-bezier(0.16,1,0.3,1), opacity 200ms ease` | Eliminates accidental layout/color recalculations |
83
85
 
84
86
  ---
85
87
 
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before writing Framer Motion code in React, you MUST inspect:
23
+
23
24
  1. `package.json` / Next.js Client Boundaries → Add `"use client"` directive on Next.js App Router files containing `motion.X`
24
25
  2. AnimatePresence & layoutId Rules (Section 117) → Enforce `mode="wait"` and ensure every `<AnimatePresence>` child has a unique `key`
25
26
  3. Bundle Optimization (Section 182) → Use `<LazyMotion features={domAnimation}>` with `m.div` for lightweight production bundles
@@ -44,8 +45,13 @@ Before writing Framer Motion code in React, you MUST inspect:
44
45
  ### `motion.X` / Declarative Animation
45
46
 
46
47
  ```tsx
47
- import { motion } from "framer-motion";
48
- <motion.div initial={{ opacity: 0, y: 20 }} animate={{ opacity: 1, y: 0 }} exit={{ opacity: 0, y: -20 }} transition={{ duration: 0.3, ease: "easeOut" }} />;
48
+ import { motion } from 'framer-motion';
49
+ <motion.div
50
+ initial={{ opacity: 0, y: 20 }}
51
+ animate={{ opacity: 1, y: 0 }}
52
+ exit={{ opacity: 0, y: -20 }}
53
+ transition={{ duration: 0.3, ease: 'easeOut' }}
54
+ />;
49
55
  ```
50
56
 
51
57
  ### Variants (Stagger / Orchestration)
@@ -56,11 +62,11 @@ const container = {
56
62
  visible: { transition: { staggerChildren: 0.08, delayChildren: 0.1 } },
57
63
  };
58
64
  const item = {
59
- hidden: { opacity: 0, y: 20, filter: "blur(4px)" },
60
- visible: { opacity: 1, y: 0, filter: "blur(0px)", transition: { duration: 0.4 } },
65
+ hidden: { opacity: 0, y: 20, filter: 'blur(4px)' },
66
+ visible: { opacity: 1, y: 0, filter: 'blur(0px)', transition: { duration: 0.4 } },
61
67
  };
62
68
  <motion.ul variants={container} initial="hidden" animate="visible">
63
- {list.map((e) => (
69
+ {list.map(e => (
64
70
  <motion.li key={e.id} variants={item}>
65
71
  {e.name}
66
72
  </motion.li>
@@ -131,10 +137,15 @@ import { LayoutGroup } from "framer-motion";
131
137
 
132
138
  ```tsx
133
139
  <AnimatePresence mode="sync">
134
- {" "}
140
+ {' '}
135
141
  {/* "sync"|"wait"|"popLayout" */}
136
- {items.map((item) => (
137
- <motion.div key={item.id} /* ← REQUIRED */ initial={{ opacity: 0, height: 0 }} animate={{ opacity: 1, height: "auto" }} exit={{ opacity: 0, height: 0 }} />
142
+ {items.map(item => (
143
+ <motion.div
144
+ key={item.id}
145
+ /* ← REQUIRED */ initial={{ opacity: 0, height: 0 }}
146
+ animate={{ opacity: 1, height: 'auto' }}
147
+ exit={{ opacity: 0, height: 0 }}
148
+ />
138
149
  ))}
139
150
  </AnimatePresence>
140
151
  // mode="wait" — waits for exit before entering
@@ -146,7 +157,7 @@ import { LayoutGroup } from "framer-motion";
146
157
  ## Scroll Animations
147
158
 
148
159
  ```tsx
149
- import { useScroll, useTransform } from "framer-motion";
160
+ import { useScroll, useTransform } from 'framer-motion';
150
161
  // Page scroll progress (0–1)
151
162
  const { scrollYProgress } = useScroll();
152
163
  const y = useTransform(scrollYProgress, [0, 1], [0, -200]);
@@ -155,7 +166,7 @@ const opacity = useTransform(scrollYProgress, [0, 0.5], [1, 0]);
155
166
 
156
167
  // Element-scoped scroll
157
168
  const ref = useRef(null);
158
- const { scrollYProgress } = useScroll({ target: ref, offset: ["start end", "end start"] });
169
+ const { scrollYProgress } = useScroll({ target: ref, offset: ['start end', 'end start'] });
159
170
  ```
160
171
 
161
172
  ---
@@ -165,9 +176,9 @@ const { scrollYProgress } = useScroll({ target: ref, offset: ["start end", "end
165
176
  ### `useAnimate` — Imperative sequences
166
177
 
167
178
  ```tsx
168
- import { useAnimate, stagger } from "framer-motion";
179
+ import { useAnimate, stagger } from 'framer-motion';
169
180
  const [scope, animate] = useAnimate(); // ← returns [scope, animate] NOT [ref, controls]
170
- await animate(".item", { opacity: 1 }, { delay: stagger(0.1) });
181
+ await animate('.item', { opacity: 1 }, { delay: stagger(0.1) });
171
182
  <div ref={scope}>...</div>;
172
183
  ```
173
184
 
@@ -194,7 +205,7 @@ const skewX = useTransform(xVel, [-1000, 0, 1000], [-15, 0, 15]);
194
205
 
195
206
  ```tsx
196
207
  // LazyMotion — ~5KB vs ~30KB full bundle
197
- import { LazyMotion, domAnimation, m } from "framer-motion";
208
+ import { LazyMotion, domAnimation, m } from 'framer-motion';
198
209
  // domAnimation ≈ 5KB | domMax ≈ 20KB (needed for layout/drag)
199
210
  <LazyMotion features={domAnimation}>
200
211
  <m.div animate={{ opacity: 1 }} />
@@ -204,10 +215,13 @@ import { LazyMotion, domAnimation, m } from "framer-motion";
204
215
  ### Accessibility
205
216
 
206
217
  ```tsx
207
- import { useReducedMotion } from "framer-motion";
218
+ import { useReducedMotion } from 'framer-motion';
208
219
  const reduce = useReducedMotion();
209
220
  // opacity/color: always safe | position/scale/rotation: must be disabled when reduce=true
210
- <motion.div animate={{ x: reduce ? 0 : 100, opacity: 1 }} transition={{ duration: reduce ? 0 : 0.5 }} />;
221
+ <motion.div
222
+ animate={{ x: reduce ? 0 : 100, opacity: 1 }}
223
+ transition={{ duration: reduce ? 0 : 0.5 }}
224
+ />;
211
225
  ```
212
226
 
213
227
  ### Rules
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before implementing front-end designs or CSS layout systems, you MUST inspect:
23
+
23
24
  1. Relative Color Syntax (Section 16) → Derive hover/active states dynamically with `oklch(from var(--color-primary) calc(l - 0.08) c h)`
24
25
  2. Nested Radius Math (Section 54) → Enforce `outer_radius = inner_radius + padding_inner` for nested card containers
25
26
  3. APCA Contrast Thresholds (Section 81) → Ensure Lc > 75 for body text, Lc > 60 for headings, and Lc > 45 for borders and labels
@@ -31,21 +32,22 @@ This skill guides the implementation of responsive layout systems, color science
31
32
  ## 1. Relative Color Syntax & OKLCH Theme Tokens
32
33
 
33
34
  Perceptually uniform color science ensures stable contrast. Use CSS **Relative Color Syntax** to derive state colors dynamically:
35
+
34
36
  ```css
35
37
  :root {
36
38
  /* base color values */
37
- --color-primary: oklch(62% 0.21 250); /* Brand electric blue */
38
-
39
+ --color-primary: oklch(62% 0.21 250); /* Brand electric blue */
40
+
39
41
  /* Deriving hover states dynamically: reduce lightness, preserve chroma and hue */
40
42
  --color-primary-hover: oklch(from var(--color-primary) calc(l - 0.08) c h);
41
43
  --color-primary-active: oklch(from var(--color-primary) calc(l - 0.12) c h);
42
-
44
+
43
45
  /* Backgrounds */
44
46
  --bg-surface: oklch(100% 0 0);
45
47
  --text-main: oklch(20% 0.02 250);
46
48
  }
47
49
 
48
- [data-theme="dark"] {
50
+ [data-theme='dark'] {
49
51
  --bg-surface: oklch(14% 0.008 250);
50
52
  --text-main: oklch(93% 0.003 250);
51
53
  }
@@ -56,19 +58,21 @@ Perceptually uniform color science ensures stable contrast. Use CSS **Relative C
56
58
  ## 2. Spatial Grid Math & Radius Tokens
57
59
 
58
60
  Enforce an 8px spatial grid calculated mathematically to ensure alignment precision:
61
+
59
62
  ```css
60
63
  :root {
61
64
  --base-grid: 8px;
62
-
63
- --space-xs: calc(var(--base-grid) * 0.5); /* 4px - icon gaps */
64
- --space-sm: calc(var(--base-grid) * 1); /* 8px - tag paddings */
65
- --space-md: calc(var(--base-grid) * 2); /* 16px - inputs */
66
- --space-lg: calc(var(--base-grid) * 3); /* 24px - card padding */
67
- --space-xl: calc(var(--base-grid) * 4); /* 32px - section gaps */
65
+
66
+ --space-xs: calc(var(--base-grid) * 0.5); /* 4px - icon gaps */
67
+ --space-sm: calc(var(--base-grid) * 1); /* 8px - tag paddings */
68
+ --space-md: calc(var(--base-grid) * 2); /* 16px - inputs */
69
+ --space-lg: calc(var(--base-grid) * 3); /* 24px - card padding */
70
+ --space-xl: calc(var(--base-grid) * 4); /* 32px - section gaps */
68
71
  }
69
72
  ```
70
73
 
71
74
  ### Nested Radius Formula
75
+
72
76
  Ensure component inner borders track correctly:
73
77
  `outer_radius = inner_radius + padding_inner`
74
78
  If container padding is `16px` and inner content radius is `8px`, then container outer radius must be exactly `24px` (`8px + 16px`).
@@ -78,6 +82,7 @@ If container padding is `16px` and inner content radius is `8px`, then container
78
82
  ## 3. Responsive Layouts & Container Queries
79
83
 
80
84
  Avoid viewport-level media queries for self-contained components. Use container queries to make components portable:
85
+
81
86
  ```css
82
87
  .component-wrapper {
83
88
  container-type: inline-size;
@@ -98,15 +103,18 @@ Avoid viewport-level media queries for self-contained components. Use container
98
103
  ## 4. APCA Contrast Guidelines
99
104
 
100
105
  Ensure that typography meets the APCA Lc guidelines:
101
- * Lc > 75 for body text elements.
102
- * Lc > 60 for large titles and headings.
103
- * Lc > 45 for secondary input labels and border guides.
106
+
107
+ - Lc > 75 for body text elements.
108
+ - Lc > 60 for large titles and headings.
109
+ - Lc > 45 for secondary input labels and border guides.
104
110
 
105
111
  ---
106
112
 
107
113
  ## Pre-Flight Checklist
114
+
108
115
  - [ ] Have I reviewed the user's specific constraints and requests?
109
116
  - [ ] Have I checked the environment for relevant existing implementations?
110
117
 
111
118
  ## VBC Protocol (Verification-Before-Completion)
119
+
112
120
  You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before auditing or writing client-side code, you MUST inspect:
23
+
23
24
  1. XSS Sanitize Rules (Section 28) → Require DOMPurify for any `dangerouslySetInnerHTML` and audit dynamic `javascript:` URIs
24
25
  2. HttpOnly Auth Token Storage (Section 34) → Ban storing JWTs or auth tokens in `localStorage` or `sessionStorage`; use `HttpOnly`, `Secure`, `SameSite` cookies
25
26
  3. PostMessage Origin Verification (Section 46) → Never use `targetOrigin: '*'` and always validate `event.origin` on receiving handlers
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before designing gameplay systems or controller feel, you MUST inspect:
23
+
23
24
  1. 3Cs Foundation (Character, Camera, Controls) (Section 25) → Implement input buffering (~150ms) and coyote time (~100ms) before designing enemy AI or progression
24
25
  2. Macro Gameplay Loop Validation (Section 42) → Ensure upgrading systems directly alter action and combat feel to prevent player churn
25
26
  3. Juicing & Hitstop Feel (Section 58) → Incorporate screen shake, hitstop (3 freeze frames), particle explosions, and squash-and-stretch for impact feedback
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before engineering game state loops or physics engines, you MUST inspect:
23
+
23
24
  1. Clamped DeltaTime Rule (Section 25) → Clamp `deltaTime` (max 0.05s) to prevent physics explosions on frame rate drops
24
25
  2. Garbage Collection & Object Pooling (Section 50) → Pre-allocate and pool game objects; ban `Instantiate()` or dynamic memory allocations in frame update loops
25
26
  3. FixedUpdate vs Update Separation (Section 43) → Put all physics logic in `FixedUpdate()`; use `Update()` strictly for visual interpolation and input collection
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before implementing Generative UI streaming pipelines, you MUST inspect:
23
+
23
24
  1. Tool Parameter Schemas (Section 87) → Validate all LLM tool parameters with Zod schemas
24
25
  2. RSC Server Action Boundaries (Section 33) → Annotate server actions with `"use server"` and yield Server Components directly from `streamUI`
25
26
  3. Intermediate Skeleton Yielding (Section 80) → Always `yield <SkeletonLoader />` before awaiting async APIs or external LLM tool calls
@@ -74,11 +75,11 @@ Use this when you need strict JSON streams for charts, tables, or complex states
74
75
 
75
76
  ```typescript
76
77
  const result = await streamObject({
77
- model: openai("gpt-4-turbo"),
78
+ model: openai('gpt-4-turbo'),
78
79
  schema: z.object({
79
80
  points: z.array(z.object({ x: z.number(), y: z.number() })),
80
81
  }),
81
- prompt: "Generate a sales forecast chart data",
82
+ prompt: 'Generate a sales forecast chart data',
82
83
  });
83
84
  // Client consumes via useObject
84
85
  ```
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before optimizing content for AI engine ingestion, you MUST inspect:
23
+
23
24
  1. High Information Density Rule (Section 25) → Maximize factual density; eliminate marketing boilerplate so LLM context windows aren't truncated
24
25
  2. Explicit Claim-to-Source Mapping (Section 51) → Map stats and claims directly to explicit `<cite>` sources/links; ban vague unanchored assertions
25
26
  3. Text-Based Architecture Diagrams (Section 94) → Represent architecture via text/Mermaid.js code blocks; ban image-only architecture diagrams
@@ -49,7 +50,7 @@ Modern sites should natively serve structured markdown if they detect an AI User
49
50
  ```typescript
50
51
  // Next.js Edge Middleware for GEO
51
52
  export function middleware(req: NextRequest) {
52
- const ua = req.headers.get("user-agent") || "";
53
+ const ua = req.headers.get('user-agent') || '';
53
54
  const isBot = /ChatGPT|Perplexity|ClaudeBot/i.test(ua);
54
55
 
55
56
  if (isBot) {
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before running complex Git operations or writing release workflows, you MUST inspect:
23
+
23
24
  1. Safe Force Push Rule (Section 18) → Use `--force-with-lease` exclusively; ban raw `git push --force` on shared/remote branches
24
25
  2. Reflog Recovery Strategy (Section 30) → Inspect `git reflog` to recover lost commits or bad resets before discarding uncommitted state
25
26
  3. OIDC Authentication Protocol (Section 208) → Configure OIDC AWS auth (`id-token: write`) in GitHub Actions workflows; ban static AWS access keys
@@ -166,18 +167,18 @@ git checkout main
166
167
  ```javascript
167
168
  // release.config.js
168
169
  export default {
169
- branches: ["main", { name: "beta", prerelease: true }],
170
+ branches: ['main', { name: 'beta', prerelease: true }],
170
171
  plugins: [
171
- "@semantic-release/commit-analyzer", // reads conventional commits
172
- "@semantic-release/release-notes-generator",
173
- "@semantic-release/changelog", // updates CHANGELOG.md
174
- "@semantic-release/npm", // bumps package.json version
175
- "@semantic-release/github", // creates GitHub Release
172
+ '@semantic-release/commit-analyzer', // reads conventional commits
173
+ '@semantic-release/release-notes-generator',
174
+ '@semantic-release/changelog', // updates CHANGELOG.md
175
+ '@semantic-release/npm', // bumps package.json version
176
+ '@semantic-release/github', // creates GitHub Release
176
177
  [
177
- "@semantic-release/git",
178
+ '@semantic-release/git',
178
179
  {
179
- assets: ["CHANGELOG.md", "package.json"],
180
- message: "chore(release): ${nextRelease.version} [skip ci]",
180
+ assets: ['CHANGELOG.md', 'package.json'],
181
+ message: 'chore(release): ${nextRelease.version} [skip ci]',
181
182
  },
182
183
  ],
183
184
  ],
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before running Git commands or writing GitHub workflows, you MUST inspect:
23
+
23
24
  1. Local-Only Interactive Rebase (Section 172) → Perform interactive rebases (`git rebase -i`) ONLY on local unpushed commits; ban rebasing public/shared history
24
25
  2. Conventional Commit Standards (Section 55) → Format commit messages using Conventional Commits (`type(scope): description`) for automated changelogs
25
26
  3. Squash Merge Default (Section 146) → Enforce squash merge strategy for feature branches merging into main to keep history linear and clean
@@ -295,7 +296,7 @@ npx commitlint --edit $1
295
296
  ```javascript
296
297
  // commitlint.config.js
297
298
  export default {
298
- extends: ["@commitlint/config-conventional"],
299
+ extends: ['@commitlint/config-conventional'],
299
300
  };
300
301
  ```
301
302
 
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before generating UI layouts or visual code, you MUST inspect:
23
+
23
24
  1. Structural Layout Variance (Section 24) → Vary structural layout across sections; ban uniform 3-card bento grids
24
25
  2. OKLCH Perceptual Palette (Section 30) → Declare all color tokens using OKLCH color space for perceptual uniformity
25
26
  3. Zero Truncation Rule (Section 39) → Strictly ban `// TODO: add remaining items` placeholder comments; generate complete production-ready code
@@ -31,21 +32,27 @@ Inject high-agency visual judgment and layout variance into AI-generated interfa
31
32
  ## 4 High-Agency Visual Constraints
32
33
 
33
34
  ### 1. Structural Layout Variance
35
+
34
36
  Never use standard symmetrical layouts by default. Vary structural axes across sections:
37
+
35
38
  - **Hero**: Asymmetric 60/40 split or left-aligned stacked text with offset app preview frame.
36
39
  - **Features**: Alternating 2-column image/text rhythm or horizontal scroll cards.
37
40
  - **CTA**: Single full-width card with progressive backdrop blur overlay.
38
41
 
39
42
  ### 2. OKLCH Perceptual Palette Generation
43
+
40
44
  Always generate color schemes in OKLCH:
45
+
41
46
  - Background: `oklch(0.98 0.005 240)`
42
47
  - Foreground: `oklch(0.18 0.01 240)`
43
48
  - Accent: `oklch(0.62 0.22 250)`
44
49
 
45
50
  ### 3. GSAP / Motion Engineering Integration
51
+
46
52
  When animation is requested, use explicit GSAP timelines with custom easing curves (`power3.out`, `expo.out`), avoiding default linear transitions.
47
53
 
48
54
  ### 4. Zero Output Truncation
55
+
49
56
  Never output placeholder `// TODO: add remaining items` comments in UI code. Generate full, production-ready JSX/CSS markup.
50
57
 
51
58
  ---
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before creating or editing GSAP animations, you MUST inspect:
23
+
23
24
  1. Transform Aliases vs Layout Properties (Section 74) → Animate transform aliases (`x`, `y`, `scale`, `rotation`); ban animating layout-heavy properties (`width`, `height`, `top`, `left`)
24
25
  2. GSAP 3 Object Syntax (Section 280) → Use GSAP 3 object parameter syntax (`gsap.to(target, { duration: 1, x: 100 })`); ban legacy GSAP 2 signature (`gsap.to(target, 1, { x: 100 })`)
25
26
  3. Accessible Responsive Motion with matchMedia (Section 213) → Wrap responsive or reduced-motion animations in `gsap.matchMedia()`; set `duration: 0` when `prefers-reduced-motion` matches
@@ -109,9 +110,9 @@ Relative values work: `x: "+=20"`, `rotation: "-=30"`. Default units: x/y in px,
109
110
  - **clearProps** — Comma-separated list of property names (or `"all"` / `true`) to **remove** from the element’s inline style when the tween completes. Use when a class or other CSS should take over after the animation. Clearing any transform-related property (e.g. `x`, `scale`, `rotation`) clears the **entire** transform.
110
111
 
111
112
  ```javascript
112
- gsap.to(".box", { x: 100, rotation: "360_cw", duration: 1 });
113
- gsap.to(".fade", { autoAlpha: 0, duration: 0.5, clearProps: "visibility" });
114
- gsap.to(svgEl, { rotation: 90, svgOrigin: "100 100" });
113
+ gsap.to('.box', { x: 100, rotation: '360_cw', duration: 1 });
114
+ gsap.to('.fade', { autoAlpha: 0, duration: 0.5, clearProps: 'visibility' });
115
+ gsap.to(svgEl, { rotation: 90, svgOrigin: '100 100' });
115
116
  ```
116
117
 
117
118
  ## Targets
@@ -123,7 +124,7 @@ gsap.to(svgEl, { rotation: 90, svgOrigin: "100 100" });
123
124
  Offset the animation of each item by 0.1 second like this:
124
125
 
125
126
  ```javascript
126
- gsap.to(".item", {
127
+ gsap.to('.item', {
127
128
  y: -20,
128
129
  stagger: 0.1,
129
130
  });
@@ -140,11 +141,11 @@ https://gsap.com/resources/getting-started/Staggers
140
141
  Use string eases unless a custom curve is needed:
141
142
 
142
143
  ```javascript
143
- ease: "power1.out"; // default feel
144
- ease: "power3.inOut";
145
- ease: "back.out(1.7)"; // overshoot
146
- ease: "elastic.out(1, 0.3)";
147
- ease: "none"; // linear
144
+ ease: 'power1.out'; // default feel
145
+ ease: 'power3.inOut';
146
+ ease: 'back.out(1.7)'; // overshoot
147
+ ease: 'elastic.out(1, 0.3)';
148
+ ease: 'none'; // linear
148
149
  ```
149
150
 
150
151
  Built-in eases: base (same as `.out`), `.in`, `.out`, `.inOut` where "power" refers to the strength of the curve (1 is more gradual, 4 is steepest):
@@ -169,17 +170,20 @@ base (out) .in .out .inOut
169
170
  Simple cubic-bezier values (as used in CSS `cubic-bezier()`):
170
171
 
171
172
  ```javascript
172
- const myEase = CustomEase.create("my-ease", ".17,.67,.83,.67");
173
+ const myEase = CustomEase.create('my-ease', '.17,.67,.83,.67');
173
174
 
174
- gsap.to(".item", { x: 100, ease: myEase, duration: 1 });
175
+ gsap.to('.item', { x: 100, ease: myEase, duration: 1 });
175
176
  ```
176
177
 
177
178
  Complex curve with any number of control points, described as normalized SVG path data:
178
179
 
179
180
  ```javascript
180
- const myEase = CustomEase.create("hop", "M0,0 C0,0 0.056,0.442 0.175,0.442 0.294,0.442 0.332,0 0.332,0 0.332,0 0.414,1 0.671,1 0.991,1 1,0 1,0");
181
+ const myEase = CustomEase.create(
182
+ 'hop',
183
+ 'M0,0 C0,0 0.056,0.442 0.175,0.442 0.294,0.442 0.332,0 0.332,0 0.332,0 0.414,1 0.671,1 0.991,1 1,0 1,0',
184
+ );
181
185
 
182
- gsap.to(".item", { x: 100, ease: myEase, duration: 1 });
186
+ gsap.to('.item', { x: 100, ease: myEase, duration: 1 });
183
187
  ```
184
188
 
185
189
  ## Returning and Controlling Tweens
@@ -187,7 +191,7 @@ gsap.to(".item", { x: 100, ease: myEase, duration: 1 });
187
191
  All tween methods return a **Tween** instance. Store the return value when controlling playback is needed:
188
192
 
189
193
  ```javascript
190
- const tween = gsap.to(".box", { x: 100, duration: 1, repeat: 1, yoyo: true });
194
+ const tween = gsap.to('.box', { x: 100, duration: 1, repeat: 1, yoyo: true });
191
195
  tween.pause();
192
196
  tween.play();
193
197
  tween.reverse();
@@ -202,7 +206,7 @@ tween.totalTime(1.5);
202
206
  Use a function for a `vars` value and it will get called **once for each target** the first time the tween renders, and whatever is returned by that function will be used as the animation value.
203
207
 
204
208
  ```javascript
205
- gsap.to(".item", {
209
+ gsap.to('.item', {
206
210
  x: (i, target, targetsArray) => i * 50, // first item animates to 0, the second to 50, the third to 100, etc.
207
211
  stagger: 0.1,
208
212
  });
@@ -213,7 +217,7 @@ gsap.to(".item", {
213
217
  Use a `+=`, `-=`, `*=`, or `/=` prefix to indicate a **relative** value. For example, the following will animate x to 20 pixels less than whatever it is when the tween renders for the first time.
214
218
 
215
219
  ```javascript
216
- gsap.to(".class", { x: "-=20" });
220
+ gsap.to('.class', { x: '-=20' });
217
221
  ```
218
222
 
219
223
  `x: "+=20"` would add 20 to the current value. `"*=2"` would multiply by 2, and `"/=2"` would divide by 2.
@@ -223,7 +227,7 @@ gsap.to(".class", { x: "-=20" });
223
227
  Set project-wide Tween defaults with **gsap.defaults()**:
224
228
 
225
229
  ```javascript
226
- gsap.defaults({ duration: 0.6, ease: "power2.out" });
230
+ gsap.defaults({ duration: 0.6, ease: 'power2.out' });
227
231
  ```
228
232
 
229
233
  ## Accessibility and responsive (gsap.matchMedia())
@@ -240,13 +244,13 @@ gsap.defaults({ duration: 0.6, ease: "power2.out" });
240
244
  ```javascript
241
245
  mm.add(
242
246
  {
243
- isDesktop: "(min-width: 800px)",
244
- isMobile: "(max-width: 799px)",
245
- reduceMotion: "(prefers-reduced-motion: reduce)",
247
+ isDesktop: '(min-width: 800px)',
248
+ isMobile: '(max-width: 799px)',
249
+ reduceMotion: '(prefers-reduced-motion: reduce)',
246
250
  },
247
- (context) => {
251
+ context => {
248
252
  const { isDesktop, reduceMotion } = context.conditions;
249
- gsap.to(".box", {
253
+ gsap.to('.box', {
250
254
  rotation: isDesktop ? 360 : 180,
251
255
  duration: reduceMotion ? 0 : 2, // skip animation when user prefers reduced motion
252
256
  });
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before using GSAP in Vue, Svelte, or non-React frameworks, you MUST inspect:
23
+
23
24
  1. Lifecycle Initialization Rule (Section 175) → Create GSAP animations strictly inside `onMounted` / `onMount`; ban creating tweens in un-mounted setup phases
24
25
  2. Scoped Selector Context (Section 176) → Scope selectors via `gsap.context(callback, containerRef)`; ban un-scoped global class selectors (`.item`)
25
26
  3. Mandatory Context Reversion on Unmount (Section 177) → Call `ctx.revert()` inside `onUnmounted` / returned cleanup function to prevent memory leaks
@@ -43,9 +44,9 @@ Apply when writing or reviewing GSAP code in Vue (or Nuxt), Svelte (or SvelteKit
43
44
  Use **onMounted** to run GSAP after the component is in the DOM. Use **onUnmounted** to clean up.
44
45
 
45
46
  ```javascript
46
- import { onMounted, onUnmounted, ref } from "vue";
47
- import { gsap } from "gsap";
48
- import { ScrollTrigger } from "gsap/ScrollTrigger";
47
+ import { onMounted, onUnmounted, ref } from 'vue';
48
+ import { gsap } from 'gsap';
49
+ import { ScrollTrigger } from 'gsap/ScrollTrigger';
49
50
  gsap.registerPlugin(ScrollTrigger); // once per app, e.g. in main.js
50
51
 
51
52
  export default {
@@ -56,8 +57,8 @@ export default {
56
57
  onMounted(() => {
57
58
  if (!container.value) return;
58
59
  ctx = gsap.context(() => {
59
- gsap.to(".box", { x: 100, duration: 0.6 });
60
- gsap.from(".item", { autoAlpha: 0, y: 20, stagger: 0.1 });
60
+ gsap.to('.box', { x: 100, duration: 0.6 });
61
+ gsap.from('.item', { autoAlpha: 0, y: 20, stagger: 0.1 });
61
62
  }, container.value);
62
63
  });
63
64
 
@@ -20,6 +20,7 @@ scripts-binding:
20
20
  ## Mandatory Pre-Flight Context Inspection
21
21
 
22
22
  Before optimizing GSAP animations for performance, you MUST inspect:
23
+
23
24
  1. Target properties (Section 18) → Animate Composite properties (`x`, `y`, `scale`, `rotation`, `opacity`) instead of layout properties (`left`, `top`, `width`, `height`)
24
25
  2. Frequent Updates (Section 45) → Use `gsap.quickTo()` for mouse followers or rapid pointer movement loops
25
26
  3. Batching & Staggering (Section 39) → Use GSAP `stagger` instead of creating multiple individual delayed tweens
@@ -62,10 +63,10 @@ GSAP batches updates internally. When mixing GSAP with direct DOM reads/writes o
62
63
  Prefer **gsap.quickTo()** for properties that are updated often (e.g. mouse-follower x/y). It reuses a single tween instead of creating new tweens on each update.
63
64
 
64
65
  ```javascript
65
- let xTo = gsap.quickTo("#id", "x", { duration: 0.4, ease: "power3" }),
66
- yTo = gsap.quickTo("#id", "y", { duration: 0.4, ease: "power3" });
66
+ let xTo = gsap.quickTo('#id', 'x', { duration: 0.4, ease: 'power3' }),
67
+ yTo = gsap.quickTo('#id', 'y', { duration: 0.4, ease: 'power3' });
67
68
 
68
- document.querySelector("#container").addEventListener("mousemove", (e) => {
69
+ document.querySelector('#container').addEventListener('mousemove', e => {
69
70
  xTo(e.pageX);
70
71
  yTo(e.pageY);
71
72
  });