@jaimevalasek/aioson 1.21.7 → 1.21.8
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 +24 -1
- package/docs/en/1-understand/ecosystem-map.md +1 -1
- package/docs/en/2-start/initial-decisions.md +1 -1
- package/docs/en/4-agents/README.md +8 -7
- package/docs/en/4-agents/discovery-design-doc.md +150 -0
- package/docs/en/5-reference/cli-reference.md +42 -16
- package/docs/en/README.md +2 -2
- package/docs/pt/4-agentes/README.md +8 -6
- package/docs/pt/4-agentes/briefing-refiner.md +122 -0
- package/docs/pt/4-agentes/discovery-design-doc.md +133 -74
- package/docs/pt/4-agentes/scope-check.md +65 -0
- package/docs/pt/5-referencia/README.md +1 -0
- package/docs/pt/5-referencia/comandos-cli.md +5 -4
- package/docs/pt/5-referencia/feature-archive.md +1 -0
- package/docs/pt/5-referencia/feature-export.md +155 -0
- package/docs/pt/README.md +2 -2
- package/docs/pt/agentes.md +3 -1
- package/package.json +1 -1
- package/src/agent-manifests.js +14 -3
- package/src/cli.js +57 -52
- package/src/commands/briefing.js +28 -150
- package/src/commands/commit-prepare.js +5 -2
- package/src/commands/feature-archive.js +48 -12
- package/src/commands/feature-export.js +242 -0
- package/src/commands/live.js +120 -115
- package/src/commands/parallel-doctor.js +2 -1
- package/src/commands/pulse-update.js +2 -2
- package/src/commands/scan-project.js +12 -2
- package/src/commands/workflow-next.js +442 -425
- package/src/constants.js +21 -11
- package/src/context-search.js +3 -0
- package/src/dossier/schema.js +4 -3
- package/src/i18n/messages/en.js +22 -21
- package/src/i18n/messages/pt-BR.js +22 -21
- package/src/lib/briefing-refiner/apply-feedback.js +134 -0
- package/src/lib/briefing-refiner/briefing-paths.js +41 -0
- package/src/lib/briefing-refiner/briefing-registry.js +204 -0
- package/src/lib/briefing-refiner/briefing-sections.js +110 -0
- package/src/lib/briefing-refiner/feedback-schema.js +122 -0
- package/src/lib/briefing-refiner/refinement-report.js +39 -0
- package/src/lib/briefing-refiner/review-html.js +230 -0
- package/src/parser.js +8 -5
- package/src/runtime-store.js +2 -0
- package/src/sandbox.js +17 -3
- package/template/.aioson/agents/analyst.md +23 -23
- package/template/.aioson/agents/architect.md +3 -3
- package/template/.aioson/agents/briefing-refiner.md +121 -0
- package/template/.aioson/agents/briefing.md +83 -74
- package/template/.aioson/agents/committer.md +8 -0
- package/template/.aioson/agents/copywriter.md +19 -7
- package/template/.aioson/agents/design-hybrid-forge.md +16 -5
- package/template/.aioson/agents/dev.md +66 -66
- package/template/.aioson/agents/deyvin.md +97 -90
- package/template/.aioson/agents/discover.md +2 -2
- package/template/.aioson/agents/discovery-design-doc.md +30 -30
- package/template/.aioson/agents/genome.md +82 -71
- package/template/.aioson/agents/neo.md +11 -3
- package/template/.aioson/agents/orache.md +10 -0
- package/template/.aioson/agents/orchestrator.md +68 -68
- package/template/.aioson/agents/pentester.md +15 -6
- package/template/.aioson/agents/pm.md +22 -22
- package/template/.aioson/agents/product.md +108 -108
- package/template/.aioson/agents/profiler-enricher.md +10 -0
- package/template/.aioson/agents/profiler-forge.md +10 -0
- package/template/.aioson/agents/profiler-researcher.md +11 -0
- package/template/.aioson/agents/qa.md +6 -6
- package/template/.aioson/agents/scope-check.md +8 -0
- package/template/.aioson/agents/setup.md +11 -1
- package/template/.aioson/agents/sheldon.md +38 -38
- package/template/.aioson/agents/site-forge.md +15 -6
- package/template/.aioson/agents/squad.md +12 -0
- package/template/.aioson/agents/tester.md +209 -209
- package/template/.aioson/agents/ux-ui.md +2 -2
- package/template/.aioson/agents/validator.md +10 -2
- package/template/.aioson/docs/dossier/agent-templates.md +191 -0
- package/template/.aioson/docs/dossier/schema.md +218 -0
- package/template/.claude/commands/aioson/agent/briefing-refiner.md +17 -0
- package/template/AGENTS.md +10 -7
- package/template/CLAUDE.md +6 -4
|
@@ -1,44 +1,75 @@
|
|
|
1
|
-
# @discovery-design-doc — Discovery e design doc
|
|
2
|
-
|
|
3
|
-
> **Para quem é:** quem
|
|
4
|
-
> **Tempo de leitura:** 3 min.
|
|
5
|
-
> **O que você vai sair sabendo:**
|
|
6
|
-
> -
|
|
7
|
-
> -
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
- Você
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
1
|
+
# @discovery-design-doc — Discovery, readiness e design doc
|
|
2
|
+
|
|
3
|
+
> **Para quem é:** quem precisa transformar uma ideia vaga em clareza inicial ou consolidar PRD, requisitos e arquitetura num contrato técnico antes do `@dev`.
|
|
4
|
+
> **Tempo de leitura:** 3 min.
|
|
5
|
+
> **O que você vai sair sabendo:**
|
|
6
|
+
> - Os dois modos corretos de uso: exploratório e pré-dev
|
|
7
|
+
> - Por que ele pode aparecer depois de `@analyst` e `@architect` no workflow
|
|
8
|
+
> - O que o design doc e o readiness entregam para os próximos agentes
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Para que serve
|
|
13
|
+
|
|
14
|
+
O `@discovery-design-doc` tem dois usos válidos:
|
|
15
|
+
|
|
16
|
+
- **Modo exploratório:** quando um request chega vago, como ticket, ideia de feature ou anotação de reunião. Ele normaliza o problema, identifica ambiguidades e recomenda o próximo agente.
|
|
17
|
+
- **Modo pré-dev no workflow:** quando o projeto SMALL/MEDIUM já passou por `@analyst` e `@architect`. Nesse caso, ele consolida PRD, requisitos, spec e arquitetura num `design-doc` vivo e num `readiness` com plano técnico concreto para o `@dev`.
|
|
18
|
+
|
|
19
|
+
Ou seja: ele pode ser um atalho antes do ciclo completo **ou** uma etapa de segurança entre arquitetura e implementação. No workflow atual, esse segundo uso é esperado para SMALL/MEDIUM.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Quando invocar
|
|
24
|
+
|
|
25
|
+
- Você tem um ticket, briefing ou ideia e quer transformar em documento estruturado rapidamente
|
|
26
|
+
- Você quer saber o que está bem definido vs o que ainda é ambíguo antes de acionar `@product` ou `@dev`
|
|
27
|
+
- Você está em modo exploratório e quer um checkpoint de clareza sem comprometer o workflow completo
|
|
28
|
+
- Você está no workflow SMALL/MEDIUM após `@architect` e precisa gerar o contrato técnico pré-dev
|
|
29
|
+
- O `@dev` precisa de caminhos, módulos, decisões de reuso e riscos de tamanho de arquivo antes de editar código
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Quando NÃO invocar
|
|
34
|
+
|
|
35
|
+
- Para refazer discovery amplo quando PRD, requirements, spec e architecture já estão claros
|
|
36
|
+
- Você precisa de discovery profundo com mapeamento de domínio — use `@analyst` dentro do workflow SMALL/MEDIUM
|
|
37
|
+
- Você quer um briefing pré-PRD com frameworks de framing — use `@briefing`
|
|
38
|
+
- A tarefa é MICRO e já possui um plano simples suficiente para `@dev`
|
|
39
|
+
|
|
40
|
+
> Ter PRD/spec definidos **não impede** o uso deste agente. No workflow SMALL/MEDIUM, eles são justamente entradas para o `design-doc` e o `readiness` pré-dev.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Onde entra no workflow
|
|
45
|
+
|
|
46
|
+
Fluxo exploratório manual:
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
@setup -> @discovery-design-doc -> próximo agente recomendado
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Fluxo SMALL atual:
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
@product -> @analyst -> @scope-check(pre-dev) -> @architect -> @discovery-design-doc -> @dev -> @qa
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Fluxo MEDIUM atual:
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
@product -> @analyst -> @architect -> @discovery-design-doc -> @ux-ui -> @pm -> @orchestrator -> @scope-check(pre-dev) -> @dev -> @qa
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
O papel dele no meio da feature não é substituir `@analyst` nem `@architect`. Ele transforma esses artefatos em um pacote executável para implementação.
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Diálogo típico — modo exploratório
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
Você > @discovery-design-doc
|
|
72
|
+
Quero adicionar modo offline ao app mobile para que usuários possam
|
|
42
73
|
ver conteúdos sem internet.
|
|
43
74
|
|
|
44
75
|
@discovery-design-doc > Normalizando request...
|
|
@@ -56,36 +87,64 @@ Você > @discovery-design-doc
|
|
|
56
87
|
|
|
57
88
|
@discovery-design-doc > Design doc criado em: .aioson/context/design-doc.md
|
|
58
89
|
Readiness: MÉDIO — 3 ambiguidades precisam de decisão.
|
|
59
|
-
Recomendação: @product para fechar escopo antes de @dev.
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
##
|
|
65
|
-
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
-
|
|
91
|
-
|
|
90
|
+
Recomendação: @product para fechar escopo antes de @dev.
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Diálogo típico — modo pré-dev
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
Você > @discovery-design-doc
|
|
99
|
+
Consolidar a feature checkout depois da arquitetura.
|
|
100
|
+
|
|
101
|
+
@discovery-design-doc > Lendo PRD, requirements, spec e architecture...
|
|
102
|
+
Escopo: checkout com pagamento único
|
|
103
|
+
Readiness: ready_with_warnings
|
|
104
|
+
|
|
105
|
+
Plano técnico:
|
|
106
|
+
- Reusar módulo de pedidos existente
|
|
107
|
+
- Criar service de pagamento em src/lib/payments/
|
|
108
|
+
- Evitar alterar fluxo de carrinho fora do checkout
|
|
109
|
+
- Risco: controller pode passar de 500 linhas; dividir em service + validator
|
|
110
|
+
|
|
111
|
+
@discovery-design-doc > Design doc criado em: .aioson/context/design-doc-checkout.md
|
|
112
|
+
Readiness criado em: .aioson/context/readiness-checkout.md
|
|
113
|
+
Recomendação: seguir para @dev quando Gate B estiver aprovado.
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Saídas em disco
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
.aioson/context/design-doc.md ← design doc do projeto
|
|
122
|
+
.aioson/context/readiness.md ← readiness do projeto
|
|
123
|
+
.aioson/context/design-doc-{slug}.md ← design doc da feature
|
|
124
|
+
.aioson/context/readiness-{slug}.md ← readiness da feature
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Como ele lê seu projeto
|
|
130
|
+
|
|
131
|
+
- `.aioson/context/project.context.md`
|
|
132
|
+
- Artefatos existentes: `prd.md`, `prd-{slug}.md`, `requirements-{slug}.md`, `spec.md`, `spec-{slug}.md`, `discovery.md`, `architecture.md` (quando relevantes)
|
|
133
|
+
- Design docs existentes: `design-doc.md`, `design-doc-{slug}.md`, `readiness.md`, `readiness-{slug}.md`
|
|
134
|
+
- `.aioson/context/project-map.md` quando existir, para resolver caminhos canônicos
|
|
135
|
+
- Input direto: briefing, ticket, screenshots, arquivos que você fornecer
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Handoff típico
|
|
140
|
+
|
|
141
|
+
- **Vem de:** pedido direto com um request vago ou ticket
|
|
142
|
+
- **Também vem de:** `@architect` no workflow SMALL/MEDIUM, como consolidação pré-dev
|
|
143
|
+
- **Vai para:** o agente recomendado no `readiness.md` — tipicamente `@product` quando o escopo ainda está aberto, ou `@dev` quando o readiness está pronto
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Próximo passo
|
|
148
|
+
|
|
149
|
+
- Para framing pré-PRD com discovery frameworks: ficha `briefing.md` (em construção)
|
|
150
|
+
- Para ciclo completo: [Primeiro projeto do zero](../2-comecar/primeiro-projeto.md)
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# @scope-check
|
|
2
|
+
|
|
3
|
+
## Para que serve
|
|
4
|
+
|
|
5
|
+
O `@scope-check` valida se intenção, plano e artefatos estão alinhados antes de continuar para a implementação.
|
|
6
|
+
Ele evita drift de escopo: antes de codar, confere se tudo que foi decidido está presente no PRD/especificações e no plano aprovado; após mudanças relevantes, confirma se as correções alteraram contrato, comportamento ou escopo.
|
|
7
|
+
|
|
8
|
+
## Quando usar
|
|
9
|
+
|
|
10
|
+
- Antes de `@dev` em fluxos **SMALL** e **MEDIUM** (pré-dev).
|
|
11
|
+
- Após `@dev` e/ou correções de `@qa`/`@tester`/`@pentester`, quando houve mudança material de código ou comportamento.
|
|
12
|
+
- Em reaberturas de feature com risco de quebra de contrato entre o que foi planejado e o que está sendo entregue.
|
|
13
|
+
|
|
14
|
+
## Modos
|
|
15
|
+
|
|
16
|
+
- `pre-dev` (padrão): valida intenção e plano antes da primeira implementação.
|
|
17
|
+
- `post-dev` (opcional): valida se o diff entregue bate com o plano aprovado.
|
|
18
|
+
- `post-fix` (opcional): valida se correções mantiveram o escopo e contrato.
|
|
19
|
+
- `final` (opcional): reconcilia intenção, plano e resultado de fechamento.
|
|
20
|
+
|
|
21
|
+
## Arquivos de entrada
|
|
22
|
+
|
|
23
|
+
- `project.context.md`
|
|
24
|
+
- `prd.md` ou `prd-{slug}.md`
|
|
25
|
+
- `requirements-{slug}.md`
|
|
26
|
+
- `spec-{slug}.md`
|
|
27
|
+
- `architecture.md`
|
|
28
|
+
- `design-doc.md`, `implementation-plan-{slug}.md`, `dev-state.md` (quando existirem)
|
|
29
|
+
- `security-findings-{slug}.json` e outros artefatos de revisão (quando aplicável)
|
|
30
|
+
|
|
31
|
+
## Saída esperada
|
|
32
|
+
|
|
33
|
+
Cria/atualiza:
|
|
34
|
+
|
|
35
|
+
- `.aioson/context/scope-check.md` (modo projeto)
|
|
36
|
+
- `.aioson/context/scope-check-{slug}.md` (modo feature)
|
|
37
|
+
|
|
38
|
+
O relatório deve indicar:
|
|
39
|
+
|
|
40
|
+
- `status`: `approved | patched | needs-product | needs-analyst-redo | needs-architecture | needs-dev-fix | needs-qa-recheck | blocked`
|
|
41
|
+
- `next_agent`
|
|
42
|
+
- principais divergências encontradas e impacto
|
|
43
|
+
- decisão objetiva de continuação ou bloqueio
|
|
44
|
+
|
|
45
|
+
## Regras duras
|
|
46
|
+
|
|
47
|
+
- Não aprova entrega quando o que foi implementado diverge de requisito, AC ou decisão já aprovada.
|
|
48
|
+
- Não inventa arquivos ou comportamentos não rastreados por artefatos.
|
|
49
|
+
- Não aprova por “o código funciona” se houver divergência funcional relevante.
|
|
50
|
+
- Em MICRO, mantém o relatório mais leve; em SMALL/MEDIUM pode ser mais detalhado.
|
|
51
|
+
|
|
52
|
+
## Handoff padrão
|
|
53
|
+
|
|
54
|
+
- `approved` ou `patched`: segue para o próximo agente do fluxo.
|
|
55
|
+
- `needs-*`: interrompe o fluxo e encaminha com pedido explícito de correção no dono do estágio anterior.
|
|
56
|
+
- `blocked`: pede uma pergunta objetiva de decisão ao usuário/owner.
|
|
57
|
+
|
|
58
|
+
## Comando de ativação
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
/aioson:agent:scope-check
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
No modo CLI, use também o contexto/artefatos corretos para fechar o contrato antes de avançar para `@dev`/`@qa`.
|
|
65
|
+
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
|---|---|
|
|
29
29
|
| [fluxo-artefatos.md](./fluxo-artefatos.md) | Mapa de quem cria o quê: @product → @sheldon → @analyst → @dev → @qa |
|
|
30
30
|
| [feature-archive.md](./feature-archive.md) | Arquivamento automático de features concluídas via feature:close |
|
|
31
|
+
| [feature-export.md](./feature-export.md) | Exportar (copiar) todos os artefatos de uma feature para um local limpo — entregável portátil |
|
|
31
32
|
| [memoria-e-contexto.md](./memoria-e-contexto.md) | Memória persistente, context cache, context search, context monitor — guia consolidado |
|
|
32
33
|
| [runtime-observability.md](./runtime-observability.md) | Telemetria SQLite, dashboard, runtime:emit, agent:done |
|
|
33
34
|
| [hooks-session-guard.md](./hooks-session-guard.md) | Hooks automáticos de visibilidade no dashboard para Claude Code, Antigravity e Codex |
|
|
@@ -222,6 +222,7 @@ Scripts determinísticos que movem verificações de estado, validação de arte
|
|
|
222
222
|
| `state:save` | Salva ponto de continuação em `dev-state.md` (fase, status, spec-version, histórico) | Durante `@dev` ao fim de cada fase ou antes de encerrar |
|
|
223
223
|
| `feature:close` | Fecha feature com verdict PASS/FAIL: atualiza spec, features.md, project-pulse.md e dispara archivamento automático | Após QA sign-off — chamado pelo `@qa` automaticamente |
|
|
224
224
|
| `feature:archive` | Move artefatos de uma feature `done` para `.aioson/context/done/{slug}/` e atualiza o manifest | Chamado pelo `feature:close` automaticamente; também disponível para retroativo com `--dry-run` e `--restore` |
|
|
225
|
+
| `feature:export` | **Copia** todos os artefatos de uma feature para um `--out` limpo, sem mexer na origem; gera `INDEX.md` | Exportar specs para analisar fora, entregar a cliente, ou usar o AIOSON só como gerador de specs. Veja [feature-export.md](./feature-export.md) |
|
|
225
226
|
| `gate:check` | Valida pré-requisitos e artefatos de um phase gate (A/B/C/D); retorna PASS ou BLOCKED | Antes de avançar para o próximo agente |
|
|
226
227
|
| `artifact:validate` | Verifica a cadeia completa de artefatos de uma feature (PRD → spec → plano → conformance) | A qualquer momento para checar completude |
|
|
227
228
|
| `workflow:execute` | Monta e executa o plano de agentes baseado na classificação; aceita `--dry-run` e `--start-from` | Para orquestrar features sem o dashboard |
|
|
@@ -521,8 +522,8 @@ Importante:
|
|
|
521
522
|
- `scan:project` sozinho nao gera `discovery.md`
|
|
522
523
|
- `scan:project` nunca gera `architecture.md`
|
|
523
524
|
- se `discovery.md` e `skeleton-system.md` ja existirem e voce rodar com `--with-llm`, o scanner agora entra em modo de atualizacao por padrao: usa os arquivos atuais como memoria base, gera a nova versao consolidada e cria backup automatico em `.aioson/backups/` antes de sobrescrever
|
|
524
|
-
- em projetos SMALL brownfield, o fluxo tipico depois do scan completo e `@analyst` -> `@scope-check` -> `@architect` -> `@dev`
|
|
525
|
-
- sem API LLM configurada, o fluxo local tambem e valido: `scan:project --folder=...` -> `@analyst` no seu Codex/Claude -> `@scope-check` -> `@architect` -> `@dev`
|
|
525
|
+
- em projetos SMALL brownfield, o fluxo tipico depois do scan completo e `@analyst` -> `@scope-check` -> `@architect` -> `@dev`
|
|
526
|
+
- sem API LLM configurada, o fluxo local tambem e valido: `scan:project --folder=...` -> `@analyst` no seu Codex/Claude -> `@scope-check` -> `@architect` -> `@dev`
|
|
526
527
|
|
|
527
528
|
O parâmetro `--folder` agora é obrigatório. Ele define quais pastas do projeto devem ganhar um mapa completo com pastas e arquivos. Você pode informar uma pasta ou várias separadas por vírgula.
|
|
528
529
|
|
|
@@ -574,8 +575,8 @@ Quando usar cada modo:
|
|
|
574
575
|
|
|
575
576
|
Fluxos recomendados:
|
|
576
577
|
|
|
577
|
-
- **Com API no aioson:** `scan:project --folder=src --with-llm --provider=...` -> `@analyst` -> `@scope-check` -> `@architect` -> `@dev`
|
|
578
|
-
- **Sem API no aioson:** `scan:project --folder=src` -> abrir seu AI CLI -> `@analyst` -> `@scope-check` -> `@architect` -> `@dev`
|
|
578
|
+
- **Com API no aioson:** `scan:project --folder=src --with-llm --provider=...` -> `@analyst` -> `@scope-check` -> `@architect` -> `@dev`
|
|
579
|
+
- **Sem API no aioson:** `scan:project --folder=src` -> abrir seu AI CLI -> `@analyst` -> `@scope-check` -> `@architect` -> `@dev`
|
|
579
580
|
- **Com contexto mínimo para tarefa específica:** `scan:project --folder=src` -> `context:pack --agent=dev --goal="..." --module=src`
|
|
580
581
|
- Se o seu cliente nao entender `@analyst`, gere um prompt pronto com `aioson agent:prompt analyst --tool=codex` ou troque `--tool` para o cliente correto
|
|
581
582
|
|
|
@@ -194,6 +194,7 @@ aioson feature:archive . --feature=checkout --json
|
|
|
194
194
|
|
|
195
195
|
## Veja também
|
|
196
196
|
|
|
197
|
+
- [Feature Export](./feature-export.md) — **copiar** (não mover) os artefatos para um local limpo, sem mexer na origem
|
|
197
198
|
- [Feature Dossier](./feature-dossier.md) — o que o dossier carrega *antes* de arquivar a feature
|
|
198
199
|
- [Continuidade entre sessões](../3-receitas/continuidade-entre-sessoes.md) — retomar feature interrompida com dossier + dev-resume
|
|
199
200
|
- [Fluxo de artefatos](./fluxo-artefatos.md) — mapa de quem cria o quê e quem consome
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# Feature Export — Exportar artefatos para um local limpo
|
|
2
|
+
|
|
3
|
+
O `feature:export` **copia** todos os artefatos de uma feature para um diretório de saída que você escolhe, deixando a árvore original intacta.
|
|
4
|
+
|
|
5
|
+
É o irmão não-destrutivo do [`feature:archive`](./feature-archive.md): em vez de **mover** os arquivos para `.aioson/context/done/{slug}/`, ele **copia** para um `--out` arbitrário. O objetivo é transformar a saída em markdown do AIOSON num entregável portátil — para analisar as specs fora do projeto, entregar a um cliente, ou usar o AIOSON apenas como gerador de specs.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Como funciona
|
|
10
|
+
|
|
11
|
+
O comando reutiliza exatamente a mesma enumeração de artefatos do `feature:archive` (incluindo o guard contra colisão de slugs parecidos), mas:
|
|
12
|
+
|
|
13
|
+
- **Copia** em vez de mover — a árvore de origem nunca é alterada.
|
|
14
|
+
- Escreve no `--out` que você indicar (ou em `<projeto>/{slug}-export` por padrão).
|
|
15
|
+
- Funciona tanto para features **ativas** (artefatos no root + diretórios por slug) quanto para features **já arquivadas** (`context/done/{slug}/`).
|
|
16
|
+
- Gera um `INDEX.md` listando tudo que foi exportado e a origem de cada arquivo.
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# Exporta a feature checkout para ./checkout-export/ (mirrored + INDEX.md)
|
|
20
|
+
aioson feature:export . --feature=checkout
|
|
21
|
+
|
|
22
|
+
# Destino customizado
|
|
23
|
+
aioson feature:export . --feature=checkout --out=../checkout-specs
|
|
24
|
+
|
|
25
|
+
# Tudo num diretório só (sem subpastas), nomes prefixados por label
|
|
26
|
+
aioson feature:export . --feature=checkout --flatten
|
|
27
|
+
|
|
28
|
+
# Sem o INDEX.md
|
|
29
|
+
aioson feature:export . --feature=checkout --no-index
|
|
30
|
+
|
|
31
|
+
# Ver o que seria copiado sem escrever nada
|
|
32
|
+
aioson feature:export . --feature=checkout --dry-run
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## O que é copiado
|
|
38
|
+
|
|
39
|
+
A mesma superfície que o `feature:archive` identifica:
|
|
40
|
+
|
|
41
|
+
- Arquivos no **root** de `.aioson/context/` no padrão `*-{slug}.{md,yaml,yml,json}` (ex.: `prd-checkout.md`, `spec-checkout.md`, `requirements-checkout.md`, `conformance-checkout.yaml`, `security-findings-checkout.json`).
|
|
42
|
+
- Diretórios por slug: `context/features/{slug}/` (dossier), `.aioson/plans/{slug}/`, `.aioson/briefings/{slug}/`.
|
|
43
|
+
- `context/done/{slug}/` quando a feature já foi arquivada (sempre incluído).
|
|
44
|
+
|
|
45
|
+
**O que nunca é copiado:** arquivos globais (`project.context.md`, `project-pulse.md`, `features.md`, etc.) e arquivos de outra feature — o guard contra colisão garante que `checkout-v2` nunca vaze numa exportação de `checkout`.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Estrutura de saída
|
|
50
|
+
|
|
51
|
+
### Mirrored (padrão)
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
checkout-export/
|
|
55
|
+
├── INDEX.md ← manifesto gerado
|
|
56
|
+
├── prd-checkout.md ← arquivos do root
|
|
57
|
+
├── spec-checkout.md
|
|
58
|
+
├── requirements-checkout.md
|
|
59
|
+
├── dossier/
|
|
60
|
+
│ └── dossier.md
|
|
61
|
+
├── plans/
|
|
62
|
+
│ ├── manifest.md
|
|
63
|
+
│ └── plan-phase-1.md
|
|
64
|
+
├── briefings/
|
|
65
|
+
│ └── briefing.md
|
|
66
|
+
└── done/ ← presente se a feature já foi arquivada
|
|
67
|
+
└── ...
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Flatten (`--flatten`)
|
|
71
|
+
|
|
72
|
+
Tudo num nível só. Arquivos do root mantêm o nome; arquivos aninhados viram `label-...-arquivo.ext` (livre de colisão por construção):
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
checkout-export/
|
|
76
|
+
├── INDEX.md
|
|
77
|
+
├── prd-checkout.md
|
|
78
|
+
├── spec-checkout.md
|
|
79
|
+
├── dossier-dossier.md
|
|
80
|
+
├── plans-manifest.md
|
|
81
|
+
├── plans-plan-phase-1.md
|
|
82
|
+
└── briefings-briefing.md
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## O INDEX.md
|
|
88
|
+
|
|
89
|
+
Gerado por padrão (desabilite com `--no-index`). Lista cada arquivo exportado, o grupo de origem e o caminho fonte:
|
|
90
|
+
|
|
91
|
+
```markdown
|
|
92
|
+
# Feature Export — checkout
|
|
93
|
+
|
|
94
|
+
> 7 file(s) copied from AIOSON on 2026-06-08.
|
|
95
|
+
> Non-destructive snapshot — the original artefacts were left untouched.
|
|
96
|
+
|
|
97
|
+
| group | file | source |
|
|
98
|
+
|-------|------|--------|
|
|
99
|
+
| context | prd-checkout.md | .aioson/context/prd-checkout.md |
|
|
100
|
+
| dossier | dossier/dossier.md | .aioson/context/features/checkout/dossier.md |
|
|
101
|
+
| plans | plans/manifest.md | .aioson/plans/checkout/manifest.md |
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Opções
|
|
107
|
+
|
|
108
|
+
| Opção | Padrão | Descrição |
|
|
109
|
+
|-------|--------|-----------|
|
|
110
|
+
| `--feature=<slug>` | — | Identificador da feature (obrigatório). |
|
|
111
|
+
| `--out=<dir>` | `<projeto>/{slug}-export` | Diretório de destino. |
|
|
112
|
+
| `--flatten` | mirrored | Achata a estrutura num nível só. |
|
|
113
|
+
| `--no-index` | gera INDEX | Não escreve o `INDEX.md`. |
|
|
114
|
+
| `--dry-run` | — | Mostra o que seria copiado sem escrever nada. |
|
|
115
|
+
| `--json` | — | Saída JSON estruturada (`outDir`, `count`, `copied`, `index`). |
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Saída JSON
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
aioson feature:export . --feature=checkout --json
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
```json
|
|
126
|
+
{
|
|
127
|
+
"ok": true,
|
|
128
|
+
"slug": "checkout",
|
|
129
|
+
"outDir": "checkout-export",
|
|
130
|
+
"flatten": false,
|
|
131
|
+
"count": 7,
|
|
132
|
+
"copied": ["prd-checkout.md", "spec-checkout.md", "dossier/dossier.md"],
|
|
133
|
+
"index": true
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Diferenças em relação ao feature:archive
|
|
140
|
+
|
|
141
|
+
| | `feature:archive` | `feature:export` |
|
|
142
|
+
|---|---|---|
|
|
143
|
+
| Operação | **move** (`fs.rename`) | **copia** (não-destrutivo) |
|
|
144
|
+
| Destino | `.aioson/context/done/{slug}/` (dentro do projeto) | `--out` arbitrário |
|
|
145
|
+
| Quem aciona | agentes (via `feature:close`) | o usuário |
|
|
146
|
+
| Guard de status | exige `done` (ou `--force`) | nenhum — exporta feature em progresso também |
|
|
147
|
+
| Efeito na origem | remove do root | intacta |
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Veja também
|
|
152
|
+
|
|
153
|
+
- [Feature Archive](./feature-archive.md) — limpeza automática do contexto (move, não copia)
|
|
154
|
+
- [Feature Dossier](./feature-dossier.md) — o que o dossier consolida antes de exportar/arquivar
|
|
155
|
+
- [Fluxo de artefatos](./fluxo-artefatos.md) — mapa de quem cria o quê
|
package/docs/pt/README.md
CHANGED
|
@@ -37,7 +37,7 @@ Esta é a porta de entrada da documentação em português. Não é um índice a
|
|
|
37
37
|
11. [Continuidade entre sessões](./3-receitas/continuidade-entre-sessoes.md) — feature dossier, dev-resume, drift detection
|
|
38
38
|
|
|
39
39
|
### Quero a referência técnica de um agente ou comando
|
|
40
|
-
- **[Fichas dos 29 agentes](./4-agentes/README.md)** — uma ficha por agente, com diálogo típico, saídas em disco e handoff
|
|
40
|
+
- **[Fichas dos 29 agentes (30 entradas com 1 alias)](./4-agentes/README.md)** — uma ficha por agente, com diálogo típico, saídas em disco e handoff
|
|
41
41
|
- **[Referência técnica completa](./5-referencia/README.md)** — 32 docs organizados em 5 categorias (novos 2026, artefatos, CLI/config, agentes/squads, skills/design)
|
|
42
42
|
- [Guia de agentes (legado)](./agentes.md) — visão tabular alternativa
|
|
43
43
|
|
|
@@ -99,7 +99,7 @@ Atualmente só PT está em reforma. EN/ES/FR continuam usando os arquivos legado
|
|
|
99
99
|
## Status desta documentação
|
|
100
100
|
|
|
101
101
|
**Fase A (entender + começar)** — concluída · 8 docs em `1-entender/` e `2-comecar/`.
|
|
102
|
-
**Fase B (receitas práticas + ficha por agente)** — concluída · 11 receitas em `3-receitas/` +
|
|
102
|
+
**Fase B (receitas práticas + ficha por agente)** — concluída · 11 receitas em `3-receitas/` + 29 fichas em `4-agentes/`.
|
|
103
103
|
**Fase C (referência técnica completa)** — concluída · 32 docs em `5-referencia/`, com 6 totalmente novos cobrindo features 2026 antes não documentadas em PT.
|
|
104
104
|
**Fase D (trilhas de workflow)** — concluída · 3 trilhas canônicas de feature: briefing→PRD, plans externos, e trilha completa com @sheldon.
|
|
105
105
|
|
package/docs/pt/agentes.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# Guia de Agentes
|
|
2
2
|
|
|
3
|
-
> **Versão tabular alternativa (legado).** Para fichas individuais detalhadas com diálogos, saídas em disco e handoff, veja [`4-agentes/README.md`](./4-agentes/README.md).
|
|
3
|
+
> **Versão tabular alternativa (legado).** Para fichas individuais detalhadas com diálogos, saídas em disco e handoff, veja [`4-agentes/README.md`](./4-agentes/README.md).
|
|
4
|
+
|
|
5
|
+
> `@pair` é alias de `@deyvin` e não possui ficha separada.
|
|
4
6
|
|
|
5
7
|
> Quando usar cada agente, o que ele entrega e como ativá-lo.
|
|
6
8
|
|
package/package.json
CHANGED
package/src/agent-manifests.js
CHANGED
|
@@ -7,11 +7,16 @@ const { isCanonicalAgent } = require('./dossier/schema');
|
|
|
7
7
|
|
|
8
8
|
const MANIFESTS_RELATIVE_DIR = '.aioson/agents/manifests';
|
|
9
9
|
const ALLOWED_AUTONOMY_MODES = new Set(['guarded', 'trusted', 'headless']);
|
|
10
|
+
// Canonical scope-check modes. Kept in sync with SCOPE_CHECK_MODES in
|
|
11
|
+
// src/commands/workflow-next.js and src/commands/agents.js — this is the read
|
|
12
|
+
// path that validates the manifest's declared check_modes so the field cannot
|
|
13
|
+
// silently drift to a mode the router does not understand.
|
|
14
|
+
const ALLOWED_CHECK_MODES = new Set(['pre-dev', 'post-dev', 'post-fix', 'final']);
|
|
10
15
|
|
|
11
16
|
// SF-project-16: every field that influences autonomy is validated on read.
|
|
12
|
-
// Unknown fields are passed through (forward-compat), but autonomy_modes
|
|
13
|
-
// filtered to
|
|
14
|
-
// before the file is even opened.
|
|
17
|
+
// Unknown fields are passed through (forward-compat), but autonomy_modes and
|
|
18
|
+
// check_modes are filtered to their allowed sets. Non-canonical agent ids are
|
|
19
|
+
// refused before the file is even opened.
|
|
15
20
|
function sanitizeManifest(raw) {
|
|
16
21
|
if (!raw || typeof raw !== 'object') return null;
|
|
17
22
|
const out = { ...raw };
|
|
@@ -20,6 +25,10 @@ function sanitizeManifest(raw) {
|
|
|
20
25
|
.filter((mode) => typeof mode === 'string' && ALLOWED_AUTONOMY_MODES.has(mode));
|
|
21
26
|
out.autonomy_modes = filtered;
|
|
22
27
|
}
|
|
28
|
+
if (Array.isArray(raw.check_modes)) {
|
|
29
|
+
out.check_modes = raw.check_modes
|
|
30
|
+
.filter((mode) => typeof mode === 'string' && ALLOWED_CHECK_MODES.has(mode));
|
|
31
|
+
}
|
|
23
32
|
return out;
|
|
24
33
|
}
|
|
25
34
|
|
|
@@ -78,6 +87,8 @@ function buildAgentCapabilitySummary(manifest, tool) {
|
|
|
78
87
|
|
|
79
88
|
module.exports = {
|
|
80
89
|
MANIFESTS_RELATIVE_DIR,
|
|
90
|
+
ALLOWED_AUTONOMY_MODES,
|
|
91
|
+
ALLOWED_CHECK_MODES,
|
|
81
92
|
readAgentManifest,
|
|
82
93
|
resolveAgentCapabilities,
|
|
83
94
|
supportsTool,
|