@jaimevalasek/aioson 1.6.0 → 1.7.2
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 +74 -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 +22 -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/copywriter.md +463 -0
- package/template/.aioson/agents/design-hybrid-forge.md +14 -0
- package/template/.aioson/agents/dev.md +271 -25
- package/template/.aioson/agents/deyvin.md +67 -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 +83 -2
- 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 +273 -21
- package/template/.aioson/agents/setup.md +96 -10
- package/template/.aioson/agents/sheldon.md +131 -6
- package/template/.aioson/agents/site-forge.md +1753 -0
- package/template/.aioson/agents/squad.md +352 -0
- package/template/.aioson/agents/tester.md +53 -0
- package/template/.aioson/agents/ux-ui.md +203 -4
- 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/genomes/copywriting.md +204 -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/cognitive-core-ui/references/motion.md +2 -0
- 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/marketing/references/anti-patterns.md +254 -0
- package/template/.aioson/skills/marketing/references/fascinations.md +192 -0
- package/template/.aioson/skills/marketing/references/five-acts.md +248 -0
- package/template/.aioson/skills/marketing/references/market-intelligence.md +198 -0
- package/template/.aioson/skills/marketing/references/offer-structure.md +203 -0
- package/template/.aioson/skills/marketing/references/one-belief.md +149 -0
- package/template/.aioson/skills/marketing/references/patterns.md +218 -0
- package/template/.aioson/skills/marketing/references/pms-research.md +193 -0
- package/template/.aioson/skills/marketing/vsl-craft.md +385 -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/landing-page-deploy.md +192 -0
- package/template/.aioson/skills/static/landing-page-forge.md +730 -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/ui-ux-modern.md +1 -0
- package/template/.aioson/skills/static/web-research-cache.md +112 -0
- package/template/.aioson/tasks/implementation-plan.md +21 -1
- package/template/.aioson/tasks/squad-create.md +22 -0
- package/template/.aioson/tasks/squad-design.md +30 -0
- package/template/.aioson/templates/squads/digital-marketing-agency/template.json +96 -0
- 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 +31 -0
- package/template/OPENCODE.md +4 -0
- package/template/researchs/.gitkeep +0 -0
- package/template/.aioson/skills/design-system/components/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/dashboards/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/foundations/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/motion/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/patterns/SKILL.md:Zone.Identifier +0 -0
|
@@ -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:
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: simplify
|
|
3
|
+
description: Three-agent parallel code review for reuse, quality, and efficiency. Run after implementation and tests pass, before commit. Spawns three independent subagents simultaneously — each with a single focus — then aggregates and applies approved fixes.
|
|
4
|
+
activation: |
|
|
5
|
+
You are now running the /simplify review process. Identify the scope of changed files, then spawn three parallel review agents (reuse, quality, efficiency). Aggregate their findings, filter false positives, present the report, and apply approved fixes.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Skill: /simplify
|
|
9
|
+
|
|
10
|
+
> Process skill. Three-agent parallel code review.
|
|
11
|
+
> Run after `@dev` completes a phase and all tests pass. Before committing.
|
|
12
|
+
|
|
13
|
+
## Workflow position
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
@dev implements → tests pass → /simplify → review diff → commit
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
NEVER run /simplify during implementation — only after tests pass.
|
|
20
|
+
|
|
21
|
+
## Step 1 — Identify scope
|
|
22
|
+
|
|
23
|
+
List all files changed during the current implementation session.
|
|
24
|
+
|
|
25
|
+
If the list is larger than 15 files: ask the user to narrow the scope or confirm full review before proceeding.
|
|
26
|
+
|
|
27
|
+
## Step 2 — Spawn three parallel review agents
|
|
28
|
+
|
|
29
|
+
Spawn all three simultaneously. Each receives the same file list but different review instructions.
|
|
30
|
+
|
|
31
|
+
**Critical:** Each agent is stateless — pass a complete, self-contained brief with file paths, review objective, what NOT to do, and output format. Do not reference conversation history.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
### Agent A — Code Reuse Agent
|
|
36
|
+
|
|
37
|
+
Brief template:
|
|
38
|
+
```
|
|
39
|
+
You are reviewing the following files for code duplication and reuse opportunities:
|
|
40
|
+
[file list with paths]
|
|
41
|
+
|
|
42
|
+
Your ONLY task: find duplicated logic, copy-paste patterns, and opportunities to
|
|
43
|
+
extract shared utilities or abstractions that would reduce code.
|
|
44
|
+
|
|
45
|
+
Rules:
|
|
46
|
+
- Report only real duplications, not stylistic similarities
|
|
47
|
+
- For each finding: exact file + line range + what to extract + where to put it
|
|
48
|
+
- Do NOT comment on naming, performance, security, or architecture
|
|
49
|
+
- Do NOT fix anything — report only
|
|
50
|
+
- Skip findings where extraction would require more code than the duplication saves
|
|
51
|
+
|
|
52
|
+
Output format per finding:
|
|
53
|
+
### Reuse finding: [short name]
|
|
54
|
+
Files: [file A: lines X-Y, file B: lines X-Y]
|
|
55
|
+
Pattern: [what is duplicated]
|
|
56
|
+
Suggested extraction: [function/class name + target file]
|
|
57
|
+
Confidence: high | medium (skip low-confidence findings)
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
### Agent B — Code Quality Agent
|
|
63
|
+
|
|
64
|
+
Brief template:
|
|
65
|
+
```
|
|
66
|
+
You are reviewing the following files for code quality issues:
|
|
67
|
+
[file list with paths]
|
|
68
|
+
|
|
69
|
+
Also read: [CLAUDE.md path], [.aioson/rules/ path — list relevant rules]
|
|
70
|
+
|
|
71
|
+
Your ONLY task: naming issues, structural problems, violations of explicit project
|
|
72
|
+
conventions, and clear code smells.
|
|
73
|
+
|
|
74
|
+
Rules:
|
|
75
|
+
- Flag ONLY violations of explicit project rules or well-known anti-patterns
|
|
76
|
+
- Do NOT flag stylistic preferences — only violations of stated conventions
|
|
77
|
+
- If CLAUDE.md and .aioson/rules/ are absent, use only universal anti-patterns
|
|
78
|
+
- For each finding: exact file + line + what the issue is + how to fix it
|
|
79
|
+
- Do NOT comment on performance or duplication
|
|
80
|
+
|
|
81
|
+
Output format per finding:
|
|
82
|
+
### Quality finding: [short name]
|
|
83
|
+
File: [path:line]
|
|
84
|
+
Issue: [what is wrong]
|
|
85
|
+
Fix: [exact change — 1-3 lines]
|
|
86
|
+
Convention violated: [which rule, or "anti-pattern: [name]"]
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**IMPORTANT:** NEVER spawn Agent B without reading CLAUDE.md first (Agent B needs project conventions to be accurate — without them it will hallucinate rules).
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
### Agent C — Efficiency Agent
|
|
94
|
+
|
|
95
|
+
Brief template:
|
|
96
|
+
```
|
|
97
|
+
You are reviewing the following files for performance and efficiency issues:
|
|
98
|
+
[file list with paths]
|
|
99
|
+
|
|
100
|
+
Your ONLY task: N+1 queries, unnecessary re-renders, expensive operations in loops,
|
|
101
|
+
missing lazy loading, concurrency issues, unnecessary allocations.
|
|
102
|
+
|
|
103
|
+
Rules:
|
|
104
|
+
- Report only measurable inefficiencies, not theoretical ones
|
|
105
|
+
- For each finding: exact file + line + what the issue is + cost estimate + fix
|
|
106
|
+
- Do NOT comment on naming or code structure
|
|
107
|
+
|
|
108
|
+
Output format per finding:
|
|
109
|
+
### Efficiency finding: [short name]
|
|
110
|
+
File: [path:line]
|
|
111
|
+
Issue: [what is inefficient]
|
|
112
|
+
Cost: [why it matters — "O(N) queries per page load", "re-render per keystroke", etc]
|
|
113
|
+
Fix: [exact change]
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Step 3 — Aggregate results
|
|
119
|
+
|
|
120
|
+
Collect all three agents' outputs.
|
|
121
|
+
|
|
122
|
+
**Deduplication:** if two agents flag the same file+line for different reasons, merge into one finding with both concerns listed.
|
|
123
|
+
|
|
124
|
+
**False positive filter — silently skip any finding where:**
|
|
125
|
+
- Agent A says "confidence: medium" AND the extraction would add more complexity than it removes
|
|
126
|
+
- Agent B flags a "violation" of a convention that doesn't exist in the project's CLAUDE.md or rules (hallucinated rule)
|
|
127
|
+
- Agent C flags a theoretical inefficiency with no concrete cost estimate
|
|
128
|
+
- The fix would require architectural changes outside the current implementation scope
|
|
129
|
+
|
|
130
|
+
## Step 4 — Present aggregated report
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
## /simplify Report — [date]
|
|
134
|
+
|
|
135
|
+
### Reuse (Agent A): N findings
|
|
136
|
+
- [finding name] — [file:line] — [1-line summary]
|
|
137
|
+
|
|
138
|
+
### Quality (Agent B): N findings
|
|
139
|
+
- [finding name] — [file:line] — [1-line summary]
|
|
140
|
+
|
|
141
|
+
### Efficiency (Agent C): N findings
|
|
142
|
+
- [finding name] — [file:line] — [1-line summary]
|
|
143
|
+
|
|
144
|
+
### Auto-applicable (no review needed): N
|
|
145
|
+
[findings that are low-risk, high-confidence, and contained — list them]
|
|
146
|
+
|
|
147
|
+
### Requires review: N
|
|
148
|
+
[findings where impact is broader or confidence is medium — list them]
|
|
149
|
+
|
|
150
|
+
Total: N findings across 3 agents. N auto-applicable, N require review.
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Ask the user: "Apply auto-applicable fixes? (Y/n) | Apply all? | Select specific findings?"
|
|
154
|
+
|
|
155
|
+
## Step 5 — Apply approved fixes
|
|
156
|
+
|
|
157
|
+
For each approved fix:
|
|
158
|
+
- Apply the exact change described in the finding
|
|
159
|
+
- Do NOT refactor beyond the specific fix
|
|
160
|
+
- Do NOT add comments, docstrings, or type annotations
|
|
161
|
+
- Do NOT rename things not mentioned in the finding
|
|
162
|
+
|
|
163
|
+
After all fixes: re-run the test suite to confirm no regression.
|
|
164
|
+
If any test breaks: revert only the breaking fix and report to the user.
|
|
165
|
+
|
|
166
|
+
## Hard constraints
|
|
167
|
+
|
|
168
|
+
- NEVER fix more than what is described in a specific finding
|
|
169
|
+
- NEVER apply a "requires review" fix without explicit user approval
|
|
170
|
+
- NEVER run /simplify during implementation — only after tests pass
|
|
171
|
+
- NEVER spawn Agent B without reading CLAUDE.md first
|
|
172
|
+
- NEVER report a finding without a concrete file + line reference
|
|
173
|
+
- For MICRO projects: /simplify is optional — suggest but do not require
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Context Budget Guide
|
|
2
|
+
|
|
3
|
+
> Load when you need to measure or manage context window usage.
|
|
4
|
+
|
|
5
|
+
## Quick measurement heuristic
|
|
6
|
+
|
|
7
|
+
Since agents cannot directly measure token count, use file-count proxy:
|
|
8
|
+
|
|
9
|
+
| Files read | Estimated budget | Action |
|
|
10
|
+
|------------|-----------------|--------|
|
|
11
|
+
| 1-3 | Light (< 20%) | Proceed normally |
|
|
12
|
+
| 4-6 | Moderate (20-40%) | Be selective about additional reads |
|
|
13
|
+
| 7-9 | Heavy (40-60%) | Stop reading, start producing |
|
|
14
|
+
| 10+ | Critical (> 60%) | Finish current step, recommend /clear |
|
|
15
|
+
|
|
16
|
+
## File size estimates
|
|
17
|
+
|
|
18
|
+
| File type | Typical tokens |
|
|
19
|
+
|-----------|---------------|
|
|
20
|
+
| `project.context.md` | 200-500 |
|
|
21
|
+
| `prd.md` / `prd-{slug}.md` | 500-1500 |
|
|
22
|
+
| `discovery.md` | 1000-3000 |
|
|
23
|
+
| `architecture.md` | 500-1500 |
|
|
24
|
+
| `spec-{slug}.md` | 300-800 |
|
|
25
|
+
| `implementation-plan-{slug}.md` | 800-2000 |
|
|
26
|
+
| `requirements-{slug}.md` | 500-1500 |
|
|
27
|
+
| Agent instruction file | 2000-5000 |
|
|
28
|
+
| Skill file + references | 500-2000 |
|
|
29
|
+
| Source code file | 200-1000 |
|
|
30
|
+
|
|
31
|
+
## Budget report format
|
|
32
|
+
|
|
33
|
+
At session end, estimate and write to `project-pulse.md`:
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
Context budget: {N} files read, ~{estimate}k tokens consumed, budget: {light|moderate|heavy|critical}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Progressive disclosure strategy
|
|
40
|
+
|
|
41
|
+
When budget is moderate or higher:
|
|
42
|
+
1. Read file frontmatter/headers first, full content only if needed
|
|
43
|
+
2. Read `project-pulse.md` before any other file (30 lines = minimal cost)
|
|
44
|
+
3. Read `dev-state.md` or `spec-{slug}.md` frontmatter next (context_package tells you what else to load)
|
|
45
|
+
4. Load skills/references only when entering a phase that needs them
|
|
46
|
+
5. Never read all rules, all docs, all skills upfront — scan frontmatter and load selectively
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Harness Sensors — Post-Action Verification
|
|
2
|
+
|
|
3
|
+
> Load this when you need to verify that agent actions comply with project constraints.
|
|
4
|
+
> Sensors run AFTER the action, not before (that's what guides/gates do).
|
|
5
|
+
|
|
6
|
+
## When to run sensors
|
|
7
|
+
|
|
8
|
+
| Trigger | Sensor | Agent |
|
|
9
|
+
|---------|--------|-------|
|
|
10
|
+
| After commit | Rule compliance check | @dev, @deyvin |
|
|
11
|
+
| After spec update | Drift detection vs requirements | @dev, @analyst |
|
|
12
|
+
| After architecture.md written | Constitution compliance | @architect |
|
|
13
|
+
| After feature closure | AC coverage verification | @qa |
|
|
14
|
+
| After session end | Context budget report | All agents |
|
|
15
|
+
|
|
16
|
+
## Sensor 1 — Rule compliance check
|
|
17
|
+
|
|
18
|
+
After every commit, verify:
|
|
19
|
+
1. Read all `.md` files in `.aioson/rules/`
|
|
20
|
+
2. For each rule, check if the committed files violate any stated convention
|
|
21
|
+
3. If violation found: do not revert — log warning and continue
|
|
22
|
+
4. Write violations to `project-pulse.md` under "Blockers" if severity is high
|
|
23
|
+
|
|
24
|
+
**Implementation:** This sensor is agent-internal (instruction-based), not a CLI hook.
|
|
25
|
+
The agent instruction says: "after committing, re-read the rules and verify your commit complies."
|
|
26
|
+
|
|
27
|
+
## Sensor 2 — Spec drift check
|
|
28
|
+
|
|
29
|
+
After updating `spec-{slug}.md`:
|
|
30
|
+
1. Compare `requirements-{slug}.md` AC list with `spec-{slug}.md` "Edge cases handled" section
|
|
31
|
+
2. If ACs exist in requirements that are not mentioned in spec: flag as potential drift
|
|
32
|
+
3. Write flagged items to `pending_review` in spec frontmatter
|
|
33
|
+
|
|
34
|
+
## Sensor 3 — Constitution compliance (architecture)
|
|
35
|
+
|
|
36
|
+
After writing `architecture.md`:
|
|
37
|
+
1. Read `constitution.md`
|
|
38
|
+
2. For each article, verify:
|
|
39
|
+
- Article I: Is there a spec artifact that preceded this architecture?
|
|
40
|
+
- Article II: Is the architecture depth proportional to classification?
|
|
41
|
+
- Article VI: Does the architecture introduce unnecessary layers?
|
|
42
|
+
3. Self-report: add `## Constitution check` section at end of `architecture.md`
|
|
43
|
+
|
|
44
|
+
## Sensor 4 — AC coverage verification
|
|
45
|
+
|
|
46
|
+
After @qa writes its report:
|
|
47
|
+
1. Count ACs with status "Covered" vs total ACs
|
|
48
|
+
2. Count adversarial probes executed vs minimum required (1)
|
|
49
|
+
3. If coverage < 80% or probes < 1: VERDICT cannot be PASS
|
|
50
|
+
|
|
51
|
+
## Sensor 5 — Context budget report
|
|
52
|
+
|
|
53
|
+
At session end, before writing project-pulse.md:
|
|
54
|
+
1. Estimate how many files were read during the session
|
|
55
|
+
2. If > 8 large files: flag context budget concern
|
|
56
|
+
3. Write to project-pulse.md: "Last session context: {N} files read, estimated {light|moderate|heavy}"
|
|
57
|
+
|
|
58
|
+
## How sensors differ from gates
|
|
59
|
+
|
|
60
|
+
| | Gates (guides) | Sensors (feedback) |
|
|
61
|
+
|---|---|---|
|
|
62
|
+
| When | Before action | After action |
|
|
63
|
+
| Blocking | Yes (MEDIUM) | No — advisory |
|
|
64
|
+
| Who triggers | Agent checks before proceeding | Agent checks after completing |
|
|
65
|
+
| Response | Stop + ask user | Log + warn + continue |
|
|
66
|
+
| Example | Gate A before @architect | Rule compliance after commit |
|
|
67
|
+
|
|
68
|
+
## Progressive adoption
|
|
69
|
+
|
|
70
|
+
1. **Phase 1 (current):** All sensors are agent-internal instructions. No CLI hooks.
|
|
71
|
+
2. **Phase 2 (future):** Move high-value sensors to `hooks-emit.js` for automated execution.
|
|
72
|
+
3. **Phase 3 (future):** Add configurable sensor severity (warn vs block) in project config.
|
|
73
|
+
|
|
74
|
+
Sensors should be lightweight — a sensor that takes longer than the action it monitors is worse than no sensor.
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: landing-page-deploy
|
|
3
|
+
description: Deploy workflows for landing pages and static sites — Vercel (Git-connected, CDN) and Hostinger VPS (LiteSpeed). Load when the user asks to deploy a site or when project_type=site is ready for production.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Landing Page Deploy
|
|
7
|
+
|
|
8
|
+
Two production-ready deploy paths. Choose based on where your domain is registered and your cost preference.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Path A — Vercel (recommended for Cloudflare domains + automated CI/CD)
|
|
13
|
+
|
|
14
|
+
**Requirements:**
|
|
15
|
+
- Vercel account (Pro plan minimum — $20/mo — for custom domain on production)
|
|
16
|
+
- Domain registered in Cloudflare (or any DNS provider with CNAME/A record access)
|
|
17
|
+
- Git repository (GitHub, GitLab, or Bitbucket)
|
|
18
|
+
|
|
19
|
+
### Step A1 — Create Vercel project
|
|
20
|
+
```bash
|
|
21
|
+
# If Vercel CLI is installed
|
|
22
|
+
vercel login
|
|
23
|
+
vercel --prod
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Or via dashboard: vercel.com → New Project → Import Git Repository
|
|
27
|
+
|
|
28
|
+
### Step A2 — Configure project settings
|
|
29
|
+
- Framework Preset: `Other` (for plain HTML) or the correct framework
|
|
30
|
+
- Build Command: leave blank for plain HTML
|
|
31
|
+
- Output Directory: `.` or `dist` (wherever index.html lives)
|
|
32
|
+
- Install Command: leave blank for plain HTML
|
|
33
|
+
|
|
34
|
+
### Step A3 — Connect domain (Cloudflare DNS)
|
|
35
|
+
1. In Vercel: Settings → Domains → Add `yourdomain.com` and `www.yourdomain.com`
|
|
36
|
+
2. Vercel shows you DNS records to add
|
|
37
|
+
3. In Cloudflare: DNS → Add records as shown by Vercel
|
|
38
|
+
- Type A: `@` → Vercel IP (proxied OFF — orange cloud OFF for Vercel)
|
|
39
|
+
- Type CNAME: `www` → `cname.vercel-dns.com`
|
|
40
|
+
4. Wait for propagation (5–30 min)
|
|
41
|
+
|
|
42
|
+
### Step A4 — Verify SSL
|
|
43
|
+
Vercel auto-provisions SSL via Let's Encrypt. Verify:
|
|
44
|
+
- `https://yourdomain.com` loads without warnings
|
|
45
|
+
- `https://www.yourdomain.com` redirects correctly
|
|
46
|
+
|
|
47
|
+
### Step A5 — Set environment variables (if needed)
|
|
48
|
+
Vercel Dashboard → Settings → Environment Variables
|
|
49
|
+
Add tracking IDs, API keys as env vars — never hardcode them.
|
|
50
|
+
|
|
51
|
+
### Step A6 — Post-deploy validation checklist
|
|
52
|
+
- [ ] Production URL loads correctly
|
|
53
|
+
- [ ] SSL certificate active (green padlock)
|
|
54
|
+
- [ ] www → non-www redirect working (or vice versa — consistent)
|
|
55
|
+
- [ ] Preview URL from Vercel PR/branch works
|
|
56
|
+
- [ ] Analytics receiving data (Vercel Analytics or GA)
|
|
57
|
+
- [ ] Meta Pixel fires on production URL (verify with Pixel Helper)
|
|
58
|
+
- [ ] GTM fires on production URL (verify with Tag Assistant)
|
|
59
|
+
- [ ] Test UTM: `https://yourdomain.com?utm_source=test` → check sessionStorage
|
|
60
|
+
|
|
61
|
+
### Vercel MCP integration (for automated deploy from Claude Code)
|
|
62
|
+
If the Vercel MCP is configured in Claude Code:
|
|
63
|
+
```
|
|
64
|
+
# Deploy current project to Vercel production
|
|
65
|
+
vercel deploy --prod
|
|
66
|
+
```
|
|
67
|
+
Claude Code can trigger deploys directly via MCP without leaving the session.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Path B — Hostinger VPS (recommended for BRL billing + Brazilian users)
|
|
72
|
+
|
|
73
|
+
**Requirements:**
|
|
74
|
+
- Hostinger VPS plan (R$29.90+/mo, includes free domain on some plans)
|
|
75
|
+
- Domain registered in Hostinger (or any DNS provider)
|
|
76
|
+
- SSH access to the VPS
|
|
77
|
+
|
|
78
|
+
### Step B1 — Prepare VPS
|
|
79
|
+
```bash
|
|
80
|
+
# SSH into VPS
|
|
81
|
+
ssh root@YOUR_VPS_IP
|
|
82
|
+
|
|
83
|
+
# Update system
|
|
84
|
+
apt update && apt upgrade -y
|
|
85
|
+
|
|
86
|
+
# Install LiteSpeed (or use OpenLiteSpeed — pre-installed on some plans)
|
|
87
|
+
# Check if already installed
|
|
88
|
+
litespeed -v
|
|
89
|
+
|
|
90
|
+
# Create site directory
|
|
91
|
+
mkdir -p /var/www/yourdomain.com/public_html
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Step B2 — Upload site files
|
|
95
|
+
```bash
|
|
96
|
+
# From local machine — upload entire site folder
|
|
97
|
+
scp -r ./dist/* root@YOUR_VPS_IP:/var/www/yourdomain.com/public_html/
|
|
98
|
+
|
|
99
|
+
# Or use rsync for incremental updates
|
|
100
|
+
rsync -avz --delete ./dist/ root@YOUR_VPS_IP:/var/www/yourdomain.com/public_html/
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Step B3 — Configure virtual host (LiteSpeed)
|
|
104
|
+
Via Hostinger hPanel → Websites → Add Website → point to your folder.
|
|
105
|
+
|
|
106
|
+
Or via CLI if you have direct LiteSpeed access:
|
|
107
|
+
```
|
|
108
|
+
# /usr/local/lsws/conf/vhosts/yourdomain.com/vhconf.conf
|
|
109
|
+
docRoot /var/www/yourdomain.com/public_html/
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Step B4 — SSL certificate
|
|
113
|
+
```bash
|
|
114
|
+
# Using Let's Encrypt via certbot
|
|
115
|
+
apt install certbot python3-certbot-apache -y
|
|
116
|
+
certbot --apache -d yourdomain.com -d www.yourdomain.com
|
|
117
|
+
|
|
118
|
+
# Auto-renewal
|
|
119
|
+
certbot renew --dry-run
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Or use Hostinger's built-in SSL (hPanel → SSL → Free SSL).
|
|
123
|
+
|
|
124
|
+
### Step B5 — Set up domain DNS
|
|
125
|
+
In Hostinger hPanel → Domains → DNS Zone:
|
|
126
|
+
- Type A: `@` → your VPS IP
|
|
127
|
+
- Type A: `www` → your VPS IP
|
|
128
|
+
|
|
129
|
+
Or in Cloudflare if domain is there:
|
|
130
|
+
- Type A: `@` → VPS IP (proxied ON for DDoS protection)
|
|
131
|
+
- Type A: `www` → VPS IP (proxied ON)
|
|
132
|
+
|
|
133
|
+
### Step B6 — Start web service
|
|
134
|
+
```bash
|
|
135
|
+
# LiteSpeed
|
|
136
|
+
service lsws start
|
|
137
|
+
|
|
138
|
+
# Verify site is accessible
|
|
139
|
+
curl -I https://yourdomain.com
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Step B7 — Post-deploy validation checklist
|
|
143
|
+
- [ ] Production URL loads correctly
|
|
144
|
+
- [ ] SSL active (no mixed content warnings)
|
|
145
|
+
- [ ] PageSpeed score ≥ 90 (LiteSpeed cache helps significantly)
|
|
146
|
+
- [ ] `curl -I https://yourdomain.com` returns `200 OK`
|
|
147
|
+
- [ ] Meta Pixel fires on production URL
|
|
148
|
+
- [ ] GTM fires on production URL
|
|
149
|
+
- [ ] UTM capture working end-to-end
|
|
150
|
+
- [ ] Form submissions go to the correct endpoint
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Deploy decision matrix
|
|
155
|
+
|
|
156
|
+
| Factor | Vercel | Hostinger VPS |
|
|
157
|
+
|---|---|---|
|
|
158
|
+
| Domain in Cloudflare | ✓ Best | Works |
|
|
159
|
+
| Domain in Hostinger | Works | ✓ Best |
|
|
160
|
+
| Pay in BRL | ✗ USD only | ✓ BRL |
|
|
161
|
+
| Automated CI/CD | ✓ Git-push deploys | Manual rsync |
|
|
162
|
+
| MCP integration | ✓ Available | SSH only |
|
|
163
|
+
| Serverless functions | ✓ Edge functions | ✗ Not native |
|
|
164
|
+
| Cache/CDN | Vercel Edge Network | LiteSpeed cache |
|
|
165
|
+
| Cheapest option | $20/mo USD | R$29.90/mo BRL |
|
|
166
|
+
| Best for Brazilian users | Both | LiteSpeed + BR server |
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Deploy from within Claude Code (no manual steps)
|
|
171
|
+
|
|
172
|
+
### Vercel via MCP
|
|
173
|
+
If Vercel MCP is connected in Claude Code settings, the agent can deploy directly:
|
|
174
|
+
```
|
|
175
|
+
Deploy this project to Vercel production with domain yourdomain.com
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Hostinger via SSH
|
|
179
|
+
Claude Code can SSH into the VPS and run the deploy:
|
|
180
|
+
```bash
|
|
181
|
+
# The agent executes this sequence
|
|
182
|
+
ssh root@VPS_IP "cd /var/www/yourdomain.com/public_html && rm -rf *"
|
|
183
|
+
scp -r ./dist/* root@VPS_IP:/var/www/yourdomain.com/public_html/
|
|
184
|
+
ssh root@VPS_IP "service lsws restart"
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Post-deploy automated check
|
|
188
|
+
After any deploy, run:
|
|
189
|
+
```bash
|
|
190
|
+
curl -o /dev/null -s -w "%{http_code}" https://yourdomain.com
|
|
191
|
+
# Should return 200
|
|
192
|
+
```
|