atlas-workflow 0.9.2 → 0.9.4
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/README.md +18 -9
- package/VERSION +1 -1
- package/build/bump-version.mjs +6 -21
- package/build/cli/atlas-init.mjs +92 -5
- package/build/tests/etapa3.test.mjs +36 -6
- package/hosts/opencode/.opencode/atlas/VERSION +1 -1
- package/hosts/opencode/.opencode/atlas/orchestrator/README.md +15 -2
- package/hosts/opencode/.opencode/atlas/orchestrator/commands/workflow.md +7 -5
- package/hosts/opencode/.opencode/atlas/orchestrator/references/host-adapters.md +13 -12
- package/hosts/opencode/.opencode/atlas/orchestrator/references/subagent_dispatch.md +11 -1
- package/hosts/opencode/.opencode/atlas/orchestrator/skills/atlas-workflow-orchestrator/SKILL.md +32 -10
- package/hosts/opencode/.opencode/atlas/packages/mcp-server/README.md +2 -2
- package/hosts/opencode/.opencode/atlas/packages/mcp-server/package.json +1 -1
- package/hosts/opencode/.opencode/atlas/packages/mcp-server/server.js +149 -21
- package/hosts/opencode/.opencode/skills/_shared/references/stack-profiles.md +36 -0
- package/hosts/opencode/.opencode/skills/_shared/scripts/document_quality.mjs +37 -1
- package/hosts/opencode/.opencode/skills/atlas-audit/SKILL.md +201 -0
- package/hosts/opencode/.opencode/skills/atlas-audit/agents/openai.yaml +7 -0
- package/hosts/opencode/.opencode/skills/atlas-task-validator/SKILL.md +6 -0
- package/hosts/opencode/.opencode/skills/atlas-workflow-orchestrator/SKILL.md +32 -10
- package/hosts/pi/atlas/VERSION +1 -1
- package/hosts/pi/atlas/orchestrator/README.md +15 -2
- package/hosts/pi/atlas/orchestrator/commands/workflow.md +7 -5
- package/hosts/pi/atlas/orchestrator/references/host-adapters.md +13 -12
- package/hosts/pi/atlas/orchestrator/references/subagent_dispatch.md +11 -1
- package/hosts/pi/atlas/orchestrator/skills/atlas-workflow-orchestrator/SKILL.md +32 -10
- package/hosts/pi/atlas/packages/mcp-server/README.md +2 -2
- package/hosts/pi/atlas/packages/mcp-server/package.json +1 -1
- package/hosts/pi/atlas/packages/mcp-server/server.js +149 -21
- package/hosts/pi/skills/_shared/references/stack-profiles.md +36 -0
- package/hosts/pi/skills/_shared/scripts/document_quality.mjs +37 -1
- package/hosts/pi/skills/atlas-audit/SKILL.md +201 -0
- package/hosts/pi/skills/atlas-audit/agents/openai.yaml +7 -0
- package/hosts/pi/skills/atlas-task-validator/SKILL.md +6 -0
- package/hosts/pi/skills/atlas-workflow-orchestrator/SKILL.md +32 -10
- package/hosts/zcode/.zcode-plugin/plugin.json +27 -0
- package/hosts/zcode/agents/atlas-direct-execute.md +31 -0
- package/hosts/zcode/agents/atlas-findings-repair.md +39 -0
- package/hosts/zcode/agents/atlas-plan-execute.md +33 -0
- package/hosts/zcode/agents/atlas-slice-review.md +27 -0
- package/hosts/zcode/agents/atlas-task-validator.md +138 -0
- package/hosts/zcode/packages/mcp-server/README.md +29 -0
- package/hosts/zcode/packages/mcp-server/VERSION +1 -0
- package/hosts/zcode/packages/mcp-server/package.json +15 -0
- package/hosts/zcode/packages/mcp-server/server.js +3963 -0
- package/hosts/zcode/packages/orchestrator/README.md +283 -0
- package/hosts/zcode/packages/orchestrator/commands/workflow.md +39 -0
- package/hosts/zcode/packages/orchestrator/defaults/paths.md +21 -0
- package/hosts/zcode/packages/orchestrator/references/host-adapters.md +106 -0
- package/hosts/zcode/packages/orchestrator/references/qa_s13_matrix.md +141 -0
- package/hosts/zcode/packages/orchestrator/references/subagent_dispatch.md +52 -0
- package/hosts/zcode/packages/orchestrator/skills/atlas-workflow-orchestrator/SKILL.md +411 -0
- package/hosts/zcode/packages/templates/BACKLOG_MESTRE_TEMPLATE.md +855 -0
- package/hosts/zcode/packages/templates/BOUNDARY_PRD_PLAN.md +93 -0
- package/hosts/zcode/packages/templates/PERGUNTAS_EM_ABERTO_TEMPLATE.md +139 -0
- package/hosts/zcode/packages/templates/PLAN_TEMPLATE.md +146 -0
- package/hosts/zcode/packages/templates/PRD_TEMPLATE.md +150 -0
- package/hosts/zcode/packages/templates/STATE_FILE_SCHEMA.md +56 -0
- package/hosts/zcode/skills/_shared/references/stack-profiles.md +72 -0
- package/hosts/zcode/skills/_shared/scripts/document_quality.mjs +288 -0
- package/hosts/zcode/skills/atlas-audit/SKILL.md +201 -0
- package/hosts/zcode/skills/atlas-audit/agents/openai.yaml +7 -0
- package/hosts/zcode/skills/atlas-backlog-generator/SKILL.md +93 -0
- package/hosts/zcode/skills/atlas-backlog-generator/agents/openai.yaml +4 -0
- package/hosts/zcode/skills/atlas-direct-execute/SKILL.md +221 -0
- package/hosts/zcode/skills/atlas-direct-execute/agents/openai.yaml +7 -0
- package/hosts/zcode/skills/atlas-findings-repair/SKILL.md +158 -0
- package/hosts/zcode/skills/atlas-findings-repair/agents/openai.yaml +7 -0
- package/hosts/zcode/skills/atlas-plan-execute/SKILL.md +175 -0
- package/hosts/zcode/skills/atlas-plan-execute/agents/openai.yaml +7 -0
- package/hosts/zcode/skills/atlas-plan-execute/references/plan-contract.md +88 -0
- package/hosts/zcode/skills/atlas-plan-execute/references/quality-gates.md +60 -0
- package/hosts/zcode/skills/atlas-plan-execute/scripts/check_budget_state.py +96 -0
- package/hosts/zcode/skills/atlas-plan-execute/scripts/extract_plan_contract.py +191 -0
- package/hosts/zcode/skills/atlas-plan-execute/scripts/validate_gate_result.py +56 -0
- package/hosts/zcode/skills/atlas-plan-handoff/SKILL.md +183 -0
- package/hosts/zcode/skills/atlas-plan-handoff/agents/openai.yaml +7 -0
- package/hosts/zcode/skills/atlas-prd-interview/SKILL.md +82 -0
- package/hosts/zcode/skills/atlas-prd-interview/agents/openai.yaml +7 -0
- package/hosts/zcode/skills/atlas-slice-review/SKILL.md +156 -0
- package/hosts/zcode/skills/atlas-slice-review/agents/openai.yaml +4 -0
- package/hosts/zcode/skills/atlas-slice-review/references/review-contract.md +58 -0
- package/hosts/zcode/skills/atlas-slice-review/references/scenario-lenses.md +57 -0
- package/hosts/zcode/skills/atlas-slice-review/scripts/classify_findings.mjs +60 -0
- package/hosts/zcode/skills/atlas-slice-review/scripts/classify_findings.py +24 -0
- package/hosts/zcode/skills/atlas-slice-review/scripts/extract_review_slice.py +158 -0
- package/hosts/zcode/skills/atlas-sprint-prd-generator/SKILL.md +77 -0
- package/hosts/zcode/skills/atlas-sprint-prd-generator/agents/openai.yaml +7 -0
- package/hosts/zcode/skills/atlas-task-validator/SKILL.md +179 -0
- package/hosts/zcode/skills/atlas-task-validator/agents/openai.yaml +7 -0
- package/hosts/zcode/skills/atlas-workflow-orchestrator/SKILL.md +411 -0
- package/package.json +1 -1
- package/plugins/atlas-workflow-orchestrator/.codex-plugin/plugin.json +5 -4
- package/plugins/atlas-workflow-orchestrator/VERSION +1 -1
- package/plugins/atlas-workflow-orchestrator/orchestrator/README.md +15 -2
- package/plugins/atlas-workflow-orchestrator/orchestrator/commands/workflow.md +7 -5
- package/plugins/atlas-workflow-orchestrator/orchestrator/references/host-adapters.md +13 -12
- package/plugins/atlas-workflow-orchestrator/orchestrator/references/subagent_dispatch.md +11 -1
- package/plugins/atlas-workflow-orchestrator/orchestrator/skills/atlas-workflow-orchestrator/SKILL.md +32 -10
- package/plugins/atlas-workflow-orchestrator/packages/mcp-server/README.md +2 -2
- package/plugins/atlas-workflow-orchestrator/packages/mcp-server/package.json +1 -1
- package/plugins/atlas-workflow-orchestrator/packages/mcp-server/server.js +149 -21
- package/plugins/atlas-workflow-orchestrator/packages/skills/_shared/references/stack-profiles.md +36 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/_shared/scripts/document_quality.mjs +37 -1
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-audit/SKILL.md +201 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-audit/agents/openai.yaml +7 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-task-validator/SKILL.md +6 -0
- package/plugins/atlas-workflow-orchestrator/skills/_shared/references/stack-profiles.md +36 -0
- package/plugins/atlas-workflow-orchestrator/skills/_shared/scripts/document_quality.mjs +37 -1
- package/plugins/atlas-workflow-orchestrator/skills/atlas-audit/SKILL.md +201 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-audit/agents/openai.yaml +7 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-task-validator/SKILL.md +6 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-workflow-orchestrator/SKILL.md +32 -10
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: atlas-audit
|
|
3
|
+
description: Skill/mode universal de auditoria Atlas. Use para `/workflow audit <target>` com flags opcionais `--handoff` e `--scope <descrição>`. Audita código contra regras locais, boas práticas da stack detectada e complexidade acidental estilo Ponytail, sem corrigir código nem executar plano.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Atlas Audit
|
|
7
|
+
|
|
8
|
+
Auditoria universal, framework-agnóstica. Esta skill lê o repositório real, audita o `target` informado e entrega relatório de achados. Opcionalmente gera handoff Atlas-style para correção futura. **Nunca altera código. Nunca executa plano.**
|
|
9
|
+
|
|
10
|
+
## Sintaxe
|
|
11
|
+
|
|
12
|
+
```text
|
|
13
|
+
/workflow audit <target>
|
|
14
|
+
/workflow audit <target> --handoff
|
|
15
|
+
/workflow audit <target> --scope <descrição>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
`target` pode ser arquivo, diretório, pacote, módulo, feature, PRD/plano como referência ou descrição que aponte para um boundary localizável. Se não for possível resolver o boundary em disco, pare e peça um target mais preciso.
|
|
19
|
+
|
|
20
|
+
## Contrato duro
|
|
21
|
+
|
|
22
|
+
- Auditar o target informado, não o repo inteiro por padrão.
|
|
23
|
+
- Diagnóstico factual vem antes de proposta de correção.
|
|
24
|
+
- Todo achado precisa de evidência concreta `arquivo:linha`.
|
|
25
|
+
- Não criar finding por preferência genérica sem evidência local.
|
|
26
|
+
- Regras locais reais prevalecem sobre boas práticas genéricas.
|
|
27
|
+
- Não migrar lógica especialista de Flutter/Dart para o core universal.
|
|
28
|
+
- Adapters por stack/backend são opcionais; fallback universal deve funcionar.
|
|
29
|
+
- Não inventar comandos de validação: usar apenas manifests/configs/scripts reais.
|
|
30
|
+
- `--handoff` gera artefato de plano em `.atlas/plans/`, mas não chama executor.
|
|
31
|
+
|
|
32
|
+
## Fluxo obrigatório
|
|
33
|
+
|
|
34
|
+
1. **Resolver boundary**
|
|
35
|
+
- Identificar `project_root`, `target`, paths reais e exclusões óbvias (`node_modules`, `build`, `dist`, `.git`, caches).
|
|
36
|
+
- Se `--scope` existir, tratar como recorte adicional, não expansão automática para repo inteiro.
|
|
37
|
+
- Registrar limitações se parte do target estiver ausente, gerada ou ilegível.
|
|
38
|
+
|
|
39
|
+
2. **Ler regras locais reais**
|
|
40
|
+
- Procurar e consultar, quando existirem e forem relevantes ao boundary: `AGENTS.md`, `CLAUDE.md`, `README.md`, docs de rules, `project-rules/`, configs de lint/format/typecheck/test, manifests e arquivos de workspace.
|
|
41
|
+
- Não copiar regras integralmente no relatório; listar só fontes consultadas e regras aplicáveis.
|
|
42
|
+
|
|
43
|
+
3. **Detectar stack/perfis**
|
|
44
|
+
- Usar `../_shared/references/stack-profiles.md` como baseline.
|
|
45
|
+
- Detectar por manifests/configs/comandos reais, não só por extensão.
|
|
46
|
+
- Perfis esperados quando houver sinal: Dart/Flutter, TypeScript/Node, Python, Go, Rust, Java/Kotlin, Firebase, Supabase, REST/OpenAPI.
|
|
47
|
+
- Se múltiplos perfis coexistirem, aplicar cada regra só ao boundary onde o sinal foi ativado.
|
|
48
|
+
|
|
49
|
+
4. **Entender arquitetura antes de julgar**
|
|
50
|
+
- Mapear camadas reais, fluxo de dados, contratos, entrypoints, DI, estado, side effects, testes e consumidores afetados.
|
|
51
|
+
- Comparar com padrões existentes do repo antes de classificar algo como violação.
|
|
52
|
+
|
|
53
|
+
5. **Auditar por lentes**
|
|
54
|
+
- Arquitetura e ownership.
|
|
55
|
+
- Contrato/dados/schemas/mappers/DTOs.
|
|
56
|
+
- Erros, falhas parciais, retries, cleanup.
|
|
57
|
+
- Segurança, authz/authn, segredos, trust boundaries.
|
|
58
|
+
- Estado, concorrência, lifecycle, idempotência.
|
|
59
|
+
- Fluxos previstos e imprevistos.
|
|
60
|
+
- Testes e validação declarada.
|
|
61
|
+
- Observabilidade, logs e diagnóstico.
|
|
62
|
+
- Manutenção/DX.
|
|
63
|
+
|
|
64
|
+
6. **Ponytail pass final**
|
|
65
|
+
- Procurar abstração inútil, wrapper sem valor, código morto, duplicação simples, dependência excessiva, branching/config acidental e complexidade que não protege segurança/contrato/dados.
|
|
66
|
+
- Só registrar se houver simplificação clara e segura, com evidência local.
|
|
67
|
+
|
|
68
|
+
## Severidade
|
|
69
|
+
|
|
70
|
+
- `P0`: quebra crítica, perda/corrupção de dados, bypass de segurança, execução impossível.
|
|
71
|
+
- `P1`: bug provável em fluxo principal, contrato errado, regressão relevante, risco alto.
|
|
72
|
+
- `P2`: gap importante, cenário não coberto, arquitetura frágil, teste/validação faltante com risco real.
|
|
73
|
+
- `P3`: melhoria localizada, simplificação Ponytail, DX/manutenção, observação de baixo risco.
|
|
74
|
+
|
|
75
|
+
## Formato do achado
|
|
76
|
+
|
|
77
|
+
```md
|
|
78
|
+
### AUDIT-001 — P1 — <categoria>
|
|
79
|
+
- Arquivo: `path/to/file.ext:123`
|
|
80
|
+
- Evidência: <fato observado no código>
|
|
81
|
+
- Impacto: <falha/risco concreto>
|
|
82
|
+
- Correção proposta: <direção, sem implementar>
|
|
83
|
+
- Dependências/bloqueios: <se houver>
|
|
84
|
+
- Status: `open`
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Se não houver linha precisa, não promova a finding; registre em limitações ou perguntas.
|
|
88
|
+
|
|
89
|
+
## Relatório de auditoria
|
|
90
|
+
|
|
91
|
+
Responder em pt-BR com:
|
|
92
|
+
|
|
93
|
+
```md
|
|
94
|
+
# Auditoria Atlas — <target>
|
|
95
|
+
|
|
96
|
+
## Stack detectada
|
|
97
|
+
...
|
|
98
|
+
|
|
99
|
+
## Regras locais consultadas
|
|
100
|
+
...
|
|
101
|
+
|
|
102
|
+
## Boundary auditado
|
|
103
|
+
...
|
|
104
|
+
|
|
105
|
+
## Achados
|
|
106
|
+
### P0
|
|
107
|
+
...
|
|
108
|
+
### P1
|
|
109
|
+
...
|
|
110
|
+
### P2
|
|
111
|
+
...
|
|
112
|
+
### P3
|
|
113
|
+
...
|
|
114
|
+
|
|
115
|
+
## Gaps por área
|
|
116
|
+
- Contrato/dados:
|
|
117
|
+
- Segurança:
|
|
118
|
+
- Testes:
|
|
119
|
+
- Arquitetura:
|
|
120
|
+
|
|
121
|
+
## Limitações
|
|
122
|
+
...
|
|
123
|
+
|
|
124
|
+
## Próximo passo seguro
|
|
125
|
+
...
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Se zero achados, diga explicitamente `Nenhum achado P0/P1/P2/P3 com evidência suficiente no boundary auditado` e liste risco residual/limitações.
|
|
129
|
+
|
|
130
|
+
## `--handoff`
|
|
131
|
+
|
|
132
|
+
Quando `--handoff` estiver presente, escrever em `.atlas/plans/PLAN_AUDIT_<slug>.md` um plano **conforme ao `PLAN_TEMPLATE.md` canônico** (resolver em `<raiz-do-plugin>/packages/templates/`), para que passe no gate TC (`atlas_verify_template_conformance`) e seja consumível por `/workflow execute plan <path>` ou por `atlas-plan-execute`. O plano só pode conter tasks derivadas dos achados evidenciados. Se a escrita falhar, reportar bloqueio e não fingir que há handoff executável.
|
|
133
|
+
|
|
134
|
+
A auditoria **não tem PRD**: a fonte de verdade é o relatório de auditoria + achados + regras locais reais. O plano espelha o template, mas reancorado na auditoria — **sem inventar decisões `D*` nem referências PRD inexistentes**.
|
|
135
|
+
|
|
136
|
+
### Cabeçalho obrigatório (gate TC)
|
|
137
|
+
|
|
138
|
+
O gate TC exige literalmente a linha `| **PRD** |`, referência a `BOUNDARY_PRD_PLAN.md` e tarefas `#### T01.`. Em `execution_mode: sequencial`, a §7 Slices é dispensável.
|
|
139
|
+
|
|
140
|
+
```md
|
|
141
|
+
# PLAN AUDIT — <target> (correção de auditoria)
|
|
142
|
+
|
|
143
|
+
| Campo | Valor |
|
|
144
|
+
|-------|-------|
|
|
145
|
+
| **PRD** | N/A — origem auditoria; ver **Source audit** abaixo |
|
|
146
|
+
| **Package / app** | `<boundary auditado>` |
|
|
147
|
+
| **Tipo** | `audit-fix` |
|
|
148
|
+
| **execution_mode** | `sequencial (T01→TN)` |
|
|
149
|
+
| **Data** | <YYYY-MM-DD> |
|
|
150
|
+
|
|
151
|
+
**Escopo técnico:** boundary da auditoria. **Fora:** <o que ficou fora do target/scope>.
|
|
152
|
+
|
|
153
|
+
Política: [BOUNDARY_PRD_PLAN.md](./BOUNDARY_PRD_PLAN.md).
|
|
154
|
+
|
|
155
|
+
## Metadados de execução
|
|
156
|
+
- Plan prefix: `atlas`
|
|
157
|
+
- Execution mode: `sequencial (T01→TN)`
|
|
158
|
+
- Executor skill: `atlas-plan-execute`
|
|
159
|
+
- Internal validator: `atlas-task-validator`
|
|
160
|
+
- Source audit: `<título/path/data do relatório>`
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
> `N/A — origem auditoria` satisfaz o regex do TC declarando a proveniência sem inventar PRD.
|
|
164
|
+
|
|
165
|
+
### Seções obrigatórias (§1–§6, §8)
|
|
166
|
+
|
|
167
|
+
Sem PRD, as âncoras "derivados do PRD" do template passam a apontar para achados/regras locais:
|
|
168
|
+
|
|
169
|
+
- **§1 Tradução executiva** — 1 parágrafo do que será corrigido + resultado observável; referência ao relatório de auditoria.
|
|
170
|
+
- **§2 Invariantes de execução** — invariantes derivados das regras locais reais e do boundary (não de `D*`).
|
|
171
|
+
- **§3 Pitfalls** — anti-padrões evidenciados na auditoria → correção canônica.
|
|
172
|
+
- **§4 Estado na abertura da sprint** — 3–6 bullets do que está quebrado hoje, ancorados nos achados.
|
|
173
|
+
- **§5 Tarefas de execução** — `#### T01.`…`#### TNN.`, uma por achado evidenciado (schema abaixo).
|
|
174
|
+
- **§6 Contratos técnicos** — só se a auditoria revelou contrato/dados/schema afetado; senão `Não aplicável`.
|
|
175
|
+
- **§8 Validação e checklist (validator)** — comandos reais detectados (manifests/scripts) + checkboxes derivados dos achados. Nunca inventar `flutter`/`npm`/`pytest`.
|
|
176
|
+
|
|
177
|
+
### Schema de cada task (§5)
|
|
178
|
+
|
|
179
|
+
```md
|
|
180
|
+
#### T01. <correção curta>
|
|
181
|
+
- **Objetivo:** <resultado observável>
|
|
182
|
+
- **Referência ao achado:** `AUDIT-NNN` — `arquivo:linha`
|
|
183
|
+
- **Mudança esperada:** <o que muda concretamente>
|
|
184
|
+
- **Invariantes preservados:** <§2 / regra local>
|
|
185
|
+
- **Não mudar:** <…>
|
|
186
|
+
- **Dependências:** <nenhuma | T0X>
|
|
187
|
+
- **Riscos:** <se relevante>
|
|
188
|
+
- **Critério de done:** <sinal objetivo>
|
|
189
|
+
- **Validação local:**
|
|
190
|
+
```bash
|
|
191
|
+
cd <package> && <comando real>
|
|
192
|
+
```
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Regras do handoff
|
|
196
|
+
|
|
197
|
+
- Incluir apenas validações derivadas de manifests/configs reais.
|
|
198
|
+
- Não usar task vaga como "refatorar geral".
|
|
199
|
+
- Não incluir achado sem `arquivo:linha`; toda task aponta para um `AUDIT-NNN`.
|
|
200
|
+
- Não chamar executor automaticamente.
|
|
201
|
+
- Reportar o path final do plano e deixar claro que ele não foi executado.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Atlas Audit"
|
|
3
|
+
short_description: "Auditoria universal sem correção de código"
|
|
4
|
+
default_prompt: "Use $atlas-audit para auditar o target informado contra regras locais, stack detectada e Ponytail pass, sem alterar código."
|
|
5
|
+
|
|
6
|
+
policy:
|
|
7
|
+
allow_implicit_invocation: true
|
|
@@ -102,6 +102,12 @@ Ative regras específicas somente quando o perfil retornar `true`:
|
|
|
102
102
|
- `flutter_dart`: lifecycle Flutter, rotas/args, null-safety/casts, l10n, analyze/test; GetX somente se dependência/import/regra real confirmar GetX.
|
|
103
103
|
- `node_typescript`: handles/promises, validação runtime, ESM/CJS/exports/tipos e scripts Node reais.
|
|
104
104
|
- `python`: context managers/cleanup, exceções/async, typing/parsing e ferramentas Python declaradas.
|
|
105
|
+
- `go`: context/cancelamento, goroutines, erros retornados, data race e comandos Go declarados.
|
|
106
|
+
- `rust`: `Result`/`Option`, ownership/lifetime, unwrap em fronteiras recuperáveis e comandos Cargo declarados.
|
|
107
|
+
- `java_kotlin`: nullability, exceptions, resource cleanup, threads/coroutines e Maven/Gradle declarados.
|
|
108
|
+
- `firebase`: rules/claims/authz, paths/ownership, listeners e emuladores/checks declarados.
|
|
109
|
+
- `supabase`: RLS/auth claims, schema/migrations, RPC/Edge Functions, storage policies e checks declarados.
|
|
110
|
+
- `rest_openapi`: request/response, status codes, paginação, erros, idempotência e contrato OpenAPI quando presente.
|
|
105
111
|
|
|
106
112
|
Monorepo pode ativar múltiplos perfis, sempre restritos ao boundary correspondente. Fixture Node sem sinal Flutter não recebe regra Flutter/GetX.
|
|
107
113
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: atlas-workflow-orchestrator
|
|
3
|
-
description: "Orquestra pipeline completo de desenvolvimento de features: /workflow <mode> <input-type> [flags]. Automatiza PRD generation → validação → entrevista (se necessário) → planejamento → execução → review (opcional). Pipeline orientado a artefato com gates duros: cada fase só conta se produzir arquivo verificável em disco."
|
|
3
|
+
description: "Orquestra pipeline completo de desenvolvimento de features: /workflow <mode> <input-type> [flags]. Automatiza PRD generation → validação → entrevista (se necessário) → planejamento → execução → review (opcional) e oferece audit universal sem correção. Pipeline orientado a artefato com gates duros: cada fase só conta se produzir arquivo verificável em disco."
|
|
4
4
|
category: Development Automation
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -13,17 +13,18 @@ Orquestra pipelines de desenvolvimento de features no projeto Atlas, automatizan
|
|
|
13
13
|
## Sintaxe
|
|
14
14
|
|
|
15
15
|
```
|
|
16
|
-
/workflow <mode> <input-type> [flags]
|
|
16
|
+
/workflow <mode> <input-type|target> [flags]
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
### Modos
|
|
20
20
|
|
|
21
|
-
Três modos **canônicos de execução** — `full`, `direct`, `execute` (PRD §5 D1) — mais
|
|
21
|
+
Três modos **canônicos de execução** — `full`, `direct`, `execute` (PRD §5 D1) — mais os modos sem execução `interview-only` e `audit`.
|
|
22
22
|
|
|
23
23
|
- **`full`** — pipeline completo: PRD → validação → entrevista (se necessário) → **plano (artefato obrigatório)** → executor → review (opcional)
|
|
24
24
|
- **`direct`** — pipeline enxuto: PRD → validação → entrevista (se necessário) → `atlas-direct-execute` → review (opcional). **Não produz plano de handoff** — a diferença real para `full` é exatamente essa.
|
|
25
25
|
- **`execute`** — recebe um **`PLAN_*.md` pronto** e o executa **sem gerar plano** (PRD D1). Entrada = caminho de plano; reverifica o artefato + conformidade de template e despacha `plan_execute` direto. Não regera nem replaneja: ajustes de plano pedem `full`. `atlas_assert_after_plan` (gate pós-plano do `full`) **não se aplica** em `execute` — o plano já é o input; o equivalente é a reverificação na entrada (PRD D13). **Não há alias `plan`**: usar `plan` como modo é ambíguo com planejamento documental e deve ser rejeitado como modo inválido.
|
|
26
26
|
- **`interview-only`** — entrevista direta (ex: brainstorm, resolução de decisões). Entrevista **sem execução**: não usa `guarantee_level` no fluxo (não há execução de código a garantir). Permanece modo separado (PRD D2).
|
|
27
|
+
- **`audit`** — auditoria universal sem correção de código: lê target/boundary, regras locais e stack detectada; gera relatório de achados e, com `--handoff`, plano Atlas-style para correção futura. **Não executa plano, não chama executor e não altera código.**
|
|
27
28
|
|
|
28
29
|
### Input Types
|
|
29
30
|
|
|
@@ -31,11 +32,14 @@ Três modos **canônicos de execução** — `full`, `direct`, `execute` (PRD §
|
|
|
31
32
|
- **`idea`** — Indicação/brainstorm curto
|
|
32
33
|
- **`prd`** — Path para PRD existente ou nome do arquivo
|
|
33
34
|
- **`brainstorm`** — Texto livre (só para `interview-only`)
|
|
35
|
+
- **`target`** — Path/feature/módulo auditável (só para `audit`)
|
|
34
36
|
|
|
35
37
|
### Flags
|
|
36
38
|
|
|
37
39
|
- `--interview` — força entrevista de PRD mesmo sem ambiguidades detectadas
|
|
38
40
|
- `--review` — executa slice-review ao final (senão é opcional)
|
|
41
|
+
- `--handoff` — em `audit`, escreve plano Atlas-style em `.atlas/plans/` derivado dos achados evidenciados; não executa
|
|
42
|
+
- `--scope <descrição>` — em `audit`, restringe o boundary lógico dentro do target
|
|
39
43
|
- `--help` — mostra sintaxe completa
|
|
40
44
|
|
|
41
45
|
## Exemplos
|
|
@@ -55,6 +59,9 @@ Três modos **canônicos de execução** — `full`, `direct`, `execute` (PRD §
|
|
|
55
59
|
|
|
56
60
|
/workflow execute plan "/path/to/PLAN_S05_login.md"
|
|
57
61
|
→ Reverifica o plano (artifact + TC), executa direto via plan_execute + validador frio. Não gera plano.
|
|
62
|
+
|
|
63
|
+
/workflow audit "apps/mobile/lib/features/auth" --handoff
|
|
64
|
+
→ Audita somente o target informado contra regras locais + stack detectada + Ponytail pass; gera relatório e `PLAN_AUDIT_*.md` sem execução.
|
|
58
65
|
```
|
|
59
66
|
|
|
60
67
|
---
|
|
@@ -63,7 +70,7 @@ Três modos **canônicos de execução** — `full`, `direct`, `execute` (PRD §
|
|
|
63
70
|
|
|
64
71
|
Executar **antes** de iniciar o pipeline. Se qualquer item falhar, **parar e reportar** — nunca emular.
|
|
65
72
|
|
|
66
|
-
1. **Parse** dos argumentos `<mode> <input-type> [input] [flags]`. Se inválido ou `--help` → mostrar sintaxe e parar.
|
|
73
|
+
1. **Parse** dos argumentos `<mode> <input-type|target> [input] [flags]`. Se inválido ou `--help` → mostrar sintaxe e parar. Em `audit`, o segundo argumento é `target`, não `input-type`.
|
|
67
74
|
2. **Chamar MCP `atlas_ping`.** Se não responder, versão vier vazia, `version_check.status` vier bloqueado ou capacidades não listarem os gates exigidos pelo modo → abortar com erro de MCP indisponível/drift. Não seguir por prosa.
|
|
68
75
|
2a. **Chamar MCP `atlas_capabilities`.** Ler `host`, `subagent_dispatch`, `validator_dispatch`, `capabilities_flags` e `required_deps`. Determinar a **disponibilidade real** dos pré-requisitos essenciais neste host: o subagente do plugin é despachável? o MCP está vivo (ping ok)? Em hosts com `required_deps` (ex.: pi: `pi-mcp-adapter` + `pi-subagents`), confirmar que cada dep está presente; se faltar, o pré-requisito correspondente é `false`.
|
|
69
76
|
2b. **Chamar MCP `atlas_classify_input`** no input informado (`input_path`), **antes de rotear** (PRD D3/D6). `classify_input` é para **artefato em arquivo** (path em disco). A tool devolve `artifact_type` ∈ {`backlog`, `prd`, `plan`, `idea`, `unknown`} (verdade forte = TC de plano passa) e um `banner` de roteamento já pronto. **O tipo de input é fato e prevalece sobre o modo pedido** (intenção). Aplicar o roteamento:
|
|
@@ -88,9 +95,9 @@ Executar **antes** de iniciar o pipeline. Se qualquer item falhar, **parar e rep
|
|
|
88
95
|
Motivo: dependência de backlog não está `done`
|
|
89
96
|
Ação: executar <dep> antes de <id>
|
|
90
97
|
```
|
|
91
|
-
4. **Usar a cadeia única `atlas-*`.** Cliente (Claude Code, Cursor, Codex App) é host de execução, não família de skills. Não existe roteamento por cliente.
|
|
98
|
+
4. **Usar a cadeia única `atlas-*`.** Cliente (Claude Code, Cursor, Codex App, Antigravity, ZCode, OpenCode, Pi CLI) é host de execução, não família de skills. Não existe roteamento por cliente.
|
|
92
99
|
5. **Carregar defaults do pacote do plugin** (`defaults/paths.md` e `references/subagent_dispatch.md`). Não exigir config na raiz do repositório usuário.
|
|
93
|
-
6. **Verificar disponibilidade dos ids `atlas-*`.** Para cada skill exigida pelo modo, confirmar que o id exato é **invocável** no host. Para as skills de **execução/validação/review** (`plan_execute`, `direct_execute`, `task_validator`, `findings_repair`, `slice_review`), confirmar também que são **despacháveis pelo verbo nativo do host** — leia `atlas_capabilities.subagent_dispatch.mechanism` (não assuma "Agent tool"; no Codex é `spawn_agent(agent_type)`, no opencode `@<name>`, no pi `subagent({...})`). No Codex, `$<skill>` é ativação in-context de skill e **não** conta como sub-agent isolado para execução. Para as skills **documentais** (`prd_generator`, `prd_interview`, `plan_handoff`), basta invocabilidade no fio principal; não exigir despachabilidade como sub-agent.
|
|
100
|
+
6. **Verificar disponibilidade dos ids `atlas-*`.** Para cada skill exigida pelo modo, confirmar que o id exato é **invocável** no host. Para as skills de **execução/validação/review** (`plan_execute`, `direct_execute`, `task_validator`, `findings_repair`, `slice_review`), confirmar também que são **despacháveis pelo verbo nativo do host** — leia `atlas_capabilities.subagent_dispatch.mechanism` (não assuma "Agent tool"; no Codex é `spawn_agent(agent_type)`, no opencode `@<name>`, no pi `subagent({...})`, no ZCode e Claude é `Agent(subagent_type)`). No Codex, `$<skill>` é ativação in-context de skill e **não** conta como sub-agent isolado para execução. Para as skills **documentais/de leitura** (`prd_generator`, `prd_interview`, `plan_handoff`, `audit`), basta invocabilidade no fio principal; não exigir despachabilidade como sub-agent.
|
|
94
101
|
- **Skill ausente é bloqueio** (Gate G10): não substitua por skill nativa, variante antiga ou prompt inline.
|
|
95
102
|
- **Conflito plugin × skill nativa:** use somente o id exato retornado pelo preflight. Se o host não permitir comprovar que a skill vem do plugin esperado, aborte e peça remoção/desativação manual da nativa; não resolva por tentativa silenciosa.
|
|
96
103
|
- **Nunca substituir por variante de executor** (Gate G10).
|
|
@@ -102,7 +109,7 @@ Executar **antes** de iniciar o pipeline. Se qualquer item falhar, **parar e rep
|
|
|
102
109
|
Ação: instalar/ativar o plugin ou corrigir o pacote atlas-* disponível no host
|
|
103
110
|
```
|
|
104
111
|
**PROIBIDO o fallback "implementação direta" / "contratos equivalentes inline".** Não existe caminho onde o orquestrador faz plano ou código no próprio fio. Emulação inline e fallback direto são a falha-raiz que esta skill proíbe — se não há sub-agent, **para**. (Gate G7.)
|
|
105
|
-
8. **Rejeitar conflito de modo:** se o pedido tiver `full`/`direct` junto com "sem patch", "sem editar código", "planejamento apenas", "handoff only" ou equivalente, **pare antes de gerar artefatos**. `full` executa `atlas-plan-execute`; `direct` executa `atlas-direct-execute`; não existe interpretação plan-only implícita.
|
|
112
|
+
8. **Rejeitar conflito de modo:** se o pedido tiver `full`/`direct` junto com "sem patch", "sem editar código", "planejamento apenas", "handoff only" ou equivalente, **pare antes de gerar artefatos**. `full` executa `atlas-plan-execute`; `direct` executa `atlas-direct-execute`; não existe interpretação plan-only implícita. Se o usuário quer diagnóstico sem patch, o modo correto é `audit`.
|
|
106
113
|
9. **Declarar o plano de execução** (1 bloco curto): `run_id`, modo, **ids exatos de cada sub-agent**, sequência de fases, artefatos esperados e tools MCP que sustentarão cada gate. Só então iniciar a Fase 1.
|
|
107
114
|
|
|
108
115
|
---
|
|
@@ -113,7 +120,7 @@ O pipeline é **fire-and-continue**: uma vez iniciado, o orquestrador avança fa
|
|
|
113
120
|
|
|
114
121
|
**Proibido (regressão, PRD §6):**
|
|
115
122
|
- Pedir confirmação para avançar: "Quer que eu gere o PRD?", "posso seguir?", "continuo?", "devo despachar o executor?". A resposta é sempre sim — **execute**. Se a próxima fase tem artefato a produzir, produza.
|
|
116
|
-
- Inventar modo fora do contrato. **Não existe "Modo Discussão", "modo análise", "dry-run"** ou similar. Os únicos modos são `full`/`direct`/`execute`/`interview-only`. Pedido em linguagem natural que nomeia um modo (ex.: "atlas full backlog s40") **executa esse modo** — não vira pergunta nem resumo passivo.
|
|
123
|
+
- Inventar modo fora do contrato. **Não existe "Modo Discussão", "modo análise", "dry-run"** ou similar. Os únicos modos são `full`/`direct`/`execute`/`interview-only`/`audit`. Pedido em linguagem natural que nomeia um modo (ex.: "atlas full backlog s40") **executa esse modo** — não vira pergunta nem resumo passivo.
|
|
117
124
|
- Parar por decisão em aberto. Decisão pendente de **qualquer fonte** (scan de PRD, entrevista, `PERGUNTAS_EM_ABERTO.md`, doc de discussão/decisões como `DISCUSSAO_*.md`, ou o próprio backlog) **não é blockage**: gera o PRD se ainda não existe, dispara `atlas-prd-interview` sobre ele, propaga e **continua**. Nunca oferecer "responda só: seguir com recomendação ou D=...". Ver "Decisão em aberto ≠ parada".
|
|
118
125
|
|
|
119
126
|
**PRD ausente em `full`/`direct`** = o passo "Generate PRD" **gera o PRD automaticamente** (invoca o id resolvido para `prd_generator` / autoria documental no fio principal). Nunca perguntar "quer que eu gere?".
|
|
@@ -122,6 +129,7 @@ O pipeline é **fire-and-continue**: uma vez iniciado, o orquestrador avança fa
|
|
|
122
129
|
|
|
123
130
|
A única interação legítima com o usuário é **dentro de uma fase** — o mecanismo estruturado `question_prompt` devolvido por `atlas_capabilities`, usado pela entrevista para resolver ambiguidade de produto. Resolver ambiguidade ≠ pedir permissão pra avançar. Terminada a fase, respostas são persistidas no PRD, gates são reexecutados e o pipeline segue sozinho.
|
|
124
131
|
|
|
132
|
+
|
|
125
133
|
## Papel do orquestrador (fronteira de determinismo pela mutação de código)
|
|
126
134
|
|
|
127
135
|
O orquestrador **coordena a execução**, não implementa código — maestro que aponta cada sub-agent na ordem e espera terminar, **nunca pega o instrumento de código**. A fronteira de determinismo é a **mutação de código** (PRD D10), com **duas fases**:
|
|
@@ -137,12 +145,15 @@ O **mecanismo** varia por host — leia `subagent_dispatch.mechanism`, `.example
|
|
|
137
145
|
|
|
138
146
|
- **claude:** `Agent(subagent_type: "atlas-<exec>", prompt: ...)`
|
|
139
147
|
- **codex:** `spawn_agent(agent_type: "atlas-<exec>", items: [{ type: "text", text: "<state_path ou task>" }])` (custom agent nativo em `CODEX_HOME/agents/atlas-<exec>.toml`; `.codex/agents/` do bundle é gerado). `$atlas-*` sozinho **não** isola contexto — use `spawn_agent`.
|
|
148
|
+
- **zcode:** `Agent(subagent_type: "atlas-<exec>", prompt: "<state_path>")` (Claude Agent SDK — mesmo verbo de Claude, formato `agents/<name>.md` no plugin root; `ZCODE_PLUGIN_ROOT` injetado pelo host)
|
|
140
149
|
- **opencode:** `@atlas-<exec>` (ou auto por description)
|
|
141
150
|
- **pi:** `subagent({ agent: "atlas-<exec>", task, context: "fresh" })`
|
|
151
|
+
- **antigravity:** `define_subagent(name, system_prompt)` + `invoke_subagent(Subagents: [{TypeName, Role, Prompt, Workspace}])`
|
|
142
152
|
- **generic:** subagente nativo do host
|
|
143
153
|
|
|
144
154
|
> Ausência de "Agent tool" (host ≠ Claude) **não** é licença pra executar inline — é sinal pra usar o verbo daquele host (Gate G9, qualquer host). Host sem mecanismo de sub-agent já abortou em PREREQ; você nunca chega aqui sem isolamento.
|
|
145
155
|
|
|
156
|
+
|
|
146
157
|
## Protocolo de banner (única comunicação de progresso)
|
|
147
158
|
|
|
148
159
|
O orquestrador comunica progresso **apenas** por **banner de fase de linha única** no formato `▸ atlas: <fase> · <ação> [· <detalhe>]` (PRD D7/D8). Regras:
|
|
@@ -182,7 +193,7 @@ Regras inegociáveis. Violação = parar, não contornar.
|
|
|
182
193
|
|
|
183
194
|
### [EXEC] — passo comum de execução + validação
|
|
184
195
|
|
|
185
|
-
`atlas_lock_dispatch(action=start, phase=plan_execute)` em todos os modos; despachar como sub-agent blocking o `routing.executor_skill` devolvido pelo preflight: `atlas-plan-execute` em `full`/`execute`, `atlas-direct-execute` em `direct`. O executor emite checkpoints G12; sem retorno/progresso, chamar `atlas_lock_dispatch(action=status, phase=plan_execute)` e tratar `executor_bootstrap_timeout`/`executor_progress_timeout` como `stalled`/retry — nunca como execução em andamento. O executor retorna `validator_handoff_required` com `state_path`; o MCP só abre o slot após o checkpoint `state_path_created` para esse mesmo `state_path`. Validação sempre **sibling**: `atlas_lock_validator(action=start)`, despachar **um** `task_validator`, exigir no output o `dispatch_token` do slot e fechar com `validator_run_id` + `dispatch_token`. Em `fail`: `repair_start`, despachar `atlas-findings-repair` com `{state_path, findings, validator_attempt, repair_run_id, repair_budget: 1}`, exigir atualização do mesmo `state_path`, fechar com `repair_run_id` e rodar o **2º e último** validator. `passed`/`passed_with_observations` são terminais aprovados; status diferente bloqueia review e output completed.
|
|
196
|
+
`atlas_lock_dispatch(action=start, phase=plan_execute)` em todos os modos; despachar como sub-agent blocking o `routing.executor_skill` devolvido pelo preflight: `atlas-plan-execute` em `full`/`execute`, `atlas-direct-execute` em `direct`. O executor emite checkpoints G12; sem retorno/progresso, chamar `atlas_lock_dispatch(action=status, phase=plan_execute)` e tratar `executor_bootstrap_timeout`/`executor_progress_timeout` como `stalled`/retry — nunca como execução em andamento. O executor retorna `validator_handoff_required` com `state_path`; o MCP só abre o slot após o checkpoint `state_path_created` para esse mesmo `state_path`. Validação sempre **sibling**: `atlas_lock_validator(action=start)`, despachar **um** `task_validator`, exigir no output o `dispatch_token` do slot e fechar com `validator_run_id` + `dispatch_token`. Se o output do validator for persistido em arquivo (`validator-output.json` ou equivalente), passar `validator_output_path` no `atlas_lock_validator(action=complete)` ou validar o arquivo com `atlas_verify_artifact(artifact_kind=json)` antes de declarar closure; JSON inválido bloqueia. Em `fail`: `repair_start`, despachar `atlas-findings-repair` com `{state_path, findings, validator_attempt, repair_run_id, repair_budget: 1}`, exigir atualização do mesmo `state_path`, fechar com `repair_run_id` e rodar o **2º e último** validator. `passed`/`passed_with_observations` são terminais aprovados; status diferente bloqueia review e output completed.
|
|
186
197
|
|
|
187
198
|
### Full mode
|
|
188
199
|
|
|
@@ -231,6 +242,16 @@ Entrada: um **`PLAN_*.md` pronto**. Artefatos esperados: (plano já existe) →
|
|
|
231
242
|
|
|
232
243
|
> `interview-only` é entrevista **sem execução**: não há fase `plan_execute` nem `guarantee_level` no fluxo (nada de código a garantir). A autoria do esboço é documental e livre.
|
|
233
244
|
|
|
245
|
+
### Audit mode
|
|
246
|
+
|
|
247
|
+
Entrada: um `target` auditável, com flags opcionais `--handoff` e `--scope <descrição>`. Artefatos esperados: relatório de auditoria em resposta; se `--handoff`, plano Atlas-style salvo em `.atlas/plans/PLAN_AUDIT_<slug>.md`. **Não há execução, `plan_execute`, validator, repair, review nem `guarantee_level`.**
|
|
248
|
+
|
|
249
|
+
1. **Parse / target** — resolver target real em disco. Se o target não for localizável, parar com pedido objetivo de path/boundary.
|
|
250
|
+
2. **Pré-flight leve** — `atlas_ping` → `atlas_capabilities` → `atlas_preflight(mode=audit)` para travar versão/família `atlas-*`. Não chamar `atlas_classify_input`: audit não roteia input para execução.
|
|
251
|
+
3. **Invocar `atlas-audit` no fio principal** — carregar o `SKILL.md` real, auditar só o boundary informado, ler regras locais, detectar stack por manifests/configs/comandos reais, aplicar checklist universal e Ponytail pass final.
|
|
252
|
+
4. **Output** — relatório com stack detectada, regras consultadas, boundary, achados P0/P1/P2/P3 com `arquivo:linha`, gaps por área e limitações.
|
|
253
|
+
5. **Handoff opcional** — se `--handoff`, escrever `PLAN_AUDIT_*.md` **conforme ao `PLAN_TEMPLATE.md`** (cabeçalho com linha `| **PRD** | N/A — origem auditoria |`, ref a `BOUNDARY_PRD_PLAN.md`, §1–§6/§8, tasks `#### T01.`), derivado somente dos achados evidenciados — passa no gate TC e é consumível por `/workflow execute plan`. Reportar o path e **parar aqui. Não chamar executor automaticamente.**
|
|
254
|
+
|
|
234
255
|
---
|
|
235
256
|
|
|
236
257
|
## Validação automática de PRD
|
|
@@ -328,7 +349,7 @@ Se `full` gerou `PLAN_*.md` mas não despachou `plan_execute`, o cabeçalho deve
|
|
|
328
349
|
|
|
329
350
|
## Skills envolvidas
|
|
330
351
|
|
|
331
|
-
`atlas-backlog-generator` aparece apenas para descoberta do catálogo: é **explicit-only** e nunca integra `full`/`direct`/`execute`/`interview-only`. A cadeia automática começa em PRD/input já fornecido.
|
|
352
|
+
`atlas-backlog-generator` aparece apenas para descoberta do catálogo: é **explicit-only** e nunca integra `full`/`direct`/`execute`/`interview-only`/`audit`. A cadeia automática começa em PRD/input já fornecido.
|
|
332
353
|
|
|
333
354
|
| Skill | Entrada | Saída (artefato) |
|
|
334
355
|
|-------|---------|------------------|
|
|
@@ -336,6 +357,7 @@ Se `full` gerou `PLAN_*.md` mas não despachou `plan_execute`, o cabeçalho deve
|
|
|
336
357
|
| `atlas-sprint-prd-generator` | sprint_id/indicação | `PRD_*.md`, decisions_found |
|
|
337
358
|
| `atlas-prd-interview` | prd_path, ambiguities | `PRD_*.md` atualizado, decisions |
|
|
338
359
|
| `atlas-plan-handoff` | prd_path | `PLAN_*.md` |
|
|
360
|
+
| `atlas-audit` | target, flags (`--handoff`, `--scope`) | relatório de auditoria; `.atlas/plans/PLAN_AUDIT_*.md` opcional sem execução |
|
|
339
361
|
| `atlas-plan-execute` | plan_path (`full` / `execute`) | diff de código, evidência, `state_path` |
|
|
340
362
|
| `atlas-direct-execute` | prd_path/spec/task (`direct`) | diff de código, evidência, `state_path` |
|
|
341
363
|
| `atlas-slice-review` | diff/output | review_feedback |
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "atlas-workflow-orchestrator",
|
|
3
|
+
"version": "0.9.4",
|
|
4
|
+
"description": "Orquestra pipelines de desenvolvimento de features no Atlas (PRD, validação, entrevista, plano, execução, repair, review), auditoria universal e geração explícita de backlog mestre. Bundle único: 10 skills atlas-* + orquestrador + 5 templates canônicos + validator subagente. Pipeline orientado a artefato com gates G1–G11.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Paulo Borini"
|
|
7
|
+
},
|
|
8
|
+
"keywords": [
|
|
9
|
+
"atlas",
|
|
10
|
+
"workflow",
|
|
11
|
+
"orchestration",
|
|
12
|
+
"prd",
|
|
13
|
+
"planning",
|
|
14
|
+
"execution",
|
|
15
|
+
"automation"
|
|
16
|
+
],
|
|
17
|
+
"skills": "./skills/",
|
|
18
|
+
"mcpServers": {
|
|
19
|
+
"atlas-workflow": {
|
|
20
|
+
"command": "node",
|
|
21
|
+
"args": [
|
|
22
|
+
"${ZCODE_PLUGIN_ROOT}/packages/mcp-server/server.js"
|
|
23
|
+
],
|
|
24
|
+
"transport": "stdio"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Executor direto da família Atlas (modo direct). Despachado em contexto isolado pelo orquestrador para implementar um PRD/tarefa escopada sem artefato de plano separado — toda mutação de código acontece aqui, nunca no fio do orquestrador (Gate G9). Primeira ação: carregar a skill completa atlas-direct-execute. Antes do relatório final, escreve o state_path e retorna validator_handoff_required; o orquestrador despacha a validação fria sibling (atlas-task-validator, Gate G4).
|
|
3
|
+
mode: subagent
|
|
4
|
+
temperature: 0.1
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Atlas Direct Execute (sub-agent)
|
|
8
|
+
|
|
9
|
+
<!-- MANUTENÇÃO (cross-host): SHIM portável — carrega o SKILL.md real de
|
|
10
|
+
atlas-direct-execute como primeira ação (references/subagent_dispatch.md). Contrato em
|
|
11
|
+
packages/skills/atlas-direct-execute/SKILL.md (fonte única). Versões Codex/opencode/pi
|
|
12
|
+
GERADAS por build/gen-host-agent.mjs. Não copiar o corpo da skill para cá. -->
|
|
13
|
+
|
|
14
|
+
Sub-agent de execução direta despachado pelo orquestrador `atlas-workflow-orchestrator`. Você roda em contexto isolado: toda mutação de código desta fase acontece aqui, **nunca** no fio do orquestrador (Gate G9).
|
|
15
|
+
|
|
16
|
+
## Primeira ação obrigatória
|
|
17
|
+
|
|
18
|
+
Carregue a skill completa `atlas-direct-execute` e siga-a integralmente:
|
|
19
|
+
|
|
20
|
+
- **Claude Code:** invoque a tool `Skill` com `atlas-direct-execute`.
|
|
21
|
+
- **Outros hosts:** use o mecanismo nativo de skills do host para carregar `atlas-direct-execute`.
|
|
22
|
+
|
|
23
|
+
Proibido "agir como a skill" a partir deste resumo — o `SKILL.md` é o contrato real (ledger de obrigações do PRD, gates finitos, reparo limitado). Se não conseguir carregar a skill, aborte com erro explícito; não emule inline.
|
|
24
|
+
|
|
25
|
+
## Input
|
|
26
|
+
|
|
27
|
+
O orquestrador passa o PRD/spec/path escopado e as flags da fase. Use `atlas_run_state` como fonte primária do estado da run.
|
|
28
|
+
|
|
29
|
+
## Validação fria (Gate G4)
|
|
30
|
+
|
|
31
|
+
Antes do relatório final, a validação fria é sempre **sibling**, em todos os hosts: escreva o `state_path`, pare mutações e retorne `validator_handoff_required` para o orquestrador despachar o validador irmão. Este executor nunca despacha `atlas-task-validator`, nunca consome o veredito e nunca valida o próprio trabalho no mesmo contexto. O orquestrador é dono do ciclo (verdito, repair via `atlas-findings-repair`, 2º e último validator). Só `fail` reabre o loop.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Reparador enxuto da família Atlas. Despachado pelo orquestrador apenas após `atlas-task-validator` retornar `fail` em topologia sibling. Corrige findings P0/P1/P2 dentro do boundary da slice sem carregar `atlas-plan-execute`/`atlas-direct-execute` e sem despachar novo validator.
|
|
3
|
+
mode: subagent
|
|
4
|
+
temperature: 0.1
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Atlas Findings Repair (sub-agent)
|
|
8
|
+
|
|
9
|
+
<!-- MANUTENÇÃO (cross-host): shim portável. O contrato real vive em
|
|
10
|
+
packages/skills/atlas-findings-repair/SKILL.md. Codex/opencode/pi geram
|
|
11
|
+
registros nativos a partir deste arquivo por build/gen-host-agent.mjs. -->
|
|
12
|
+
|
|
13
|
+
Sub-agent de reparo bounded despachado pelo orquestrador `atlas-workflow-orchestrator`.
|
|
14
|
+
|
|
15
|
+
## Primeira ação obrigatória
|
|
16
|
+
|
|
17
|
+
Carregue a skill completa `atlas-findings-repair` e siga-a integralmente:
|
|
18
|
+
|
|
19
|
+
- **Claude Code:** invoque a tool `Skill` com `atlas-findings-repair`.
|
|
20
|
+
- **Outros hosts:** use o mecanismo nativo de skills do host para carregar `atlas-findings-repair`.
|
|
21
|
+
|
|
22
|
+
Proibido “agir como executor” a partir deste resumo. Se não conseguir carregar a skill, aborte com erro explícito; não substitua por `atlas-plan-execute` nem `atlas-direct-execute`.
|
|
23
|
+
|
|
24
|
+
## Input
|
|
25
|
+
|
|
26
|
+
O orquestrador passa obrigatoriamente `state_path`, findings estruturados, `validator_attempt`, `repair_run_id` e `repair_budget: 1`. Use `atlas_run_state` como fonte primária do estado da run.
|
|
27
|
+
|
|
28
|
+
## Limites
|
|
29
|
+
|
|
30
|
+
- Corrigir apenas findings P0/P1/P2 da slice atual
|
|
31
|
+
- Não despachar validator nem outro subagente
|
|
32
|
+
- Não replanejar
|
|
33
|
+
- Não ampliar escopo
|
|
34
|
+
- Atualizar o `state_path` original em lugar; não trocar o boundary para outro arquivo
|
|
35
|
+
- Consumir IDs/recommendations estruturadas; persistir correlação em `repair_evidence`
|
|
36
|
+
- Preservar `worktree_baseline`, recapturar `worktree_final` e incluir exatamente todo arquivo tocado em `files_changed`; recomputar `head_sha` e `diff_stat`
|
|
37
|
+
- Aceitar somente IDs recebidos; cada arquivo tocado deve estar atribuído a um finding recebido, sem IDs/arquivos extras ou duplicados
|
|
38
|
+
- Devolver `repairs[]` com `finding_id`, arquivos, checks e status
|
|
39
|
+
- Ao terminar, devolver `repair_complete` ou `blocked`
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Executor de plano da família Atlas. Despachado em contexto isolado pelo orquestrador após o plano validado — toda mutação de código (editar, rodar build/testes, commitar) acontece aqui, nunca no fio do orquestrador (Gate G9). Primeira ação: carregar a skill completa atlas-plan-execute. Antes do relatório final, escreve o state_path e retorna validator_handoff_required; o orquestrador despacha a validação fria sibling (atlas-task-validator, Gate G4).
|
|
3
|
+
mode: subagent
|
|
4
|
+
temperature: 0.1
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Atlas Plan Execute (sub-agent)
|
|
8
|
+
|
|
9
|
+
<!-- MANUTENÇÃO (cross-host): este corpo é um SHIM portável — instrui o sub-agent a
|
|
10
|
+
carregar o SKILL.md real da skill atlas-plan-execute como primeira ação, conforme
|
|
11
|
+
references/subagent_dispatch.md. O contrato de execução vive em
|
|
12
|
+
packages/skills/atlas-plan-execute/SKILL.md (fonte única, sem drift). Não copiar o
|
|
13
|
+
corpo da skill para cá. As versões Codex/opencode/pi são GERADAS deste arquivo por
|
|
14
|
+
build/gen-host-agent.mjs (só o frontmatter muda). -->
|
|
15
|
+
|
|
16
|
+
Sub-agent de execução despachado pelo orquestrador `atlas-workflow-orchestrator`. Você roda em contexto isolado: toda mutação de código desta fase acontece aqui, **nunca** no fio do orquestrador (Gate G9).
|
|
17
|
+
|
|
18
|
+
## Primeira ação obrigatória
|
|
19
|
+
|
|
20
|
+
Carregue a skill completa `atlas-plan-execute` e siga-a integralmente:
|
|
21
|
+
|
|
22
|
+
- **Claude Code:** invoque a tool `Skill` com `atlas-plan-execute`.
|
|
23
|
+
- **Outros hosts:** use o mecanismo nativo de skills do host para carregar `atlas-plan-execute`.
|
|
24
|
+
|
|
25
|
+
Proibido "agir como a skill" a partir deste resumo — o `SKILL.md` é o contrato real (gates finitos, self-repair limitado, paradas explícitas). Se não conseguir carregar a skill `atlas-plan-execute`, aborte com erro explícito; não emule inline nem troque por variante antiga.
|
|
26
|
+
|
|
27
|
+
## Input
|
|
28
|
+
|
|
29
|
+
O orquestrador passa o caminho do plano/estado (`plan_path` / `state_path`) e as flags da fase. Resolva o plano conforme o `SKILL.md`. Use `atlas_run_state` como fonte primária do estado da run.
|
|
30
|
+
|
|
31
|
+
## Validação fria (Gate G4)
|
|
32
|
+
|
|
33
|
+
Antes do relatório final, a validação fria é sempre **sibling**, em todos os hosts: escreva o `state_path`, pare mutações e retorne `validator_handoff_required` para o orquestrador despachar o validador irmão. Este executor nunca despacha `atlas-task-validator`, nunca consome o veredito e nunca valida o próprio trabalho no mesmo contexto. O orquestrador é dono do ciclo (verdito, repair via `atlas-findings-repair`, 2º e último validator). Só `fail` reabre o loop; `pass`/`pass_with_observations` são terminais.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Revisor frio de slice da família Atlas (--review). Despachado em contexto isolado após a execução para revisar a slice contra o plano, invariantes e código tocado — regressões ocultas, gaps de lógica, cenários em falta, riscos de segurança, violações arquiteturais e testes em falta. Read-only: não edita código nem despacha outros sub-agents. Primeira ação: carregar a skill completa atlas-slice-review.
|
|
3
|
+
mode: subagent
|
|
4
|
+
temperature: 0.1
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Atlas Slice Review (sub-agent)
|
|
8
|
+
|
|
9
|
+
<!-- MANUTENÇÃO (cross-host): SHIM portável — carrega o SKILL.md real de
|
|
10
|
+
atlas-slice-review como primeira ação (references/subagent_dispatch.md). Contrato em
|
|
11
|
+
packages/skills/atlas-slice-review/SKILL.md (fonte única). Versões Codex/opencode/pi
|
|
12
|
+
GERADAS por build/gen-host-agent.mjs. Não copiar o corpo da skill para cá. -->
|
|
13
|
+
|
|
14
|
+
Sub-agent de revisão fria despachado pelo orquestrador `atlas-workflow-orchestrator` após a fase de execução. **Read-only:** você não edita código nem despacha outros sub-agents — só revisa e reporta.
|
|
15
|
+
|
|
16
|
+
## Primeira ação obrigatória
|
|
17
|
+
|
|
18
|
+
Carregue a skill completa `atlas-slice-review` e siga-a integralmente:
|
|
19
|
+
|
|
20
|
+
- **Claude Code:** invoque a tool `Skill` com `atlas-slice-review`.
|
|
21
|
+
- **Outros hosts:** use o mecanismo nativo de skills do host para carregar `atlas-slice-review`.
|
|
22
|
+
|
|
23
|
+
Proibido "agir como a skill" a partir deste resumo — o `SKILL.md` é o contrato real. Se não conseguir carregar a skill, aborte com erro explícito; não emule inline.
|
|
24
|
+
|
|
25
|
+
## Input
|
|
26
|
+
|
|
27
|
+
O orquestrador passa o caminho do plano/estado (`plan_path` / `state_path`) e o boundary da slice. Use `atlas_run_state` como fonte primária do estado da run. Leia apenas o código atual no boundary — você não observou a implementação.
|