@jaimevalasek/aioson 1.7.0 → 1.8.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 +60 -0
- package/README.md +153 -10
- package/docs/en/cli-reference.md +56 -1
- package/docs/en/i18n.md +18 -18
- package/docs/en/schemas/index.json +10 -0
- package/docs/en/schemas/parallel-assign.schema.json +9 -0
- package/docs/en/schemas/parallel-doctor.schema.json +36 -0
- package/docs/en/schemas/parallel-guard.schema.json +63 -0
- package/docs/en/schemas/parallel-merge.schema.json +84 -0
- package/docs/en/schemas/parallel-status.schema.json +91 -1
- package/docs/integrations/apps-publish-marketplace.md +94 -0
- package/docs/pt/README.md +9 -0
- package/docs/pt/agentes.md +324 -3
- package/docs/pt/clientes-ai.md +7 -3
- package/docs/pt/comandos-cli.md +160 -13
- package/docs/pt/compress-agents.md +304 -0
- package/docs/pt/design-docs-governance.md +59 -0
- package/docs/pt/feature-archive.md +191 -0
- package/docs/pt/genome-3.0-spec.md +115 -4
- package/docs/pt/genome-distribution.md +232 -0
- package/docs/pt/inicio-rapido.md +1 -0
- package/docs/pt/motor-hardening.md +492 -0
- package/docs/pt/runner-system.md +113 -0
- package/package.json +2 -1
- package/src/agent-manifests.js +66 -0
- package/src/agents.js +27 -7
- package/src/autonomy-policy.js +139 -0
- package/src/brain-query.js +161 -0
- package/src/cli.js +1377 -1099
- package/src/commands/agents.js +102 -7
- package/src/commands/artifact-validate.js +33 -4
- package/src/commands/auth.js +272 -0
- package/src/commands/brain-query.js +44 -0
- package/src/commands/briefing.js +344 -0
- package/src/commands/commit-prepare.js +547 -0
- package/src/commands/compress-agents.js +416 -0
- package/src/commands/context-health.js +4 -2
- package/src/commands/context-trim.js +17 -11
- package/src/commands/design-hybrid-options.js +3 -3
- package/src/commands/devlog-process.js +6 -4
- package/src/commands/dossier.js +423 -0
- package/src/commands/feature-archive.js +513 -0
- package/src/commands/feature-close.js +123 -18
- package/src/commands/gate-approve.js +198 -0
- package/src/commands/gate-check.js +24 -5
- package/src/commands/genome-doctor.js +166 -9
- package/src/commands/git-guard.js +170 -0
- package/src/commands/harness.js +121 -0
- package/src/commands/implementation-plan.js +47 -20
- package/src/commands/init.js +6 -2
- package/src/commands/install.js +6 -2
- package/src/commands/live.js +497 -56
- package/src/commands/locale-apply.js +9 -6
- package/src/commands/locale-diff.js +11 -112
- package/src/commands/mcp-doctor.js +2 -1
- package/src/commands/mcp-init.js +4 -10
- package/src/commands/memory.js +234 -0
- package/src/commands/parallel-assign.js +107 -27
- package/src/commands/parallel-doctor.js +416 -3
- package/src/commands/parallel-guard.js +241 -0
- package/src/commands/parallel-init.js +66 -4
- package/src/commands/parallel-merge.js +299 -0
- package/src/commands/parallel-status.js +147 -3
- package/src/commands/preflight.js +63 -4
- package/src/commands/qa-init.js +10 -5
- package/src/commands/revision.js +235 -0
- package/src/commands/scaffold-complete.js +188 -0
- package/src/commands/security-audit.js +275 -0
- package/src/commands/security-scan.js +376 -0
- package/src/commands/self-implement-loop.js +46 -2
- package/src/commands/setup-context.js +11 -10
- package/src/commands/squad-agent-create.js +51 -9
- package/src/commands/squad-investigate.js +53 -0
- package/src/commands/squad-plan.js +33 -1
- package/src/commands/squad-scaffold.js +4 -3
- package/src/commands/squad-score.js +71 -14
- package/src/commands/squad-status.js +22 -1
- package/src/commands/squad-validate.js +93 -2
- package/src/commands/store-genome.js +304 -0
- package/src/commands/store-skill.js +247 -0
- package/src/commands/store-squad.js +431 -0
- package/src/commands/store-system.js +392 -0
- package/src/commands/tool-capabilities.js +63 -0
- package/src/commands/update.js +3 -3
- package/src/commands/verify-gate.js +40 -0
- package/src/commands/workflow-execute.js +644 -155
- package/src/commands/workflow-harden.js +231 -0
- package/src/commands/workflow-heal.js +136 -0
- package/src/commands/workflow-next.js +460 -22
- package/src/commands/workflow-status.js +328 -138
- package/src/commands/workspace.js +144 -0
- package/src/constants.js +55 -75
- package/src/context-memory.js +133 -4
- package/src/context-writer.js +2 -1
- package/src/context.js +32 -2
- package/src/doctor.js +46 -6
- package/src/dossier/codemap-store.js +267 -0
- package/src/dossier/dossier-bootstrap.js +222 -0
- package/src/dossier/dossier-compact.js +159 -0
- package/src/dossier/lock.js +128 -0
- package/src/dossier/revision-store.js +313 -0
- package/src/dossier/schema.js +155 -0
- package/src/dossier/store.js +400 -0
- package/src/execution-gateway.js +3 -0
- package/src/friction-scanner.js +202 -0
- package/src/genome-schema.js +24 -1
- package/src/genomes.js +33 -0
- package/src/handoff-contract.js +363 -0
- package/src/handoff-validator.js +45 -0
- package/src/harness/circuit-breaker.js +135 -0
- package/src/i18n/messages/en.js +317 -22
- package/src/i18n/messages/es.js +259 -18
- package/src/i18n/messages/fr.js +260 -18
- package/src/i18n/messages/pt-BR.js +313 -22
- package/src/install-profile.js +0 -16
- package/src/installer.js +70 -6
- package/src/lib/git-commit-guard.js +691 -0
- package/src/lib/security/artifact-reader.js +167 -0
- package/src/lib/security/exit-codes.js +51 -0
- package/src/lib/security/findings-writer.js +176 -0
- package/src/lib/security/runtime-events.js +77 -0
- package/src/lib/security/secrets-regex.js +115 -0
- package/src/lib/store/security-scan.js +173 -0
- package/src/lib/terminal-checkbox.js +130 -0
- package/src/lib/tmux-launcher.js +163 -0
- package/src/lib/tool-capabilities.js +102 -0
- package/src/locales.js +12 -8
- package/src/parallel-workspace.js +756 -0
- package/src/parser.js +8 -1
- package/src/path-guard.js +47 -0
- package/src/preflight-engine.js +237 -26
- package/src/self-healing.js +142 -0
- package/src/session-handoff.js +111 -1
- package/src/squad/squad-scaffold.js +183 -19
- package/src/test-briefing.js +226 -0
- package/src/updater.js +1 -1
- package/src/utils.js +3 -0
- package/src/workflow-gates.js +185 -0
- package/template/.aioson/agents/analyst.md +76 -130
- package/template/.aioson/agents/architect.md +53 -86
- package/template/.aioson/agents/committer.md +161 -0
- package/template/.aioson/agents/copywriter.md +463 -0
- package/template/.aioson/agents/cypher.md +252 -0
- package/template/.aioson/agents/dev.md +112 -600
- package/template/.aioson/agents/deyvin.md +33 -235
- package/template/.aioson/agents/discover.md +235 -0
- package/template/.aioson/agents/discovery-design-doc.md +17 -252
- package/template/.aioson/agents/genome.md +76 -26
- package/template/.aioson/agents/manifests/analyst.manifest.json +26 -0
- package/template/.aioson/agents/manifests/architect.manifest.json +23 -0
- package/template/.aioson/agents/manifests/committer.manifest.json +23 -0
- package/template/.aioson/agents/manifests/dev.manifest.json +37 -0
- package/template/.aioson/agents/manifests/orchestrator.manifest.json +30 -0
- package/template/.aioson/agents/manifests/pentester.manifest.json +39 -0
- package/template/.aioson/agents/manifests/pm.manifest.json +26 -0
- package/template/.aioson/agents/manifests/product.manifest.json +23 -0
- package/template/.aioson/agents/manifests/qa.manifest.json +25 -0
- package/template/.aioson/agents/manifests/setup.manifest.json +20 -0
- package/template/.aioson/agents/manifests/ux-ui.manifest.json +24 -0
- package/template/.aioson/agents/neo.md +10 -8
- package/template/.aioson/agents/orache.md +2 -6
- package/template/.aioson/agents/orchestrator.md +81 -182
- package/template/.aioson/agents/pentester.md +235 -0
- package/template/.aioson/agents/pm.md +40 -104
- package/template/.aioson/agents/product.md +99 -344
- package/template/.aioson/agents/profiler-enricher.md +57 -6
- package/template/.aioson/agents/profiler-forge.md +17 -7
- package/template/.aioson/agents/profiler-researcher.md +29 -6
- package/template/.aioson/agents/qa.md +165 -410
- package/template/.aioson/agents/setup.md +52 -262
- package/template/.aioson/agents/sheldon.md +122 -754
- package/template/.aioson/agents/site-forge.md +111 -1583
- package/template/.aioson/agents/squad.md +139 -1820
- package/template/.aioson/agents/tester.md +10 -0
- package/template/.aioson/agents/ux-ui.md +103 -645
- package/template/.aioson/agents/validator.md +69 -0
- package/template/.aioson/brains/scripts/query.js +5 -1
- package/template/.aioson/config/autonomy-protocol.json +43 -0
- package/template/.aioson/config.md +43 -15
- package/template/.aioson/constitution.md +36 -33
- package/template/.aioson/context/design-doc.md +136 -0
- package/template/.aioson/context/project-map.md +57 -0
- package/template/.aioson/design-docs/code-reuse.md +48 -0
- package/template/.aioson/design-docs/componentization.md +47 -0
- package/template/.aioson/design-docs/file-size.md +52 -0
- package/template/.aioson/design-docs/folder-structure.md +51 -0
- package/template/.aioson/design-docs/naming.md +54 -0
- package/template/.aioson/docs/LAYERS.md +12 -2
- package/template/.aioson/docs/dev/execution-discipline.md +106 -0
- package/template/.aioson/docs/dev/stack-conventions.md +83 -0
- package/template/.aioson/docs/deyvin/continuity-recovery.md +57 -0
- package/template/.aioson/docs/deyvin/debugging-escalation.md +30 -0
- package/template/.aioson/docs/deyvin/pair-execution.md +44 -0
- package/template/.aioson/docs/deyvin/runtime-handoffs.md +36 -0
- package/template/.aioson/docs/product/conversation-playbook.md +116 -0
- package/template/.aioson/docs/product/prd-contract.md +107 -0
- package/template/.aioson/docs/product/quality-lens.md +57 -0
- package/template/.aioson/docs/product/research-loop.md +65 -0
- package/template/.aioson/docs/sheldon/enrichment-paths.md +134 -0
- package/template/.aioson/docs/sheldon/quality-lens.md +57 -0
- package/template/.aioson/docs/sheldon/research-loop.md +56 -0
- package/template/.aioson/docs/sheldon/web-intelligence.md +75 -0
- package/template/.aioson/docs/site-forge-build.md +195 -0
- package/template/.aioson/docs/site-forge-extraction.md +135 -0
- package/template/.aioson/docs/site-forge-qa.md +155 -0
- package/template/.aioson/docs/site-forge-recon.md +434 -0
- package/template/.aioson/docs/site-forge-transform.md +249 -0
- package/template/.aioson/docs/squad/content-output.md +91 -0
- package/template/.aioson/docs/squad/creation-flow.md +135 -0
- package/template/.aioson/docs/squad/domain-classification.md +117 -0
- package/template/.aioson/docs/squad/genome-bindings.md +47 -0
- package/template/.aioson/docs/squad/package-contract.md +234 -0
- package/template/.aioson/docs/squad/quality-lens.md +56 -0
- package/template/.aioson/docs/squad/research-loop.md +59 -0
- package/template/.aioson/docs/squad/session-operations.md +117 -0
- package/template/.aioson/docs/squad/workflow-quality.md +165 -0
- package/template/.aioson/docs/ux-ui/accessibility-audit.md +55 -0
- package/template/.aioson/docs/ux-ui/audit-mode.md +86 -0
- package/template/.aioson/docs/ux-ui/component-map.md +35 -0
- package/template/.aioson/docs/ux-ui/design-execution.md +111 -0
- package/template/.aioson/docs/ux-ui/design-gate.md +27 -0
- package/template/.aioson/docs/ux-ui/research-mode.md +39 -0
- package/template/.aioson/docs/ux-ui/site-delivery.md +156 -0
- package/template/.aioson/docs/ux-ui/token-contract.md +57 -0
- package/template/.aioson/genomes/copywriting.md +204 -0
- package/template/.aioson/genomes/copywriting.meta.json +48 -0
- package/template/.aioson/git-guard.json +11 -0
- package/template/.aioson/mcp/servers.md +0 -1
- package/template/.aioson/rules/agent-language-policy.md +93 -0
- package/template/.aioson/rules/aioson-context-boundary.md +63 -0
- package/template/.aioson/rules/canonical-path-contract.md +47 -0
- package/template/.aioson/rules/data-format-convention.md +24 -86
- package/template/.aioson/rules/disk-first-artifacts.md +44 -0
- package/template/.aioson/rules/output-brevity.md +44 -0
- package/template/.aioson/rules/prd-section-ownership.md +49 -0
- package/template/.aioson/rules/security-baseline.md +139 -0
- package/template/.aioson/rules/spec-level-ownership.md +61 -0
- package/template/.aioson/rules/squad-driver-pattern.md +81 -0
- package/template/.aioson/schemas/squad-blueprint.schema.json +24 -0
- package/template/.aioson/schemas/squad-manifest.schema.json +44 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +2 -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/references/pm.md +30 -0
- package/template/.aioson/skills/process/secure-tdd/SKILL.md +97 -0
- package/template/.aioson/skills/process/secure-tdd/references/nextjs.md +81 -0
- package/template/.aioson/skills/process/secure-tdd/references/node-express.md +91 -0
- package/template/.aioson/skills/process/secure-tdd/references/planned-stacks.md +33 -0
- package/template/.aioson/skills/static/harness-validate/SKILL.md +46 -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/ui-ux-modern.md +1 -0
- package/template/.aioson/skills/static/web-research-cache.md +3 -0
- package/template/.aioson/tasks/squad-create.md +56 -7
- package/template/.aioson/tasks/squad-design.md +80 -2
- package/template/.aioson/tasks/squad-investigate.md +14 -1
- package/template/.aioson/templates/squads/digital-marketing-agency/template.json +96 -0
- package/template/.claude/commands/aioson/agent/committer.md +5 -0
- package/template/.claude/commands/aioson/agent/copywriter.md +5 -0
- package/template/.claude/commands/aioson/agent/cypher.md +5 -0
- package/template/.claude/commands/aioson/agent/pair.md +5 -0
- package/template/.claude/commands/aioson/agent/validator.md +5 -0
- package/template/.gemini/commands/aios-analyst.toml +6 -3
- package/template/.gemini/commands/aios-architect.toml +7 -6
- package/template/.gemini/commands/aios-committer.toml +7 -0
- package/template/.gemini/commands/aios-copywriter.toml +7 -0
- package/template/.gemini/commands/aios-cypher.toml +7 -0
- package/template/.gemini/commands/aios-dev.toml +8 -7
- package/template/.gemini/commands/aios-deyvin.toml +6 -5
- package/template/.gemini/commands/aios-discovery-design-doc.toml +6 -3
- package/template/.gemini/commands/aios-genome.toml +7 -0
- package/template/.gemini/commands/aios-neo.toml +5 -3
- package/template/.gemini/commands/aios-orache.toml +7 -0
- package/template/.gemini/commands/aios-orchestrator.toml +8 -7
- package/template/.gemini/commands/aios-pair.toml +6 -5
- package/template/.gemini/commands/aios-pm.toml +8 -7
- package/template/.gemini/commands/aios-product.toml +5 -3
- package/template/.gemini/commands/aios-qa.toml +6 -5
- package/template/.gemini/commands/aios-setup.toml +5 -2
- package/template/.gemini/commands/aios-sheldon.toml +7 -0
- package/template/.gemini/commands/aios-site-forge.toml +7 -0
- package/template/.gemini/commands/aios-squad.toml +7 -0
- package/template/.gemini/commands/aios-tester.toml +6 -5
- package/template/.gemini/commands/aios-ux-ui.toml +8 -7
- package/template/.gemini/commands/aios-validator.toml +7 -0
- package/template/AGENTS.md +12 -1
- package/template/CLAUDE.md +6 -1
- package/template/.aioson/locales/en/agents/analyst.md +0 -244
- package/template/.aioson/locales/en/agents/architect.md +0 -245
- package/template/.aioson/locales/en/agents/dev.md +0 -397
- package/template/.aioson/locales/en/agents/deyvin.md +0 -137
- package/template/.aioson/locales/en/agents/discovery-design-doc.md +0 -27
- package/template/.aioson/locales/en/agents/genome.md +0 -212
- package/template/.aioson/locales/en/agents/neo.md +0 -8
- package/template/.aioson/locales/en/agents/orache.md +0 -6
- package/template/.aioson/locales/en/agents/orchestrator.md +0 -189
- package/template/.aioson/locales/en/agents/pair.md +0 -5
- package/template/.aioson/locales/en/agents/pm.md +0 -84
- package/template/.aioson/locales/en/agents/product.md +0 -378
- package/template/.aioson/locales/en/agents/profiler-enricher.md +0 -5
- package/template/.aioson/locales/en/agents/profiler-forge.md +0 -5
- package/template/.aioson/locales/en/agents/profiler-researcher.md +0 -5
- package/template/.aioson/locales/en/agents/qa.md +0 -270
- package/template/.aioson/locales/en/agents/setup.md +0 -421
- package/template/.aioson/locales/en/agents/sheldon.md +0 -455
- package/template/.aioson/locales/en/agents/squad.md +0 -449
- package/template/.aioson/locales/en/agents/tester.md +0 -6
- package/template/.aioson/locales/en/agents/ux-ui.md +0 -668
- package/template/.aioson/locales/es/agents/analyst.md +0 -225
- package/template/.aioson/locales/es/agents/architect.md +0 -245
- package/template/.aioson/locales/es/agents/dev.md +0 -370
- package/template/.aioson/locales/es/agents/deyvin.md +0 -99
- package/template/.aioson/locales/es/agents/discovery-design-doc.md +0 -21
- package/template/.aioson/locales/es/agents/genome.md +0 -104
- package/template/.aioson/locales/es/agents/neo.md +0 -50
- package/template/.aioson/locales/es/agents/orache.md +0 -105
- package/template/.aioson/locales/es/agents/orchestrator.md +0 -194
- package/template/.aioson/locales/es/agents/pair.md +0 -7
- package/template/.aioson/locales/es/agents/pm.md +0 -90
- package/template/.aioson/locales/es/agents/product.md +0 -372
- package/template/.aioson/locales/es/agents/profiler-enricher.md +0 -7
- package/template/.aioson/locales/es/agents/profiler-forge.md +0 -7
- package/template/.aioson/locales/es/agents/profiler-researcher.md +0 -7
- package/template/.aioson/locales/es/agents/qa.md +0 -198
- package/template/.aioson/locales/es/agents/setup.md +0 -405
- package/template/.aioson/locales/es/agents/sheldon.md +0 -309
- package/template/.aioson/locales/es/agents/squad.md +0 -532
- package/template/.aioson/locales/es/agents/tester.md +0 -9
- package/template/.aioson/locales/es/agents/ux-ui.md +0 -212
- package/template/.aioson/locales/fr/agents/analyst.md +0 -225
- package/template/.aioson/locales/fr/agents/architect.md +0 -245
- package/template/.aioson/locales/fr/agents/dev.md +0 -370
- package/template/.aioson/locales/fr/agents/deyvin.md +0 -99
- package/template/.aioson/locales/fr/agents/discovery-design-doc.md +0 -21
- package/template/.aioson/locales/fr/agents/genome.md +0 -104
- package/template/.aioson/locales/fr/agents/neo.md +0 -50
- package/template/.aioson/locales/fr/agents/orache.md +0 -106
- package/template/.aioson/locales/fr/agents/orchestrator.md +0 -194
- package/template/.aioson/locales/fr/agents/pair.md +0 -7
- package/template/.aioson/locales/fr/agents/pm.md +0 -90
- package/template/.aioson/locales/fr/agents/product.md +0 -372
- package/template/.aioson/locales/fr/agents/profiler-enricher.md +0 -7
- package/template/.aioson/locales/fr/agents/profiler-forge.md +0 -7
- package/template/.aioson/locales/fr/agents/profiler-researcher.md +0 -7
- package/template/.aioson/locales/fr/agents/qa.md +0 -198
- package/template/.aioson/locales/fr/agents/setup.md +0 -405
- package/template/.aioson/locales/fr/agents/sheldon.md +0 -309
- package/template/.aioson/locales/fr/agents/squad.md +0 -532
- package/template/.aioson/locales/fr/agents/tester.md +0 -9
- package/template/.aioson/locales/fr/agents/ux-ui.md +0 -212
- package/template/.aioson/locales/pt-BR/agents/analyst.md +0 -319
- package/template/.aioson/locales/pt-BR/agents/architect.md +0 -284
- package/template/.aioson/locales/pt-BR/agents/dev.md +0 -483
- package/template/.aioson/locales/pt-BR/agents/deyvin.md +0 -184
- package/template/.aioson/locales/pt-BR/agents/discovery-design-doc.md +0 -198
- package/template/.aioson/locales/pt-BR/agents/genome.md +0 -297
- package/template/.aioson/locales/pt-BR/agents/neo.md +0 -208
- package/template/.aioson/locales/pt-BR/agents/orache.md +0 -137
- package/template/.aioson/locales/pt-BR/agents/orchestrator.md +0 -324
- package/template/.aioson/locales/pt-BR/agents/pair.md +0 -5
- package/template/.aioson/locales/pt-BR/agents/pm.md +0 -182
- package/template/.aioson/locales/pt-BR/agents/product.md +0 -466
- package/template/.aioson/locales/pt-BR/agents/profiler-enricher.md +0 -5
- package/template/.aioson/locales/pt-BR/agents/profiler-forge.md +0 -5
- package/template/.aioson/locales/pt-BR/agents/profiler-researcher.md +0 -5
- package/template/.aioson/locales/pt-BR/agents/qa.md +0 -300
- package/template/.aioson/locales/pt-BR/agents/setup.md +0 -533
- package/template/.aioson/locales/pt-BR/agents/sheldon.md +0 -323
- package/template/.aioson/locales/pt-BR/agents/squad.md +0 -1330
- package/template/.aioson/locales/pt-BR/agents/tester.md +0 -449
- package/template/.aioson/locales/pt-BR/agents/ux-ui.md +0 -669
- 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
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "site-forge Phase 4 — Build Layer: component implementation, interactions, video, asset wiring, assembly"
|
|
3
|
+
agents: [site-forge]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# site-forge: Phase 4 — Build Layer
|
|
7
|
+
|
|
8
|
+
**Goal:** Implement all sections and components.
|
|
9
|
+
|
|
10
|
+
Active token source by mode:
|
|
11
|
+
- **Mode A:** skill `references/design-tokens.md`
|
|
12
|
+
- **Mode B:** forged skill from Phase 3B
|
|
13
|
+
- **Mode C:** skill tokens; slot extracted content/images from component map
|
|
14
|
+
- **Mode E:** `blended-tokens.css` from Phase 3E
|
|
15
|
+
|
|
16
|
+
## 4.1 Complexity budget
|
|
17
|
+
|
|
18
|
+
- **Simple** (< 3 sub-components): implement directly
|
|
19
|
+
- **Moderate** (3–5 sub-components): one worktree builder
|
|
20
|
+
- **Complex** (> 5 sub-components): split across multiple builders
|
|
21
|
+
|
|
22
|
+
## 4.2 Direct implementation (simple sections)
|
|
23
|
+
|
|
24
|
+
Build inline. Use skill tokens. Reference section spec and component map. Run `npx tsc --noEmit` after each file.
|
|
25
|
+
|
|
26
|
+
## 4.3 Worktree builders (moderate/complex sections)
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
git worktree add ../worktree-<section> -b builder/<section>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Each builder receives:
|
|
33
|
+
1. Section spec file (inline)
|
|
34
|
+
2. Component map rows for this section (inline)
|
|
35
|
+
3. Relevant tokens from active token file (inline — only what's needed)
|
|
36
|
+
4. Path to screenshots
|
|
37
|
+
5. Target file: `src/components/<SectionName>.tsx`
|
|
38
|
+
6. Requirement: `npx tsc --noEmit` must pass
|
|
39
|
+
|
|
40
|
+
After builder completes:
|
|
41
|
+
```bash
|
|
42
|
+
npx tsc --noEmit
|
|
43
|
+
git add -A && git commit -m "build(<section>): implement with <skill-name> tokens"
|
|
44
|
+
git worktree remove ../worktree-<section>
|
|
45
|
+
git merge builder/<section> --no-ff -m "merge: <section> builder"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Conflict resolution: structure wins — preserve DOM hierarchy from spec; replace style values with skill tokens.
|
|
49
|
+
|
|
50
|
+
## 4.4 Interaction implementation (MANDATORY — do not skip)
|
|
51
|
+
|
|
52
|
+
Read `docs/research/<hostname>/animations-raw.json` → `jsLibraries` and `dom-mutations.json` before choosing strategy.
|
|
53
|
+
|
|
54
|
+
### 4.4.A Implementation strategy routing
|
|
55
|
+
|
|
56
|
+
**Step 1 — Choose animation layer based on detected libraries:**
|
|
57
|
+
|
|
58
|
+
| Detected | Install | Strategy |
|
|
59
|
+
|---|---|---|
|
|
60
|
+
| `gsap: true` | `npm install gsap` | GSAP + ScrollTrigger for all scroll-driven |
|
|
61
|
+
| `framerMotion: true` | `npm install framer-motion` | `<motion.div>` with `whileInView` / `useScroll` |
|
|
62
|
+
| `swiper: true` | `npm install swiper` | Swiper React for carousels/sliders |
|
|
63
|
+
| `lottie: true` | `npm install lottie-react` | `<Lottie>` for SVG animations |
|
|
64
|
+
| `aos: true` | *(no install)* | `IntersectionObserver` + CSS classes |
|
|
65
|
+
| none detected | *(no install)* | `IntersectionObserver` + CSS `@keyframes` |
|
|
66
|
+
|
|
67
|
+
Install all detected libraries simultaneously.
|
|
68
|
+
|
|
69
|
+
**Step 2 — Scroll-driven animations from `dom-mutations.json`:**
|
|
70
|
+
|
|
71
|
+
```typescript
|
|
72
|
+
// GSAP ScrollTrigger (when gsap detected)
|
|
73
|
+
gsap.from('.hero__headline', {
|
|
74
|
+
opacity: 0, y: 20, duration: 0.4, ease: 'power2.out',
|
|
75
|
+
scrollTrigger: {
|
|
76
|
+
trigger: '.hero__headline',
|
|
77
|
+
start: 'top 80%', // derived from mutation scrollY / pageHeight
|
|
78
|
+
once: true,
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
// IntersectionObserver (when no GSAP)
|
|
83
|
+
const observer = new IntersectionObserver(entries => {
|
|
84
|
+
entries.forEach(e => { if (e.isIntersecting) e.target.classList.add('is-animated'); });
|
|
85
|
+
}, { threshold: 0.15 });
|
|
86
|
+
document.querySelectorAll('.animate-on-scroll').forEach(el => observer.observe(el));
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Use `scrollY` values from `dom-mutations.json` to calibrate `start` offsets or `threshold` values.
|
|
90
|
+
|
|
91
|
+
**Step 3 — Recreate `@keyframes` from `animations-raw.json`:**
|
|
92
|
+
|
|
93
|
+
Copy each entry's `cssText` verbatim into `src/app/globals.css`. Apply duration via class, not inside keyframe:
|
|
94
|
+
|
|
95
|
+
```css
|
|
96
|
+
@keyframes fadeSlideUp {
|
|
97
|
+
from { opacity: 0; transform: translateY(20px); }
|
|
98
|
+
to { opacity: 1; transform: translateY(0); }
|
|
99
|
+
}
|
|
100
|
+
.animate-fade-slide-up {
|
|
101
|
+
animation: fadeSlideUp var(--transition-slow) var(--ease-out) forwards;
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**Step 4 — Parallax from `animations-raw.json.parallax`:**
|
|
106
|
+
|
|
107
|
+
- `backgroundAttachment: fixed` → `background-attachment: fixed` — no JS.
|
|
108
|
+
- JS parallax (transform changes between scroll positions):
|
|
109
|
+
```typescript
|
|
110
|
+
useEffect(() => {
|
|
111
|
+
const el = ref.current;
|
|
112
|
+
const handleScroll = () => {
|
|
113
|
+
const rate = 0.4; // adjust to match observed translation ratio
|
|
114
|
+
el.style.transform = `translate3d(0, ${window.scrollY * rate}px, 0)`;
|
|
115
|
+
};
|
|
116
|
+
window.addEventListener('scroll', handleScroll, { passive: true });
|
|
117
|
+
return () => window.removeEventListener('scroll', handleScroll);
|
|
118
|
+
}, []);
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**Step 5 — Remaining interactions from `interaction-spec.md`:**
|
|
122
|
+
|
|
123
|
+
- **SCROLL-DRIVEN without mutation data:** `IntersectionObserver` with `threshold: 0.1`
|
|
124
|
+
- **CLICK-DRIVEN:** React `useState` toggle + conditional className
|
|
125
|
+
- **HOVER:** Tailwind hover variants or CSS `:hover` + `transition: var(--transition-all)`
|
|
126
|
+
- **STATE-TOGGLE:** React `useState` + conditional className
|
|
127
|
+
|
|
128
|
+
Use motion tokens for all `transition` and `animation-duration`. Never hardcode `ms`.
|
|
129
|
+
|
|
130
|
+
Every interaction in the spec must be implemented. If too complex, implement simplified and note in QA report as ⚠️ — never leave unimplemented.
|
|
131
|
+
|
|
132
|
+
### 4.4.B Video background implementation (MANDATORY when videos.json is non-empty)
|
|
133
|
+
|
|
134
|
+
```tsx
|
|
135
|
+
// VideoBackground.tsx
|
|
136
|
+
export function VideoBackground({ role }: { role: string }) {
|
|
137
|
+
return (
|
|
138
|
+
<div className="absolute inset-0 overflow-hidden" aria-hidden="true">
|
|
139
|
+
<video
|
|
140
|
+
autoPlay muted loop playsInline
|
|
141
|
+
poster={`/images/<hostname>/${role}-poster.jpg`}
|
|
142
|
+
className="w-full h-full object-cover"
|
|
143
|
+
style={{ willChange: 'transform' }}
|
|
144
|
+
>
|
|
145
|
+
<source src={`/videos/<hostname>/${role}.webm`} type="video/webm" />
|
|
146
|
+
<source src={`/videos/<hostname>/${role}.mp4`} type="video/mp4" />
|
|
147
|
+
</video>
|
|
148
|
+
<div className="absolute inset-0" style={{ backgroundColor: 'var(--overlay-dark)' }} />
|
|
149
|
+
</div>
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
If skipped (> 10MB or blocked): use poster as `background-image`, note in QA report as ⚠️ with original URL.
|
|
155
|
+
|
|
156
|
+
- Render video behind content (`z-index: 0` on video, `z-index: 1` on content).
|
|
157
|
+
- Always include overlay div for text readability.
|
|
158
|
+
- Always add `prefers-reduced-motion` support:
|
|
159
|
+
```css
|
|
160
|
+
@media (prefers-reduced-motion: reduce) {
|
|
161
|
+
video[autoplay] { display: none; }
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## 4.5 Asset wiring (MANDATORY — do not skip)
|
|
166
|
+
|
|
167
|
+
Before assembly, verify every downloaded image is referenced in its component.
|
|
168
|
+
|
|
169
|
+
Check `docs/research/components/<section-slug>.spec.md` → "Content slots" → Image entries. Use `next/image`:
|
|
170
|
+
|
|
171
|
+
```tsx
|
|
172
|
+
// Correct
|
|
173
|
+
import Image from 'next/image'
|
|
174
|
+
<Image src="/images/<hostname>/hero.webp" alt="hero" fill className="object-cover" />
|
|
175
|
+
|
|
176
|
+
// Wrong — placeholder when downloaded asset exists
|
|
177
|
+
<div className="bg-gray-200 w-full h-64" />
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
If not downloaded (> 2MB or blocked): placeholder + note in QA report as ⚠️ with original URL.
|
|
181
|
+
|
|
182
|
+
**Asset lifecycle notice (display once before assembly):**
|
|
183
|
+
> "As imagens em `public/images/<hostname>/` são referências de desenvolvimento. Substitua-as pelos seus próprios assets antes de publicar."
|
|
184
|
+
|
|
185
|
+
## 4.6 Assembly
|
|
186
|
+
|
|
187
|
+
1. Create `src/app/page.tsx` importing all sections in page topology order.
|
|
188
|
+
2. Apply token root in `src/app/globals.css`:
|
|
189
|
+
- Modes A, B, C: paste skill's `:root {}` block
|
|
190
|
+
- Mode E: paste `blended-tokens.css` content
|
|
191
|
+
3. Run `npm run build` — must pass with 0 errors and 0 TypeScript errors.
|
|
192
|
+
|
|
193
|
+
Fix TypeScript errors first, then CSS token resolution. Do not proceed to Phase 5 with a broken build.
|
|
194
|
+
|
|
195
|
+
**Exit criterion:** `npm run build` passes. All sections rendered. All interactions implemented. All downloaded assets referenced. Skill tokens active globally.
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "site-forge Phase 2 — Selective Extraction: section specs, component inventory, interaction specs, aesthetic capture"
|
|
3
|
+
agents: [site-forge]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# site-forge: Phase 2 — Selective Extraction
|
|
7
|
+
|
|
8
|
+
**Goal:** Document structure and behavior of every section.
|
|
9
|
+
|
|
10
|
+
**Mode A, C:** Discard ALL aesthetic values — skill tokens replace them. Preserve content slots (texts, image paths).
|
|
11
|
+
**Mode B, D, E:** Extract structure AND aesthetic values — raw material for the skill or blend.
|
|
12
|
+
|
|
13
|
+
## 2.1 Section specs
|
|
14
|
+
|
|
15
|
+
For each section in page topology, create `docs/research/components/<section-slug>.spec.md`:
|
|
16
|
+
|
|
17
|
+
```markdown
|
|
18
|
+
# <SectionName> — Structure Specification
|
|
19
|
+
|
|
20
|
+
## Layout pattern
|
|
21
|
+
- Container: [max-width | full-viewport | fluid]
|
|
22
|
+
- Display: [flex | grid | block]
|
|
23
|
+
- Children arrangement: [column | row | grid-cols-3 | etc.]
|
|
24
|
+
- Overflow: [visible | hidden | scroll]
|
|
25
|
+
|
|
26
|
+
## Elements
|
|
27
|
+
- [element-type]: [role — e.g. "primary headline", "CTA button", "feature image"]
|
|
28
|
+
|
|
29
|
+
## Interaction model
|
|
30
|
+
- Type: [NONE | SCROLL-DRIVEN | CLICK-DRIVEN | HOVER | STATE-TOGGLE]
|
|
31
|
+
- Trigger: [precise trigger condition]
|
|
32
|
+
- Effect: [which elements, which CSS property types]
|
|
33
|
+
- Timing: [fast | medium | slow — relative only]
|
|
34
|
+
|
|
35
|
+
## Responsive changes
|
|
36
|
+
- At 768px: [what changes]
|
|
37
|
+
- At 390px: [what changes]
|
|
38
|
+
|
|
39
|
+
## Content slots
|
|
40
|
+
- Headline: "[actual text]"
|
|
41
|
+
- Subtext: "[actual text]"
|
|
42
|
+
- CTA label: "[actual text]"
|
|
43
|
+
- Image: [what it depicts, path to downloaded file]
|
|
44
|
+
|
|
45
|
+
## Aesthetic values (Modes B, D, E only — omit in Modes A, C)
|
|
46
|
+
- Background color: [hex or rgba]
|
|
47
|
+
- Text colors: [hex values per role: heading, body, muted, accent]
|
|
48
|
+
- Border radius: [observed px values]
|
|
49
|
+
- Shadow: [observed box-shadow values]
|
|
50
|
+
- Padding/gap pattern: [observed px values]
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## 2.2 Component inventory
|
|
54
|
+
|
|
55
|
+
List all distinct reusable component types across the page:
|
|
56
|
+
```
|
|
57
|
+
Button: primary, secondary, ghost, icon-only
|
|
58
|
+
Card: media-card, text-card, stat-card
|
|
59
|
+
Input: text, email, textarea, select
|
|
60
|
+
NavItem / Modal / Dropdown / TabBar / Accordion / Toast / Badge / Avatar
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
For each component, create `docs/research/components/<component-slug>.spec.md`:
|
|
64
|
+
|
|
65
|
+
```markdown
|
|
66
|
+
# <ComponentName> — Component Specification
|
|
67
|
+
|
|
68
|
+
## DOM structure
|
|
69
|
+
- <outer-element> (semantic role)
|
|
70
|
+
- <child>: [role]
|
|
71
|
+
|
|
72
|
+
## Variants
|
|
73
|
+
- [variant-name]: [how it differs structurally]
|
|
74
|
+
|
|
75
|
+
## States
|
|
76
|
+
- default / hover / active / disabled / loading: [what changes per state]
|
|
77
|
+
(type only for Mode A/C | type + value for Mode B/D/E)
|
|
78
|
+
|
|
79
|
+
## Behavior
|
|
80
|
+
- [action]: [effect]
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## 2.3 Interaction specifications
|
|
84
|
+
|
|
85
|
+
For every non-static section, create/append `docs/research/<hostname>/interaction-spec.md`:
|
|
86
|
+
|
|
87
|
+
```markdown
|
|
88
|
+
# <Name> — Interaction Specification
|
|
89
|
+
|
|
90
|
+
## Model: [SCROLL-DRIVEN | CLICK-DRIVEN | HOVER | STATE-TOGGLE]
|
|
91
|
+
## Trigger: [precise trigger condition]
|
|
92
|
+
## Effect: [which elements, which CSS property types]
|
|
93
|
+
## Timing: [fast / medium / slow — relative only]
|
|
94
|
+
## Implementation direction: [e.g. "scroll listener on window", "CSS :hover + transition"]
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## 2.4 Aesthetic capture (Modes B, D, E only)
|
|
98
|
+
|
|
99
|
+
```javascript
|
|
100
|
+
const elements = {
|
|
101
|
+
body: document.body,
|
|
102
|
+
h1: document.querySelector('h1'),
|
|
103
|
+
h2: document.querySelector('h2'),
|
|
104
|
+
p: document.querySelector('p'),
|
|
105
|
+
primaryBtn: document.querySelector('button, [class*="btn-primary"], [class*="cta"]'),
|
|
106
|
+
card: document.querySelector('[class*="card"], article'),
|
|
107
|
+
nav: document.querySelector('nav, header')
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
const extracted = {};
|
|
111
|
+
for (const [name, el] of Object.entries(elements)) {
|
|
112
|
+
if (!el) continue;
|
|
113
|
+
const s = window.getComputedStyle(el);
|
|
114
|
+
extracted[name] = {
|
|
115
|
+
backgroundColor: s.backgroundColor, color: s.color,
|
|
116
|
+
fontFamily: s.fontFamily, fontSize: s.fontSize,
|
|
117
|
+
fontWeight: s.fontWeight, lineHeight: s.lineHeight,
|
|
118
|
+
borderRadius: s.borderRadius, boxShadow: s.boxShadow,
|
|
119
|
+
padding: s.padding, gap: s.gap, transition: s.transition
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
return extracted;
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Save to `docs/research/<hostname>/aesthetics-raw.json`.
|
|
126
|
+
|
|
127
|
+
## Phase 2 output
|
|
128
|
+
|
|
129
|
+
- `docs/research/<hostname>/structure-spec.md` — overview of all sections
|
|
130
|
+
- `docs/research/<hostname>/interaction-spec.md` — all interactions
|
|
131
|
+
- `docs/research/<hostname>/aesthetics-raw.json` — Modes B, D, E only
|
|
132
|
+
- `docs/research/components/*.spec.md` — one per section + one per component type
|
|
133
|
+
|
|
134
|
+
**Exit criterion (Modes A, C):** Every section has a spec. No color/size/spacing values in any spec file.
|
|
135
|
+
**Exit criterion (Modes B, D, E):** Every section has a spec WITH aesthetic values. `aesthetics-raw.json` populated.
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "site-forge Phase 5 — Visual QA, screenshot comparison, interaction testing, skill fidelity check, output contract"
|
|
3
|
+
agents: [site-forge]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# site-forge: Phase 5 — Visual QA
|
|
7
|
+
|
|
8
|
+
**Goal:** Verify the clone behaves like the original and looks like the skill.
|
|
9
|
+
|
|
10
|
+
## 5.1 Start dev server
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npm run dev
|
|
14
|
+
# Wait for "ready" — up to 30s
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## 5.2 Screenshot comparison
|
|
18
|
+
|
|
19
|
+
Capture both at 1440px, 768px, 390px:
|
|
20
|
+
- Original: target URL
|
|
21
|
+
- Clone: `http://localhost:3000`
|
|
22
|
+
|
|
23
|
+
**Mode A, C:** Acceptable: colors/fonts/spacing replaced. Unacceptable: missing sections, broken layout, missing interactive elements, missing content.
|
|
24
|
+
**Mode B:** Clone should visually resemble original. Large color/font differences signal extraction miss — investigate before passing.
|
|
25
|
+
**Mode E:** Blend must be visible — neither pure copy nor pure skill application. If identical to either source, blend was not applied.
|
|
26
|
+
|
|
27
|
+
## 5.3 Interaction testing
|
|
28
|
+
|
|
29
|
+
Per interaction in the spec:
|
|
30
|
+
- Scroll triggers: does the effect fire at the right scroll position?
|
|
31
|
+
- Click triggers: do tabs, dropdowns, modals, toggles work?
|
|
32
|
+
- Hover triggers: do cards lift, nav items change state?
|
|
33
|
+
- Responsive: do breakpoints trigger correct layout changes?
|
|
34
|
+
|
|
35
|
+
## 5.4 Skill fidelity check
|
|
36
|
+
|
|
37
|
+
- CSS variables resolving (no browser defaults as fallback)?
|
|
38
|
+
- Motion tokens used (no hardcoded `ms` in components)?
|
|
39
|
+
- **Mode A, C:** Skill colors applied — not original site colors?
|
|
40
|
+
- **Mode B:** Extracted site colors reproduced accurately?
|
|
41
|
+
- **Mode E:** Blended values present — verify at least 3 tokens from each source?
|
|
42
|
+
|
|
43
|
+
## 5.5 QA report
|
|
44
|
+
|
|
45
|
+
Create `docs/research/<hostname>/qa-report.md`:
|
|
46
|
+
|
|
47
|
+
```markdown
|
|
48
|
+
# QA Report — <hostname> → <skill-name>
|
|
49
|
+
**Mode:** [A | B | C | D | E]
|
|
50
|
+
**Date:** [date]
|
|
51
|
+
**Build status:** passing
|
|
52
|
+
|
|
53
|
+
## Structural fidelity
|
|
54
|
+
✅/⚠️/❌ [Section]: [note]
|
|
55
|
+
|
|
56
|
+
## Content slots (Modes C, E)
|
|
57
|
+
✅/⚠️/❌ [Section]: extracted text/images present
|
|
58
|
+
|
|
59
|
+
## Interactions
|
|
60
|
+
✅/⚠️/❌ [Interaction name]: [status and note]
|
|
61
|
+
|
|
62
|
+
## Skill fidelity
|
|
63
|
+
✅/⚠️/❌ Colors: tokens applied / hardcoded values remain
|
|
64
|
+
✅/⚠️/❌ Typography: skill fonts active
|
|
65
|
+
✅/⚠️/❌ Spacing: scale tokens applied
|
|
66
|
+
✅/⚠️/❌ Motion: transition tokens applied
|
|
67
|
+
|
|
68
|
+
## Blend verification (Mode E only)
|
|
69
|
+
✅/⚠️/❌ Site tokens present: [list 3 examples]
|
|
70
|
+
✅/⚠️/❌ Skill tokens present: [list 3 examples]
|
|
71
|
+
|
|
72
|
+
## Issues to fix
|
|
73
|
+
1. [issue] → [fix]
|
|
74
|
+
|
|
75
|
+
## Known deviations (acceptable ⚠️)
|
|
76
|
+
- [deviation]: [reason]
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Fix all ❌ before closing. Pass requires fewer than 5 ⚠️.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
# Output contract
|
|
84
|
+
|
|
85
|
+
## Modes A, B, C, E (builds a site)
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
docs/research/<hostname>/
|
|
89
|
+
├── reconnaissance.json
|
|
90
|
+
├── crawl-manifest.json
|
|
91
|
+
├── structure-spec.md
|
|
92
|
+
├── interaction-spec.md ← updated with scroll-triggered entries from Phase 1.5.4
|
|
93
|
+
├── animations-raw.json ← jsLibraries, keyframes, animationRules, parallax
|
|
94
|
+
├── videos.json
|
|
95
|
+
├── dom-mutations.json
|
|
96
|
+
├── component-map.md (Modes A, C)
|
|
97
|
+
├── blend-map.md (Mode E only)
|
|
98
|
+
├── blended-tokens.css (Mode E only)
|
|
99
|
+
└── qa-report.md
|
|
100
|
+
|
|
101
|
+
docs/research/<hostname>/scroll-recording/
|
|
102
|
+
└── scroll-00pct.png … scroll-100pct.png
|
|
103
|
+
|
|
104
|
+
docs/research/components/
|
|
105
|
+
└── <section-slug>.spec.md (one per section + one per component type)
|
|
106
|
+
|
|
107
|
+
public/images/<hostname>/ [replace before publishing]
|
|
108
|
+
public/videos/<hostname>/ [replace before publishing]
|
|
109
|
+
|
|
110
|
+
src/components/
|
|
111
|
+
└── <SectionName>.tsx
|
|
112
|
+
└── VideoBackground.tsx (if videos found)
|
|
113
|
+
|
|
114
|
+
src/app/
|
|
115
|
+
├── page.tsx
|
|
116
|
+
└── globals.css [skill token root + extracted @keyframes]
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## Mode B additionally
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
docs/research/<hostname>/aesthetics-raw.json
|
|
123
|
+
|
|
124
|
+
.aioson/installed-skills/<hostname>/
|
|
125
|
+
├── SKILL.md
|
|
126
|
+
├── references/design-tokens.md
|
|
127
|
+
├── references/components.md
|
|
128
|
+
├── references/patterns.md
|
|
129
|
+
├── references/motion.md ← extracted @keyframes + detected animation libraries
|
|
130
|
+
├── references/websites.md
|
|
131
|
+
└── .skill-meta.json
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Mode D (skill only — no site built)
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
docs/research/<hostname>/
|
|
138
|
+
├── reconnaissance.json
|
|
139
|
+
├── crawl-manifest.json
|
|
140
|
+
├── structure-spec.md
|
|
141
|
+
├── interaction-spec.md
|
|
142
|
+
├── animations-raw.json
|
|
143
|
+
├── videos.json
|
|
144
|
+
├── dom-mutations.json
|
|
145
|
+
└── aesthetics-raw.json
|
|
146
|
+
|
|
147
|
+
.aioson/installed-skills/<hostname>/
|
|
148
|
+
├── SKILL.md
|
|
149
|
+
├── references/design-tokens.md
|
|
150
|
+
├── references/components.md
|
|
151
|
+
├── references/patterns.md
|
|
152
|
+
├── references/motion.md
|
|
153
|
+
├── references/websites.md
|
|
154
|
+
└── .skill-meta.json
|
|
155
|
+
```
|