izanagi-ai 2.11.0 → 2.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/animation-web/SKILL.md +108 -108
- package/.claude/skills/brainstorming/SKILL.md +96 -96
- package/.claude/skills/caveman/SKILL.md +88 -0
- package/.claude/skills/deep-research/SKILL.md +78 -78
- package/.claude/skills/economia-tokens/SKILL.md +264 -264
- package/.claude/skills/frontend/SKILL.md +361 -361
- package/.claude/skills/handoff-sessao/SKILL.md +86 -86
- package/.claude/skills/memoria-projeto/SKILL.md +92 -92
- package/.claude/skills/motion-design/SKILL.md +139 -139
- package/.claude/skills/qa/SKILL.md +245 -245
- package/.claude/skills/security-privacy/SKILL.md +219 -219
- package/.claude/skills/tdd/SKILL.md +85 -85
- package/.claude/skills/ui-ux-pro-max/SKILL.md +164 -164
- package/.claude/skills/webgl-3d/SKILL.md +110 -110
- package/.manifest +4 -4
- package/AGENTS.md +129 -129
- package/CHANGELOG.md +427 -411
- package/CLAUDE.md +42 -41
- package/README.md +113 -113
- package/ROADMAP.md +95 -95
- package/RULES.md +249 -249
- package/SYSTEM.md +256 -256
- package/agents/INDEX.md +54 -54
- package/agents/adversarial-critic-agent.json +102 -102
- package/agents/agent-architect-agent.json +107 -107
- package/agents/animation-agent.json +95 -95
- package/agents/architect-agent.json +114 -114
- package/agents/automation-engineer-agent.json +142 -142
- package/agents/bug-hunter-agent.json +95 -95
- package/agents/database-agent.json +100 -100
- package/agents/devops-agent.json +108 -108
- package/agents/discovery-agent.json +175 -175
- package/agents/docs-agent.json +88 -88
- package/agents/evaluator-agent.json +98 -98
- package/agents/form-engineer-agent.json +93 -93
- package/agents/pm-agent.json +92 -92
- package/agents/product-reasoner-agent.json +108 -108
- package/agents/professor-agent.json +82 -82
- package/agents/qa-agent.json +108 -108
- package/agents/researcher-agent.json +93 -93
- package/agents/security-agent.json +109 -109
- package/agents/senior-engineer-agent.json +134 -134
- package/agents/skill-architect-agent.json +108 -108
- package/agents/techlead-agent.json +96 -96
- package/architecture/clean-architecture.md +100 -100
- package/architecture/cqrs-specialist.md +104 -104
- package/architecture/ddd-specialist.md +99 -99
- package/architecture/event-driven-architect.md +81 -81
- package/architecture/hexagonal-architecture.md +98 -98
- package/architecture/microservices-expert.md +85 -85
- package/architecture/monolith-expert.md +69 -69
- package/architecture/repository-pattern.md +75 -75
- package/architecture/unit-of-work.md +94 -94
- package/backend/README.md +34 -34
- package/core/skill-resolver.json +558 -558
- package/devops/ci-cd-specialist.md +103 -103
- package/devops/devops-engineer.md +360 -360
- package/devops/docker-expert.md +107 -107
- package/devops/kubernetes-specialist.md +86 -86
- package/dist/cli/commands/export.js +2 -2
- package/dist/cli/commands/skill.js +25 -25
- package/dist/cli/index.js +54 -54
- package/dist/exporters.d.ts +1 -1
- package/dist/exporters.d.ts.map +1 -1
- package/dist/exporters.js +344 -343
- package/dist/exporters.js.map +1 -1
- package/dist/runtime/factories/skill-factory.js +21 -21
- package/dist/runtime/tests/routing.test.js +7 -7
- package/frontend/README.md +24 -24
- package/memory/context-recovery.md +51 -51
- package/memory/conversation-summarizer.md +67 -67
- package/memory/long-term-project-memory.md +60 -60
- package/memory/session-compression.md +184 -184
- package/optimization/compact-example.md +89 -89
- package/optimization/cost-optimizer.md +55 -55
- package/optimization/prompt-optimizer.md +196 -196
- package/optimization/token-audit.md +179 -179
- package/optimization/token-reducer.md +204 -204
- package/package.json +98 -98
- package/security/owasp-auditor.md +251 -251
- package/security/pentest-reviewer.md +111 -111
- package/security/security-engineer.md +240 -240
- package/skills/INDEX.md +464 -464
- package/skills/accessibility-reviewer/SKILL.md +111 -111
- package/skills/adversarial-critique/SKILL.md +60 -60
- package/skills/agentic-coding/SKILL.md +86 -86
- package/skills/ai-agent/SKILL.md +108 -108
- package/skills/ai-agent/references.md +1 -1
- package/skills/alternative-solution-generator/SKILL.md +85 -85
- package/skills/animation-web/SKILL.md +114 -114
- package/skills/anti-ai-slop/SKILL.md +64 -64
- package/skills/api-automation/SKILL.md +121 -121
- package/skills/architecture-patterns/SKILL.md +243 -243
- package/skills/automation-documentation/SKILL.md +103 -103
- package/skills/automation-engineer/SKILL.md +174 -174
- package/skills/automation-optimization/SKILL.md +117 -117
- package/skills/automation-planning/SKILL.md +72 -72
- package/skills/automation-research/SKILL.md +72 -72
- package/skills/automation-security/SKILL.md +81 -81
- package/skills/brainstorming/SKILL.md +102 -102
- package/skills/breaking-change-detector/SKILL.md +97 -97
- package/skills/browser-automation/SKILL.md +120 -120
- package/skills/bug-hunter/SKILL.md +247 -247
- package/skills/bug-prevention/SKILL.md +88 -88
- package/skills/caveman/SKILL.md +88 -0
- package/skills/chaos-engineering/SKILL.md +108 -108
- package/skills/chaos-engineering/references.md +1 -1
- package/skills/clean-code-validator/SKILL.md +231 -231
- package/skills/cloud-infra/SKILL.md +100 -100
- package/skills/code-auditor/SKILL.md +112 -112
- package/skills/complexity-analyzer/SKILL.md +115 -115
- package/skills/confidence-estimator/SKILL.md +59 -59
- package/skills/confidence-estimator/references.md +1 -1
- package/skills/continuous-improvement/SKILL.md +48 -48
- package/skills/continuous-improvement/references.md +1 -1
- package/skills/cto-advisor/SKILL.md +79 -79
- package/skills/cto-advisor/references.md +1 -1
- package/skills/data-engineering/SKILL.md +83 -83
- package/skills/data-validation/SKILL.md +105 -105
- package/skills/debug-specialist/SKILL.md +228 -228
- package/skills/deep-research/SKILL.md +83 -83
- package/skills/defense-in-depth/SKILL.md +83 -83
- package/skills/dependency-analyzer/SKILL.md +120 -120
- package/skills/design-directions/SKILL.md +65 -65
- package/skills/design-pattern-advisor/SKILL.md +91 -91
- package/skills/documentation-writer/SKILL.md +79 -79
- package/skills/documentation-writer/references.md +1 -1
- package/skills/dry-kiss-yagni-validator/SKILL.md +127 -127
- package/skills/economia-tokens/SKILL.md +270 -270
- package/skills/er-diagram-builder/SKILL.md +98 -98
- package/skills/er-diagram-builder/references.md +1 -1
- package/skills/error-recovery/SKILL.md +97 -97
- package/skills/evaluation/SKILL.md +80 -80
- package/skills/failure-patterns/SKILL.md +67 -67
- package/skills/feature-flags/SKILL.md +96 -96
- package/skills/frontend/SKILL.md +367 -367
- package/skills/graphql/SKILL.md +105 -105
- package/skills/hallucination-detection/SKILL.md +58 -58
- package/skills/hallucination-detection/references.md +1 -1
- package/skills/handoff-protocol/SKILL.md +61 -61
- package/skills/handoff-sessao/SKILL.md +92 -92
- package/skills/i18n-l10n/SKILL.md +104 -104
- package/skills/iac-terraform/SKILL.md +99 -99
- package/skills/legacy-migration/SKILL.md +91 -91
- package/skills/logging-expert/SKILL.md +91 -91
- package/skills/mcp-server-dev/SKILL.md +149 -149
- package/skills/mcp-server-dev/references.md +1 -1
- package/skills/memoria-projeto/SKILL.md +98 -98
- package/skills/mobile-dev/SKILL.md +83 -83
- package/skills/monitoring-specialist/SKILL.md +38 -38
- package/skills/motion-design/SKILL.md +145 -145
- package/skills/observability-expert/SKILL.md +48 -48
- package/skills/parallel-agents/SKILL.md +73 -73
- package/skills/performance-optimizer/SKILL.md +263 -263
- package/skills/principal-engineer/SKILL.md +50 -50
- package/skills/principal-engineer/references.md +1 -1
- package/skills/professor-modo/SKILL.md +37 -37
- package/skills/professor-modo/references.md +1 -1
- package/skills/project-manager/SKILL.md +87 -87
- package/skills/project-manager/references.md +1 -1
- package/skills/prompt-engineering/SKILL.md +115 -115
- package/skills/prompt-engineering/references.md +1 -1
- package/skills/qa/SKILL.md +251 -251
- package/skills/readme-generator/SKILL.md +163 -163
- package/skills/readme-generator/references.md +1 -1
- package/skills/refactoring-specialist/SKILL.md +268 -268
- package/skills/release-planner/SKILL.md +83 -83
- package/skills/release-planner/references.md +1 -1
- package/skills/requirement-analyzer/SKILL.md +51 -51
- package/skills/requirement-analyzer/references.md +1 -1
- package/skills/risk-analyzer/SKILL.md +86 -86
- package/skills/risk-analyzer/references.md +1 -1
- package/skills/root-cause-analyzer/SKILL.md +223 -223
- package/skills/scalability-expert/SKILL.md +86 -86
- package/skills/security-privacy/SKILL.md +225 -225
- package/skills/self-correction/SKILL.md +55 -55
- package/skills/self-critique/SKILL.md +53 -53
- package/skills/senior-code-reviewer/SKILL.md +206 -206
- package/skills/sequence-diagram-builder/SKILL.md +57 -57
- package/skills/sequence-diagram-builder/references.md +1 -1
- package/skills/serverless-edge/SKILL.md +104 -104
- package/skills/software-architect/SKILL.md +369 -369
- package/skills/solid-validator/SKILL.md +345 -345
- package/skills/spreadsheet-automation/SKILL.md +148 -148
- package/skills/sre-reliability/SKILL.md +116 -116
- package/skills/staff-engineer/SKILL.md +34 -34
- package/skills/staff-engineer/references.md +1 -1
- package/skills/systematic-debugging/SKILL.md +158 -158
- package/skills/task-planner/SKILL.md +67 -67
- package/skills/task-planner/references.md +1 -1
- package/skills/tdd/SKILL.md +90 -90
- package/skills/tech-lead/SKILL.md +42 -42
- package/skills/tech-lead/references.md +1 -1
- package/skills/technical-debt-analyzer/SKILL.md +94 -94
- package/skills/technical-writer/SKILL.md +74 -74
- package/skills/technical-writer/references.md +1 -1
- package/skills/technology-selection/SKILL.md +89 -89
- package/skills/testing-automation/SKILL.md +123 -123
- package/skills/tradeoff-analyzer/SKILL.md +92 -92
- package/skills/ui-ux-pro-max/SKILL.md +170 -170
- package/skills/ui-ux-pro-max/data/app-interface.csv +30 -30
- package/skills/ui-ux-pro-max/data/charts.csv +26 -26
- package/skills/ui-ux-pro-max/data/colors.csv +193 -193
- package/skills/ui-ux-pro-max/data/google-fonts.csv +1924 -1924
- package/skills/ui-ux-pro-max/data/icons.csv +105 -105
- package/skills/ui-ux-pro-max/data/landing.csv +35 -35
- package/skills/ui-ux-pro-max/data/motion.csv +17 -17
- package/skills/ui-ux-pro-max/data/products.csv +193 -193
- package/skills/ui-ux-pro-max/data/react-performance.csv +45 -45
- package/skills/ui-ux-pro-max/data/stacks/angular.csv +51 -51
- package/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -54
- package/skills/ui-ux-pro-max/data/stacks/avalonia.csv +57 -57
- package/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -53
- package/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -56
- package/skills/ui-ux-pro-max/data/stacks/javafx.csv +76 -76
- package/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -53
- package/skills/ui-ux-pro-max/data/stacks/laravel.csv +51 -51
- package/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -53
- package/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +71 -71
- package/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -59
- package/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -52
- package/skills/ui-ux-pro-max/data/stacks/react.csv +54 -54
- package/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -61
- package/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -54
- package/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -51
- package/skills/ui-ux-pro-max/data/stacks/threejs.csv +54 -54
- package/skills/ui-ux-pro-max/data/stacks/uno.csv +60 -60
- package/skills/ui-ux-pro-max/data/stacks/uwp.csv +56 -56
- package/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -50
- package/skills/ui-ux-pro-max/data/stacks/winui.csv +60 -60
- package/skills/ui-ux-pro-max/data/stacks/wpf.csv +57 -57
- package/skills/ui-ux-pro-max/data/styles.csv +85 -85
- package/skills/ui-ux-pro-max/data/typography.csv +75 -75
- package/skills/ui-ux-pro-max/data/ui-reasoning.csv +162 -162
- package/skills/ui-ux-pro-max/data/ux-guidelines.csv +99 -99
- package/skills/ui-ux-pro-max/references/pro-rules.md +109 -109
- package/skills/ui-ux-pro-max/references/quick-reference.md +240 -240
- package/skills/ui-ux-pro-max/scripts/core.py +464 -464
- package/skills/ui-ux-pro-max/scripts/design_system.py +1479 -1479
- package/skills/ui-ux-pro-max/scripts/search.py +162 -162
- package/skills/ui-ux-pro-max/scripts/tests/test_core.py +134 -134
- package/skills/ui-ux-pro-max/scripts/tests/test_design_system_mode.py +159 -159
- package/skills/ui-ux-pro-max/scripts/validate_data.py +114 -114
- package/skills/uml-generator/SKILL.md +85 -85
- package/skills/uml-generator/references.md +1 -1
- package/skills/ux-reviewer/SKILL.md +85 -85
- package/skills/wasm/SKILL.md +133 -133
- package/skills/web-forms/SKILL.md +146 -146
- package/skills/web-perf-seo/SKILL.md +281 -281
- package/skills/webapp-testing/SKILL.md +86 -86
- package/skills/webapp-testing/examples/with_server.py +105 -105
- package/skills/webgl-3d/SKILL.md +116 -116
- package/skills/websocket-realtime/SKILL.md +108 -108
- package/teaching/code-explainer.md +174 -174
- package/teaching/professor-mode.md +224 -224
- package/testing/e2e-test-engineer.md +70 -70
- package/testing/integration-test-engineer.md +76 -76
- package/testing/unit-test-engineer.md +211 -211
|
@@ -3,114 +3,114 @@ name: animation-web
|
|
|
3
3
|
description: "Scrollytelling, scroll-driven animations, sequências de imagem em canvas (estilo Apple), parallax e pinned sections. Use quando o site não deve parecer estático e o scroll for a timeline da experiência."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Animation Web — Scrollytelling & Cinematic Sites
|
|
7
|
-
|
|
8
|
-
## Identity
|
|
9
|
-
|
|
10
|
-
Especialista em transformar sites estáticos em experiências cinematográficas dirigidas pelo scroll. O scroll é o playhead: cada movimento do mouse/finger controla frames, câmera e narrativa. O site deve parecer um vídeo interativo, nunca uma página comum.
|
|
11
|
-
|
|
12
|
-
## Princípios
|
|
13
|
-
|
|
14
|
-
1. **Scroll = timeline.** O progresso do scroll controla a animação (scrub), não dispara apenas gatilhos one-shot.
|
|
15
|
-
2. **Performance é parte do design.** Animação de 60fps só com `transform` + `opacity`; nunca animar `top/left/width/height/margin`.
|
|
16
|
-
3. **Prefere visualização progressiva.** Cada seção revela informação em camadas enquanto o usuário rola.
|
|
17
|
-
4. **Reduced motion é obrigatório.** `prefers-reduced-motion: reduce` desativa/degrada toda a coreografia.
|
|
18
|
-
5. **Mobile não é desktop pequeno.** Pinning pesado e câmeras longas são reavaliados em viewports pequenas (`matchMedia`).
|
|
19
|
-
|
|
20
|
-
## Arquitetura de Técnicas (Decision Tree)
|
|
21
|
-
|
|
22
|
-
| Desejo do usuário | Técnica | Stack |
|
|
23
|
-
|---|---|---|
|
|
24
|
-
| Site parece um vídeo, frames avançam com o scroll | **Scroll image sequence** — sequência de frames pré-renderizados em `<canvas>` (estilo Apple) | GSAP ScrollTrigger + canvas + preload |
|
|
25
|
-
| Camera se move pelo produto/cena no scroll | **Scroll-driven 3D** — câmera/objetos reagindo à posição de scroll | Three.js / R3F + ScrollTrigger |
|
|
26
|
-
| Narrativa em capítulos | **Pinned sections** — seção fixa enquanto capítulo anima por cima | ScrollTrigger `pin` + `scrub` |
|
|
27
|
-
| Efeito de profundidade | **Parallax** em camadas com velocidades diferentes | ScrollTrigger `scrub` + `yPercent` |
|
|
28
|
-
| Slide horizontal de conteúdo | **Horizontal scroll section** — painéis se movem lateralmente | ScrollTrigger `pin` + `xPercent` |
|
|
29
|
-
| Texto dramático entrando | **SplitText reveals** (word/char/line) | GSAP SplitText ou CSS custom |
|
|
30
|
-
| Revelações simples | **Entrance reveals** (fade/slide/mask) | IntersectionObserver / CSS `animation-timeline: scroll()` ou `view()` — suportado nativamente em Chrome 115+, Edge 115+, Firefox 132+, Safari 18+ (2026); sem esses browsers, fallback obrigatório via `@supports (animation-timeline: scroll())` |
|
|
31
|
-
| Hero "wow" no topo | **Preloader + hero reveal coreografado** | GSAP timeline + Lenis |
|
|
32
|
-
|
|
33
|
-
## Workflow
|
|
34
|
-
|
|
35
|
-
1. **Storyboard primeiro.** Divida o conteúdo em cenas (hero → capítulo 1..n → finale). Cada cena = 1 técnica + 1 gatilho de scroll.
|
|
36
|
-
2. **Escolha a stack de scroll**: Lenis (smooth scroll) + GSAP ScrollTrigger (controle de scrub/pin) é o padrão; React usa `lenis` + `@gsap/react` (`useGSAP`).
|
|
37
|
-
3. **Implemente por cena**, começando pelo hero.
|
|
38
|
-
4. **Valide perf**: DevTools Performance panel, Lighthouse, Core Web Vitals (LCP/INP/CLS).
|
|
39
|
-
5. **Degrade**: sem JS → conteúdo estático visível; reduced motion → sem scrub.
|
|
40
|
-
|
|
41
|
-
## Padrões Core
|
|
42
|
-
|
|
43
|
-
### Scroll image sequence (o "site-vídeo" do usuário)
|
|
44
|
-
```js
|
|
45
|
-
gsap.registerPlugin(ScrollTrigger);
|
|
46
|
-
// canvas fixo + frames 0001.jpg..0120.jpg pré-carregados com Image() cache
|
|
47
|
-
const img = new Image(); // draw com requestAnimationFrame; só drawFrame() no onUpdate
|
|
48
|
-
gsap.to(frames, {
|
|
49
|
-
frame: totalFrames - 1, // objeto-proxy: { frame: 0 }
|
|
50
|
-
ease: 'none',
|
|
51
|
-
scrollTrigger: { trigger: '#pin', start: 'top top', end: '+=4000', pin: true, scrub: 1 }
|
|
52
|
-
});
|
|
53
|
-
```
|
|
54
|
-
- Preload frames com cache compartilhado (`Map<src, Image>`).
|
|
55
|
-
- Canvas HiDPI: `canvas.width = clientWidth * min(devicePixelRatio, 2)`.
|
|
56
|
-
- Texto/capítulos aparecem como overlays em pontos específicos do progresso (timeline sobre o scrub).
|
|
57
|
-
- **Performance (2026)**: nunca redesenhe o canvas dentro do handler de `resize` sem debounce/throttle — mobile dispara `resize` repetidamente em mudanças de viewport (rotação, barra de endereço escondendo); recalcule dimensões só depois do evento estabilizar. O handler de scroll/scrub em si deve ficar leve (`onUpdate` só troca o índice do frame e chama `drawFrame()`, nunca decodifica imagem ali). Otimize o peso da sequência (WebP/AVIF, resolução por breakpoint) antes de otimizar o código — dezenas a centenas de frames pesam mais que qualquer microotimização de JS.
|
|
58
|
-
|
|
59
|
-
### Hero coreografado
|
|
60
|
-
```js
|
|
61
|
-
const tl = gsap.timeline({ scrollTrigger: { trigger: '#hero', start: 'top top', end: 'bottom top', scrub: true }});
|
|
62
|
-
tl.to('.hero-title', { yPercent: -40, opacity: 0, ease: 'none' })
|
|
63
|
-
.to('.hero-visual', { scale: 0.9, yPercent: 10, ease: 'none' }, 0);
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### Smooth scroll (Lenis)
|
|
67
|
-
```js
|
|
68
|
-
const lenis = new Lenis({ duration: 1.2, easing: (t) => Math.min(1, 1.001 - Math.pow(2, -10 * t)) });
|
|
69
|
-
lenis.on('scroll', ScrollTrigger.update);
|
|
70
|
-
gsap.ticker.add((time) => lenis.raf(time * 1000));
|
|
71
|
-
gsap.ticker.lagSmoothing(0);
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
### Horizontal scroll
|
|
75
|
-
```js
|
|
76
|
-
const panels = gsap.utils.toArray('.panel');
|
|
77
|
-
gsap.to(panels, { xPercent: -100 * (panels.length - 1), ease: 'none',
|
|
78
|
-
scrollTrigger: { trigger: '#track', pin: true, scrub: 1, snap: 1 / (panels.length - 1),
|
|
79
|
-
end: () => '+=' + track.offsetWidth } });
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
## Rules
|
|
83
|
-
|
|
84
|
-
- **Regra de ouro**: `ease: 'none'` em tudo que for scrub (proporcional ao scroll); easing animado só em reveals one-shot.
|
|
85
|
-
- Nunca bloquear LCP: frames e libs carregam lazy; hero estático primeiro, animação depois.
|
|
86
|
-
- `will-change` só no elemento animando ativamente e removido ao final; evitar em massa.
|
|
87
|
-
- Respeitar `prefers-reduced-motion` (desliga scrub, mostra frames finais).
|
|
88
|
-
- Mobile: pin de seções altas vira scroll normal + transições simples (`ScrollTrigger.matchMedia()`).
|
|
89
|
-
- Limpar triggers: `ScrollTrigger.getAll().forEach(t => t.kill())` em SPA unmount; `useGSAP` faz isso automaticamente no React.
|
|
90
|
-
- Scrollbar nativa ou Lenis? Lenis para desktop; manter scrollbar nativa para acessibilidade — nunca `overflow: hidden` no body sem fallback.
|
|
91
|
-
|
|
92
|
-
## Checklists
|
|
93
|
-
|
|
94
|
-
- [ ] Storyboard das cenas definido antes do código
|
|
95
|
-
- [ ] Scroll = timeline (scrub) nas cenas principais
|
|
96
|
-
- [ ] Só transform/opacity animados (sem layout thrash)
|
|
97
|
-
- [ ] Frames de imagem pré-carregados com cache + HiDPI cap
|
|
98
|
-
- [ ] Lenis integrado com ScrollTrigger (update no scroll, raf no ticker)
|
|
99
|
-
- [ ] Reduced motion tratado
|
|
100
|
-
- [ ] Mobile: pin/pesado removido ou simplificado
|
|
101
|
-
- [ ] LCP/INP/CLS verdes (Lighthouse ≥ 90 perf)
|
|
102
|
-
- [ ] Sem JS → conteúdo visível
|
|
103
|
-
- [ ] Qualidade: micro-interações de hover/tap nos elementos-chave
|
|
104
|
-
|
|
105
|
-
## References
|
|
106
|
-
|
|
107
|
-
- [MDN — CSS scroll-driven animations](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_scroll-driven_animations) — spec de `scroll-timeline`/`view-timeline`, suporte de browser atualizado.
|
|
108
|
-
- [GSAP Vault — Apple-Style Scroll Image Sequences](https://gsapvault.com/blog/scroll-image-sequence-tutorial) — tutorial de referência do padrão canvas + ScrollTrigger + HiDPI + Lenis.
|
|
109
|
-
- Veja `references.md` nesta pasta — sites de referência (uiprompts.app, Apple product pages, scrollytelling exemplos, Skiper UI, KokonutUI) com técnicas extraídas de cada um.
|
|
110
|
-
|
|
111
|
-
## Metrics & Evolution
|
|
112
|
-
|
|
113
|
-
- Objetivos: 60fps no scroll, LCP < 2.5s, INP < 200ms, CLS < 0.1.
|
|
6
|
+
# Animation Web — Scrollytelling & Cinematic Sites
|
|
7
|
+
|
|
8
|
+
## Identity
|
|
9
|
+
|
|
10
|
+
Especialista em transformar sites estáticos em experiências cinematográficas dirigidas pelo scroll. O scroll é o playhead: cada movimento do mouse/finger controla frames, câmera e narrativa. O site deve parecer um vídeo interativo, nunca uma página comum.
|
|
11
|
+
|
|
12
|
+
## Princípios
|
|
13
|
+
|
|
14
|
+
1. **Scroll = timeline.** O progresso do scroll controla a animação (scrub), não dispara apenas gatilhos one-shot.
|
|
15
|
+
2. **Performance é parte do design.** Animação de 60fps só com `transform` + `opacity`; nunca animar `top/left/width/height/margin`.
|
|
16
|
+
3. **Prefere visualização progressiva.** Cada seção revela informação em camadas enquanto o usuário rola.
|
|
17
|
+
4. **Reduced motion é obrigatório.** `prefers-reduced-motion: reduce` desativa/degrada toda a coreografia.
|
|
18
|
+
5. **Mobile não é desktop pequeno.** Pinning pesado e câmeras longas são reavaliados em viewports pequenas (`matchMedia`).
|
|
19
|
+
|
|
20
|
+
## Arquitetura de Técnicas (Decision Tree)
|
|
21
|
+
|
|
22
|
+
| Desejo do usuário | Técnica | Stack |
|
|
23
|
+
|---|---|---|
|
|
24
|
+
| Site parece um vídeo, frames avançam com o scroll | **Scroll image sequence** — sequência de frames pré-renderizados em `<canvas>` (estilo Apple) | GSAP ScrollTrigger + canvas + preload |
|
|
25
|
+
| Camera se move pelo produto/cena no scroll | **Scroll-driven 3D** — câmera/objetos reagindo à posição de scroll | Three.js / R3F + ScrollTrigger |
|
|
26
|
+
| Narrativa em capítulos | **Pinned sections** — seção fixa enquanto capítulo anima por cima | ScrollTrigger `pin` + `scrub` |
|
|
27
|
+
| Efeito de profundidade | **Parallax** em camadas com velocidades diferentes | ScrollTrigger `scrub` + `yPercent` |
|
|
28
|
+
| Slide horizontal de conteúdo | **Horizontal scroll section** — painéis se movem lateralmente | ScrollTrigger `pin` + `xPercent` |
|
|
29
|
+
| Texto dramático entrando | **SplitText reveals** (word/char/line) | GSAP SplitText ou CSS custom |
|
|
30
|
+
| Revelações simples | **Entrance reveals** (fade/slide/mask) | IntersectionObserver / CSS `animation-timeline: scroll()` ou `view()` — suportado nativamente em Chrome 115+, Edge 115+, Firefox 132+, Safari 18+ (2026); sem esses browsers, fallback obrigatório via `@supports (animation-timeline: scroll())` |
|
|
31
|
+
| Hero "wow" no topo | **Preloader + hero reveal coreografado** | GSAP timeline + Lenis |
|
|
32
|
+
|
|
33
|
+
## Workflow
|
|
34
|
+
|
|
35
|
+
1. **Storyboard primeiro.** Divida o conteúdo em cenas (hero → capítulo 1..n → finale). Cada cena = 1 técnica + 1 gatilho de scroll.
|
|
36
|
+
2. **Escolha a stack de scroll**: Lenis (smooth scroll) + GSAP ScrollTrigger (controle de scrub/pin) é o padrão; React usa `lenis` + `@gsap/react` (`useGSAP`).
|
|
37
|
+
3. **Implemente por cena**, começando pelo hero.
|
|
38
|
+
4. **Valide perf**: DevTools Performance panel, Lighthouse, Core Web Vitals (LCP/INP/CLS).
|
|
39
|
+
5. **Degrade**: sem JS → conteúdo estático visível; reduced motion → sem scrub.
|
|
40
|
+
|
|
41
|
+
## Padrões Core
|
|
42
|
+
|
|
43
|
+
### Scroll image sequence (o "site-vídeo" do usuário)
|
|
44
|
+
```js
|
|
45
|
+
gsap.registerPlugin(ScrollTrigger);
|
|
46
|
+
// canvas fixo + frames 0001.jpg..0120.jpg pré-carregados com Image() cache
|
|
47
|
+
const img = new Image(); // draw com requestAnimationFrame; só drawFrame() no onUpdate
|
|
48
|
+
gsap.to(frames, {
|
|
49
|
+
frame: totalFrames - 1, // objeto-proxy: { frame: 0 }
|
|
50
|
+
ease: 'none',
|
|
51
|
+
scrollTrigger: { trigger: '#pin', start: 'top top', end: '+=4000', pin: true, scrub: 1 }
|
|
52
|
+
});
|
|
53
|
+
```
|
|
54
|
+
- Preload frames com cache compartilhado (`Map<src, Image>`).
|
|
55
|
+
- Canvas HiDPI: `canvas.width = clientWidth * min(devicePixelRatio, 2)`.
|
|
56
|
+
- Texto/capítulos aparecem como overlays em pontos específicos do progresso (timeline sobre o scrub).
|
|
57
|
+
- **Performance (2026)**: nunca redesenhe o canvas dentro do handler de `resize` sem debounce/throttle — mobile dispara `resize` repetidamente em mudanças de viewport (rotação, barra de endereço escondendo); recalcule dimensões só depois do evento estabilizar. O handler de scroll/scrub em si deve ficar leve (`onUpdate` só troca o índice do frame e chama `drawFrame()`, nunca decodifica imagem ali). Otimize o peso da sequência (WebP/AVIF, resolução por breakpoint) antes de otimizar o código — dezenas a centenas de frames pesam mais que qualquer microotimização de JS.
|
|
58
|
+
|
|
59
|
+
### Hero coreografado
|
|
60
|
+
```js
|
|
61
|
+
const tl = gsap.timeline({ scrollTrigger: { trigger: '#hero', start: 'top top', end: 'bottom top', scrub: true }});
|
|
62
|
+
tl.to('.hero-title', { yPercent: -40, opacity: 0, ease: 'none' })
|
|
63
|
+
.to('.hero-visual', { scale: 0.9, yPercent: 10, ease: 'none' }, 0);
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Smooth scroll (Lenis)
|
|
67
|
+
```js
|
|
68
|
+
const lenis = new Lenis({ duration: 1.2, easing: (t) => Math.min(1, 1.001 - Math.pow(2, -10 * t)) });
|
|
69
|
+
lenis.on('scroll', ScrollTrigger.update);
|
|
70
|
+
gsap.ticker.add((time) => lenis.raf(time * 1000));
|
|
71
|
+
gsap.ticker.lagSmoothing(0);
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Horizontal scroll
|
|
75
|
+
```js
|
|
76
|
+
const panels = gsap.utils.toArray('.panel');
|
|
77
|
+
gsap.to(panels, { xPercent: -100 * (panels.length - 1), ease: 'none',
|
|
78
|
+
scrollTrigger: { trigger: '#track', pin: true, scrub: 1, snap: 1 / (panels.length - 1),
|
|
79
|
+
end: () => '+=' + track.offsetWidth } });
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Rules
|
|
83
|
+
|
|
84
|
+
- **Regra de ouro**: `ease: 'none'` em tudo que for scrub (proporcional ao scroll); easing animado só em reveals one-shot.
|
|
85
|
+
- Nunca bloquear LCP: frames e libs carregam lazy; hero estático primeiro, animação depois.
|
|
86
|
+
- `will-change` só no elemento animando ativamente e removido ao final; evitar em massa.
|
|
87
|
+
- Respeitar `prefers-reduced-motion` (desliga scrub, mostra frames finais).
|
|
88
|
+
- Mobile: pin de seções altas vira scroll normal + transições simples (`ScrollTrigger.matchMedia()`).
|
|
89
|
+
- Limpar triggers: `ScrollTrigger.getAll().forEach(t => t.kill())` em SPA unmount; `useGSAP` faz isso automaticamente no React.
|
|
90
|
+
- Scrollbar nativa ou Lenis? Lenis para desktop; manter scrollbar nativa para acessibilidade — nunca `overflow: hidden` no body sem fallback.
|
|
91
|
+
|
|
92
|
+
## Checklists
|
|
93
|
+
|
|
94
|
+
- [ ] Storyboard das cenas definido antes do código
|
|
95
|
+
- [ ] Scroll = timeline (scrub) nas cenas principais
|
|
96
|
+
- [ ] Só transform/opacity animados (sem layout thrash)
|
|
97
|
+
- [ ] Frames de imagem pré-carregados com cache + HiDPI cap
|
|
98
|
+
- [ ] Lenis integrado com ScrollTrigger (update no scroll, raf no ticker)
|
|
99
|
+
- [ ] Reduced motion tratado
|
|
100
|
+
- [ ] Mobile: pin/pesado removido ou simplificado
|
|
101
|
+
- [ ] LCP/INP/CLS verdes (Lighthouse ≥ 90 perf)
|
|
102
|
+
- [ ] Sem JS → conteúdo visível
|
|
103
|
+
- [ ] Qualidade: micro-interações de hover/tap nos elementos-chave
|
|
104
|
+
|
|
105
|
+
## References
|
|
106
|
+
|
|
107
|
+
- [MDN — CSS scroll-driven animations](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_scroll-driven_animations) — spec de `scroll-timeline`/`view-timeline`, suporte de browser atualizado.
|
|
108
|
+
- [GSAP Vault — Apple-Style Scroll Image Sequences](https://gsapvault.com/blog/scroll-image-sequence-tutorial) — tutorial de referência do padrão canvas + ScrollTrigger + HiDPI + Lenis.
|
|
109
|
+
- Veja `references.md` nesta pasta — sites de referência (uiprompts.app, Apple product pages, scrollytelling exemplos, Skiper UI, KokonutUI) com técnicas extraídas de cada um.
|
|
110
|
+
|
|
111
|
+
## Metrics & Evolution
|
|
112
|
+
|
|
113
|
+
- Objetivos: 60fps no scroll, LCP < 2.5s, INP < 200ms, CLS < 0.1.
|
|
114
114
|
- Registrar no reflection log: técnica usada por cena, problemas de perf encontrados, o que funcionou para o usuário.
|
|
115
115
|
|
|
116
116
|
> Gerado pelo Izanagi AI — cópia fiel de `skills/animation-web/SKILL.md` (fonte da verdade).
|
|
@@ -3,102 +3,102 @@ name: brainstorming
|
|
|
3
3
|
description: "Transforma uma ideia bruta em design aprovado por entrevista dirigida (~15 perguntas), referências e blueprint de arquitetura. Use antes de criar features ou componentes — hard-gate até o design ser aprovado."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Brainstorming — Da Ideia ao Design Aprovado
|
|
7
|
-
|
|
8
|
-
Método colaborativo para transformar intenção vaga em **spec validada** antes de escrever código. Uma pergunta por vez; nada de implementação antes da aprovação.
|
|
9
|
-
|
|
10
|
-
## Hard Gate (innegociável)
|
|
11
|
-
|
|
12
|
-
> **NÃO invoque skill de implementação, não escreva código, não scaffolde, não modifique nada até apresentar o design e o usuário aprovar.** Vale para todo projeto, mesmo os "simples". Única exceção: usuário dispensa explicitamente ("só vai" / "pode codar direto") — registre a dispensa e prossiga para o prompt rico + plano de implementação.
|
|
13
|
-
|
|
14
|
-
Anti-padrão: *"isto é simples demais para precisar de design"* — é exatamente em projetos simples que premissas não-examinadas causam mais retrabalho. O design pode ser curto (2 frases), mas deve existir e ser aprovado.
|
|
15
|
-
|
|
16
|
-
## Método STAR
|
|
17
|
-
|
|
18
|
-
**Shape** (o que é) → **Time** (prazo) → **Audience** (pra quem) → **Resources** (o que tem) — só depois de mapear os 4 você sugere direções.
|
|
19
|
-
|
|
20
|
-
## Triagem por peso da tarefa (antes da entrevista completa)
|
|
21
|
-
|
|
22
|
-
O Superpowers original (`obra/superpowers`, skill `brainstorming`) classifica todo pedido em 3 trilhas antes de decidir o tamanho da entrevista — evita aplicar as ~15 perguntas a um ajuste trivial e evita subestimar algo que parece simples:
|
|
23
|
-
|
|
24
|
-
1. **Spike** — "pergunta de viabilidade cuja saída é uma resposta, não código que você mantém". Descreva a sonda em 2-3 frases, peça aprovação, investigue barato, reporte achados. Não vira feature.
|
|
25
|
-
2. **Bounded** — "mudança bem delimitada em código que já existe no repo". Entenda o fluxo existente; apresente um design curto **no próprio chat** (poucas frases a parágrafos curtos); aprove e implemente direto — sem doc de plano separado.
|
|
26
|
-
3. **Architectural** — projetos novos, subsistemas novos, mudanças que reestruturam como componentes se encaixam. Segue o processo completo: doc de spec escrito + múltiplos gates de aprovação (este é o fluxo detalhado abaixo).
|
|
27
|
-
|
|
28
|
-
Regra de desempate: **"quando em dúvida entre duas trilhas, escolha a mais pesada"**; e **complexidade oculta descoberta no meio da tarefa faz upgrade de trilha** (ex.: um Bounded que revela reestruturação vira Architectural). Só após o design Architectural aprovado é que se invoca a skill de planejamento (`writing-plans` no Superpowers / `task-planner` no Izanagi) — nenhuma outra skill de implementação antes disso.
|
|
29
|
-
|
|
30
|
-
## Entrevista em 3 Fases (~15 perguntas, UMA por vez — nunca dump)
|
|
31
|
-
|
|
32
|
-
### Fase 1 — Visão & Contexto (5 perguntas)
|
|
33
|
-
1. O que você quer construir? (1 linha)
|
|
34
|
-
2. Qual problema isso resolve?
|
|
35
|
-
3. Contexto atual: projeto existente? arquivos? stack? prazo? orçamento?
|
|
36
|
-
4. Para quem é? (público-alvo)
|
|
37
|
-
5. Sucesso = o quê? (métrica/CTA principal)
|
|
38
|
-
|
|
39
|
-
### Fase 2 — Produto & Conteúdo (5 perguntas)
|
|
40
|
-
6. Funcionalidades essenciais vs desejáveis? (MoSCoW: Must/Should/Could/Won't)
|
|
41
|
-
7. Quais seções/conteúdo o projeto precisa ter?
|
|
42
|
-
8. Integrações externas? (API, CMS, pagamento, analytics)
|
|
43
|
-
9. Quem é o usuário principal? (persona: nome, idade, dor)
|
|
44
|
-
10. Concorrentes ou inspirações que você conhece?
|
|
45
|
-
|
|
46
|
-
**Técnica de apoio (Continuous Discovery Habits, Teresa Torres)**: ao mapear dor/oportunidade, monte uma **Opportunity Solution Tree** mental — outcome desejado no topo, oportunidades (dores/necessidades observadas) como galhos, soluções candidatas como folhas. Ajuda a não pular direto pra "solução" (feature) sem validar a oportunidade por trás. Se o usuário tiver acesso a usuários reais, sugira o hábito de **1 entrevista por semana com o "trio"** (produto/design/engenharia) em vez de pesquisa pontual — reduz o risco de construir sobre suposição não testada.
|
|
47
|
-
|
|
48
|
-
### Fase 3 — Experiência & Técnica (5+ perguntas)
|
|
49
|
-
11. Nível de animação? (estático → micro → cinematográfico/scrollytelling → 3D/WebGL)
|
|
50
|
-
12. Preferências visuais? (dark/light, cores, marcas que admira)
|
|
51
|
-
13. Dispositivos prioritários? (mobile-first? desktop?)
|
|
52
|
-
14. Stack preferida ou aberto a sugestão?
|
|
53
|
-
15. Restrições? (acessibilidade, performance, LGPD, SEO, idiomas)
|
|
54
|
-
16. Se necessário: orçamento de tempo/recursos?
|
|
55
|
-
|
|
56
|
-
**Aceleração**: perguntas já respondidas no pedido inicial ficam marcadas — nunca repetir. Se o usuário dispensar, pule para o design/produto final.
|
|
57
|
-
|
|
58
|
-
## Referências — 2 Trilhas OBRIGATÓRIAS
|
|
59
|
-
|
|
60
|
-
1. **Trilha visual** (se o usuário não trouxer refs): Awwwards, Godly, Land-book, uiprompt, Lapa — extrair princípios reais (*por que* funciona) com URLs reais. Nunca inventar.
|
|
61
|
-
2. **Trilha técnica** (provar que referência vira código): threejs.org/examples, sketchfab.com, poly.pizza, market.pmnd.rs, R3F (pmndrs/react-three-fiber), shadertoy.com, GSAP/ScrollTrigger (gsap.com/docs), Lenis (darkroomengineering/lenis), codepen.io, fonts.google.com, coolors.co.
|
|
62
|
-
|
|
63
|
-
Consultar curadoria canônica em `references/` do framework (webgl-3d, scrollytelling, ui-design-systems, stack-2026, performance-seo).
|
|
64
|
-
|
|
65
|
-
## Arquitetura & Blueprint (antes de finalizar o design)
|
|
66
|
-
|
|
67
|
-
Proponha: estrutura de diretórios; stack com justificativa; modelo de dados (entidades + relações); endpoints/rotas principais; componentes-chave; **ADR-lite** com 3-5 decisões de arquitetura e trade-offs. Usar aliases `architect`, `data-engineering`, `db` do resolver.
|
|
68
|
-
|
|
69
|
-
## Fluxo de execução
|
|
70
|
-
|
|
71
|
-
1. **Explore o contexto do projeto** — arquivos, docs, commits recentes, stack
|
|
72
|
-
2. **Perguntas de esclarecimento** — 3 fases, UMA por vez, múltipla escolha quando possível
|
|
73
|
-
3. **2 Trilhas de referências** — visual + técnica, com URLs reais e porquês
|
|
74
|
-
4. **Proponha 2–3 abordagens** — com trade-offs e sua recomendação primeiro
|
|
75
|
-
5. **Arquitetura & Blueprint** — diretórios, stack, dados, endpoints, ADR-lite
|
|
76
|
-
6. **Apresente o design em seções** — escale ao tamanho do problema; consiga aprovação após cada seção
|
|
77
|
-
7. **Confirme o norte** (1 pergunta) — HARD-GATE
|
|
78
|
-
8. **Escreva o design doc / prompt rico** — `docs/superpowers/specs/YYYY-MM-DD-<tema>-design.md` (ou prompt rico do Discovery) e commite
|
|
79
|
-
9. **Auto-revisão do spec** — placeholders? contradições? ambiguidade? escopo? Corrija inline
|
|
80
|
-
10. **Devolva ao usuário** — "Spec escrito em `<path>`. Revisa antes de planejarmos a implementação?"
|
|
81
|
-
11. **Transição** — aponte para a escrita do plano de implementação (no Izanagi: `task-planner` / agente relevante)
|
|
82
|
-
|
|
83
|
-
## Regras de entrevista
|
|
84
|
-
|
|
85
|
-
- Uma pergunta por mensagem (duas ou mais = questionário-descarga).
|
|
86
|
-
- Múltipla escolha quando der; aberta quando necessário.
|
|
87
|
-
- Foque em: propósito, restrição, critério de sucesso.
|
|
88
|
-
- Se o pedido descrever múltiplos subsistemas independentes, **decomponha primeiro** (o que é independente, como se relacionam, ordem) e faça o brainstorm do primeiro sub-projeto.
|
|
89
|
-
- YAGNI: corte agressivamente o que não serve ao objetivo.
|
|
90
|
-
- Em codebase existente: siga os padrões atuais; inclua melhorias direcionadas apenas se fizer sentido para o objetivo; não refatore sem relação.
|
|
91
|
-
|
|
92
|
-
## Design para isolamento
|
|
93
|
-
|
|
94
|
-
Cada unidade deve: ter um propósito, expor interface clara, ser testável de forma independente. Você deve conseguir responder "o que faz / como se usa / do que depende" sem ler internals. Se um arquivo cresceu demais, é sinal de que está fazendo demais.
|
|
95
|
-
|
|
96
|
-
## References
|
|
97
|
-
|
|
98
|
-
- Repo original: [obra/superpowers](https://github.com/obra/superpowers) — framework de skills + metodologia de desenvolvimento por Jesse Vincent (Prime Radiant), MIT, ativo em 2026. Skill `skills/brainstorming/SKILL.md`.
|
|
99
|
-
- Método completo (triagem Spike/Bounded/Architectural, handoff para `writing-plans`): https://github.com/obra/superpowers/blob/main/skills/brainstorming/SKILL.md
|
|
100
|
-
- Discovery de produto orientado a evidência: Teresa Torres, *Continuous Discovery Habits* — Opportunity Solution Tree, hábito semanal de entrevista com o "trio" (produto/design/engenharia) antes de comprometer-se com uma solução.
|
|
101
|
-
- Baseado em TDD-YAGNI-DRY workflow (ver também `tdd` no Izanagi).
|
|
6
|
+
# Brainstorming — Da Ideia ao Design Aprovado
|
|
7
|
+
|
|
8
|
+
Método colaborativo para transformar intenção vaga em **spec validada** antes de escrever código. Uma pergunta por vez; nada de implementação antes da aprovação.
|
|
9
|
+
|
|
10
|
+
## Hard Gate (innegociável)
|
|
11
|
+
|
|
12
|
+
> **NÃO invoque skill de implementação, não escreva código, não scaffolde, não modifique nada até apresentar o design e o usuário aprovar.** Vale para todo projeto, mesmo os "simples". Única exceção: usuário dispensa explicitamente ("só vai" / "pode codar direto") — registre a dispensa e prossiga para o prompt rico + plano de implementação.
|
|
13
|
+
|
|
14
|
+
Anti-padrão: *"isto é simples demais para precisar de design"* — é exatamente em projetos simples que premissas não-examinadas causam mais retrabalho. O design pode ser curto (2 frases), mas deve existir e ser aprovado.
|
|
15
|
+
|
|
16
|
+
## Método STAR
|
|
17
|
+
|
|
18
|
+
**Shape** (o que é) → **Time** (prazo) → **Audience** (pra quem) → **Resources** (o que tem) — só depois de mapear os 4 você sugere direções.
|
|
19
|
+
|
|
20
|
+
## Triagem por peso da tarefa (antes da entrevista completa)
|
|
21
|
+
|
|
22
|
+
O Superpowers original (`obra/superpowers`, skill `brainstorming`) classifica todo pedido em 3 trilhas antes de decidir o tamanho da entrevista — evita aplicar as ~15 perguntas a um ajuste trivial e evita subestimar algo que parece simples:
|
|
23
|
+
|
|
24
|
+
1. **Spike** — "pergunta de viabilidade cuja saída é uma resposta, não código que você mantém". Descreva a sonda em 2-3 frases, peça aprovação, investigue barato, reporte achados. Não vira feature.
|
|
25
|
+
2. **Bounded** — "mudança bem delimitada em código que já existe no repo". Entenda o fluxo existente; apresente um design curto **no próprio chat** (poucas frases a parágrafos curtos); aprove e implemente direto — sem doc de plano separado.
|
|
26
|
+
3. **Architectural** — projetos novos, subsistemas novos, mudanças que reestruturam como componentes se encaixam. Segue o processo completo: doc de spec escrito + múltiplos gates de aprovação (este é o fluxo detalhado abaixo).
|
|
27
|
+
|
|
28
|
+
Regra de desempate: **"quando em dúvida entre duas trilhas, escolha a mais pesada"**; e **complexidade oculta descoberta no meio da tarefa faz upgrade de trilha** (ex.: um Bounded que revela reestruturação vira Architectural). Só após o design Architectural aprovado é que se invoca a skill de planejamento (`writing-plans` no Superpowers / `task-planner` no Izanagi) — nenhuma outra skill de implementação antes disso.
|
|
29
|
+
|
|
30
|
+
## Entrevista em 3 Fases (~15 perguntas, UMA por vez — nunca dump)
|
|
31
|
+
|
|
32
|
+
### Fase 1 — Visão & Contexto (5 perguntas)
|
|
33
|
+
1. O que você quer construir? (1 linha)
|
|
34
|
+
2. Qual problema isso resolve?
|
|
35
|
+
3. Contexto atual: projeto existente? arquivos? stack? prazo? orçamento?
|
|
36
|
+
4. Para quem é? (público-alvo)
|
|
37
|
+
5. Sucesso = o quê? (métrica/CTA principal)
|
|
38
|
+
|
|
39
|
+
### Fase 2 — Produto & Conteúdo (5 perguntas)
|
|
40
|
+
6. Funcionalidades essenciais vs desejáveis? (MoSCoW: Must/Should/Could/Won't)
|
|
41
|
+
7. Quais seções/conteúdo o projeto precisa ter?
|
|
42
|
+
8. Integrações externas? (API, CMS, pagamento, analytics)
|
|
43
|
+
9. Quem é o usuário principal? (persona: nome, idade, dor)
|
|
44
|
+
10. Concorrentes ou inspirações que você conhece?
|
|
45
|
+
|
|
46
|
+
**Técnica de apoio (Continuous Discovery Habits, Teresa Torres)**: ao mapear dor/oportunidade, monte uma **Opportunity Solution Tree** mental — outcome desejado no topo, oportunidades (dores/necessidades observadas) como galhos, soluções candidatas como folhas. Ajuda a não pular direto pra "solução" (feature) sem validar a oportunidade por trás. Se o usuário tiver acesso a usuários reais, sugira o hábito de **1 entrevista por semana com o "trio"** (produto/design/engenharia) em vez de pesquisa pontual — reduz o risco de construir sobre suposição não testada.
|
|
47
|
+
|
|
48
|
+
### Fase 3 — Experiência & Técnica (5+ perguntas)
|
|
49
|
+
11. Nível de animação? (estático → micro → cinematográfico/scrollytelling → 3D/WebGL)
|
|
50
|
+
12. Preferências visuais? (dark/light, cores, marcas que admira)
|
|
51
|
+
13. Dispositivos prioritários? (mobile-first? desktop?)
|
|
52
|
+
14. Stack preferida ou aberto a sugestão?
|
|
53
|
+
15. Restrições? (acessibilidade, performance, LGPD, SEO, idiomas)
|
|
54
|
+
16. Se necessário: orçamento de tempo/recursos?
|
|
55
|
+
|
|
56
|
+
**Aceleração**: perguntas já respondidas no pedido inicial ficam marcadas — nunca repetir. Se o usuário dispensar, pule para o design/produto final.
|
|
57
|
+
|
|
58
|
+
## Referências — 2 Trilhas OBRIGATÓRIAS
|
|
59
|
+
|
|
60
|
+
1. **Trilha visual** (se o usuário não trouxer refs): Awwwards, Godly, Land-book, uiprompt, Lapa — extrair princípios reais (*por que* funciona) com URLs reais. Nunca inventar.
|
|
61
|
+
2. **Trilha técnica** (provar que referência vira código): threejs.org/examples, sketchfab.com, poly.pizza, market.pmnd.rs, R3F (pmndrs/react-three-fiber), shadertoy.com, GSAP/ScrollTrigger (gsap.com/docs), Lenis (darkroomengineering/lenis), codepen.io, fonts.google.com, coolors.co.
|
|
62
|
+
|
|
63
|
+
Consultar curadoria canônica em `references/` do framework (webgl-3d, scrollytelling, ui-design-systems, stack-2026, performance-seo).
|
|
64
|
+
|
|
65
|
+
## Arquitetura & Blueprint (antes de finalizar o design)
|
|
66
|
+
|
|
67
|
+
Proponha: estrutura de diretórios; stack com justificativa; modelo de dados (entidades + relações); endpoints/rotas principais; componentes-chave; **ADR-lite** com 3-5 decisões de arquitetura e trade-offs. Usar aliases `architect`, `data-engineering`, `db` do resolver.
|
|
68
|
+
|
|
69
|
+
## Fluxo de execução
|
|
70
|
+
|
|
71
|
+
1. **Explore o contexto do projeto** — arquivos, docs, commits recentes, stack
|
|
72
|
+
2. **Perguntas de esclarecimento** — 3 fases, UMA por vez, múltipla escolha quando possível
|
|
73
|
+
3. **2 Trilhas de referências** — visual + técnica, com URLs reais e porquês
|
|
74
|
+
4. **Proponha 2–3 abordagens** — com trade-offs e sua recomendação primeiro
|
|
75
|
+
5. **Arquitetura & Blueprint** — diretórios, stack, dados, endpoints, ADR-lite
|
|
76
|
+
6. **Apresente o design em seções** — escale ao tamanho do problema; consiga aprovação após cada seção
|
|
77
|
+
7. **Confirme o norte** (1 pergunta) — HARD-GATE
|
|
78
|
+
8. **Escreva o design doc / prompt rico** — `docs/superpowers/specs/YYYY-MM-DD-<tema>-design.md` (ou prompt rico do Discovery) e commite
|
|
79
|
+
9. **Auto-revisão do spec** — placeholders? contradições? ambiguidade? escopo? Corrija inline
|
|
80
|
+
10. **Devolva ao usuário** — "Spec escrito em `<path>`. Revisa antes de planejarmos a implementação?"
|
|
81
|
+
11. **Transição** — aponte para a escrita do plano de implementação (no Izanagi: `task-planner` / agente relevante)
|
|
82
|
+
|
|
83
|
+
## Regras de entrevista
|
|
84
|
+
|
|
85
|
+
- Uma pergunta por mensagem (duas ou mais = questionário-descarga).
|
|
86
|
+
- Múltipla escolha quando der; aberta quando necessário.
|
|
87
|
+
- Foque em: propósito, restrição, critério de sucesso.
|
|
88
|
+
- Se o pedido descrever múltiplos subsistemas independentes, **decomponha primeiro** (o que é independente, como se relacionam, ordem) e faça o brainstorm do primeiro sub-projeto.
|
|
89
|
+
- YAGNI: corte agressivamente o que não serve ao objetivo.
|
|
90
|
+
- Em codebase existente: siga os padrões atuais; inclua melhorias direcionadas apenas se fizer sentido para o objetivo; não refatore sem relação.
|
|
91
|
+
|
|
92
|
+
## Design para isolamento
|
|
93
|
+
|
|
94
|
+
Cada unidade deve: ter um propósito, expor interface clara, ser testável de forma independente. Você deve conseguir responder "o que faz / como se usa / do que depende" sem ler internals. Se um arquivo cresceu demais, é sinal de que está fazendo demais.
|
|
95
|
+
|
|
96
|
+
## References
|
|
97
|
+
|
|
98
|
+
- Repo original: [obra/superpowers](https://github.com/obra/superpowers) — framework de skills + metodologia de desenvolvimento por Jesse Vincent (Prime Radiant), MIT, ativo em 2026. Skill `skills/brainstorming/SKILL.md`.
|
|
99
|
+
- Método completo (triagem Spike/Bounded/Architectural, handoff para `writing-plans`): https://github.com/obra/superpowers/blob/main/skills/brainstorming/SKILL.md
|
|
100
|
+
- Discovery de produto orientado a evidência: Teresa Torres, *Continuous Discovery Habits* — Opportunity Solution Tree, hábito semanal de entrevista com o "trio" (produto/design/engenharia) antes de comprometer-se com uma solução.
|
|
101
|
+
- Baseado em TDD-YAGNI-DRY workflow (ver também `tdd` no Izanagi).
|
|
102
102
|
- Curadoria de referências do framework: `references/` (webgl-3d, scrollytelling, ui-design-systems, stack-2026, performance-seo) e `references.md` desta skill.
|
|
103
103
|
|
|
104
104
|
> Gerado pelo Izanagi AI — cópia fiel de `skills/brainstorming/SKILL.md` (fonte da verdade).
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: caveman
|
|
3
|
+
description: >
|
|
4
|
+
Ultra-compressed communication mode. Cuts output tokens 65% (measured) by speaking like caveman
|
|
5
|
+
while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra,
|
|
6
|
+
wenyan-lite, wenyan-full, wenyan-ultra.
|
|
7
|
+
Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens",
|
|
8
|
+
"be brief", or invokes /caveman. Also auto-triggers when token efficiency is requested.
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
Respond terse like smart caveman. All technical substance stay. Only fluff die.
|
|
12
|
+
|
|
13
|
+
## Persistence
|
|
14
|
+
|
|
15
|
+
ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure. Off only: "stop caveman" / "normal mode".
|
|
16
|
+
|
|
17
|
+
Default: **full**. Switch: `/caveman lite|full|ultra|wenyan-lite|wenyan-full|wenyan-ultra|off`.
|
|
18
|
+
|
|
19
|
+
## Rules
|
|
20
|
+
|
|
21
|
+
Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries (sure/certainly/of course/happy to), hedging. Fragments OK. Short synonyms (big not extensive, fix not "implement a solution for"). No tool-call narration, no decorative tables/emoji, no dumping long raw error logs unless asked — quote shortest decisive line. Standard well-known tech acronyms OK (DB/API/HTTP); never invent new abbreviations (cfg/impl/req/res/fn) — tokenizer split them same as full word: zero token saved, reader still decode. Full word cheaper AND clearer. No causal arrows (→) either — own token, save nothing. Technical terms exact. Code blocks unchanged. Errors quoted exact.
|
|
22
|
+
|
|
23
|
+
Never drop not/never/no/only/except — flip meaning worse than any token saved. Numbers, units exact.
|
|
24
|
+
|
|
25
|
+
Tool calls: fire direct. No preamble, plan, or progress note before or between calls. After result: next call direct or final answer — never announce next call. Text before call only to clarify, warn security/irreversible, or resolve ambiguity.
|
|
26
|
+
|
|
27
|
+
Preserve user's dominant language exactly — reply in the language user writes, never switch regardless of example text or multilingual context elsewhere. Compress the style, not the language. Every emitted line in that language — openings, pre-tool status lines, all — not just final reply. ALWAYS keep technical terms, code, API names, CLI commands, commit-type keywords (feat/fix/...), and exact error strings verbatim — unless user explicitly ask for translation.
|
|
28
|
+
|
|
29
|
+
'Drop articles' = article languages only. Where small markers carry case/role (particles, postpositions), keep them — grammar, not filler; compress politeness/filler instead.
|
|
30
|
+
|
|
31
|
+
No self-reference. Never name or announce the style. No "caveman mode on", "me caveman think", no third-person caveman tags. Output caveman-only — never normal answer plus "Caveman:" recap. Exception: user explicitly ask what the mode is.
|
|
32
|
+
|
|
33
|
+
Pattern: `[thing] [action] [reason]. [next step].`
|
|
34
|
+
|
|
35
|
+
Not: "Sure! I'd be happy to help you with that. The issue you're experiencing is likely caused by..."
|
|
36
|
+
Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"
|
|
37
|
+
|
|
38
|
+
## Intensity
|
|
39
|
+
|
|
40
|
+
| Level | What change |
|
|
41
|
+
|-------|------------|
|
|
42
|
+
| **lite** | No filler/hedging. Keep articles + full sentences. Professional but tight |
|
|
43
|
+
| **full** | Drop articles, fragments OK, short synonyms. Classic caveman. No tool-call narration, no decorative tables/emoji, no long raw error-log dumps unless asked. Standard acronyms OK; no invented abbreviations |
|
|
44
|
+
| **ultra** | Strip conjunctions when cause-then-effect stay unambiguous. One word when one word enough. State each fact once. NO prose abbreviations (cfg/impl/req/res/fn/auth), NO arrows (X → Y) — measured zero token saving under tokenizer, cost decode clarity. Code symbols, function names, API names, error strings: never touch |
|
|
45
|
+
| **wenyan-lite** | Semi-classical. Drop filler/hedging but keep grammar structure, classical register |
|
|
46
|
+
| **wenyan-full** | Maximum classical terseness. Fully 文言文. 80-90% character reduction — chars, not tokens. Classical sentence patterns, verbs precede objects, subjects often omitted, classical particles (之/乃/為/其) |
|
|
47
|
+
| **wenyan-ultra** | Extreme abbreviation while keeping classical Chinese feel. Maximum compression, ultra terse |
|
|
48
|
+
|
|
49
|
+
Example — "Why React component re-render?"
|
|
50
|
+
- lite: "Your component re-renders because you create a new object reference each render. Wrap it in `useMemo`."
|
|
51
|
+
- full: "New object ref each render. Inline object prop = new ref = re-render. Wrap in `useMemo`."
|
|
52
|
+
- ultra: "Inline obj prop, new ref, re-render. `useMemo`."
|
|
53
|
+
- wenyan-lite: "組件頻重繪,以每繪新生對象參照故。以 useMemo 包之。"
|
|
54
|
+
- wenyan-full: "每繪新生對象參照,故重繪;以 useMemo 包之則免。"
|
|
55
|
+
- wenyan-ultra: "新參照則重繪。useMemo 包之。"
|
|
56
|
+
|
|
57
|
+
Example — "Explain database connection pooling."
|
|
58
|
+
- lite: "Connection pooling reuses open connections instead of creating new ones per request. Avoids repeated handshake overhead."
|
|
59
|
+
- full: "Pool reuse open DB connections. No new connection per request. Skip handshake overhead."
|
|
60
|
+
- ultra: "Pool reuse open DB connections. No per-request handshake."
|
|
61
|
+
- wenyan-full: "池蓄已開之連,不逐請而新開,省握手之費。"
|
|
62
|
+
- wenyan-ultra: "池蓄連,免逐請新開,省握手。"
|
|
63
|
+
|
|
64
|
+
Classical chars = wenyan modes only. Never swap a word to a classical char to shrink at non-wenyan levels.
|
|
65
|
+
|
|
66
|
+
## Auto-Clarity
|
|
67
|
+
|
|
68
|
+
Drop caveman when:
|
|
69
|
+
- Security warnings
|
|
70
|
+
- Irreversible action confirmations
|
|
71
|
+
- Multi-step sequences where fragment order or omitted conjunctions risk misread
|
|
72
|
+
- Compression itself creates technical ambiguity (e.g., `"migrate table drop column backup first"` — order unclear without articles/conjunctions)
|
|
73
|
+
- User asks to clarify or repeats question
|
|
74
|
+
|
|
75
|
+
Resume caveman after clear part done.
|
|
76
|
+
|
|
77
|
+
Example shows FORMAT only — write warning in session language, not example's.
|
|
78
|
+
|
|
79
|
+
Example — destructive op:
|
|
80
|
+
> **Warning:** This will permanently delete all rows in the `users` table and cannot be undone.
|
|
81
|
+
> ```sql
|
|
82
|
+
> DROP TABLE users;
|
|
83
|
+
> ```
|
|
84
|
+
> Caveman resume. Verify backup exist first.
|
|
85
|
+
|
|
86
|
+
## Boundaries
|
|
87
|
+
|
|
88
|
+
Persisted outside chat: write normal prose — code, comments, commits, docs, issue/PR/MR text, memory files, third-party messages (/caveman-compress exempt). "stop caveman" or "normal mode": revert. Level persist until changed or session end.
|