sinapse-ai 9.3.0 → 9.5.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 (432) hide show
  1. package/.claude/CLAUDE.md +60 -341
  2. package/.claude/hooks/enforce-architecture-first.py +197 -197
  3. package/.claude/hooks/enforce-git-push-authority.sh +25 -4
  4. package/.claude/hooks/mind-clone-governance.py +193 -193
  5. package/.claude/hooks/read-protection.py +152 -152
  6. package/.claude/hooks/sql-governance.py +183 -183
  7. package/.claude/hooks/verify-packages.cjs +83 -0
  8. package/.claude/hooks/write-path-validation.py +195 -195
  9. package/.claude/rules/agent-authority.md +6 -0
  10. package/.claude/rules/agent-handoff.md +5 -0
  11. package/.claude/rules/cross-squad-routing.md +5 -0
  12. package/.claude/rules/hook-governance.md +7 -0
  13. package/.claude/rules/mandatory-delegation.md +24 -0
  14. package/.claude/rules/mcp-usage.md +3 -1
  15. package/.claude/rules/project-intelligence.md +63 -0
  16. package/.claude/rules/response-format.md +4 -0
  17. package/.claude/rules/safe-collaboration.md +14 -2
  18. package/.claude/rules/security-data-protection.md +27 -0
  19. package/.claude/rules/squad-awareness.md +96 -68
  20. package/.claude/rules/token-economy.md +148 -0
  21. package/.claude/rules/tool-examples.md +6 -0
  22. package/.claude/rules/workflow-execution.md +7 -0
  23. package/.codex/agents/analyst.md +342 -71
  24. package/.codex/agents/architect.md +533 -68
  25. package/.codex/agents/data-engineer.md +530 -106
  26. package/.codex/agents/developer.md +657 -0
  27. package/.codex/agents/devops.md +639 -69
  28. package/.codex/agents/product-lead.md +362 -0
  29. package/.codex/agents/project-lead.md +405 -0
  30. package/.codex/agents/quality-gate.md +538 -0
  31. package/.codex/agents/sinapse-orqx.md +9 -7
  32. package/.codex/agents/sprint-lead.md +315 -0
  33. package/.codex/agents/squad-creator.md +402 -0
  34. package/.codex/agents/ux-design-expert.md +523 -0
  35. package/.codex/delegation-matrix.json +756 -44
  36. package/.codex/handoff-packet.schema.json +30 -6
  37. package/.sinapse-ai/core/code-intel/registry-syncer.js +56 -3
  38. package/.sinapse-ai/core/doctor/checks/agent-memory.js +5 -1
  39. package/.sinapse-ai/core/doctor/checks/claude-md.js +4 -1
  40. package/.sinapse-ai/core/doctor/checks/code-intel.js +5 -1
  41. package/.sinapse-ai/core/doctor/checks/commands-count.js +4 -1
  42. package/.sinapse-ai/core/doctor/checks/constitution-consistency.js +4 -1
  43. package/.sinapse-ai/core/doctor/checks/core-config.js +4 -1
  44. package/.sinapse-ai/core/doctor/checks/entity-registry.js +6 -1
  45. package/.sinapse-ai/core/doctor/checks/git-hooks.js +5 -1
  46. package/.sinapse-ai/core/doctor/checks/graph-dashboard.js +4 -1
  47. package/.sinapse-ai/core/doctor/checks/hooks-claude-count.js +5 -1
  48. package/.sinapse-ai/core/doctor/checks/ide-sync.js +4 -1
  49. package/.sinapse-ai/core/doctor/checks/node-version.js +4 -1
  50. package/.sinapse-ai/core/doctor/checks/npm-packages.js +4 -1
  51. package/.sinapse-ai/core/doctor/checks/rules-files.js +4 -1
  52. package/.sinapse-ai/core/doctor/checks/settings-json.js +4 -1
  53. package/.sinapse-ai/core/doctor/checks/skills-count.js +4 -1
  54. package/.sinapse-ai/core/doctor/index.js +157 -50
  55. package/.sinapse-ai/core/ids/registry-updater.js +6 -1
  56. package/.sinapse-ai/core/logger/index.js +319 -0
  57. package/.sinapse-ai/core/orchestration/terminal-spawner.js +2 -2
  58. package/.sinapse-ai/core/telemetry/index.js +247 -0
  59. package/.sinapse-ai/data/entity-registry.yaml +1060 -808
  60. package/.sinapse-ai/development/agents/analyst.md +90 -0
  61. package/.sinapse-ai/development/agents/architect.md +78 -0
  62. package/.sinapse-ai/development/agents/data-engineer.md +38 -0
  63. package/.sinapse-ai/development/agents/developer.md +97 -0
  64. package/.sinapse-ai/development/agents/devops.md +121 -0
  65. package/.sinapse-ai/development/agents/product-lead.md +27 -0
  66. package/.sinapse-ai/development/agents/project-lead.md +28 -0
  67. package/.sinapse-ai/development/agents/quality-gate.md +89 -0
  68. package/.sinapse-ai/development/agents/sprint-lead/MEMORY.md +8 -0
  69. package/.sinapse-ai/development/agents/sprint-lead.md +28 -0
  70. package/.sinapse-ai/development/agents/squad-creator.md +58 -0
  71. package/.sinapse-ai/development/agents/ux-design-expert.md +28 -0
  72. package/.sinapse-ai/development/checklists/agent-quality-gate.md +27 -0
  73. package/.sinapse-ai/development/checklists/brownfield-compatibility-checklist.md +20 -0
  74. package/.sinapse-ai/development/checklists/code-review-checklist.md +106 -0
  75. package/.sinapse-ai/development/checklists/issue-triage-checklist.md +9 -0
  76. package/.sinapse-ai/development/checklists/memory-audit-checklist.md +16 -0
  77. package/.sinapse-ai/development/checklists/pr-quality-checklist.md +72 -0
  78. package/.sinapse-ai/development/checklists/security-deployment-checklist.md +54 -0
  79. package/.sinapse-ai/development/checklists/self-critique-checklist.md +19 -1
  80. package/.sinapse-ai/development/knowledge-base/agent-communication-protocol.md +127 -0
  81. package/.sinapse-ai/development/knowledge-base/database-scaling-patterns.md +374 -0
  82. package/.sinapse-ai/development/knowledge-base/environment-deployment-patterns.md +353 -0
  83. package/.sinapse-ai/development/knowledge-base/gotchas-patterns.md +224 -0
  84. package/.sinapse-ai/development/knowledge-base/infrastructure-decision-framework.md +221 -0
  85. package/.sinapse-ai/development/knowledge-base/security-pre-deploy-checklist.md +410 -0
  86. package/.sinapse-ai/development/knowledge-base/software-architecture-patterns.md +299 -0
  87. package/.sinapse-ai/development/knowledge-base/token-economy-guide.md +198 -0
  88. package/.sinapse-ai/development/scripts/populate-entity-registry.js +5 -1
  89. package/.sinapse-ai/development/skills/captcha-handler.md +82 -0
  90. package/.sinapse-ai/development/skills/chrome-brain.md +81 -0
  91. package/.sinapse-ai/development/skills/debug.md +57 -0
  92. package/.sinapse-ai/development/skills/deploy-readiness.md +93 -0
  93. package/.sinapse-ai/development/skills/fast-review.md +69 -0
  94. package/.sinapse-ai/development/skills/model-router.md +92 -0
  95. package/.sinapse-ai/development/skills/research-synthesis.md +77 -0
  96. package/.sinapse-ai/development/skills/security-scan.md +73 -0
  97. package/.sinapse-ai/development/skills/sinapse-methodology.md +175 -0
  98. package/.sinapse-ai/development/skills/story-fast-track.md +71 -0
  99. package/.sinapse-ai/development/skills/verify.md +53 -0
  100. package/.sinapse-ai/development/tasks/dev-develop-story.md +10 -0
  101. package/.sinapse-ai/development/tasks/environment-promotion-pipeline.md +582 -0
  102. package/.sinapse-ai/development/tasks/generate-agent-handoff.md +223 -0
  103. package/.sinapse-ai/development/tasks/infrastructure-assessment.md +432 -0
  104. package/.sinapse-ai/development/tasks/load-testing-setup.md +611 -0
  105. package/.sinapse-ai/development/tasks/observability-blueprint.md +562 -0
  106. package/.sinapse-ai/development/templates/legal/breach-notification-tmpl.md +113 -0
  107. package/.sinapse-ai/development/templates/legal/privacy-policy-tmpl.md +93 -0
  108. package/.sinapse-ai/development/templates/legal/terms-of-service-tmpl.md +85 -0
  109. package/.sinapse-ai/development/templates/service-template/README.md.hbs +159 -159
  110. package/.sinapse-ai/development/templates/service-template/__tests__/index.test.ts.hbs +238 -238
  111. package/.sinapse-ai/development/templates/service-template/client.ts.hbs +404 -404
  112. package/.sinapse-ai/development/templates/service-template/errors.ts.hbs +183 -183
  113. package/.sinapse-ai/development/templates/service-template/index.ts.hbs +121 -121
  114. package/.sinapse-ai/development/templates/service-template/package.json.hbs +88 -88
  115. package/.sinapse-ai/development/templates/service-template/types.ts.hbs +146 -146
  116. package/.sinapse-ai/development/templates/squad/agent-template.md +17 -4
  117. package/.sinapse-ai/development/templates/squad/checklist-template.md +13 -5
  118. package/.sinapse-ai/development/templates/squad/task-template.md +7 -0
  119. package/.sinapse-ai/development/templates/squad/workflow-template.yaml +7 -0
  120. package/.sinapse-ai/development/templates/squad-template/LICENSE +22 -22
  121. package/.sinapse-ai/development/workflows/fast-track.yaml +87 -0
  122. package/.sinapse-ai/development/workflows/story-development-cycle.yaml +40 -1
  123. package/.sinapse-ai/hooks/ids-post-commit.js +22 -0
  124. package/.sinapse-ai/infrastructure/contracts/compatibility/README.md +42 -0
  125. package/.sinapse-ai/infrastructure/contracts/compatibility/sinapse-current.yaml +35 -0
  126. package/.sinapse-ai/infrastructure/scripts/llm-routing/templates/claude-free-tracked.cmd +127 -127
  127. package/.sinapse-ai/infrastructure/scripts/llm-routing/templates/deepseek-proxy.cmd +71 -71
  128. package/.sinapse-ai/infrastructure/scripts/llm-routing/templates/deepseek-usage.cmd +51 -51
  129. package/.sinapse-ai/infrastructure/scripts/pr-review-ai.js +16 -13
  130. package/.sinapse-ai/infrastructure/scripts/setup-project-infra.js +128 -0
  131. package/.sinapse-ai/infrastructure/scripts/test-discovery.js +8 -3
  132. package/.sinapse-ai/infrastructure/scripts/validate-codex-delegation.js +3 -1
  133. package/.sinapse-ai/infrastructure/scripts/validate-manifest-parity.js +380 -0
  134. package/.sinapse-ai/infrastructure/scripts/validate-parity.js +76 -25
  135. package/.sinapse-ai/infrastructure/templates/coderabbit.yaml.template +280 -280
  136. package/.sinapse-ai/infrastructure/templates/config/env.example +16 -0
  137. package/.sinapse-ai/infrastructure/templates/config/gitignore-additions.tmpl +59 -0
  138. package/.sinapse-ai/infrastructure/templates/github/CODEOWNERS.template +12 -0
  139. package/.sinapse-ai/infrastructure/templates/github/PULL_REQUEST_TEMPLATE.md +29 -0
  140. package/.sinapse-ai/infrastructure/templates/github/ci-template.yml +77 -0
  141. package/.sinapse-ai/infrastructure/templates/github/issue-templates/bug_report.md +34 -0
  142. package/.sinapse-ai/infrastructure/templates/github/issue-templates/feature_request.md +19 -0
  143. package/.sinapse-ai/infrastructure/templates/github-workflows/ci.yml.template +170 -170
  144. package/.sinapse-ai/infrastructure/templates/github-workflows/pr-automation.yml.template +331 -331
  145. package/.sinapse-ai/infrastructure/templates/github-workflows/release.yml.template +197 -197
  146. package/.sinapse-ai/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +19 -19
  147. package/.sinapse-ai/infrastructure/templates/gitignore/gitignore-node.tmpl +86 -86
  148. package/.sinapse-ai/infrastructure/templates/gitignore/gitignore-python.tmpl +146 -146
  149. package/.sinapse-ai/infrastructure/templates/gitignore/gitignore-sinapse-base.tmpl +64 -64
  150. package/.sinapse-ai/infrastructure/templates/sinapse-sync.yaml.template +183 -183
  151. package/.sinapse-ai/install-manifest.yaml +333 -162
  152. package/.sinapse-ai/local-config.yaml.template +65 -65
  153. package/.sinapse-ai/monitor/hooks/lib/__init__.py +2 -2
  154. package/.sinapse-ai/monitor/hooks/lib/enrich.py +59 -59
  155. package/.sinapse-ai/monitor/hooks/lib/send_event.py +48 -48
  156. package/.sinapse-ai/monitor/hooks/notification.py +30 -30
  157. package/.sinapse-ai/monitor/hooks/post_tool_use.py +46 -46
  158. package/.sinapse-ai/monitor/hooks/pre_compact.py +30 -30
  159. package/.sinapse-ai/monitor/hooks/pre_tool_use.py +41 -41
  160. package/.sinapse-ai/monitor/hooks/stop.py +30 -30
  161. package/.sinapse-ai/monitor/hooks/subagent_stop.py +30 -30
  162. package/.sinapse-ai/monitor/hooks/user_prompt_submit.py +39 -39
  163. package/.sinapse-ai/product/templates/adr.hbs +126 -126
  164. package/.sinapse-ai/product/templates/dbdr.hbs +242 -242
  165. package/.sinapse-ai/product/templates/epic.hbs +213 -213
  166. package/.sinapse-ai/product/templates/pmdr.hbs +187 -187
  167. package/.sinapse-ai/product/templates/prd-v2.0.hbs +217 -217
  168. package/.sinapse-ai/product/templates/prd.hbs +202 -202
  169. package/.sinapse-ai/product/templates/story-tmpl.yaml +59 -0
  170. package/.sinapse-ai/product/templates/story.hbs +264 -264
  171. package/.sinapse-ai/product/templates/task.hbs +171 -171
  172. package/.sinapse-ai/product/templates/tmpl-comment-on-examples.sql +159 -159
  173. package/.sinapse-ai/product/templates/tmpl-migration-script.sql +92 -92
  174. package/.sinapse-ai/product/templates/tmpl-rls-granular-policies.sql +105 -105
  175. package/.sinapse-ai/product/templates/tmpl-rls-kiss-policy.sql +11 -11
  176. package/.sinapse-ai/product/templates/tmpl-rls-roles.sql +136 -136
  177. package/.sinapse-ai/product/templates/tmpl-rls-simple.sql +78 -78
  178. package/.sinapse-ai/product/templates/tmpl-rls-tenant.sql +153 -153
  179. package/.sinapse-ai/product/templates/tmpl-rollback-script.sql +78 -78
  180. package/.sinapse-ai/product/templates/tmpl-seed-data.sql +141 -141
  181. package/.sinapse-ai/product/templates/tmpl-smoke-test.sql +17 -17
  182. package/.sinapse-ai/product/templates/tmpl-staging-copy-merge.sql +140 -140
  183. package/.sinapse-ai/product/templates/tmpl-stored-proc.sql +141 -141
  184. package/.sinapse-ai/product/templates/tmpl-trigger.sql +153 -153
  185. package/.sinapse-ai/product/templates/tmpl-view-materialized.sql +134 -134
  186. package/.sinapse-ai/product/templates/tmpl-view.sql +178 -178
  187. package/.sinapse-ai/scripts/diagnostics/health-dashboard/package-lock.json +427 -355
  188. package/LICENSE +34 -34
  189. package/README.en.md +167 -20
  190. package/README.md +190 -22
  191. package/bin/cli.js +510 -196
  192. package/bin/postinstall.js +564 -0
  193. package/bin/sinapse-cli +283 -283
  194. package/bin/sinapse-graph.js +9 -0
  195. package/bin/sinapse-init.js +36 -4
  196. package/bin/sinapse-minimal.js +20 -9
  197. package/bin/sinapse.js +202 -122
  198. package/bin/utils/deprecation-warning.js +46 -0
  199. package/bin/utils/pre-push-safety.js +14 -0
  200. package/docs/TELEMETRY.md +131 -0
  201. package/docs/chrome-brain-upgrade-plan.md +624 -0
  202. package/docs/codex-integration-process.md +22 -0
  203. package/docs/codex-parity-program.md +27 -0
  204. package/docs/framework/orqx-plan.md +1 -1
  205. package/docs/ide-integration.md +36 -0
  206. package/docs/installation/chrome-brain.md +17 -7
  207. package/docs/mega-upgrade-orchestration-plan.md +71 -0
  208. package/docs/pt/contributing.md +20 -0
  209. package/docs/research-synthesis-for-upgrade.md +511 -0
  210. package/docs/security-audit-report.md +306 -0
  211. package/package.json +20 -8
  212. package/packages/installer/src/config/configure-environment.js +19 -44
  213. package/packages/installer/src/detection/detect-project-type.js +181 -63
  214. package/packages/installer/src/installer/manifest-signature.js +32 -17
  215. package/packages/installer/src/wizard/i18n.js +12 -0
  216. package/packages/installer/src/wizard/ide-config-generator.js +8 -39
  217. package/packages/installer/src/wizard/index.js +119 -14
  218. package/packages/installer/src/wizard/questions.js +2 -3
  219. package/packages/installer/tests/integration/environment-configuration.test.js +7 -5
  220. package/packages/installer/tests/unit/detection/detect-project-type.test.js +138 -1
  221. package/packages/installer/tests/unit/doctor/doctor-orchestrator.test.js +3 -3
  222. package/packages/sinapse-install/bin/edmcp.js +0 -0
  223. package/packages/sinapse-install/bin/sinapse-install.js +0 -0
  224. package/packages/sinapse-pro-cli/bin/sinapse-pro.js +0 -0
  225. package/scripts/check-markdown-links.py +353 -353
  226. package/scripts/coverage-report-summary.js +169 -0
  227. package/scripts/generate-install-manifest.js +6 -2
  228. package/scripts/release-readiness.js +169 -0
  229. package/scripts/test-install-matrix-local.sh +153 -0
  230. package/scripts/validate-install-docs.js +394 -0
  231. package/scripts/validate-no-external-refs.js +376 -0
  232. package/scripts/validate-squad-orqx.js +302 -0
  233. package/scripts/validate-story-meta.js +263 -0
  234. package/squads/claude-code-mastery/CHANGELOG.md +1 -1
  235. package/squads/claude-code-mastery/README.md +2 -2
  236. package/squads/claude-code-mastery/knowledge-base/claude-code-internals-reference.md +927 -0
  237. package/squads/claude-code-mastery/squad.yaml +1 -1
  238. package/squads/squad-artdir/README.md +90 -0
  239. package/squads/squad-artdir/agents/accessibility-guardian.md +184 -0
  240. package/squads/squad-artdir/agents/artdir-orqx.md +145 -0
  241. package/squads/squad-artdir/agents/color-psychologist.md +166 -0
  242. package/squads/squad-artdir/agents/cro-persuasion.md +161 -0
  243. package/squads/squad-artdir/agents/design-system-architect.md +100 -0
  244. package/squads/squad-artdir/agents/ia-architect.md +169 -0
  245. package/squads/squad-artdir/agents/interaction-designer.md +162 -0
  246. package/squads/squad-artdir/agents/layout-engineer.md +163 -0
  247. package/squads/squad-artdir/agents/motion-architect.md +185 -0
  248. package/squads/squad-artdir/agents/platform-aesthetic-director.md +84 -0
  249. package/squads/squad-artdir/agents/premium-packaging-strategist.md +107 -0
  250. package/squads/squad-artdir/agents/product-surface-director.md +86 -0
  251. package/squads/squad-artdir/agents/type-systemist.md +138 -0
  252. package/squads/squad-artdir/agents/visual-strategist.md +127 -0
  253. package/squads/squad-artdir/checklists/seven-pillars-validation-checklist.md +172 -0
  254. package/squads/squad-artdir/knowledge-base/case-nyo-ia-reference.md +289 -0
  255. package/squads/squad-artdir/knowledge-base/deliverables-templates.md +457 -0
  256. package/squads/squad-artdir/knowledge-base/motion-technique-catalog.md +247 -0
  257. package/squads/squad-artdir/knowledge-base/premium-packaging-principles.md +133 -0
  258. package/squads/squad-artdir/knowledge-base/psychological-toolkit.md +229 -0
  259. package/squads/squad-artdir/knowledge-base/saas-art-direction-canon.md +242 -0
  260. package/squads/squad-artdir/knowledge-base/seven-pillars-framework.md +289 -0
  261. package/squads/squad-artdir/knowledge-base/ten-pillars-framework.md +221 -0
  262. package/squads/squad-artdir/package.json +20 -0
  263. package/squads/squad-artdir/squad.yaml +271 -0
  264. package/squads/squad-artdir/tasks/audit-conversion.md +97 -0
  265. package/squads/squad-artdir/tasks/audit-drift-multi-surface.md +55 -0
  266. package/squads/squad-artdir/tasks/consult-saas-canon.md +54 -0
  267. package/squads/squad-artdir/tasks/create-art-direction-brief.md +110 -0
  268. package/squads/squad-artdir/tasks/create-premium-packaging-brief.md +61 -0
  269. package/squads/squad-artdir/tasks/create-wireflow.md +84 -0
  270. package/squads/squad-artdir/tasks/design-color-system.md +81 -0
  271. package/squads/squad-artdir/tasks/design-product-surface.md +60 -0
  272. package/squads/squad-artdir/tasks/design-token-system.md +58 -0
  273. package/squads/squad-artdir/tasks/diagnose-visual-language.md +92 -0
  274. package/squads/squad-artdir/tasks/first-5-minutes-choreography.md +65 -0
  275. package/squads/squad-artdir/tasks/specify-motion-system.md +84 -0
  276. package/squads/squad-artdir/tasks/validate-against-pillars.md +143 -0
  277. package/squads/squad-artdir/templates/art-direction-brief-template.md +215 -0
  278. package/squads/squad-artdir/workflows/conversion-audit-cycle.yaml +78 -0
  279. package/squads/squad-artdir/workflows/full-art-direction-cycle.yaml +98 -0
  280. package/squads/squad-artdir/workflows/saas-platform-art-direction-cycle.yaml +174 -0
  281. package/squads/squad-brand/knowledge-base/ai-visual-generation-canon.md +234 -0
  282. package/squads/squad-brand/knowledge-base/archetype-brand-mapping.md +12 -1
  283. package/squads/squad-brand/knowledge-base/brand-activism-cultural-branding.md +216 -0
  284. package/squads/squad-brand/knowledge-base/brand-audit-criteria.md +58 -0
  285. package/squads/squad-brand/knowledge-base/brand-digital-strategy.md +188 -0
  286. package/squads/squad-brand/knowledge-base/brand-legal-ip.md +222 -0
  287. package/squads/squad-brand/knowledge-base/brand-naming-framework.md +163 -0
  288. package/squads/squad-brand/knowledge-base/branding-master-reference.md +1001 -0
  289. package/squads/squad-brand/knowledge-base/color-psychology.md +25 -12
  290. package/squads/squad-brand/knowledge-base/employer-personal-branding.md +206 -0
  291. package/squads/squad-brand/knowledge-base/routing-catalog.md +34 -0
  292. package/squads/squad-brand/knowledge-base/sonic-branding-principles.md +6 -1
  293. package/squads/squad-brand/knowledge-base/typography-personality.md +34 -0
  294. package/squads/squad-brand/squad.yaml +20 -6
  295. package/squads/squad-claude/knowledge-base/context-window-optimization.md +334 -0
  296. package/squads/squad-claude/knowledge-base/knowledge-architecture-reference.md +403 -0
  297. package/squads/squad-claude/knowledge-base/memory-systems-reference.md +412 -0
  298. package/squads/squad-claude/knowledge-base/obsidian-claude-integration.md +423 -0
  299. package/squads/squad-claude/knowledge-base/retrieval-augmented-generation.md +320 -0
  300. package/squads/squad-claude/knowledge-base/skill-creation-patterns.md +380 -0
  301. package/squads/squad-claude/knowledge-base/swarm-orchestration-patterns.md +411 -0
  302. package/squads/squad-cloning/knowledge-base/clone-quality-assurance.md +211 -0
  303. package/squads/squad-cloning/knowledge-base/confidence-scoring.md +51 -0
  304. package/squads/squad-cloning/knowledge-base/cross-squad-deployment.md +47 -0
  305. package/squads/squad-cloning/knowledge-base/ethical-guidelines.md +237 -0
  306. package/squads/squad-cloning/knowledge-base/knowledge-graph-for-clones.md +295 -0
  307. package/squads/squad-cloning/knowledge-base/memory-architecture-for-clones.md +229 -0
  308. package/squads/squad-cloning/knowledge-base/multi-agent-deployment-patterns.md +320 -0
  309. package/squads/squad-cloning/knowledge-base/skill-standard-for-clones.md +262 -0
  310. package/squads/squad-cloning/knowledge-base/sop-extraction-guide.md +243 -0
  311. package/squads/squad-commercial/knowledge-base/account-based-selling.md +206 -0
  312. package/squads/squad-commercial/knowledge-base/ai-as-competitive-infrastructure.md +14 -0
  313. package/squads/squad-commercial/knowledge-base/ai-in-sales.md +199 -0
  314. package/squads/squad-commercial/knowledge-base/brazilian-sales-context.md +195 -0
  315. package/squads/squad-commercial/knowledge-base/customer-success-operations.md +83 -2
  316. package/squads/squad-commercial/knowledge-base/prospecting-pipeline-generation.md +69 -0
  317. package/squads/squad-commercial/knowledge-base/sales-enablement-playbook.md +260 -0
  318. package/squads/squad-commercial/knowledge-base/sales-methodology-comparison.md +185 -0
  319. package/squads/squad-commercial/knowledge-base/sales-revenue-master-reference.md +1123 -0
  320. package/squads/squad-content/knowledge-base/ai-native-content-loop.md +220 -0
  321. package/squads/squad-content/knowledge-base/brazilian-content-context.md +176 -0
  322. package/squads/squad-content/knowledge-base/competitor-analysis-methods.md +40 -1
  323. package/squads/squad-content/knowledge-base/content-architecture-taxonomy.md +206 -0
  324. package/squads/squad-content/knowledge-base/content-formats-encyclopedia.md +58 -1
  325. package/squads/squad-content/knowledge-base/content-references-bibliography.md +130 -0
  326. package/squads/squad-content/knowledge-base/content-strategy-master-reference.md +1097 -0
  327. package/squads/squad-content/knowledge-base/content-tech-stack.md +150 -0
  328. package/squads/squad-content/knowledge-base/copywriting-formulas-library.md +188 -0
  329. package/squads/squad-content/knowledge-base/email-newsletter-strategy.md +161 -0
  330. package/squads/squad-content/knowledge-base/platform-algorithm-intelligence.md +86 -1
  331. package/squads/squad-content/knowledge-base/signal-intelligence-v2.md +234 -0
  332. package/squads/squad-content/knowledge-base/social-algorithms-master-reference.md +1007 -0
  333. package/squads/squad-content/knowledge-base/task-ownership-map.md +235 -0
  334. package/squads/squad-content/knowledge-base/video-audio-content-playbook.md +218 -0
  335. package/squads/squad-content/squad.yaml +187 -27
  336. package/squads/squad-copy/knowledge-base/ai-copy-human-loop-canon.md +235 -0
  337. package/squads/squad-copy/knowledge-base/ai-copy-production.md +254 -0
  338. package/squads/squad-copy/knowledge-base/brazilian-copywriting-context.md +242 -0
  339. package/squads/squad-copy/knowledge-base/email-copywriting-system.md +299 -0
  340. package/squads/squad-copy/knowledge-base/landing-page-copy-architecture.md +267 -0
  341. package/squads/squad-copy/knowledge-base/power-words-catalog.md +205 -0
  342. package/squads/squad-copy/knowledge-base/seo-copywriting.md +255 -0
  343. package/squads/squad-copy/knowledge-base/video-script-copywriting.md +239 -0
  344. package/squads/squad-copy/squad.yaml +19 -4
  345. package/squads/squad-council/knowledge-base/brand-strategy-models.md +193 -0
  346. package/squads/squad-council/knowledge-base/growth-strategy-models.md +267 -0
  347. package/squads/squad-council/knowledge-base/innovation-disruption-frameworks.md +193 -0
  348. package/squads/squad-council/knowledge-base/market-analysis-frameworks.md +240 -0
  349. package/squads/squad-council/knowledge-base/organizational-leadership-models.md +212 -0
  350. package/squads/squad-council/knowledge-base/sales-strategy-models.md +215 -0
  351. package/squads/squad-courses/knowledge-base/course-launch-strategy.md +251 -0
  352. package/squads/squad-courses/knowledge-base/domain-advocacia-curriculum.md +385 -0
  353. package/squads/squad-courses/knowledge-base/domain-contabilidade-curriculum.md +266 -0
  354. package/squads/squad-courses/knowledge-base/platform-comparison.md +68 -0
  355. package/squads/squad-courses/knowledge-base/video-production-guide.md +70 -0
  356. package/squads/squad-cybersecurity/knowledge-base/cloud-security-reference.md +363 -0
  357. package/squads/squad-cybersecurity/knowledge-base/compliance-frameworks.md +273 -0
  358. package/squads/squad-cybersecurity/knowledge-base/database-security.md +438 -0
  359. package/squads/squad-cybersecurity/knowledge-base/incident-response-playbook.md +420 -0
  360. package/squads/squad-cybersecurity/knowledge-base/network-security-reference.md +477 -0
  361. package/squads/squad-cybersecurity/knowledge-base/penetration-testing-methodology.md +350 -0
  362. package/squads/squad-cybersecurity/knowledge-base/vulnerability-management.md +349 -0
  363. package/squads/squad-design/knowledge-base/brazilian-design-context.md +223 -0
  364. package/squads/squad-design/knowledge-base/component-api-patterns.md +208 -4
  365. package/squads/squad-design/knowledge-base/cross-surface-token-canon.md +209 -0
  366. package/squads/squad-design/knowledge-base/design-system-master-reference.md +1302 -0
  367. package/squads/squad-design/knowledge-base/design-systems-frameworks.md +91 -1
  368. package/squads/squad-design/knowledge-base/responsive-modern-css.md +96 -4
  369. package/squads/squad-design/knowledge-base/wcag-aria-reference.md +117 -5
  370. package/squads/squad-design/knowledge-base/web-performance-reference.md +127 -4
  371. package/squads/squad-design/squad.yaml +19 -4
  372. package/squads/squad-finance/knowledge-base/brazilian-taxation.md +263 -0
  373. package/squads/squad-finance/knowledge-base/contabilidade-master-reference.md +998 -0
  374. package/squads/squad-finance/knowledge-base/finance-master-reference.md +946 -0
  375. package/squads/squad-finance/knowledge-base/financial-reporting-analysis.md +316 -0
  376. package/squads/squad-finance/knowledge-base/fintech-brazilian-context.md +242 -0
  377. package/squads/squad-finance/knowledge-base/fpa-planning-frameworks.md +286 -0
  378. package/squads/squad-finance/knowledge-base/ma-and-transactions.md +285 -0
  379. package/squads/squad-finance/knowledge-base/risk-management.md +233 -0
  380. package/squads/squad-finance/knowledge-base/startups-venture-capital.md +337 -0
  381. package/squads/squad-growth/knowledge-base/ai-growth-playbook.md +216 -0
  382. package/squads/squad-growth/knowledge-base/attribution-models.md +78 -0
  383. package/squads/squad-growth/knowledge-base/brazilian-growth-context.md +208 -0
  384. package/squads/squad-growth/knowledge-base/community-led-growth.md +175 -0
  385. package/squads/squad-growth/knowledge-base/content-marketing-flywheel.md +190 -0
  386. package/squads/squad-growth/knowledge-base/email-lifecycle-framework.md +192 -0
  387. package/squads/squad-growth/knowledge-base/growth-frameworks-catalog.md +82 -0
  388. package/squads/squad-growth/knowledge-base/growth-master-reference.md +1168 -0
  389. package/squads/squad-growth/knowledge-base/routing-catalog.md +53 -11
  390. package/squads/squad-paidmedia/knowledge-base/audiences-segmentation-deep.md +285 -0
  391. package/squads/squad-paidmedia/knowledge-base/creative-strategy-deep.md +294 -0
  392. package/squads/squad-paidmedia/knowledge-base/google-ads-account-architecture.md +87 -0
  393. package/squads/squad-paidmedia/knowledge-base/meta-ads-campaign-architecture.md +76 -0
  394. package/squads/squad-paidmedia/knowledge-base/paid-media-metrics-reference.md +117 -0
  395. package/squads/squad-paidmedia/knowledge-base/paid-traffic-master-reference.md +1308 -0
  396. package/squads/squad-paidmedia/knowledge-base/routing-catalog.md +95 -18
  397. package/squads/squad-paidmedia/knowledge-base/traffic-masters-frameworks.md +71 -0
  398. package/squads/squad-product/knowledge-base/brazilian-product-context.md +284 -0
  399. package/squads/squad-product/knowledge-base/discovery-methodology-playbook.md +141 -0
  400. package/squads/squad-product/knowledge-base/pm-frameworks-reference.md +125 -9
  401. package/squads/squad-product/knowledge-base/product-analytics-formulas.md +72 -0
  402. package/squads/squad-product/knowledge-base/product-led-growth-reference.md +155 -13
  403. package/squads/squad-product/knowledge-base/product-market-fit-framework.md +222 -0
  404. package/squads/squad-product/knowledge-base/routing-catalog.md +32 -0
  405. package/squads/squad-research/knowledge-base/agentic-second-brain-reference.md +591 -0
  406. package/squads/squad-research/knowledge-base/ai-augmented-research.md +212 -0
  407. package/squads/squad-research/knowledge-base/brazilian-market-research-sources.md +197 -0
  408. package/squads/squad-research/knowledge-base/community-platforms-reference.md +786 -0
  409. package/squads/squad-research/knowledge-base/community-research-methods.md +194 -0
  410. package/squads/squad-research/knowledge-base/mixed-methods-research-design.md +168 -0
  411. package/squads/squad-research/knowledge-base/network-effects-analysis.md +192 -0
  412. package/squads/squad-research/knowledge-base/qualitative-research-deep-methods.md +202 -0
  413. package/squads/squad-research/knowledge-base/quantitative-research-methods.md +208 -0
  414. package/squads/squad-research/knowledge-base/research-frameworks-encyclopedia.md +40 -0
  415. package/squads/squad-research/knowledge-base/research-synthesis-frameworks.md +223 -0
  416. package/squads/squad-storytelling/knowledge-base/brand-mythology-framework.md +236 -0
  417. package/squads/squad-storytelling/knowledge-base/brazilian-storytelling-context.md +237 -0
  418. package/squads/squad-storytelling/knowledge-base/data-storytelling.md +232 -0
  419. package/squads/squad-storytelling/knowledge-base/improv-storytelling.md +226 -0
  420. package/squads/squad-storytelling/knowledge-base/persuasion-narrative-techniques.md +269 -0
  421. package/squads/squad-storytelling/knowledge-base/social-movement-narratives.md +191 -0
  422. package/squads/squad-storytelling/knowledge-base/video-storytelling.md +252 -0
  423. package/.sinapse-ai/core/registry/service-registry.json +0 -6346
  424. package/.sinapse-ai/data/registry-update-log.jsonl +0 -1307
  425. package/.sinapse-ai/manifests/agents.csv +0 -29
  426. package/.sinapse-ai/manifests/tasks.csv +0 -204
  427. package/.sinapse-ai/manifests/workers.csv +0 -196
  428. package/squads/claude-code-mastery/data/swarm-orchestration-patterns.yaml +0 -378
  429. package/squads/squad-animations/knowledge-base/framer-motion-complete-reference.md +0 -710
  430. package/squads/squad-animations/knowledge-base/web-animations-api-view-transitions.md +0 -478
  431. package/squads/squad-growth/tasks/calculate-sample-size.md +0 -121
  432. package/squads/squad-paidmedia/tasks/calculate-sample-size.md +0 -57
