@jaimevalasek/aioson 1.6.0 → 1.7.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.
- package/CHANGELOG.md +49 -0
- package/README.md +729 -232
- package/docs/design-previews/pt.squarespace.com-homepage.html +889 -0
- package/docs/integrations/sdlc-genius-boundary.md +76 -0
- package/docs/integrations/sdlc-genius-eval-matrix.md +75 -0
- package/docs/integrations/sdlc-genius-install-checklist.md +93 -0
- package/docs/integrations/sdlc-genius-review-samples.md +86 -0
- package/docs/pt/README.md +3 -0
- package/docs/pt/agentes.md +1 -0
- package/docs/pt/comandos-cli.md +888 -2
- package/docs/pt/design-hybrid-forge.md +255 -6
- package/docs/pt/devlog-pipeline.md +270 -0
- package/docs/pt/fluxo-artefatos.md +178 -0
- package/docs/pt/hooks-session-guard.md +454 -0
- package/docs/pt/monitor-de-contexto.md +59 -5
- package/docs/pt/sdd-automation-scripts.md +557 -0
- package/docs/pt/site-forge.md +309 -0
- package/docs/pt/spec-learnings-pipeline.md +265 -0
- package/package.json +1 -1
- package/src/a2a/client.js +165 -0
- package/src/a2a/server.js +223 -0
- package/src/cli.js +235 -1
- package/src/commands/agent-audit.js +397 -0
- package/src/commands/agent-export-skill.js +229 -0
- package/src/commands/artifact-validate.js +189 -0
- package/src/commands/brief-gen.js +405 -0
- package/src/commands/brief-validate.js +65 -0
- package/src/commands/classify.js +256 -0
- package/src/commands/context-compact.js +49 -0
- package/src/commands/context-health.js +175 -0
- package/src/commands/context-monitor.js +71 -0
- package/src/commands/context-trim.js +177 -0
- package/src/commands/detect-test-runner.js +55 -0
- package/src/commands/devlog-export-brains.js +27 -0
- package/src/commands/devlog-process.js +292 -0
- package/src/commands/devlog-watch.js +131 -0
- package/src/commands/feature-close.js +165 -0
- package/src/commands/gate-check.js +228 -0
- package/src/commands/hooks-emit.js +253 -0
- package/src/commands/hooks-install.js +347 -0
- package/src/commands/learning-auto-promote.js +195 -0
- package/src/commands/learning-evolve.js +18 -9
- package/src/commands/learning-export.js +103 -0
- package/src/commands/learning-rollback.js +164 -0
- package/src/commands/live.js +25 -1
- package/src/commands/pattern-detect.js +33 -0
- package/src/commands/preflight-context.js +30 -0
- package/src/commands/preflight.js +208 -0
- package/src/commands/pulse-update.js +130 -0
- package/src/commands/runner-daemon.js +274 -0
- package/src/commands/runner-plan.js +70 -0
- package/src/commands/runner-queue-from-plan.js +166 -0
- package/src/commands/runner-queue.js +189 -0
- package/src/commands/runner-run.js +129 -0
- package/src/commands/runtime.js +47 -1
- package/src/commands/self-implement-loop.js +256 -0
- package/src/commands/session-guard.js +218 -0
- package/src/commands/sizing.js +165 -0
- package/src/commands/skill.js +65 -0
- package/src/commands/spec-checkpoint.js +177 -0
- package/src/commands/spec-status.js +79 -0
- package/src/commands/spec-sync.js +190 -0
- package/src/commands/spec-tasks.js +288 -0
- package/src/commands/squad-autorun.js +1220 -0
- package/src/commands/squad-bus.js +217 -0
- package/src/commands/squad-card.js +149 -0
- package/src/commands/squad-daemon.js +134 -0
- package/src/commands/squad-dependency-graph.js +164 -0
- package/src/commands/squad-review.js +106 -0
- package/src/commands/squad-scaffold.js +55 -0
- package/src/commands/squad-tool-register.js +157 -0
- package/src/commands/state-save.js +122 -0
- package/src/commands/update.js +2 -0
- package/src/commands/verify-gate.js +572 -0
- package/src/commands/workflow-execute.js +241 -0
- package/src/constants.js +9 -0
- package/src/install-profile.js +2 -2
- package/src/install-wizard.js +3 -2
- package/src/installer.js +6 -0
- package/src/lib/health-check.js +158 -0
- package/src/lib/hook-protocol.js +76 -0
- package/src/mcp/apps/squad-dashboard/app.js +163 -0
- package/src/mcp/apps/squad-dashboard/index.html +261 -0
- package/src/mcp/apps/squad-dashboard/mcp-manifest.json +23 -0
- package/src/mcp/resources/squad-state.js +130 -0
- package/src/preflight-engine.js +443 -0
- package/src/runner/cascade.js +97 -0
- package/src/runner/cli-launcher.js +109 -0
- package/src/runner/plan-importer.js +63 -0
- package/src/runner/queue-store.js +159 -0
- package/src/runtime-store.js +61 -3
- package/src/squad/agent-teams-adapter.js +264 -0
- package/src/squad/brief-validator.js +350 -0
- package/src/squad/bus-bridge.js +140 -0
- package/src/squad/context-compactor.js +265 -0
- package/src/squad/cross-ai-synthesizer.js +250 -0
- package/src/squad/hooks-generator.js +196 -0
- package/src/squad/inter-squad-events.js +175 -0
- package/src/squad/intra-bus.js +345 -0
- package/src/squad/learning-extractor.js +213 -0
- package/src/squad/pattern-detector.js +365 -0
- package/src/squad/preflight-context.js +296 -0
- package/src/squad/recovery-context.js +242 -71
- package/src/squad/reflection.js +365 -0
- package/src/squad/squad-scaffold.js +177 -0
- package/src/squad/state-manager.js +310 -0
- package/src/squad/task-decomposer.js +652 -0
- package/src/squad/verify-gate.js +303 -0
- package/src/updater.js +4 -5
- package/src/worker-runner.js +186 -1
- package/template/.aioson/agents/analyst.md +62 -1
- package/template/.aioson/agents/architect.md +61 -1
- package/template/.aioson/agents/design-hybrid-forge.md +14 -0
- package/template/.aioson/agents/dev.md +242 -24
- package/template/.aioson/agents/deyvin.md +66 -8
- package/template/.aioson/agents/discovery-design-doc.md +44 -0
- package/template/.aioson/agents/genome.md +14 -0
- package/template/.aioson/agents/neo.md +78 -1
- package/template/.aioson/agents/orache.md +50 -4
- package/template/.aioson/agents/orchestrator.md +197 -1
- package/template/.aioson/agents/pm.md +35 -0
- package/template/.aioson/agents/product.md +50 -5
- package/template/.aioson/agents/profiler-enricher.md +14 -0
- package/template/.aioson/agents/profiler-forge.md +14 -0
- package/template/.aioson/agents/profiler-researcher.md +14 -0
- package/template/.aioson/agents/qa.md +172 -21
- package/template/.aioson/agents/setup.md +79 -9
- package/template/.aioson/agents/sheldon.md +131 -6
- package/template/.aioson/agents/site-forge.md +1753 -0
- package/template/.aioson/agents/squad.md +162 -0
- package/template/.aioson/agents/tester.md +53 -0
- package/template/.aioson/agents/ux-ui.md +34 -1
- package/template/.aioson/brains/README.md +128 -0
- package/template/.aioson/brains/_index.json +16 -0
- package/template/.aioson/brains/scripts/query.js +103 -0
- package/template/.aioson/brains/site-forge/visual-patterns.brain.json +205 -0
- package/template/.aioson/config.md +143 -13
- package/template/.aioson/constitution.md +33 -0
- package/template/.aioson/context/project-pulse.md +34 -0
- package/template/.aioson/docs/LAYERS.md +79 -0
- package/template/.aioson/docs/README.md +76 -0
- package/template/.aioson/docs/example-external-api-context.md +72 -0
- package/template/.aioson/locales/en/agents/architect.md +17 -0
- package/template/.aioson/locales/en/agents/dev.md +79 -13
- package/template/.aioson/locales/en/agents/orache.md +6 -0
- package/template/.aioson/locales/en/agents/orchestrator.md +24 -0
- package/template/.aioson/locales/en/agents/product.md +50 -0
- package/template/.aioson/locales/en/agents/sheldon.md +115 -0
- package/template/.aioson/locales/en/agents/squad.md +14 -0
- package/template/.aioson/locales/en/agents/tester.md +6 -0
- package/template/.aioson/locales/es/agents/analyst.md +2 -0
- package/template/.aioson/locales/es/agents/architect.md +19 -0
- package/template/.aioson/locales/es/agents/dev.md +64 -4
- package/template/.aioson/locales/es/agents/deyvin.md +2 -0
- package/template/.aioson/locales/es/agents/discovery-design-doc.md +2 -0
- package/template/.aioson/locales/es/agents/genome.md +2 -0
- package/template/.aioson/locales/es/agents/neo.md +2 -0
- package/template/.aioson/locales/es/agents/orache.md +2 -0
- package/template/.aioson/locales/es/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/es/agents/pair.md +2 -0
- package/template/.aioson/locales/es/agents/pm.md +2 -0
- package/template/.aioson/locales/es/agents/product.md +52 -0
- package/template/.aioson/locales/es/agents/profiler-enricher.md +2 -0
- package/template/.aioson/locales/es/agents/profiler-forge.md +2 -0
- package/template/.aioson/locales/es/agents/profiler-researcher.md +2 -0
- package/template/.aioson/locales/es/agents/qa.md +2 -0
- package/template/.aioson/locales/es/agents/setup.md +2 -0
- package/template/.aioson/locales/es/agents/sheldon.md +117 -0
- package/template/.aioson/locales/es/agents/squad.md +16 -0
- package/template/.aioson/locales/es/agents/tester.md +9 -0
- package/template/.aioson/locales/es/agents/ux-ui.md +2 -0
- package/template/.aioson/locales/fr/agents/analyst.md +2 -0
- package/template/.aioson/locales/fr/agents/architect.md +19 -0
- package/template/.aioson/locales/fr/agents/dev.md +64 -4
- package/template/.aioson/locales/fr/agents/deyvin.md +2 -0
- package/template/.aioson/locales/fr/agents/discovery-design-doc.md +2 -0
- package/template/.aioson/locales/fr/agents/genome.md +2 -0
- package/template/.aioson/locales/fr/agents/neo.md +2 -0
- package/template/.aioson/locales/fr/agents/orache.md +2 -0
- package/template/.aioson/locales/fr/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/fr/agents/pair.md +2 -0
- package/template/.aioson/locales/fr/agents/pm.md +2 -0
- package/template/.aioson/locales/fr/agents/product.md +52 -0
- package/template/.aioson/locales/fr/agents/profiler-enricher.md +2 -0
- package/template/.aioson/locales/fr/agents/profiler-forge.md +2 -0
- package/template/.aioson/locales/fr/agents/profiler-researcher.md +2 -0
- package/template/.aioson/locales/fr/agents/qa.md +2 -0
- package/template/.aioson/locales/fr/agents/setup.md +2 -0
- package/template/.aioson/locales/fr/agents/sheldon.md +117 -0
- package/template/.aioson/locales/fr/agents/squad.md +16 -0
- package/template/.aioson/locales/fr/agents/tester.md +9 -0
- package/template/.aioson/locales/fr/agents/ux-ui.md +2 -0
- package/template/.aioson/locales/pt-BR/agents/analyst.md +64 -3
- package/template/.aioson/locales/pt-BR/agents/architect.md +42 -0
- package/template/.aioson/locales/pt-BR/agents/dev.md +147 -14
- package/template/.aioson/locales/pt-BR/agents/deyvin.md +47 -0
- package/template/.aioson/locales/pt-BR/agents/neo.md +62 -1
- package/template/.aioson/locales/pt-BR/agents/orchestrator.md +158 -2
- package/template/.aioson/locales/pt-BR/agents/pm.md +95 -1
- package/template/.aioson/locales/pt-BR/agents/product.md +145 -18
- package/template/.aioson/locales/pt-BR/agents/qa.md +16 -0
- package/template/.aioson/locales/pt-BR/agents/setup.md +101 -18
- package/template/.aioson/locales/pt-BR/agents/sheldon.md +132 -1
- package/template/.aioson/locales/pt-BR/agents/squad.md +14 -0
- package/template/.aioson/locales/pt-BR/agents/tester.md +449 -0
- package/template/.aioson/rules/README.md +69 -0
- package/template/.aioson/rules/data-format-convention.md +136 -0
- package/template/.aioson/rules/example-monetary-values.md +30 -0
- package/template/.aioson/schemas/squad-manifest.schema.json +124 -3
- package/template/.aioson/skills/design/pt.squarespace.com/.skill-meta.json +31 -0
- package/template/.aioson/skills/design/pt.squarespace.com/SKILL.md +66 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/components.md +368 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/design-tokens.md +150 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/motion.md +270 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/patterns.md +189 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/websites.md +165 -0
- package/template/.aioson/skills/process/aioson-spec-driven/SKILL.md +1 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/analyst.md +30 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/architect.md +23 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/dev.md +47 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/deyvin.md +27 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/maintenance-and-state.md +35 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/product.md +25 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/qa.md +30 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/sheldon.md +25 -0
- package/template/.aioson/skills/process/design-hybrid-forge/SKILL.md +4 -1
- package/template/.aioson/skills/process/design-hybrid-forge/references/output-contract.md +15 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/pair-compatibility.md +32 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/quality-gates.md +20 -0
- package/template/.aioson/skills/process/simplify/SKILL.md +173 -0
- package/template/.aioson/skills/static/context-budget-guide.md +46 -0
- package/template/.aioson/skills/static/harness-sensors.md +74 -0
- package/template/.aioson/skills/static/multi-agent-patterns.md +43 -0
- package/template/.aioson/skills/static/react-motion-patterns.md +22 -0
- package/template/.aioson/skills/static/static-html-patterns/checklists.md +43 -0
- package/template/.aioson/skills/static/static-html-patterns/css-tokens.md +609 -0
- package/template/.aioson/skills/static/static-html-patterns/motion.md +193 -0
- package/template/.aioson/skills/static/static-html-patterns/premium.md +711 -0
- package/template/.aioson/skills/static/static-html-patterns/structure.md +209 -0
- package/template/.aioson/skills/static/static-html-patterns/utilities.md +190 -0
- package/template/.aioson/skills/static/static-html-patterns.md +58 -1913
- package/template/.aioson/skills/static/threejs-patterns.md +929 -0
- package/template/.aioson/skills/static/web-research-cache.md +112 -0
- package/template/.aioson/tasks/implementation-plan.md +21 -1
- package/template/.claude/commands/aioson/agent/design-hybrid-forge.md +5 -0
- package/template/.claude/commands/aioson/agent/orache.md +5 -0
- package/template/.claude/commands/aioson/agent/sheldon.md +5 -0
- package/template/.claude/commands/aioson/agent/site-forge.md +5 -0
- package/template/AGENTS.md +55 -3
- package/template/CLAUDE.md +30 -0
- package/template/OPENCODE.md +4 -0
- package/template/researchs/.gitkeep +0 -0
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# Websites — Squarespace Homepage
|
|
2
|
+
|
|
3
|
+
## Page Topology
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
1. Header — Sticky navigation with transparency transition
|
|
7
|
+
2. Hero — Full-viewport dark section with video background + CTA
|
|
8
|
+
3. Grow Your Business — Feature grid with icons (6 product areas)
|
|
9
|
+
4. One Platform — Platform card carousel (videos + images)
|
|
10
|
+
5. Get Started — Teal CTA section with template thumbnails
|
|
11
|
+
6. Your Domain — Domain search input
|
|
12
|
+
7. How To — Step-by-step how-to guide section
|
|
13
|
+
8. Customers Served — Statistics row (large numbers)
|
|
14
|
+
9. Made With SQSP — Showcase of customer sites
|
|
15
|
+
10. FAQ — Accordion FAQ section
|
|
16
|
+
11. Support — Support options grid
|
|
17
|
+
12. Conversion — Final dark CTA section with video
|
|
18
|
+
13. Footer — 4-column links + legal
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Section Details
|
|
22
|
+
|
|
23
|
+
### Header
|
|
24
|
+
- **Type:** Sticky navigation
|
|
25
|
+
- **Background:** Transparent initially, solid white on scroll
|
|
26
|
+
- **Content:** Logo (left), Nav links (center), CTAs (right)
|
|
27
|
+
- **Mobile:** Hamburger with drawer
|
|
28
|
+
|
|
29
|
+
### Hero (#homepage-hero)
|
|
30
|
+
- **Background:** Black `rgb(0, 0, 0)` + `<video>` background + `rgba(0,0,0,0.52)` overlay
|
|
31
|
+
- **Video:** `video-desktop.webm/mp4` (desktop), `video-mobile.webm/mp4` (< 768px)
|
|
32
|
+
- **Height:** ~1007px viewport height
|
|
33
|
+
- **Content:**
|
|
34
|
+
- H1: "Um site faz acontecer" (`var(--text-3xl)`, `var(--font-light)`, white)
|
|
35
|
+
- P: "Comece de graça. Não precisa de cartão de crédito." (`var(--text-xl)`, white)
|
|
36
|
+
- CTA: "Comece já" (`.cta--primary.cta--light` — white button, black text, mix-blend-mode hover)
|
|
37
|
+
|
|
38
|
+
### Grow Your Business (#grow-your-business)
|
|
39
|
+
- **Background:** White or off-white
|
|
40
|
+
- **Layout:** Content grid
|
|
41
|
+
- **Content:** Feature highlights with icons
|
|
42
|
+
|
|
43
|
+
### One Platform (#one-platform)
|
|
44
|
+
- **Background:** Off-white `rgb(245, 245, 244)`
|
|
45
|
+
- **Layout:** Split layout (text + visual)
|
|
46
|
+
|
|
47
|
+
### Get Started (#get-started)
|
|
48
|
+
- **Background:** Off-white `rgb(245, 245, 244)` with rotating template thumbnail cards
|
|
49
|
+
- **Content:** Centered CTA + 3 template preview images (rotate/reseda/altaloma)
|
|
50
|
+
- **Video:** `templates.webm/mp4` — template showcase animation
|
|
51
|
+
|
|
52
|
+
### Your Domain (#your-domain)
|
|
53
|
+
- **Background:** Light gray `rgb(223, 221, 216)`
|
|
54
|
+
- **Layout:** Inline input + button
|
|
55
|
+
- **Input placeholder:** "Digite seu domínio"
|
|
56
|
+
|
|
57
|
+
### How To (#homepage-how-to)
|
|
58
|
+
- **Background:** White `rgb(255, 255, 255)`
|
|
59
|
+
- **Layout:** Numbered steps with icons
|
|
60
|
+
- **Content:** Step-by-step guide to getting started with Squarespace
|
|
61
|
+
|
|
62
|
+
### Customers Served (#customers-served)
|
|
63
|
+
- **Background:** Black `rgb(0, 0, 0)`
|
|
64
|
+
- **Layout:** Horizontal stat row
|
|
65
|
+
- **Content:** Large numbers + labels
|
|
66
|
+
- **Animation:** `.stats__card` uses `fadeIn` 1.2s `var(--ease-sqsp-reveal)` on `.in-view`
|
|
67
|
+
|
|
68
|
+
### Made With SQSP (#made-with-sqsp)
|
|
69
|
+
- **Background:** Off-white `rgb(245, 245, 244)`
|
|
70
|
+
- **Layout:** Grid of customer site screenshots
|
|
71
|
+
- **Content:** Customer-built site showcases with hover zoom effect
|
|
72
|
+
- **Interaction:** `transform: scale(1.04)` on hover, 400ms `var(--ease-sqsp-reveal)`
|
|
73
|
+
|
|
74
|
+
### FAQ (#homepage-faq)
|
|
75
|
+
- **Background:** White `rgb(255, 255, 255)`
|
|
76
|
+
- **Layout:** Accordion list — question rows expand to reveal answers
|
|
77
|
+
- **Animation:** CSS grid `grid-template-rows: 0fr → 1fr` (same accordion pattern as mobile nav)
|
|
78
|
+
- **Interaction:** Click chevron → expand; click again → collapse
|
|
79
|
+
|
|
80
|
+
### Support (#support)
|
|
81
|
+
- **Background:** Off-white
|
|
82
|
+
- **Layout:** Grid of support options
|
|
83
|
+
- **Content:** Links to help resources
|
|
84
|
+
|
|
85
|
+
### Conversion (#conversion)
|
|
86
|
+
- **Background:** Dark `rgb(26, 26, 26)` (charcoal)
|
|
87
|
+
- **Content:** Final headline + CTA
|
|
88
|
+
- **Video:** `conversion-centered.mp4` plays in background
|
|
89
|
+
|
|
90
|
+
### Footer (.footer)
|
|
91
|
+
- **Background:** Black
|
|
92
|
+
- **Layout:** 4-column grid
|
|
93
|
+
- **Columns:** Products, Solutions, Resources, Company
|
|
94
|
+
- **Bottom:** Copyright, Privacy, Terms
|
|
95
|
+
- **Height:** ~1019px
|
|
96
|
+
|
|
97
|
+
## Internal Links Discovered
|
|
98
|
+
|
|
99
|
+
- `/preise` — Pricing page
|
|
100
|
+
- `/templates` — Templates gallery
|
|
101
|
+
- `/design-de-sites` — Design page
|
|
102
|
+
- `/templates/comece-agora` — Start page
|
|
103
|
+
- `/sites/construtor-de-sites-com-ai` — AI builder
|
|
104
|
+
- `/design-inteligente` — Smart design
|
|
105
|
+
- `/websites/criar-um-portfolio` — Portfolio builder
|
|
106
|
+
- `/websites/crie-um-blog` — Blog builder
|
|
107
|
+
- `/websites/analytics` — Analytics
|
|
108
|
+
|
|
109
|
+
## Typography Details
|
|
110
|
+
|
|
111
|
+
### Font Family: Clarkson
|
|
112
|
+
- Clarkson is Squarespace's proprietary sans-serif
|
|
113
|
+
- Clarkson Serif is the serif variant
|
|
114
|
+
- Falls back to Helvetica Neue, Helvetica, Arial, sans-serif
|
|
115
|
+
|
|
116
|
+
### Font Weights Observed
|
|
117
|
+
- 300 (light) — Hero H1
|
|
118
|
+
- 400 (normal) — Body, H2, buttons
|
|
119
|
+
- 500 (medium) — CTAs, emphasis
|
|
120
|
+
|
|
121
|
+
### Size Scale
|
|
122
|
+
- Hero H1: `var(--text-3xl)` → 42px
|
|
123
|
+
- H2: `var(--text-xl)` → 26px
|
|
124
|
+
- H3: `var(--text-lg)` → 20px
|
|
125
|
+
- Body: `var(--text-base)` → 16px
|
|
126
|
+
- Small: `var(--text-sm)` → 14px
|
|
127
|
+
- Caption: `var(--text-xs)` → 12px
|
|
128
|
+
|
|
129
|
+
## Color Palette (Hex)
|
|
130
|
+
|
|
131
|
+
| Token | Hex |
|
|
132
|
+
|-------|-----|
|
|
133
|
+
| `--bg-inverse` | #000000 |
|
|
134
|
+
| `--bg-charcoal` | #1A1A1A |
|
|
135
|
+
| `--bg-teal` | #1E4C41 |
|
|
136
|
+
| `--bg-surface` | #F5F5F4 |
|
|
137
|
+
| `--bg-elevated` | #DFDDD8 |
|
|
138
|
+
| `--text-primary` | #000000 |
|
|
139
|
+
| `--text-inverse` | #FFFFFF |
|
|
140
|
+
| `--text-muted` | #898989 |
|
|
141
|
+
| `--text-light-gray` | #DDDDDD |
|
|
142
|
+
| `--border` | #DDDDDD |
|
|
143
|
+
| `--error` | #200603 |
|
|
144
|
+
|
|
145
|
+
## Interaction Summary
|
|
146
|
+
|
|
147
|
+
1. **Nav scroll:** Transparent → solid at 50px scroll via JS class toggle
|
|
148
|
+
2. **Mobile hamburger:** Click → `clip-path: polygon()` wipe animation (600ms) — NOT `translateX`
|
|
149
|
+
3. **Mobile accordion:** `grid-template-rows: 0fr → 1fr` CSS transition (700ms)
|
|
150
|
+
4. **CTA button hover:** `mix-blend-mode: difference` pseudo-element scales in (300ms) — NOT color transition
|
|
151
|
+
5. **Text link hover (`.cta--tertiary`):** Dual linear-gradient `background-position` slide (500ms)
|
|
152
|
+
6. **Section scroll-reveal:** `IntersectionObserver` adds `.in-view`, CSS handles `opacity + translateY` (800ms `--ease-sqsp-reveal`)
|
|
153
|
+
7. **Stats cards:** Staggered `fadeIn` with 0.1s per card delay
|
|
154
|
+
8. **Support arrow hover:** `supportHoverArrow` shimmy keyframe (1.1s infinite)
|
|
155
|
+
9. **AI dots:** `rotateAnimation` + `scaleAnimation{Large/Medium/Small}` coordinated (14s infinite)
|
|
156
|
+
10. **FAQ accordion:** Same `grid-template-rows` technique as mobile nav
|
|
157
|
+
|
|
158
|
+
## Design Signatures
|
|
159
|
+
|
|
160
|
+
1. **Zero border-radius** — Sharp corners everywhere
|
|
161
|
+
2. **Clarkson typography** — Distinctive proprietary font
|
|
162
|
+
3. **Dark heroes** — Black backgrounds with white text
|
|
163
|
+
4. **Teal accents** — Dark teal for CTAs and emphasis
|
|
164
|
+
5. **Minimal shadows** — Almost no shadows used
|
|
165
|
+
6. **Generous whitespace** — Large section padding
|
|
@@ -43,3 +43,4 @@ Load the file that matches your current context — do not load all at once:
|
|
|
43
43
|
| `references/hardening-lane.md` | The input is vague, exploratory, or "vibe-style" and needs to be converted |
|
|
44
44
|
| `references/maintenance-and-state.md` | You are writing or reading `spec*.md`, checkpoints, or retaking work |
|
|
45
45
|
| `references/ui-language.md` | You need to present options, status symbols, or checkpoints to the user with consistent visual standards |
|
|
46
|
+
| `references/qa.md` | You are running QA review and need Gate D verification criteria or artifact validation |
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Spec-Driven Reference — @analyst
|
|
2
|
+
|
|
3
|
+
> Router file. Do not duplicate logic from the generic references — load those directly.
|
|
4
|
+
|
|
5
|
+
## Which references to load for discovery and feature requirements
|
|
6
|
+
|
|
7
|
+
### Always load when this skill is active
|
|
8
|
+
|
|
9
|
+
- `classification-map.md` — use during discovery to score complexity and declare MICRO/SMALL/MEDIUM before any other decision
|
|
10
|
+
- `artifact-map.md` — use to know exactly what artifacts @analyst owns vs what belongs to @architect or @dev
|
|
11
|
+
- `approval-gates.md` — use Gate A criteria to know when requirements are ready to hand off
|
|
12
|
+
|
|
13
|
+
### Load when input is vague or exploratory
|
|
14
|
+
|
|
15
|
+
- `hardening-lane.md` — use to detect whether input is still in vibe mode and route accordingly before producing requirements
|
|
16
|
+
|
|
17
|
+
### Do not load for @analyst
|
|
18
|
+
|
|
19
|
+
- `maintenance-and-state.md` — this is for execution/continuation sessions, not discovery
|
|
20
|
+
- `ui-language.md` — load only when producing a checkpoint or gate status presentation
|
|
21
|
+
|
|
22
|
+
## Behavioral notes
|
|
23
|
+
|
|
24
|
+
- Declare classification (MICRO/SMALL/MEDIUM) early — it controls depth of requirements, AC verbosity, and whether Gate A is blocking
|
|
25
|
+
- Gate A must be explicitly evaluated before handing off to @architect or @dev
|
|
26
|
+
- `requirements-{slug}.md` is @analyst's primary output — see `artifact-map.md` for ownership chain
|
|
27
|
+
|
|
28
|
+
### Conformance contract (MEDIUM only)
|
|
29
|
+
|
|
30
|
+
For MEDIUM features, generate `.aioson/context/conformance-{slug}.yaml` alongside `requirements-{slug}.md`. This YAML file structures each AC into machine-readable preconditions, actions, expected outcomes, and negative cases. @qa and @dev consume this for precise verification and test writing.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Spec-Driven Reference — @architect
|
|
2
|
+
|
|
3
|
+
> Router file. Do not duplicate logic from the generic references — load those directly.
|
|
4
|
+
|
|
5
|
+
## Which references to load for architecture work
|
|
6
|
+
|
|
7
|
+
### Always load when this skill is active
|
|
8
|
+
|
|
9
|
+
- `classification-map.md` — use to determine architecture depth: MICRO skips most of this, MEDIUM requires full `architecture.md`
|
|
10
|
+
- `approval-gates.md` — Gate B criteria define what @architect must produce before @dev can start; Gate A must already be passed before @architect begins
|
|
11
|
+
- `artifact-map.md` — use to confirm which artifacts @architect owns (`architecture.md`, `design-doc*.md`) and which feed into it
|
|
12
|
+
|
|
13
|
+
### Do not load for @architect
|
|
14
|
+
|
|
15
|
+
- `hardening-lane.md` — input is expected to be already past vibe mode when @architect is activated
|
|
16
|
+
- `maintenance-and-state.md` — this is for execution/continuation sessions
|
|
17
|
+
|
|
18
|
+
## Behavioral notes
|
|
19
|
+
|
|
20
|
+
- Classification depth from `classification-map.md` controls whether `architecture.md` is required, selective, or skippable
|
|
21
|
+
- Gate B is the handoff signal — @dev must not start implementation without Gate B passing (MEDIUM) or being explicitly waived (SMALL)
|
|
22
|
+
- Decision rationale is mandatory for non-obvious choices — `approval-gates.md` Gate B checklist item applies
|
|
23
|
+
- `design-doc*.md` is @architect's scope-specific decision document — see `artifact-map.md`
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Spec-Driven Reference — @dev
|
|
2
|
+
|
|
3
|
+
> Router file. Do not duplicate logic from the generic references — load those directly.
|
|
4
|
+
|
|
5
|
+
## Which references to load for implementation
|
|
6
|
+
|
|
7
|
+
### Always load when this skill is active
|
|
8
|
+
|
|
9
|
+
- `maintenance-and-state.md` — use to write and update `spec-{slug}.md` correctly: `phase_gates`, `last_checkpoint`, `pending_review`, and `Key decisions` format
|
|
10
|
+
- `approval-gates.md` — Gate C (plan approval) must be checked before executing a significant batch; Gate D (execution verification) defines done criteria for each phase
|
|
11
|
+
|
|
12
|
+
### Load when starting a new feature with classification context
|
|
13
|
+
|
|
14
|
+
- `classification-map.md` — use to confirm whether an implementation plan is optional (MICRO), recommended (SMALL), or required (MEDIUM) before starting
|
|
15
|
+
|
|
16
|
+
### Load when resuming or checking artifact chain
|
|
17
|
+
|
|
18
|
+
- `artifact-map.md` — use to verify which upstream artifacts exist and which @dev should read before implementing
|
|
19
|
+
|
|
20
|
+
### Do not load for @dev
|
|
21
|
+
|
|
22
|
+
- `hardening-lane.md` — @dev activates after hardening; if the spec is still in vibe mode, stop and route back
|
|
23
|
+
- `ui-language.md` — load only when producing a checkpoint or gate status presentation for the user
|
|
24
|
+
|
|
25
|
+
## Spec drift detection
|
|
26
|
+
|
|
27
|
+
At session start, after reading `spec-{slug}.md`:
|
|
28
|
+
|
|
29
|
+
1. Compare `spec_version` in `spec-{slug}.md` with the version recorded in `dev-state.md` (`last_spec_version` field)
|
|
30
|
+
2. If versions differ:
|
|
31
|
+
> "⚠ Spec changed since last session (version {old} → {new}). Reading the changes before continuing."
|
|
32
|
+
- Read the diff (Key decisions, Entities added, Edge cases sections)
|
|
33
|
+
- Update `dev-state.md` with new `last_spec_version`
|
|
34
|
+
3. If versions match: proceed normally
|
|
35
|
+
|
|
36
|
+
Additionally, at session start for SMALL/MEDIUM:
|
|
37
|
+
4. Check if any `AC-{slug}-{N}` from `requirements-{slug}.md` has a corresponding test file
|
|
38
|
+
5. If coverage is < 50%:
|
|
39
|
+
> "⚠ AC coverage is low ({N}/{M} ACs have tests). Consider writing missing tests before adding new behavior."
|
|
40
|
+
This is informational, not blocking.
|
|
41
|
+
|
|
42
|
+
## Behavioral notes
|
|
43
|
+
|
|
44
|
+
- `spec-{slug}.md` must be updated at the end of every implementation session — see `maintenance-and-state.md` for format
|
|
45
|
+
- Gate C from `approval-gates.md` means the implementation plan is locked — do not re-discuss pre-taken decisions
|
|
46
|
+
- Gate D verification must happen before marking a phase complete — not just "I think it works"
|
|
47
|
+
- If `phase_gates.plan` is `pending` and classification is SMALL/MEDIUM, suggest generating an implementation plan before proceeding
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Spec-Driven Reference — @deyvin
|
|
2
|
+
|
|
3
|
+
> Router file. Do not duplicate logic from the generic references — load those directly.
|
|
4
|
+
|
|
5
|
+
## Which references to load for continuation and resume flows
|
|
6
|
+
|
|
7
|
+
### Always load when this skill is active
|
|
8
|
+
|
|
9
|
+
- `maintenance-and-state.md` — @deyvin's primary job is resumption; use this to read `phase_gates`, `last_checkpoint`, and `pending_review` correctly before any action
|
|
10
|
+
- `approval-gates.md` — use to check which gates are already approved before proceeding; never advance past a gate that is not yet passed
|
|
11
|
+
|
|
12
|
+
### Load when the continuation context is unclear
|
|
13
|
+
|
|
14
|
+
- `artifact-map.md` — use to quickly orient which artifacts exist and which are missing when resuming a session with incomplete context
|
|
15
|
+
|
|
16
|
+
### Do not load for @deyvin
|
|
17
|
+
|
|
18
|
+
- `hardening-lane.md` — by the time @deyvin is active, the spec pack should already be hardened
|
|
19
|
+
- `classification-map.md` — classification was set in the spec and should not be re-evaluated during continuation
|
|
20
|
+
- `ui-language.md` — load only when producing a checkpoint or gate status presentation for the user
|
|
21
|
+
|
|
22
|
+
## Behavioral notes
|
|
23
|
+
|
|
24
|
+
- `last_checkpoint` in `spec-{slug}.md` is the first thing @deyvin reads — see `maintenance-and-state.md` for format
|
|
25
|
+
- Do not re-read the full spec pack unless `last_checkpoint` is null or contradictory
|
|
26
|
+
- `phase_gates` from `approval-gates.md` defines what is locked — @deyvin does not re-open locked decisions
|
|
27
|
+
- `pending_review` items must be surfaced to the user before proceeding past them
|
package/template/.aioson/skills/process/aioson-spec-driven/references/maintenance-and-state.md
CHANGED
|
@@ -57,6 +57,41 @@ Good example:
|
|
|
57
57
|
|
|
58
58
|
The reason is what makes the decision useful in 6 months.
|
|
59
59
|
|
|
60
|
+
## spec_version field
|
|
61
|
+
|
|
62
|
+
- Seeded at `1` by @analyst when creating the skeleton
|
|
63
|
+
- Incremented by any agent that modifies the spec body (entities, decisions, edge cases — NOT just `last_checkpoint` or `pending_review`)
|
|
64
|
+
- @dev checks at session start: if version changed since last `dev-state.md` update, read the spec diff before continuing
|
|
65
|
+
- @qa checks at review: if version doesn't match what @dev reported, flag as potential drift
|
|
66
|
+
|
|
67
|
+
## Unified resumption fields
|
|
68
|
+
|
|
69
|
+
Every agent that produces or updates a persistent artifact should include these fields in the artifact's frontmatter or closing section:
|
|
70
|
+
|
|
71
|
+
### In frontmatter (machine-readable):
|
|
72
|
+
- `last_agent: {agent-name}` — who was here last
|
|
73
|
+
- `last_session: {ISO-date}` — when
|
|
74
|
+
- `session_result: completed | interrupted | blocked` — what happened
|
|
75
|
+
|
|
76
|
+
### In closing section (human-readable):
|
|
77
|
+
```
|
|
78
|
+
## Session close — {ISO-date}
|
|
79
|
+
Agent: @{name}
|
|
80
|
+
Result: {completed | interrupted | blocked}
|
|
81
|
+
Next: {clear instruction for next agent or next session}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Which artifact each agent updates:
|
|
85
|
+
| Agent | Primary artifact |
|
|
86
|
+
|-------|-----------------|
|
|
87
|
+
| @product | `prd.md` or `prd-{slug}.md` |
|
|
88
|
+
| @sheldon | `sheldon-enrichment-{slug}.md` |
|
|
89
|
+
| @analyst | `discovery.md` or `requirements-{slug}.md` |
|
|
90
|
+
| @architect | `architecture.md` |
|
|
91
|
+
| @dev | `dev-state.md` (already does this) |
|
|
92
|
+
| @deyvin | `dev-state.md` or `spec-{slug}.md` |
|
|
93
|
+
| @qa | QA report file |
|
|
94
|
+
|
|
60
95
|
## How @deyvin should use this file
|
|
61
96
|
|
|
62
97
|
1. Read `phase_gates` first — know which phases are locked
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Spec-Driven Reference — @product
|
|
2
|
+
|
|
3
|
+
> Router file. Do not duplicate logic from the generic references — load those directly.
|
|
4
|
+
|
|
5
|
+
## Which references to load for PRD and feature scoping
|
|
6
|
+
|
|
7
|
+
### Always load when this skill is active
|
|
8
|
+
|
|
9
|
+
- `classification-map.md` — use to declare MICRO/SMALL/MEDIUM at the start of scoping; classification controls PRD depth, whether a `## Specify depth` section is required, and which downstream phases are mandatory
|
|
10
|
+
- `artifact-map.md` — use to understand what @product's PRD feeds into downstream; helps scope the PRD correctly without over-specifying what belongs to @analyst or @architect
|
|
11
|
+
|
|
12
|
+
### Load when input is still ambiguous or exploratory
|
|
13
|
+
|
|
14
|
+
- `hardening-lane.md` — use to detect if the request is still in vibe mode and needs more discovery before a PRD can be written
|
|
15
|
+
|
|
16
|
+
### Do not load for @product
|
|
17
|
+
|
|
18
|
+
- `approval-gates.md` — @product produces the PRD; Gate A is evaluated by @analyst after @product hands off
|
|
19
|
+
- `maintenance-and-state.md` — this is for execution/continuation sessions
|
|
20
|
+
|
|
21
|
+
## Behavioral notes
|
|
22
|
+
|
|
23
|
+
- Classification (MICRO/SMALL/MEDIUM) from `classification-map.md` must be declared in the PRD — it is the signal that controls all downstream process depth
|
|
24
|
+
- @product does not write requirements (`requirements-{slug}.md`) — those belong to @analyst; see `artifact-map.md` for the boundary
|
|
25
|
+
- If classification is MEDIUM, the PRD must include a `## Specify depth` section per `classification-map.md`
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Spec-Driven Reference — @qa
|
|
2
|
+
|
|
3
|
+
> Router file. Do not duplicate logic from the generic references — load those directly.
|
|
4
|
+
|
|
5
|
+
## Which references to load for quality verification
|
|
6
|
+
|
|
7
|
+
### Always load when this skill is active
|
|
8
|
+
|
|
9
|
+
- `approval-gates.md` — Gate D (execution verification) defines done criteria; @qa is the external verifier of Gate D claims
|
|
10
|
+
- `artifact-map.md` — use to verify that all artifacts claimed by upstream agents actually exist and are substantive
|
|
11
|
+
|
|
12
|
+
### Load when evaluating AC coverage
|
|
13
|
+
|
|
14
|
+
- `classification-map.md` — use to calibrate verification depth: MICRO gets happy path + auth only; MEDIUM gets full checklist + invariant tests
|
|
15
|
+
|
|
16
|
+
### Load when investigating failures or forensics
|
|
17
|
+
|
|
18
|
+
- `maintenance-and-state.md` — use to read `phase_gates`, `last_checkpoint`, and `pending_review` from `spec-{slug}.md` during forensics mode
|
|
19
|
+
|
|
20
|
+
### Do not load for @qa
|
|
21
|
+
|
|
22
|
+
- `hardening-lane.md` — @qa activates after implementation; hardening is not relevant
|
|
23
|
+
- `ui-language.md` — @qa produces structured reports, not interactive checkpoints
|
|
24
|
+
|
|
25
|
+
## Behavioral notes
|
|
26
|
+
|
|
27
|
+
- @qa is the external verifier of @dev's Gate D self-certification — "I think it works" from @dev is not evidence until @qa confirms
|
|
28
|
+
- Gate D verification from `approval-gates.md` maps directly to @qa's adversarial probe protocol: truths = behavior tests, artifacts = file existence checks, key_links = wiring verification
|
|
29
|
+
- For MEDIUM projects, @qa should verify that `spec_version` in `spec-{slug}.md` matches the version that @dev was working from — if not, flag as potential drift
|
|
30
|
+
- AC coverage mapping in the QA report should use the same `AC-{slug}-{N}` format from `requirements-{slug}.md`
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Spec-Driven Reference — @sheldon
|
|
2
|
+
|
|
3
|
+
> Router file. Do not duplicate logic from the generic references — load those directly.
|
|
4
|
+
|
|
5
|
+
## Which references to load for enrichment and validation
|
|
6
|
+
|
|
7
|
+
### Always load when this skill is active
|
|
8
|
+
|
|
9
|
+
- `hardening-lane.md` — @sheldon's primary job is to move input from Lane 1 (exploration) to Lane 2 (spec hardening); use this to identify vibe signals and what is missing
|
|
10
|
+
- `classification-map.md` — use to determine enrichment depth: MEDIUM requires Modo C (full validation), MICRO/SMALL have lighter enrichment expectations
|
|
11
|
+
|
|
12
|
+
### Load when evaluating PRD readiness for handoff
|
|
13
|
+
|
|
14
|
+
- `approval-gates.md` — use Gate A criteria as the readiness checklist @sheldon applies before recommending @analyst activation
|
|
15
|
+
|
|
16
|
+
### Do not load for @sheldon
|
|
17
|
+
|
|
18
|
+
- `maintenance-and-state.md` — enrichment is a pre-execution phase; spec state is not relevant yet
|
|
19
|
+
- `artifact-map.md` — load only if @sheldon needs to verify that the right PRD artifact exists before enriching
|
|
20
|
+
|
|
21
|
+
## Behavioral notes
|
|
22
|
+
|
|
23
|
+
- @sheldon activates before @analyst — its output (`sheldon-enrichment-{slug}.md`) feeds @analyst
|
|
24
|
+
- Vibe detection from `hardening-lane.md` determines whether to proceed with enrichment or route back to @product
|
|
25
|
+
- MEDIUM classification triggers Modo C: @sheldon must validate completeness more strictly than MICRO/SMALL
|
|
@@ -90,7 +90,9 @@ Each phase must complete before the next begins. Do not skip phase 2 and 3 — t
|
|
|
90
90
|
```
|
|
91
91
|
primary_a: {skill-name} # e.g. "cognitive-core-ui"
|
|
92
92
|
primary_b: {skill-name} # e.g. "glassmorphism-ui"
|
|
93
|
-
modifiers: {optional 0..2} # e.g. ["bold-editorial-ui"]
|
|
93
|
+
modifiers: {optional 0..2} # e.g. ["bold-editorial-ui"] or ["threejs-spatial"]
|
|
94
|
+
# threejs-spatial is a special modifier: it layers WebGL/Three.js
|
|
95
|
+
# on any primary pair, adding particle/3D scene as visual substrate
|
|
94
96
|
variation_overlay: {optional} # selected via conversation or `aioson design-hybrid:options`
|
|
95
97
|
modifier_policy: {optional} # "up_to_2_modifiers" by default, "up_to_3_modifiers" in advanced mode
|
|
96
98
|
name_suggestion: {optional} # e.g. "aurora-command-ui" or leave blank
|
|
@@ -142,3 +144,4 @@ The hybrid must satisfy ALL of the following:
|
|
|
142
144
|
9. Every hybrid ships with both previews and a `.skill-meta.json`. No preview = not done.
|
|
143
145
|
10. Project-local generation goes to `.aioson/installed-skills/` by default. Promotion to core is a separate, explicit step.
|
|
144
146
|
11. `design-hybrid:options` creates a temporary preset in `.aioson/context/design-variation-preset.md`; after successful generation, archive or remove the active preset and preserve the history snapshot.
|
|
147
|
+
12. **`threejs-spatial` modifier rules:** It is NOT a primary parent. It layers WebGL/Three.js as a visual enhancement on the chosen primary pair. It does not own substrate (CSS gradient is still the base), does not own structure (HTML layout is CSS), and does not own tokens. Accent colors from primary parents MUST flow through Three.js parameters. Three.js CDN (no npm install) is the only supported delivery mode.
|
|
@@ -234,6 +234,21 @@ Must show:
|
|
|
234
234
|
- Hybrid accent gradient on hero heading or CTA
|
|
235
235
|
- AIOSON badge
|
|
236
236
|
|
|
237
|
+
### Three.js modifier preview requirements
|
|
238
|
+
|
|
239
|
+
When `threejs-spatial` is a modifier, both preview HTMLs must include a Three.js scene as the background layer. The preview must demonstrate:
|
|
240
|
+
|
|
241
|
+
- Three.js canvas is `position: fixed; inset: 0; z-index: 0` — behind all HTML content
|
|
242
|
+
- Canvas is `alpha: true` — CSS aurora gradient shows through
|
|
243
|
+
- Particle count: ≤ 6,000 on desktop, ≤ 1,500 on mobile (use `navigator.userAgent` check)
|
|
244
|
+
- WebGL support check with CSS fallback: `if (!canvas.getContext('webgl')) { canvas.style.display = "none"; document.body.style.background = "linear-gradient(...)"; }`
|
|
245
|
+
- `prefers-reduced-motion` check: disables canvas, shows static aurora CSS background
|
|
246
|
+
- Accent colors from the hybrid's accent gradient flow into Three.js point light colors and particle palette
|
|
247
|
+
- `requestAnimationFrame` render loop with `IntersectionObserver` to pause when off-screen
|
|
248
|
+
- Three.js CDN loaded via importmap: `<script type="importmap">{"imports":{"three":"https://unpkg.com/three@0.160.0/build/three.module.js"}}</script>`
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
237
252
|
### Technical requirements (both previews)
|
|
238
253
|
|
|
239
254
|
- Single `.html` file (no external CSS or JS files)
|
package/template/.aioson/skills/process/design-hybrid-forge/references/pair-compatibility.md
CHANGED
|
@@ -78,6 +78,38 @@ Each base skill has a primary role:
|
|
|
78
78
|
|---|---|
|
|
79
79
|
| `bold-editorial-ui` × `cognitive-core-ui` | Dark editorial command — large display type + mono rails, red-orange × teal tension |
|
|
80
80
|
| `neo-brutalist-ui` × `warm-craft-ui` | Crafted brutalism — raw structure + handmade warmth, artisan dev aesthetic |
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Three.js Spatial — Modifier (not a primary parent)
|
|
85
|
+
|
|
86
|
+
`threejs-spatial` is a **special modifier category** — it is not a standalone design skill
|
|
87
|
+
and can never be a primary parent. It layers WebGL/Three.js spatial effects on top of any
|
|
88
|
+
design skill, adding a 3D scene or particle system as the visual substrate.
|
|
89
|
+
|
|
90
|
+
**How it works as a modifier:**
|
|
91
|
+
- Applied as a modifier (up to 3 modifiers allowed in advanced mode)
|
|
92
|
+
- Governs: background scene layer, particle systems, 3D object showcase, holographic effects
|
|
93
|
+
- Does NOT govern: tokens, typography, component structure, layout rhythm
|
|
94
|
+
- Accent colors from the primary parents MUST flow through the Three.js parameters
|
|
95
|
+
- The Three.js scene is always alpha: true — CSS gradient background shows through
|
|
96
|
+
|
|
97
|
+
**Three.js × Design Skill combinations:**
|
|
98
|
+
|
|
99
|
+
| Primary parent | Three.js layer | Result | Best for |
|
|
100
|
+
|---|---|---|---|
|
|
101
|
+
| `glassmorphism-ui` | Particle aurora backdrop | Frosted 3D glass — glass panels float over real particle scenes | AI tools, crypto, modern SaaS landing |
|
|
102
|
+
| `aurora-command-ui` | Holographic glass object | Holographic command center — glass panels reveal 3D object inside | SOC dashboards, security platforms |
|
|
103
|
+
| `neo-brutalist-ui` | Raw geometry + particles | Particle brutalism — hard geometric forms with particle swarms | Dev tools, indie platforms |
|
|
104
|
+
| `bold-editorial-ui` | Scroll-driven 3D parallax | Editorial 3D depth — typography and images move through a 3D scene | Premium marketing, product launches |
|
|
105
|
+
| `cognitive-core-ui` | Floating data cards (3D boxes) | Command 3D — dense data cards as 3D objects floating in space | Monitoring dashboards, metrics platforms |
|
|
106
|
+
| `warm-craft-ui` | Organic particle drift | Warm particle field — particles drift like embers or dust motes | Wellness, creative tools, B2C |
|
|
107
|
+
|
|
108
|
+
**Anti-blend rules for Three.js modifier:**
|
|
109
|
+
- Three.js never replaces the CSS/HTML layout — it enhances the background/scene layer only
|
|
110
|
+
- No particle count above 8,000 on desktop, 2,000 on mobile
|
|
111
|
+
- WebGL support check + CSS fallback is mandatory
|
|
112
|
+
- Three.js is never the primary story — the product message comes first
|
|
81
113
|
| `clean-saas-ui` × `bold-editorial-ui` | Enterprise editorial — clean precision + cinematic moments, professional drama |
|
|
82
114
|
|
|
83
115
|
---
|
|
@@ -159,6 +159,26 @@ Fail: Return to Phase 4 and fix the metadata before distribution.
|
|
|
159
159
|
|
|
160
160
|
---
|
|
161
161
|
|
|
162
|
+
## Gate J — Three.js modifier validation (only when `threejs-spatial` is a modifier)
|
|
163
|
+
|
|
164
|
+
**Question:** Does the Three.js layer enhance without dominating?
|
|
165
|
+
|
|
166
|
+
Checklist:
|
|
167
|
+
- [ ] WebGL support check present — graceful CSS fallback when WebGL unavailable
|
|
168
|
+
- [ ] `prefers-reduced-motion: reduce` disables the canvas entirely
|
|
169
|
+
- [ ] Mobile particle count ≤ 30% of desktop count
|
|
170
|
+
- [ ] Canvas is `alpha: true` — CSS gradient background visible through it
|
|
171
|
+
- [ ] Accent colors from primary parents flow through Three.js scene parameters (point lights, particle colors, glow)
|
|
172
|
+
- [ ] Three.js scene is background/scene layer only — HTML layout and CSS components are unaffected
|
|
173
|
+
- [ ] No external texture/model URLs — all assets are procedural (geometry, gradients, shaders)
|
|
174
|
+
- [ ] `IntersectionObserver` or equivalent stops render loop when canvas is off-screen — uses `cancelAnimationFrame` + null guard, not `renderer.setAnimationLoop(null)` (which only controls the renderer's internal loop, not `requestAnimationFrame`)
|
|
175
|
+
- [ ] `beforeunload` disposes renderer, geometries, and materials — no memory leaks on page unload
|
|
176
|
+
|
|
177
|
+
Pass: Three.js enhances without violating the design skill's visual language.
|
|
178
|
+
Fail: Fix the specific violation. Three.js is a modifier — it serves the hybrid, not the other way around.
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
162
182
|
## Final ship checklist — project-local mode
|
|
163
183
|
|
|
164
184
|
Before marking the project-local hybrid as done:
|