@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,309 @@
|
|
|
1
|
+
# `site-forge`
|
|
2
|
+
|
|
3
|
+
Agente de clonagem inteligente do AIOSON — estuda um site real e reconstrói como projeto Next.js, forja uma skill de design, ou ambos.
|
|
4
|
+
|
|
5
|
+
## O que ele faz
|
|
6
|
+
|
|
7
|
+
- recebe uma URL e guia você até o modo certo com um **questionário de onboarding**
|
|
8
|
+
- captura screenshots, assets (img, background-image, srcset, lazy-loaded, video) via browser MCP
|
|
9
|
+
- faz crawl de links internos para capturar assets e padrões de sub-páginas
|
|
10
|
+
- extrai estrutura, comportamento e interações
|
|
11
|
+
- forja design skills, mescla tokens, ou aplica skills existentes conforme o modo escolhido
|
|
12
|
+
- constrói um projeto Next.js com worktrees paralelas
|
|
13
|
+
|
|
14
|
+
## Pré-requisitos
|
|
15
|
+
|
|
16
|
+
### 1. Browser MCP
|
|
17
|
+
|
|
18
|
+
O agente precisa de automação de browser para navegar, capturar screenshots, disparar lazy loads e testar interações. Configure um antes de usar:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Playwright MCP (recomendado)
|
|
22
|
+
npx @playwright/mcp@latest
|
|
23
|
+
|
|
24
|
+
# Puppeteer MCP (alternativa)
|
|
25
|
+
npx @modelcontextprotocol/server-puppeteer
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Adicione o browser MCP escolhido nas configurações de MCP do seu cliente AI. O agente detecta automaticamente qual está disponível.
|
|
29
|
+
|
|
30
|
+
### 2. Design skill (quando aplicável)
|
|
31
|
+
|
|
32
|
+
Modos que usam uma skill existente precisam de uma skill já instalada. Use uma das skills nativas:
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
.aioson/skills/design/aurora-command-ui/
|
|
36
|
+
.aioson/skills/design/cognitive-core-ui/
|
|
37
|
+
.aioson/skills/design/glassmorphism-ui/
|
|
38
|
+
.aioson/skills/design/bold-editorial-ui/
|
|
39
|
+
.aioson/skills/design/neo-brutalist-ui/
|
|
40
|
+
.aioson/skills/design/warm-craft-ui/
|
|
41
|
+
.aioson/skills/design/clean-saas-ui/
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Ou use uma skill gerada pelo `@design-hybrid-forge`:
|
|
45
|
+
|
|
46
|
+
```text
|
|
47
|
+
.aioson/installed-skills/{slug}/
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Modos de operação
|
|
51
|
+
|
|
52
|
+
O agente tem **5 modos**. Se você não especificar o modo, ele roda o **onboarding inteligente** e te guia até o certo.
|
|
53
|
+
|
|
54
|
+
| Modo | Entrada | Output |
|
|
55
|
+
|------|---------|--------|
|
|
56
|
+
| **A — Transform** | URL + skill | Site construído com a skill aplicada à estrutura clonada |
|
|
57
|
+
| **B — Faithful clone** | URL | Réplica fiel + nova skill forjada do site |
|
|
58
|
+
| **C — Content harvest** | URL + skill | Site construído com conteúdo/imagens do site + layout da skill |
|
|
59
|
+
| **D — Skill only** | URL | Só a skill forjada — nenhum site é construído |
|
|
60
|
+
| **E — Blend** | URL + skill + ratio | Site com tokens misturados entre o site e a skill |
|
|
61
|
+
|
|
62
|
+
## Onboarding inteligente
|
|
63
|
+
|
|
64
|
+
Quando você chamar `/site-forge` sem especificar o modo, o agente pergunta:
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
O que você quer fazer com este site?
|
|
68
|
+
|
|
69
|
+
A — Extrair conteúdo e imagens → construir um novo site com uma das suas skills
|
|
70
|
+
B — Clonar fielmente → réplica visual + forjar uma skill com o design do site
|
|
71
|
+
C — Extrair somente o design (CSS, animações) → criar uma skill reutilizável (sem construir o site)
|
|
72
|
+
D — Clonar com textos e imagens originais + mesclar com uma das suas skills (50/50)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Depois coleta os dados que faltam (URL, skill, ratio) e já avança.
|
|
76
|
+
|
|
77
|
+
## Como invocar
|
|
78
|
+
|
|
79
|
+
```text
|
|
80
|
+
/site-forge <url> <skill> → Modo A (transform)
|
|
81
|
+
/site-forge <url> → Onboarding guiado
|
|
82
|
+
/site-forge <url> --skill-only → Modo D (só a skill)
|
|
83
|
+
/site-forge <url> <skill> --blend → Modo E (blend 50/50)
|
|
84
|
+
/site-forge <url> <skill> --blend=70 → Modo E (70% site / 30% skill)
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Com flags opcionais:
|
|
88
|
+
|
|
89
|
+
```text
|
|
90
|
+
--viewport=desktop # só desktop (padrão: todos os três)
|
|
91
|
+
--no-download # pular download de assets
|
|
92
|
+
--no-crawl # pular crawl de links internos
|
|
93
|
+
--crawl-depth=N # seguir N níveis de links (padrão: 1)
|
|
94
|
+
--output=./dir # diretório customizado
|
|
95
|
+
--verbose # log detalhado
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Extração de assets melhorada
|
|
99
|
+
|
|
100
|
+
O agente captura imagens de **todas as fontes**, não só `<img>`:
|
|
101
|
+
|
|
102
|
+
- `<img>` com `srcset` e `data-src` (lazy loading)
|
|
103
|
+
- `background-image` em **qualquer elemento** via `getComputedStyle`
|
|
104
|
+
- `<picture> <source srcset>`
|
|
105
|
+
- `<video poster>` e `<source>` de vídeo
|
|
106
|
+
- `<use href>` de SVG externos
|
|
107
|
+
- `style=""` com `background-image` inline
|
|
108
|
+
- meta tags `og:image` e `twitter:image`
|
|
109
|
+
|
|
110
|
+
Antes de extrair, o agente faz scroll completo pela página para **disparar todos os lazy loads**.
|
|
111
|
+
|
|
112
|
+
## Crawl de links internos
|
|
113
|
+
|
|
114
|
+
Por padrão o agente segue links internos para capturar assets e padrões de sub-páginas:
|
|
115
|
+
|
|
116
|
+
| Modo | Links seguidos (padrão) |
|
|
117
|
+
|------|------------------------|
|
|
118
|
+
| A, C (content harvest) | até 10 |
|
|
119
|
+
| B, D, E | até 5 |
|
|
120
|
+
|
|
121
|
+
Use `--no-crawl` para desativar ou `--crawl-depth=N` para ajustar.
|
|
122
|
+
|
|
123
|
+
## Fluxo por fase
|
|
124
|
+
|
|
125
|
+
| Fase | O que acontece | Modos |
|
|
126
|
+
|------|---------------|-------|
|
|
127
|
+
| **0 — Preflight** | Browser MCP, skill, projeto Next.js | Todos |
|
|
128
|
+
| **1 — Reconnaissance** | Screenshots, deep asset extraction, crawl, interações | Todos |
|
|
129
|
+
| **2 — Extraction** | Spec de estrutura + conteúdo; valores estéticos (modos B/D/E) | Todos |
|
|
130
|
+
| **3A — Transform** | Mapa componente → skill com tokens | A, C |
|
|
131
|
+
| **3B — Skill forge** | Extrai design system e forja skill em `.aioson/installed-skills/` | B, D, E |
|
|
132
|
+
| **3E — Blend** | Mescla tokens do site com tokens da skill no ratio definido | E |
|
|
133
|
+
| **4 — Build** | Constrói componentes com worktrees, verifica `npm run build` | A, B, C, E |
|
|
134
|
+
| **5 — QA** | Screenshot diff, testes de interação, fidelidade de tokens | A, B, C, E |
|
|
135
|
+
|
|
136
|
+
**Modo D** termina após a Fase 3B — nenhum site é construído.
|
|
137
|
+
|
|
138
|
+
## Output por modo
|
|
139
|
+
|
|
140
|
+
```text
|
|
141
|
+
Todos os modos:
|
|
142
|
+
docs/research/<hostname>/
|
|
143
|
+
reconnaissance.json ← dados da navegação
|
|
144
|
+
crawl-manifest.json ← URLs visitadas e assets por página
|
|
145
|
+
structure-spec.md ← topologia e layout
|
|
146
|
+
interaction-spec.md ← modelo de interação
|
|
147
|
+
qa-report.md ← resultado do QA (modos A/B/C/E)
|
|
148
|
+
|
|
149
|
+
Modo A, C:
|
|
150
|
+
component-map.md ← mapeamento componente → skill
|
|
151
|
+
|
|
152
|
+
Modo B, D, E:
|
|
153
|
+
aesthetics-raw.json ← valores CSS extraídos
|
|
154
|
+
|
|
155
|
+
Modo E:
|
|
156
|
+
blend-map.md ← decisões de blend por token
|
|
157
|
+
blended-tokens.css ← tokens mesclados prontos para uso
|
|
158
|
+
|
|
159
|
+
Modos A, B, C, E (constrói site):
|
|
160
|
+
src/components/[todos os componentes]
|
|
161
|
+
src/app/page.tsx
|
|
162
|
+
src/app/globals.css
|
|
163
|
+
public/images/<hostname>/[assets baixados]
|
|
164
|
+
|
|
165
|
+
Modos B, D, E (forja skill):
|
|
166
|
+
.aioson/installed-skills/<hostname>/
|
|
167
|
+
SKILL.md
|
|
168
|
+
references/design-tokens.md
|
|
169
|
+
references/components.md
|
|
170
|
+
references/patterns.md
|
|
171
|
+
references/motion.md
|
|
172
|
+
references/websites.md
|
|
173
|
+
.skill-meta.json
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## Fluxo completo: forge + clone
|
|
177
|
+
|
|
178
|
+
O caminho mais poderoso é criar uma skill sob medida com `design-hybrid-forge` e aplicá-la.
|
|
179
|
+
|
|
180
|
+
### Passo 1 — Gerar o preset visual
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
aioson design-hybrid:options . --locale=pt-BR
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Passo 2 — Forjar a skill híbrida
|
|
187
|
+
|
|
188
|
+
```text
|
|
189
|
+
/design-hybrid-forge
|
|
190
|
+
→ skills primárias: aurora-command-ui + cognitive-core-ui
|
|
191
|
+
→ nome: aurora-cognitive-command
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Passo 3 — Aplicar no clone
|
|
195
|
+
|
|
196
|
+
```text
|
|
197
|
+
/site-forge https://datadog.com aurora-cognitive-command
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Resultado: estrutura e interações do Datadog, visual da `aurora-cognitive-command`.
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
Veja a documentação completa do seletor interativo em: [`design-hybrid-forge.md`](design-hybrid-forge.md)
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## Exemplos práticos
|
|
209
|
+
|
|
210
|
+
### Modo A — Clone com skill existente
|
|
211
|
+
|
|
212
|
+
```text
|
|
213
|
+
/site-forge https://stripe.com aurora-command-ui
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
Estrutura e fluxo do Stripe, visual da `aurora-command-ui`.
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
### Modo B — Réplica fiel + nova skill
|
|
221
|
+
|
|
222
|
+
```text
|
|
223
|
+
/site-forge https://linear.app
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Forja uma skill em `.aioson/installed-skills/linear.app/` e constrói uma réplica fiel.
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
### Modo C — Colher conteúdo + nova estrutura com skill
|
|
231
|
+
|
|
232
|
+
Perguntar o modo via onboarding:
|
|
233
|
+
|
|
234
|
+
```text
|
|
235
|
+
/site-forge https://framer.com
|
|
236
|
+
→ escolha A no onboarding
|
|
237
|
+
→ skill: clean-saas-ui
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
Textos e imagens do Framer, layout e visual do `clean-saas-ui`.
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
### Modo D — Só a skill, sem construir
|
|
245
|
+
|
|
246
|
+
```text
|
|
247
|
+
/site-forge https://resend.com --skill-only
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
Forja `.aioson/installed-skills/resend.com/`. Nenhuma página é construída.
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
### Modo E — Blend 50/50
|
|
255
|
+
|
|
256
|
+
```text
|
|
257
|
+
/site-forge https://vercel.com neo-brutalist-ui --blend
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
Tokens mesclados 50% Vercel / 50% `neo-brutalist-ui`.
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
### Blend assimétrico (70% site)
|
|
265
|
+
|
|
266
|
+
```text
|
|
267
|
+
/site-forge https://notion.so glassmorphism-ui --blend=70
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
70% tokens do Notion, 30% tokens da `glassmorphism-ui`.
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
### Clone em projeto existente
|
|
275
|
+
|
|
276
|
+
```bash
|
|
277
|
+
cd meu-projeto-nextjs
|
|
278
|
+
/site-forge https://loom.com cognitive-core-ui
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
O agente detecta o `package.json` com `next` e usa o projeto existente.
|
|
282
|
+
|
|
283
|
+
## Diferença em relação a clonar manualmente
|
|
284
|
+
|
|
285
|
+
| Aspecto | Clone manual | site-forge |
|
|
286
|
+
|---------|-------------|--------------|
|
|
287
|
+
| Extração de imagens | Só `<img>` visíveis | img + CSS bg + srcset + lazy + video + SVG |
|
|
288
|
+
| Sub-páginas | Ignoradas | Crawl automático |
|
|
289
|
+
| Estética | Replica o original | Skill tokens, blend, ou extração fiel |
|
|
290
|
+
| Interações | Esquecidas facilmente | Mapeadas antes de construir |
|
|
291
|
+
| Build | Erros no final | Verificado após cada worktree |
|
|
292
|
+
| QA | Manual | Screenshot diff + checklist formal |
|
|
293
|
+
|
|
294
|
+
## Nota sobre conteúdo e assets
|
|
295
|
+
|
|
296
|
+
Os textos e imagens extraídos são apenas para estruturar o clone durante o desenvolvimento. **Substitua todo o conteúdo antes de publicar.** O agente avisa ao final da Fase 1.
|
|
297
|
+
|
|
298
|
+
## Quando usar
|
|
299
|
+
|
|
300
|
+
- você quer o comportamento/layout de um site de referência
|
|
301
|
+
- quer prototipar rapidamente com estrutura testada
|
|
302
|
+
- quer extrair o design de um site como skill reutilizável
|
|
303
|
+
- quer mesclar o visual de um site com sua brand
|
|
304
|
+
- o cliente mostrou um concorrente como referência de fluxo
|
|
305
|
+
|
|
306
|
+
## Quando não usar
|
|
307
|
+
|
|
308
|
+
- o site tem proteção pesada (SPA autenticada, bot protection agressivo)
|
|
309
|
+
- você quer criar a estrutura do zero com total liberdade → use `/deyvin` ou `/dev`
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
# Spec & Learnings Pipeline
|
|
2
|
+
|
|
3
|
+
> Sincroniza specs Markdown com o SQLite e exporta learnings para memória procedural do projeto.
|
|
4
|
+
|
|
5
|
+
O AIOSON mantém duas representações do estado de desenvolvimento: os arquivos `spec-{slug}.md` em `.aioson/context/` (editados pelos agentes) e o banco SQLite `aios.sqlite` (lido pelo dashboard). Este pipeline conecta os dois automaticamente.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Visão geral do fluxo
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
@dev escreve spec-checkout.md
|
|
13
|
+
└─ ## Session Learnings: [process] commit por step
|
|
14
|
+
└─ frontmatter: phase_gates: {plan: approved}
|
|
15
|
+
└─ last_checkpoint: "Criando migration cart_items — step 3 de 5"
|
|
16
|
+
|
|
17
|
+
aioson spec:sync .
|
|
18
|
+
└─ project_learnings ← learnings upserted (frequency++)
|
|
19
|
+
└─ plan_phases ← phase_gates mapeadas para status
|
|
20
|
+
|
|
21
|
+
aioson spec:status .
|
|
22
|
+
└─ tabela de features com fase, agente, checkpoint
|
|
23
|
+
|
|
24
|
+
aioson learning:export . --min-frequency=2
|
|
25
|
+
└─ .aioson/brains/process-commit-por-step.md ← node Zettelkasten
|
|
26
|
+
|
|
27
|
+
aioson learning:evolve .
|
|
28
|
+
└─ genome ← learnings com frequency ≥ 5 promovidos
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## `aioson spec:sync`
|
|
34
|
+
|
|
35
|
+
Sincroniza learnings e phase gates de todos os specs para o SQLite.
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
aioson spec:sync [path] [opções]
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Opções:**
|
|
42
|
+
|
|
43
|
+
| Opção | Descrição |
|
|
44
|
+
|---|---|
|
|
45
|
+
| `--json` | Retorna JSON com contagem de learnings e fases sincronizadas |
|
|
46
|
+
| `--verbose` | Mostra detalhes de cada arquivo processado |
|
|
47
|
+
|
|
48
|
+
**Exemplo:**
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
aioson spec:sync .
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Saída:
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
Spec Sync — meu-projeto
|
|
58
|
+
──────────────────────────────────────────────────
|
|
59
|
+
spec-checkout.md
|
|
60
|
+
Learnings synced: 3
|
|
61
|
+
Plan phases updated: 1
|
|
62
|
+
last_checkpoint: "Criando migration cart_items"
|
|
63
|
+
spec.md
|
|
64
|
+
Learnings synced: 2
|
|
65
|
+
──────────────────────────────────────────────────
|
|
66
|
+
Summary: 5 learnings synced, 1 plan phases updated
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**Formato dos learnings no spec:**
|
|
70
|
+
|
|
71
|
+
```markdown
|
|
72
|
+
## Session Learnings
|
|
73
|
+
- [process] Fazer commit após cada step atômico, não só no final
|
|
74
|
+
- [domain] cart_items deve ter UNIQUE(cart_id, product_id)
|
|
75
|
+
- [quality] Rodar testes com --filter isola o módulo rapidamente
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Prefixos aceitos: `[process]`, `[domain]`, `[quality]`, `[preference]`.
|
|
79
|
+
Linhas sem prefixo são classificadas automaticamente como `[process]`.
|
|
80
|
+
|
|
81
|
+
**Idempotência:** rodar `spec:sync` duas vezes no mesmo spec não duplica learnings. Se o título já existe em `project_learnings`, o campo `frequency` é incrementado (`frequency++`).
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## `aioson spec:status`
|
|
86
|
+
|
|
87
|
+
Exibe o estado atual de todas as features com dados do SQLite.
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
aioson spec:status [path] [opções]
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Opções:**
|
|
94
|
+
|
|
95
|
+
| Opção | Descrição |
|
|
96
|
+
|---|---|
|
|
97
|
+
| `--json` | Retorna JSON com array de features e contagem de learnings |
|
|
98
|
+
|
|
99
|
+
**Exemplo:**
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
aioson spec:status .
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Saída:
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
Project Status — meu-projeto
|
|
109
|
+
────────────────────────────────────────────────────────────────────────────────
|
|
110
|
+
Feature Phase Status Last Agent Checkpoint
|
|
111
|
+
────────────────────────────────────────────────────────────────────────────────
|
|
112
|
+
checkout 2/5 in_progress dev Criando migration...
|
|
113
|
+
auth 5/5 done qa QA sign-off 2026-03-28
|
|
114
|
+
onboarding 0/5 not_started — —
|
|
115
|
+
────────────────────────────────────────────────────────────────────────────────
|
|
116
|
+
Active learnings: 12 | Promotable (freq≥3): 4
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## `aioson spec:checkpoint`
|
|
122
|
+
|
|
123
|
+
Registra manualmente o `last_checkpoint` de um spec no SQLite. Útil quando a sessão caiu sem `agent:done`.
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
aioson spec:checkpoint [path] --feature=<slug> [--agent=<agent>]
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**Opções:**
|
|
130
|
+
|
|
131
|
+
| Opção | Descrição |
|
|
132
|
+
|---|---|
|
|
133
|
+
| `--feature=<slug>` | Feature cujo spec será lido (obrigatório) |
|
|
134
|
+
| `--agent=<name>` | Agente da run ativa (padrão: `dev`) |
|
|
135
|
+
| `--json` | Retorna JSON com run_key e checkpoint registrado |
|
|
136
|
+
|
|
137
|
+
**Exemplo:**
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# Sessão do @dev em checkout caiu sem agent:done
|
|
141
|
+
aioson spec:checkpoint . --feature=checkout
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Saída:
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
Reading spec-checkout.md...
|
|
148
|
+
last_checkpoint: "Criando migration cart_items — step 3 of 5"
|
|
149
|
+
phase_gates: {"plan":"approved","requirements":"approved","design":"pending"}
|
|
150
|
+
|
|
151
|
+
Checkpoint registered:
|
|
152
|
+
run_key: dev-1711234567890
|
|
153
|
+
summary: "Criando migration cart_items — step 3 of 5"
|
|
154
|
+
status: in_progress (checkpoint only — use agent:done to close)
|
|
155
|
+
|
|
156
|
+
Next: continue with /dev — start from last_checkpoint
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
O comando procura a run mais recente do agente no SQLite e registra um evento `plan_checkpoint` nela. O run permanece `in_progress` — use `agent:done` para fechá-la quando terminar.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## `aioson learning:export`
|
|
164
|
+
|
|
165
|
+
Exporta `project_learnings` do SQLite para `.aioson/brains/` como nodes no formato Zettelkasten.
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
aioson learning:export [path] [--min-frequency=N] [--json]
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
**Opções:**
|
|
172
|
+
|
|
173
|
+
| Opção | Descrição |
|
|
174
|
+
|---|---|
|
|
175
|
+
| `--min-frequency=N` | Exporta apenas learnings com `frequency >= N` (padrão: 1) |
|
|
176
|
+
| `--json` | Retorna JSON com lista de nodes exportados |
|
|
177
|
+
|
|
178
|
+
**Exemplos:**
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
# Exportar todos os learnings ativos
|
|
182
|
+
aioson learning:export .
|
|
183
|
+
|
|
184
|
+
# Apenas learnings reforçados em 2+ sessões
|
|
185
|
+
aioson learning:export . --min-frequency=2
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Saída:
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
Learning Export — min-frequency: 2
|
|
192
|
+
──────────────────────────────────────────────────
|
|
193
|
+
process-commit-por-step.md ✓ (frequency: 4)
|
|
194
|
+
domain-cart-uniqueness.md ✓ (frequency: 3)
|
|
195
|
+
process-test-isolation.md ✓ (frequency: 2)
|
|
196
|
+
──────────────────────────────────────────────────
|
|
197
|
+
3 nodes written to .aioson/brains/
|
|
198
|
+
2 learning(s) with frequency ≥ 5 — run: aioson learning:evolve to promote to genome
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
**Formato do node exportado** (`.aioson/brains/process-commit-por-step.md`):
|
|
202
|
+
|
|
203
|
+
```markdown
|
|
204
|
+
---
|
|
205
|
+
id: process-commit-por-step
|
|
206
|
+
type: process
|
|
207
|
+
title: Fazer commit após cada step atômico, não só no final
|
|
208
|
+
frequency: 4
|
|
209
|
+
last_reinforced: 2026-04-01
|
|
210
|
+
source_feature: checkout
|
|
211
|
+
promoted_to: null
|
|
212
|
+
created_at: 2026-03-15
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
# Fazer commit após cada step atômico
|
|
216
|
+
|
|
217
|
+
**Evidence:** Detected in 4 session(s).
|
|
218
|
+
|
|
219
|
+
## Applications
|
|
220
|
+
- Review and apply this learning in future sessions of type: process
|
|
221
|
+
|
|
222
|
+
## Links
|
|
223
|
+
<!-- Add cross-references here -->
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## Fluxo recomendado após cada sessão do @dev
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
# 1. Sincronizar spec com o SQLite
|
|
232
|
+
aioson spec:sync .
|
|
233
|
+
|
|
234
|
+
# 2. Ver estado atual das features
|
|
235
|
+
aioson spec:status .
|
|
236
|
+
|
|
237
|
+
# 3. Quando learnings se acumularem (≥ 2 sessões), exportar para brains
|
|
238
|
+
aioson learning:export . --min-frequency=2
|
|
239
|
+
|
|
240
|
+
# 4. Quando um learning atingir frequency ≥ 5, promover para genome
|
|
241
|
+
aioson learning:evolve .
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## Integração com o spec.md
|
|
247
|
+
|
|
248
|
+
O `spec:sync` procura esses elementos em cada `spec-{slug}.md`:
|
|
249
|
+
|
|
250
|
+
| Elemento | Onde fica | O que faz |
|
|
251
|
+
|---|---|---|
|
|
252
|
+
| `## Session Learnings` | Corpo do arquivo | Cria/atualiza `project_learnings` |
|
|
253
|
+
| `phase_gates` | Frontmatter YAML | Atualiza `plan_phases.status` |
|
|
254
|
+
| `last_checkpoint` | Frontmatter ou seção | Exibido em `spec:status` |
|
|
255
|
+
|
|
256
|
+
**Exemplo de frontmatter de spec:**
|
|
257
|
+
|
|
258
|
+
```markdown
|
|
259
|
+
---
|
|
260
|
+
feature: checkout
|
|
261
|
+
status: in_progress
|
|
262
|
+
phase_gates: {"plan": "approved", "requirements": "approved", "design": "pending"}
|
|
263
|
+
last_checkpoint: "Criando migration cart_items — step 3 de 5"
|
|
264
|
+
---
|
|
265
|
+
```
|