@@ -1,710 +0,0 @@
1
- # Framer Motion — Complete Reference
2
-
3
- > Guia definitivo de Framer Motion para animacoes React de nivel producao.
4
- > Framer Motion e a biblioteca de animacao mais adotada em React/Next.js (23K+ stars).
5
- > Ideal para produtos, SaaS, e micro-interactions. GSAP e melhor para scroll storytelling complexo.
6
-
7
- ---
8
-
9
- ## Decision: Quando usar Framer Motion vs GSAP
10
-
11
- | Situacao | Use |
12
- |----------|-----|
13
- | Produto React/Next.js (SaaS, app) | Framer Motion |
14
- | Website criativo/portfolio/agencia | GSAP + Lenis |
15
- | Micro-interactions em componentes | Framer Motion |
16
- | Timeline complexo, scroll pinning | GSAP |
17
- | Shared element transitions | Framer Motion (layout prop) |
18
- | SVG morph/draw complexo | GSAP (DrawSVG, MorphSVG) |
19
- | Physics-based UI | Framer Motion (spring) |
20
- | 60fps animacao em 1000+ elementos | GSAP (mais performatico) |
21
-
22
- ---
23
-
24
- ## Setup
25
-
26
- ```bash
27
- npm install framer-motion
28
- ```
29
-
30
- ### Bundle size (importante para decisao)
31
- - `framer-motion` completo: ~32KB gzip
32
- - `motion` (alias moderno): ~32KB gzip
33
- - Importacoes seletivas: usar `m` em vez de `motion` para menor bundle
34
-
35
- ```tsx
36
- // Tree-shakeable — menor bundle
37
- import { m, LazyMotion, domAnimation } from 'framer-motion';
38
-
39
- function App() {
40
- return (
41
- <LazyMotion features={domAnimation}>
42
- <m.div animate={{ opacity: 1 }} />
43
- </LazyMotion>
44
- );
45
- }
46
- ```
47
-
48
- ---
49
-
50
- ## Fundamentos: motion.* Components
51
-
52
- O `motion.div` e um wrapper que adiciona capacidades de animacao a qualquer elemento HTML/SVG.
53
-
54
- ```tsx
55
- import { motion } from 'framer-motion';
56
-
57
- // Animacao simples de entrada
58
- <motion.div
59
- initial={{ opacity: 0, y: 20 }}
60
- animate={{ opacity: 1, y: 0 }}
61
- transition={{ duration: 0.5, ease: [0.16, 1, 0.3, 1] }}
62
- />
63
-
64
- // Com saida
65
- <motion.div
66
- initial={{ opacity: 0 }}
67
- animate={{ opacity: 1 }}
68
- exit={{ opacity: 0, y: -20 }}
69
- />
70
- ```
71
-
72
- ### Propriedades principais
73
-
74
- | Prop | Tipo | Descricao |
75
- |------|------|-----------|
76
- | `initial` | TargetAndTransition | Estado inicial (antes de animar) |
77
- | `animate` | TargetAndTransition | Estado animado (alvo) |
78
- | `exit` | TargetAndTransition | Estado de saida (requer AnimatePresence) |
79
- | `transition` | Transition | Configuracao de timing/easing/spring |
80
- | `whileHover` | TargetAndTransition | Estado durante hover |
81
- | `whileTap` | TargetAndTransition | Estado durante press/tap |
82
- | `whileDrag` | TargetAndTransition | Estado durante drag |
83
- | `whileInView` | TargetAndTransition | Estado quando visivel no viewport |
84
- | `variants` | Variants | Sistema de estados nomeados |
85
- | `layout` | boolean/string | Ativar FLIP layout animations |
86
- | `layoutId` | string | Shared element transitions |
87
- | `drag` | boolean/string | Tornar draggable |
88
- | `style` | MotionStyle | Motion values em style |
89
-
90
- ---
91
-
92
- ## Variants — Sistema de Estados
93
-
94
- Variants permitem definir estados nomeados e coordenar animacoes entre pai e filhos.
95
-
96
- ```tsx
97
- // Container + filhos com stagger
98
- const containerVariants = {
99
- hidden: { opacity: 0 },
100
- visible: {
101
- opacity: 1,
102
- transition: {
103
- staggerChildren: 0.1, // Delay entre cada filho
104
- delayChildren: 0.2, // Delay inicial antes do primeiro filho
105
- when: 'beforeChildren', // Container anima ANTES dos filhos
106
- },
107
- },
108
- exit: {
109
- opacity: 0,
110
- transition: { staggerChildren: 0.05, staggerDirection: -1 }
111
- }
112
- };
113
-
114
- const itemVariants = {
115
- hidden: { opacity: 0, y: 30, scale: 0.95 },
116
- visible: {
117
- opacity: 1,
118
- y: 0,
119
- scale: 1,
120
- transition: {
121
- duration: 0.5,
122
- ease: [0.16, 1, 0.3, 1],
123
- },
124
- },
125
- exit: { opacity: 0, y: -20 }
126
- };
127
-
128
- function AnimatedList({ items }) {
129
- return (
130
- <motion.ul
131
- variants={containerVariants}
132
- initial="hidden"
133
- animate="visible"
134
- exit="exit"
135
- >
136
- {items.map(item => (
137
- <motion.li key={item.id} variants={itemVariants}>
138
- {item.name}
139
- </motion.li>
140
- ))}
141
- </motion.ul>
142
- );
143
- }
144
- ```
145
-
146
- ### Variantes de stagger patterns
147
-
148
- ```tsx
149
- // Stagger from center
150
- const staggerFromCenter = {
151
- visible: {
152
- opacity: 1,
153
- transition: {
154
- staggerChildren: 0.08,
155
- // Usando custom origin via index passado nas variants
156
- },
157
- },
158
- };
159
-
160
- // Stagger com velocidades diferentes por nivel
161
- const parentVariants = {
162
- visible: { transition: { staggerChildren: 0.1 } }
163
- };
164
-
165
- const childVariants = {
166
- visible: { transition: { staggerChildren: 0.05 } }
167
- };
168
- ```
169
-
170
- ---
171
-
172
- ## AnimatePresence — Animacoes de Saida
173
-
174
- Sem `AnimatePresence`, animacoes de saida (exit) sao ignoradas. Ele monitora a arvore e permite que componentes se animem antes de ser removidos do DOM.
175
-
176
- ```tsx
177
- import { AnimatePresence, motion } from 'framer-motion';
178
-
179
- // Modal com entrada e saida animada
180
- function Modal({ isOpen, onClose, children }) {
181
- return (
182
- <AnimatePresence>
183
- {isOpen && (
184
- <>
185
- {/* Overlay */}
186
- <motion.div
187
- className="fixed inset-0 bg-black/50"
188
- initial={{ opacity: 0 }}
189
- animate={{ opacity: 1 }}
190
- exit={{ opacity: 0 }}
191
- onClick={onClose}
192
- />
193
-
194
- {/* Modal */}
195
- <motion.div
196
- className="fixed inset-x-4 top-1/2 -translate-y-1/2 bg-white rounded-2xl p-6"
197
- initial={{ opacity: 0, scale: 0.95, y: 20 }}
198
- animate={{ opacity: 1, scale: 1, y: 0 }}
199
- exit={{ opacity: 0, scale: 0.95, y: 20 }}
200
- transition={{ type: 'spring', damping: 25, stiffness: 300 }}
201
- >
202
- {children}
203
- </motion.div>
204
- </>
205
- )}
206
- </AnimatePresence>
207
- );
208
- }
209
- ```
210
-
211
- ### mode prop do AnimatePresence
212
-
213
- ```tsx
214
- // "sync" (default) — entrada e saida simultaneous
215
- // "wait" — aguarda saida antes de iniciar entrada
216
- // "popLayout" — remove elemento do layout durante animacao de saida
217
-
218
- <AnimatePresence mode="wait">
219
- {key && <motion.div key={key} />}
220
- </AnimatePresence>
221
- ```
222
-
223
- ### Page transitions com Next.js
224
-
225
- ```tsx
226
- // app/layout.tsx
227
- 'use client';
228
- import { AnimatePresence, motion } from 'framer-motion';
229
- import { usePathname } from 'next/navigation';
230
-
231
- const pageVariants = {
232
- initial: { opacity: 0, y: 20 },
233
- in: { opacity: 1, y: 0 },
234
- out: { opacity: 0, y: -20 },
235
- };
236
-
237
- const pageTransition = {
238
- duration: 0.3,
239
- ease: [0.16, 1, 0.3, 1],
240
- };
241
-
242
- export function PageTransitionLayout({ children }) {
243
- const pathname = usePathname();
244
-
245
- return (
246
- <AnimatePresence mode="wait">
247
- <motion.div
248
- key={pathname}
249
- variants={pageVariants}
250
- initial="initial"
251
- animate="in"
252
- exit="out"
253
- transition={pageTransition}
254
- >
255
- {children}
256
- </motion.div>
257
- </AnimatePresence>
258
- );
259
- }
260
- ```
261
-
262
- ---
263
-
264
- ## Layout Animations (FLIP)
265
-
266
- `layout` prop ativa animacao automatica quando o layout muda — Framer Motion usa o algoritmo FLIP internamente para performance.
267
-
268
- ```tsx
269
- // Reordenamento animado de lista
270
- function SortableList({ items }) {
271
- return (
272
- <motion.ul layout>
273
- {items.map(item => (
274
- <motion.li
275
- key={item.id}
276
- layout // Anima mudancas de posicao
277
- initial={{ opacity: 0, scale: 0.8 }}
278
- animate={{ opacity: 1, scale: 1 }}
279
- exit={{ opacity: 0, scale: 0.8 }}
280
- transition={{ type: 'spring', stiffness: 300, damping: 25 }}
281
- >
282
- {item.name}
283
- </motion.li>
284
- ))}
285
- </motion.ul>
286
- );
287
- }
288
-
289
- // Expandir/colapsar card com layout animation
290
- function ExpandableCard({ title, content }) {
291
- const [isExpanded, setIsExpanded] = useState(false);
292
-
293
- return (
294
- <motion.div
295
- layout
296
- className="card"
297
- onClick={() => setIsExpanded(!isExpanded)}
298
- >
299
- <motion.h3 layout="position">{title}</motion.h3>
300
- <AnimatePresence>
301
- {isExpanded && (
302
- <motion.p
303
- initial={{ opacity: 0 }}
304
- animate={{ opacity: 1 }}
305
- exit={{ opacity: 0 }}
306
- >
307
- {content}
308
- </motion.p>
309
- )}
310
- </AnimatePresence>
311
- </motion.div>
312
- );
313
- }
314
- ```
315
-
316
- ### Shared Element Transitions (layoutId)
317
-
318
- ```tsx
319
- // Galeria com elemento compartilhado entre estados
320
- function Gallery({ images }) {
321
- const [selectedId, setSelectedId] = useState(null);
322
-
323
- return (
324
- <>
325
- {images.map(image => (
326
- <motion.img
327
- key={image.id}
328
- layoutId={`image-${image.id}`} // ID unico para o par
329
- src={image.src}
330
- className="thumbnail"
331
- onClick={() => setSelectedId(image.id)}
332
- style={{ cursor: 'pointer' }}
333
- />
334
- ))}
335
-
336
- <AnimatePresence>
337
- {selectedId && (
338
- <motion.div className="overlay" onClick={() => setSelectedId(null)}>
339
- <motion.img
340
- layoutId={`image-${selectedId}`} // Mesmo ID = elemento compartilhado
341
- src={images.find(i => i.id === selectedId).src}
342
- className="fullscreen"
343
- />
344
- </motion.div>
345
- )}
346
- </AnimatePresence>
347
- </>
348
- );
349
- }
350
- ```
351
-
352
- ---
353
-
354
- ## Gestures
355
-
356
- ```tsx
357
- // Drag com constraints
358
- function DraggableCard() {
359
- const constraintsRef = useRef(null);
360
-
361
- return (
362
- <div ref={constraintsRef} className="drag-area">
363
- <motion.div
364
- drag // Drag em ambas as direcoes
365
- dragConstraints={constraintsRef} // Limitar ao container
366
- dragElastic={0.1} // Elasticidade ao bater nos limites
367
- dragMomentum={true} // Momentum apos soltar
368
- whileDrag={{ scale: 1.1, rotate: 5 }}
369
- onDragEnd={(event, info) => {
370
- console.log(info.offset.x, info.velocity.x);
371
- }}
372
- >
373
- Drag me
374
- </motion.div>
375
- </div>
376
- );
377
- }
378
-
379
- // Swipe para dispensar (mobile pattern)
380
- function SwipeToDismiss({ onDismiss, children }) {
381
- return (
382
- <motion.div
383
- drag="x"
384
- dragConstraints={{ left: 0, right: 0 }}
385
- dragElastic={1}
386
- onDragEnd={(_, info) => {
387
- if (Math.abs(info.offset.x) > 100) onDismiss();
388
- }}
389
- animate={{ x: 0 }}
390
- >
391
- {children}
392
- </motion.div>
393
- );
394
- }
395
-
396
- // Hover + tap combinados
397
- function InteractiveCard() {
398
- return (
399
- <motion.div
400
- whileHover={{ y: -8, scale: 1.02 }}
401
- whileTap={{ scale: 0.98 }}
402
- transition={{ type: 'spring', stiffness: 400, damping: 17 }}
403
- style={{ cursor: 'pointer' }}
404
- >
405
- Card content
406
- </motion.div>
407
- );
408
- }
409
- ```
410
-
411
- ---
412
-
413
- ## useAnimation — Controle Imperativo
414
-
415
- ```tsx
416
- import { useAnimation } from 'framer-motion';
417
-
418
- function ControlledAnimation() {
419
- const controls = useAnimation();
420
-
421
- const sequence = async () => {
422
- await controls.start({ x: 100, transition: { duration: 0.3 } });
423
- await controls.start({ y: 100, transition: { duration: 0.3 } });
424
- await controls.start({ x: 0, y: 0, transition: { duration: 0.5 } });
425
- };
426
-
427
- return (
428
- <>
429
- <motion.div animate={controls} />
430
- <button onClick={sequence}>Start sequence</button>
431
- </>
432
- );
433
- }
434
- ```
435
-
436
- ---
437
-
438
- ## useMotionValue + useTransform — Motion Values Reativas
439
-
440
- ```tsx
441
- import { motion, useMotionValue, useTransform, useSpring } from 'framer-motion';
442
-
443
- function TiltCard() {
444
- const x = useMotionValue(0);
445
- const y = useMotionValue(0);
446
-
447
- // Transformar posicao do mouse em rotacao
448
- const rotateX = useTransform(y, [-100, 100], [15, -15]);
449
- const rotateY = useTransform(x, [-100, 100], [-15, 15]);
450
-
451
- // Adicionar spring para suavizar
452
- const springConfig = { stiffness: 150, damping: 20 };
453
- const smoothRotateX = useSpring(rotateX, springConfig);
454
- const smoothRotateY = useSpring(rotateY, springConfig);
455
-
456
- function handleMouseMove(e) {
457
- const rect = e.currentTarget.getBoundingClientRect();
458
- x.set(e.clientX - rect.left - rect.width / 2);
459
- y.set(e.clientY - rect.top - rect.height / 2);
460
- }
461
-
462
- function handleMouseLeave() {
463
- x.set(0);
464
- y.set(0);
465
- }
466
-
467
- return (
468
- <motion.div
469
- onMouseMove={handleMouseMove}
470
- onMouseLeave={handleMouseLeave}
471
- style={{ rotateX: smoothRotateX, rotateY: smoothRotateY, perspective: 1000 }}
472
- >
473
- Tilt card content
474
- </motion.div>
475
- );
476
- }
477
-
478
- // Scroll progress indicator
479
- import { useScroll } from 'framer-motion';
480
-
481
- function ScrollProgress() {
482
- const { scrollYProgress } = useScroll();
483
- const scaleX = useSpring(scrollYProgress, { stiffness: 100, damping: 30 });
484
-
485
- return (
486
- <motion.div
487
- className="fixed top-0 left-0 right-0 h-1 bg-blue-500"
488
- style={{ scaleX, transformOrigin: '0%' }}
489
- />
490
- );
491
- }
492
- ```
493
-
494
- ---
495
-
496
- ## whileInView — Scroll Reveals
497
-
498
- ```tsx
499
- // Reveal simples com viewport
500
- function ScrollReveal({ children }) {
501
- return (
502
- <motion.div
503
- initial={{ opacity: 0, y: 50 }}
504
- whileInView={{ opacity: 1, y: 0 }}
505
- viewport={{
506
- once: true, // Anima apenas uma vez
507
- margin: '-100px', // Triggeriza 100px antes de entrar
508
- amount: 0.3, // 30% visivel para triggerizar
509
- }}
510
- transition={{ duration: 0.6, ease: [0.16, 1, 0.3, 1] }}
511
- >
512
- {children}
513
- </motion.div>
514
- );
515
- }
516
-
517
- // Reveal de texto caractere a caractere
518
- function TextReveal({ text }) {
519
- return (
520
- <motion.span>
521
- {text.split('').map((char, i) => (
522
- <motion.span
523
- key={i}
524
- initial={{ opacity: 0, y: 20 }}
525
- whileInView={{ opacity: 1, y: 0 }}
526
- viewport={{ once: true }}
527
- transition={{ delay: i * 0.03, duration: 0.4 }}
528
- style={{ display: 'inline-block' }}
529
- >
530
- {char === ' ' ? '\u00A0' : char}
531
- </motion.span>
532
- ))}
533
- </motion.span>
534
- );
535
- }
536
- ```
537
-
538
- ---
539
-
540
- ## Spring Physics — Referencia Rapida
541
-
542
- ```tsx
543
- // Presets de spring para situacoes comuns
544
- const springs = {
545
- snappy: { type: 'spring', stiffness: 400, damping: 30 }, // Botoes, inputs
546
- gentle: { type: 'spring', stiffness: 100, damping: 15 }, // Cards, panels
547
- bouncy: { type: 'spring', stiffness: 200, damping: 10 }, // Notificacoes, badges
548
- heavy: { type: 'spring', stiffness: 200, damping: 25, mass: 3 }, // Drawers, modais grandes
549
- wobbly: { type: 'spring', stiffness: 150, damping: 8 }, // Playful, games
550
- };
551
-
552
- // Uso
553
- <motion.div transition={springs.snappy} whileTap={{ scale: 0.95 }} />
554
- ```
555
-
556
- ---
557
-
558
- ## SVG Morphing com Framer Motion
559
-
560
- ```tsx
561
- // Toggle icon (hamburger -> X)
562
- function MenuIcon({ isOpen }) {
563
- return (
564
- <svg viewBox="0 0 24 24" width={24} height={24}>
565
- <motion.path
566
- fill="none"
567
- stroke="currentColor"
568
- strokeWidth={2}
569
- strokeLinecap="round"
570
- animate={{
571
- d: isOpen
572
- ? 'M6 18L18 6M6 6l12 12' // X icon
573
- : 'M4 6h16M4 12h16M4 18h16' // Hamburger
574
- }}
575
- transition={{ duration: 0.3, ease: [0.16, 1, 0.3, 1] }}
576
- />
577
- </svg>
578
- );
579
- }
580
-
581
- // Progresso circular animado
582
- function CircularProgress({ progress }) {
583
- const circumference = 2 * Math.PI * 45; // raio 45
584
- const strokeDashoffset = circumference * (1 - progress);
585
-
586
- return (
587
- <svg viewBox="0 0 100 100" width={100} height={100}>
588
- <circle cx="50" cy="50" r="45" fill="none" stroke="#eee" strokeWidth="8" />
589
- <motion.circle
590
- cx="50" cy="50" r="45"
591
- fill="none"
592
- stroke="#0066ff"
593
- strokeWidth="8"
594
- strokeLinecap="round"
595
- strokeDasharray={circumference}
596
- animate={{ strokeDashoffset }}
597
- transition={{ duration: 0.5, ease: 'easeOut' }}
598
- style={{ rotate: -90, transformOrigin: 'center' }}
599
- />
600
- </svg>
601
- );
602
- }
603
- ```
604
-
605
- ---
606
-
607
- ## Patterns Avancados
608
-
609
- ### Botao com ripple effect
610
-
611
- ```tsx
612
- function RippleButton({ children, onClick }) {
613
- return (
614
- <motion.button
615
- whileHover={{ scale: 1.02, y: -2 }}
616
- whileTap={{ scale: 0.98 }}
617
- transition={springs.snappy}
618
- onClick={onClick}
619
- className="relative overflow-hidden"
620
- >
621
- {children}
622
- <motion.span
623
- className="absolute inset-0 bg-white/20 rounded-full"
624
- initial={{ scale: 0, opacity: 1 }}
625
- whileTap={{ scale: 4, opacity: 0 }}
626
- transition={{ duration: 0.6 }}
627
- />
628
- </motion.button>
629
- );
630
- }
631
- ```
632
-
633
- ### Loading skeleton com shimmer
634
-
635
- ```tsx
636
- function Skeleton({ className }) {
637
- return (
638
- <motion.div
639
- className={`rounded-md bg-gray-200 overflow-hidden ${className}`}
640
- animate={{ opacity: [0.5, 1, 0.5] }}
641
- transition={{ duration: 1.5, repeat: Infinity, ease: 'easeInOut' }}
642
- />
643
- );
644
- }
645
- ```
646
-
647
- ### Counter animado
648
-
649
- ```tsx
650
- import { useMotionValue, useSpring, useEffect } from 'framer-motion';
651
-
652
- function AnimatedCounter({ to, duration = 2 }) {
653
- const count = useMotionValue(0);
654
- const rounded = useTransform(count, Math.round);
655
- const spring = useSpring(count, { duration: duration * 1000 });
656
-
657
- useEffect(() => {
658
- spring.set(to);
659
- }, [to]);
660
-
661
- return <motion.span>{rounded}</motion.span>;
662
- }
663
- ```
664
-
665
- ---
666
-
667
- ## Acessibilidade
668
-
669
- ```tsx
670
- // prefers-reduced-motion
671
- import { useReducedMotion } from 'framer-motion';
672
-
673
- function AccessibleAnimation({ children }) {
674
- const shouldReduceMotion = useReducedMotion();
675
-
676
- return (
677
- <motion.div
678
- initial={{ opacity: 0, y: shouldReduceMotion ? 0 : 30 }}
679
- animate={{ opacity: 1, y: 0 }}
680
- transition={{ duration: shouldReduceMotion ? 0.01 : 0.5 }}
681
- >
682
- {children}
683
- </motion.div>
684
- );
685
- }
686
-
687
- // Hook personalizado para aplicar em toda a app
688
- function useMotionSafe() {
689
- const shouldReduceMotion = useReducedMotion();
690
-
691
- return {
692
- transition: shouldReduceMotion
693
- ? { duration: 0.01 }
694
- : { duration: 0.5, ease: [0.16, 1, 0.3, 1] },
695
- initial: shouldReduceMotion ? {} : { opacity: 0, y: 20 },
696
- animate: { opacity: 1, y: 0 },
697
- };
698
- }
699
- ```
700
-
701
- ---
702
-
703
- ## Performance Tips
704
-
705
- 1. **Evitar animar `width`/`height`** — usar `scaleX`/`scaleY` + `transformOrigin`
706
- 2. **`layout` prop e pesada** — usar apenas quando necessario (FLIP tem custo)
707
- 3. **`LazyMotion`** — carregar features sob demanda para menor bundle
708
- 4. **`will-change`** — Framer Motion ja aplica automaticamente quando necessario
709
- 5. **Evitar re-renders** — `useMotionValue` nao triggeriza re-render (diferente de `useState`)
710
- 6. **`frameloop="demand"`** em Canvas R3F quando integrado com Framer Motion