atlas-workflow 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +235 -0
- package/VERSION +1 -0
- package/build/cli/atlas-init.mjs +590 -0
- package/hosts/opencode/.opencode/agents/atlas-direct-execute.md +31 -0
- package/hosts/opencode/.opencode/agents/atlas-findings-repair.md +35 -0
- package/hosts/opencode/.opencode/agents/atlas-plan-execute.md +33 -0
- package/hosts/opencode/.opencode/agents/atlas-slice-review.md +27 -0
- package/hosts/opencode/.opencode/agents/atlas-task-validator.md +121 -0
- package/hosts/opencode/.opencode/atlas/VERSION +1 -0
- package/hosts/opencode/.opencode/atlas/orchestrator/README.md +261 -0
- package/hosts/opencode/.opencode/atlas/orchestrator/commands/workflow.md +37 -0
- package/hosts/opencode/.opencode/atlas/orchestrator/defaults/paths.md +21 -0
- package/hosts/opencode/.opencode/atlas/orchestrator/references/host-adapters.md +104 -0
- package/hosts/opencode/.opencode/atlas/orchestrator/references/qa_s13_matrix.md +141 -0
- package/hosts/opencode/.opencode/atlas/orchestrator/references/subagent_dispatch.md +42 -0
- package/hosts/opencode/.opencode/atlas/orchestrator/skills/atlas-workflow-orchestrator/SKILL.md +412 -0
- package/hosts/opencode/.opencode/atlas/packages/mcp-server/README.md +28 -0
- package/hosts/opencode/.opencode/atlas/packages/mcp-server/package.json +15 -0
- package/hosts/opencode/.opencode/atlas/packages/mcp-server/server.js +3076 -0
- package/hosts/opencode/.opencode/atlas/packages/templates/BACKLOG_MESTRE_TEMPLATE.md +844 -0
- package/hosts/opencode/.opencode/atlas/packages/templates/BOUNDARY_PRD_PLAN.md +93 -0
- package/hosts/opencode/.opencode/atlas/packages/templates/PERGUNTAS_EM_ABERTO_TEMPLATE.md +139 -0
- package/hosts/opencode/.opencode/atlas/packages/templates/PLAN_TEMPLATE.md +146 -0
- package/hosts/opencode/.opencode/atlas/packages/templates/PRD_TEMPLATE.md +149 -0
- package/hosts/opencode/.opencode/atlas/packages/templates/STATE_FILE_SCHEMA.md +32 -0
- package/hosts/opencode/.opencode/skills/atlas-backlog-generator/SKILL.md +88 -0
- package/hosts/opencode/.opencode/skills/atlas-backlog-generator/agents/openai.yaml +4 -0
- package/hosts/opencode/.opencode/skills/atlas-direct-execute/SKILL.md +186 -0
- package/hosts/opencode/.opencode/skills/atlas-direct-execute/agents/openai.yaml +7 -0
- package/hosts/opencode/.opencode/skills/atlas-findings-repair/SKILL.md +148 -0
- package/hosts/opencode/.opencode/skills/atlas-findings-repair/agents/openai.yaml +7 -0
- package/hosts/opencode/.opencode/skills/atlas-plan-execute/SKILL.md +129 -0
- package/hosts/opencode/.opencode/skills/atlas-plan-execute/agents/openai.yaml +7 -0
- package/hosts/opencode/.opencode/skills/atlas-plan-execute/references/plan-contract.md +88 -0
- package/hosts/opencode/.opencode/skills/atlas-plan-execute/references/quality-gates.md +60 -0
- package/hosts/opencode/.opencode/skills/atlas-plan-execute/scripts/check_budget_state.py +96 -0
- package/hosts/opencode/.opencode/skills/atlas-plan-execute/scripts/extract_plan_contract.py +191 -0
- package/hosts/opencode/.opencode/skills/atlas-plan-execute/scripts/validate_gate_result.py +56 -0
- package/hosts/opencode/.opencode/skills/atlas-plan-handoff/SKILL.md +181 -0
- package/hosts/opencode/.opencode/skills/atlas-plan-handoff/agents/openai.yaml +7 -0
- package/hosts/opencode/.opencode/skills/atlas-prd-interview/SKILL.md +77 -0
- package/hosts/opencode/.opencode/skills/atlas-prd-interview/agents/openai.yaml +7 -0
- package/hosts/opencode/.opencode/skills/atlas-slice-review/SKILL.md +121 -0
- package/hosts/opencode/.opencode/skills/atlas-slice-review/agents/openai.yaml +4 -0
- package/hosts/opencode/.opencode/skills/atlas-slice-review/references/review-contract.md +58 -0
- package/hosts/opencode/.opencode/skills/atlas-slice-review/references/scenario-lenses.md +49 -0
- package/hosts/opencode/.opencode/skills/atlas-slice-review/scripts/classify_findings.py +56 -0
- package/hosts/opencode/.opencode/skills/atlas-slice-review/scripts/extract_review_slice.py +158 -0
- package/hosts/opencode/.opencode/skills/atlas-sprint-prd-generator/SKILL.md +74 -0
- package/hosts/opencode/.opencode/skills/atlas-sprint-prd-generator/agents/openai.yaml +7 -0
- package/hosts/opencode/.opencode/skills/atlas-task-validator/SKILL.md +158 -0
- package/hosts/opencode/.opencode/skills/atlas-task-validator/agents/openai.yaml +7 -0
- package/hosts/opencode/.opencode/skills/atlas-workflow-orchestrator/SKILL.md +412 -0
- package/hosts/opencode/opencode.json +13 -0
- package/hosts/pi/.mcp.json +11 -0
- package/hosts/pi/.pi/agents/atlas-direct-execute.md +218 -0
- package/hosts/pi/.pi/agents/atlas-findings-repair.md +184 -0
- package/hosts/pi/.pi/agents/atlas-plan-execute.md +163 -0
- package/hosts/pi/.pi/agents/atlas-slice-review.md +149 -0
- package/hosts/pi/.pi/agents/atlas-task-validator.md +121 -0
- package/hosts/pi/atlas/VERSION +1 -0
- package/hosts/pi/atlas/orchestrator/README.md +261 -0
- package/hosts/pi/atlas/orchestrator/commands/workflow.md +37 -0
- package/hosts/pi/atlas/orchestrator/defaults/paths.md +21 -0
- package/hosts/pi/atlas/orchestrator/references/host-adapters.md +104 -0
- package/hosts/pi/atlas/orchestrator/references/qa_s13_matrix.md +141 -0
- package/hosts/pi/atlas/orchestrator/references/subagent_dispatch.md +42 -0
- package/hosts/pi/atlas/orchestrator/skills/atlas-workflow-orchestrator/SKILL.md +412 -0
- package/hosts/pi/atlas/packages/mcp-server/README.md +28 -0
- package/hosts/pi/atlas/packages/mcp-server/package.json +15 -0
- package/hosts/pi/atlas/packages/mcp-server/server.js +3076 -0
- package/hosts/pi/atlas/packages/templates/BACKLOG_MESTRE_TEMPLATE.md +844 -0
- package/hosts/pi/atlas/packages/templates/BOUNDARY_PRD_PLAN.md +93 -0
- package/hosts/pi/atlas/packages/templates/PERGUNTAS_EM_ABERTO_TEMPLATE.md +139 -0
- package/hosts/pi/atlas/packages/templates/PLAN_TEMPLATE.md +146 -0
- package/hosts/pi/atlas/packages/templates/PRD_TEMPLATE.md +149 -0
- package/hosts/pi/atlas/packages/templates/STATE_FILE_SCHEMA.md +32 -0
- package/hosts/pi/skills/atlas-backlog-generator/SKILL.md +88 -0
- package/hosts/pi/skills/atlas-backlog-generator/agents/openai.yaml +4 -0
- package/hosts/pi/skills/atlas-direct-execute/SKILL.md +186 -0
- package/hosts/pi/skills/atlas-direct-execute/agents/openai.yaml +7 -0
- package/hosts/pi/skills/atlas-findings-repair/SKILL.md +148 -0
- package/hosts/pi/skills/atlas-findings-repair/agents/openai.yaml +7 -0
- package/hosts/pi/skills/atlas-plan-execute/SKILL.md +129 -0
- package/hosts/pi/skills/atlas-plan-execute/agents/openai.yaml +7 -0
- package/hosts/pi/skills/atlas-plan-execute/references/plan-contract.md +88 -0
- package/hosts/pi/skills/atlas-plan-execute/references/quality-gates.md +60 -0
- package/hosts/pi/skills/atlas-plan-execute/scripts/check_budget_state.py +96 -0
- package/hosts/pi/skills/atlas-plan-execute/scripts/extract_plan_contract.py +191 -0
- package/hosts/pi/skills/atlas-plan-execute/scripts/validate_gate_result.py +56 -0
- package/hosts/pi/skills/atlas-plan-handoff/SKILL.md +181 -0
- package/hosts/pi/skills/atlas-plan-handoff/agents/openai.yaml +7 -0
- package/hosts/pi/skills/atlas-prd-interview/SKILL.md +77 -0
- package/hosts/pi/skills/atlas-prd-interview/agents/openai.yaml +7 -0
- package/hosts/pi/skills/atlas-slice-review/SKILL.md +121 -0
- package/hosts/pi/skills/atlas-slice-review/agents/openai.yaml +4 -0
- package/hosts/pi/skills/atlas-slice-review/references/review-contract.md +58 -0
- package/hosts/pi/skills/atlas-slice-review/references/scenario-lenses.md +49 -0
- package/hosts/pi/skills/atlas-slice-review/scripts/classify_findings.py +56 -0
- package/hosts/pi/skills/atlas-slice-review/scripts/extract_review_slice.py +158 -0
- package/hosts/pi/skills/atlas-sprint-prd-generator/SKILL.md +74 -0
- package/hosts/pi/skills/atlas-sprint-prd-generator/agents/openai.yaml +7 -0
- package/hosts/pi/skills/atlas-task-validator/SKILL.md +158 -0
- package/hosts/pi/skills/atlas-task-validator/agents/openai.yaml +7 -0
- package/hosts/pi/skills/atlas-workflow-orchestrator/SKILL.md +412 -0
- package/package.json +17 -0
- package/plugins/atlas-workflow-orchestrator/.codex/agents/atlas-direct-execute.toml +3 -0
- package/plugins/atlas-workflow-orchestrator/.codex/agents/atlas-findings-repair.toml +3 -0
- package/plugins/atlas-workflow-orchestrator/.codex/agents/atlas-plan-execute.toml +3 -0
- package/plugins/atlas-workflow-orchestrator/.codex/agents/atlas-slice-review.toml +3 -0
- package/plugins/atlas-workflow-orchestrator/.codex/agents/atlas-task-validator.toml +5 -0
- package/plugins/atlas-workflow-orchestrator/.codex-plugin/plugin.json +37 -0
- package/plugins/atlas-workflow-orchestrator/.mcp.json +12 -0
- package/plugins/atlas-workflow-orchestrator/VERSION +1 -0
- package/plugins/atlas-workflow-orchestrator/agents/atlas-direct-execute.md +31 -0
- package/plugins/atlas-workflow-orchestrator/agents/atlas-findings-repair.md +35 -0
- package/plugins/atlas-workflow-orchestrator/agents/atlas-plan-execute.md +33 -0
- package/plugins/atlas-workflow-orchestrator/agents/atlas-slice-review.md +27 -0
- package/plugins/atlas-workflow-orchestrator/agents/atlas-task-validator.md +123 -0
- package/plugins/atlas-workflow-orchestrator/orchestrator/README.md +261 -0
- package/plugins/atlas-workflow-orchestrator/orchestrator/commands/workflow.md +37 -0
- package/plugins/atlas-workflow-orchestrator/orchestrator/defaults/paths.md +21 -0
- package/plugins/atlas-workflow-orchestrator/orchestrator/references/host-adapters.md +104 -0
- package/plugins/atlas-workflow-orchestrator/orchestrator/references/qa_s13_matrix.md +141 -0
- package/plugins/atlas-workflow-orchestrator/orchestrator/references/subagent_dispatch.md +42 -0
- package/plugins/atlas-workflow-orchestrator/orchestrator/skills/atlas-workflow-orchestrator/SKILL.md +412 -0
- package/plugins/atlas-workflow-orchestrator/packages/mcp-server/README.md +28 -0
- package/plugins/atlas-workflow-orchestrator/packages/mcp-server/package.json +15 -0
- package/plugins/atlas-workflow-orchestrator/packages/mcp-server/server.js +3076 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-backlog-generator/SKILL.md +88 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-backlog-generator/agents/openai.yaml +4 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-direct-execute/SKILL.md +186 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-direct-execute/agents/openai.yaml +7 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-findings-repair/SKILL.md +148 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-findings-repair/agents/openai.yaml +7 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-plan-execute/SKILL.md +129 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-plan-execute/agents/openai.yaml +7 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-plan-execute/references/plan-contract.md +88 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-plan-execute/references/quality-gates.md +60 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-plan-execute/scripts/check_budget_state.py +96 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-plan-execute/scripts/extract_plan_contract.py +191 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-plan-execute/scripts/validate_gate_result.py +56 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-plan-handoff/SKILL.md +181 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-plan-handoff/agents/openai.yaml +7 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-prd-interview/SKILL.md +77 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-prd-interview/agents/openai.yaml +7 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-slice-review/SKILL.md +121 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-slice-review/agents/openai.yaml +4 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-slice-review/references/review-contract.md +58 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-slice-review/references/scenario-lenses.md +49 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-slice-review/scripts/classify_findings.py +56 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-slice-review/scripts/extract_review_slice.py +158 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-sprint-prd-generator/SKILL.md +74 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-sprint-prd-generator/agents/openai.yaml +7 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-task-validator/SKILL.md +158 -0
- package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-task-validator/agents/openai.yaml +7 -0
- package/plugins/atlas-workflow-orchestrator/packages/templates/BACKLOG_MESTRE_TEMPLATE.md +844 -0
- package/plugins/atlas-workflow-orchestrator/packages/templates/BOUNDARY_PRD_PLAN.md +93 -0
- package/plugins/atlas-workflow-orchestrator/packages/templates/PERGUNTAS_EM_ABERTO_TEMPLATE.md +139 -0
- package/plugins/atlas-workflow-orchestrator/packages/templates/PLAN_TEMPLATE.md +146 -0
- package/plugins/atlas-workflow-orchestrator/packages/templates/PRD_TEMPLATE.md +149 -0
- package/plugins/atlas-workflow-orchestrator/packages/templates/STATE_FILE_SCHEMA.md +32 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-backlog-generator/SKILL.md +88 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-backlog-generator/agents/openai.yaml +4 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-direct-execute/SKILL.md +186 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-direct-execute/agents/openai.yaml +7 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-findings-repair/SKILL.md +148 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-findings-repair/agents/openai.yaml +7 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-plan-execute/SKILL.md +129 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-plan-execute/agents/openai.yaml +7 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-plan-execute/references/plan-contract.md +88 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-plan-execute/references/quality-gates.md +60 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-plan-execute/scripts/check_budget_state.py +96 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-plan-execute/scripts/extract_plan_contract.py +191 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-plan-execute/scripts/validate_gate_result.py +56 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-plan-handoff/SKILL.md +181 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-plan-handoff/agents/openai.yaml +7 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-prd-interview/SKILL.md +77 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-prd-interview/agents/openai.yaml +7 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-slice-review/SKILL.md +121 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-slice-review/agents/openai.yaml +4 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-slice-review/references/review-contract.md +58 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-slice-review/references/scenario-lenses.md +49 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-slice-review/scripts/classify_findings.py +56 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-slice-review/scripts/extract_review_slice.py +158 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-sprint-prd-generator/SKILL.md +74 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-sprint-prd-generator/agents/openai.yaml +7 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-task-validator/SKILL.md +158 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-task-validator/agents/openai.yaml +7 -0
- package/plugins/atlas-workflow-orchestrator/skills/atlas-workflow-orchestrator/SKILL.md +412 -0
- package/plugins/atlas-workflow-orchestrator/templates/BACKLOG_MESTRE_TEMPLATE.md +844 -0
- package/plugins/atlas-workflow-orchestrator/templates/BOUNDARY_PRD_PLAN.md +93 -0
- package/plugins/atlas-workflow-orchestrator/templates/PERGUNTAS_EM_ABERTO_TEMPLATE.md +139 -0
- package/plugins/atlas-workflow-orchestrator/templates/PLAN_TEMPLATE.md +146 -0
- package/plugins/atlas-workflow-orchestrator/templates/PRD_TEMPLATE.md +149 -0
- package/plugins/atlas-workflow-orchestrator/templates/STATE_FILE_SCHEMA.md +32 -0
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: atlas-slice-review
|
|
3
|
+
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.
|
|
4
|
+
tools: read, grep, find, ls, bash
|
|
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
|
+
- **pi (sem loader de skills):** o contrato completo está embutido abaixo (seção "Contrato completo da skill"); siga-o integralmente como se fosse o `SKILL.md` carregado.
|
|
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.
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Contrato completo da skill (embutido — fonte única: `packages/skills/atlas-slice-review/SKILL.md`, gerado por build/gen-host-agent.mjs; não editar à mão)
|
|
33
|
+
|
|
34
|
+
# Atlas Slice Review
|
|
35
|
+
|
|
36
|
+
Use this skill only when `--review` is present after `atlas-plan-execute` or any equivalent implementation pass has finished a specific plan slice.
|
|
37
|
+
|
|
38
|
+
Review only the slice that was executed. Do not widen into a generic repo audit unless the user explicitly asks for that.
|
|
39
|
+
|
|
40
|
+
## Invocation gate
|
|
41
|
+
|
|
42
|
+
`--review` is the only automatic dispatch condition. Do not auto-trigger from heuristics, diff size, risk level, or validator observations. If `--review` is absent, report that external review was skipped by contract.
|
|
43
|
+
|
|
44
|
+
## Uso standalone — rótulo de garantia reduzida obrigatório (PRD D10/D11)
|
|
45
|
+
|
|
46
|
+
Esta skill é **análise de leitura**: revisa código, **não muta código**. Pela fronteira de determinismo do Atlas (mutação de código, PRD D10), leitura standalone é **permitida**, mas carrega **risco epistêmico** — a análise não passou pela defesa fria do pipeline (`atlas-task-validator`, que é pipeline-only, só `state_path`). Esse risco é mitigado por **rótulo**, não por gate.
|
|
47
|
+
|
|
48
|
+
**Regra dura:** quando `atlas-slice-review` roda **fora do pipeline** (sem o `atlas-task-validator` ter fechado a slice via state file), a saída **SEMPRE** sai rotulada como garantia reduzida. É **proibido** simular `validator_status: passed` ou qualquer veredito de validação aprovado — a review é leitura, não validação fria.
|
|
49
|
+
|
|
50
|
+
### Formato exato do rótulo (obrigatório no topo da saída standalone)
|
|
51
|
+
|
|
52
|
+
```text
|
|
53
|
+
guarantee_level: reduced_standalone
|
|
54
|
+
validator_status: not_run (sem validator-closed)
|
|
55
|
+
scope: standalone
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
- `guarantee_level: reduced_standalone` — enum fixo (PRD D12); nunca `full_pipeline` em uso standalone.
|
|
59
|
+
- `validator_status: not_run (sem validator-closed)` — declara explicitamente que a defesa fria não rodou. **Proibido** escrever `passed`/`pass`.
|
|
60
|
+
- `scope: standalone` — marca que a review não está ancorada num state file de pipeline.
|
|
61
|
+
|
|
62
|
+
Quando a review roda **dentro do pipeline** (despachada pelo orquestrador após o validator frio fechar a slice), o nível de garantia da slice vem do pipeline (`full_pipeline`) e este rótulo de redução **não** se aplica — mas a própria review continua sendo leitura e nunca emite veredito de validador.
|
|
63
|
+
|
|
64
|
+
> **Invariante:** uma análise de leitura standalone nunca se declara fechada por validação; sai rotulada `reduced_standalone` e jamais simula `validator_status: passed` (PRD D10/D11, fecha Q-08).
|
|
65
|
+
|
|
66
|
+
## State persistence
|
|
67
|
+
|
|
68
|
+
Use `atlas_run_state` as the primary source for run state, dispatch status, and validator status. Do not read or write run ledger files directly. If MCP state is unavailable, block the review rather than accepting a local file fallback.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Review Contract
|
|
73
|
+
|
|
74
|
+
Base the review on three inputs:
|
|
75
|
+
1. **The plan artifact** produced by `atlas-plan-handoff` (Section 2 - Invariantes, Section 6 - Contratos, Section 8 - Validação).
|
|
76
|
+
2. **The executed task ids** or slice boundaries.
|
|
77
|
+
3. **The real code** touched by the implementation.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Required Workflow
|
|
82
|
+
|
|
83
|
+
### 1. Build the slice boundary first
|
|
84
|
+
Before reviewing code, identify:
|
|
85
|
+
* diff physical boundary (`git diff --name-only main...HEAD`).
|
|
86
|
+
* Section 2 - Invariants of Execution (contract).
|
|
87
|
+
* Section 6 - Technical Contracts (signatures and shapes).
|
|
88
|
+
* Section 8 - Validation and Checklist (QA criteria).
|
|
89
|
+
* touch files expected vs actual.
|
|
90
|
+
* resolved conflicts and permission matrices that apply.
|
|
91
|
+
|
|
92
|
+
If the diff and the plan disagree materially, call that out as a structural finding or blocker. Do not silently review an invented scope.
|
|
93
|
+
|
|
94
|
+
### 2. Review in code-review mode, not implementation mode
|
|
95
|
+
This skill is not for fixing code first. It is for finding problems first.
|
|
96
|
+
Look for:
|
|
97
|
+
* behavioral regressions introduced by the slice.
|
|
98
|
+
* hidden logic gaps or missing business scenarios.
|
|
99
|
+
* state-transition bugs and view/store mismatches.
|
|
100
|
+
* security or privacy issues.
|
|
101
|
+
* contract drift from the plan.
|
|
102
|
+
* validation and tests gaps.
|
|
103
|
+
|
|
104
|
+
### 3. Use the plan to hunt missing scenarios
|
|
105
|
+
For each executed task, compare: stated objective, expected change, invariants preserved, and done criteria with real code.
|
|
106
|
+
Ask what the implementation forgot:
|
|
107
|
+
* **State & orquestration:** transition states reativity (loading, success, empty, error), rapid triggers concurency, setup/cleanup symmetry, async stale.
|
|
108
|
+
* **Business rules:** negative paths, closed decisions, fallsback that weaken invariants.
|
|
109
|
+
* **View & rendering:** inputs empty, null, partial, out of order, UI permission conditional.
|
|
110
|
+
* **Contracts:** shape drift, enums, mappers, RLS server-side, i18n parity.
|
|
111
|
+
|
|
112
|
+
### 4. Distinguish current-diff findings from pre-existing issues
|
|
113
|
+
Prefer findings attributable to the executed slice. Mark pre-existing issues as observations or separate notes to keep signals clean and actionable.
|
|
114
|
+
|
|
115
|
+
### 5. Output Expectations
|
|
116
|
+
|
|
117
|
+
Return exactly this structure:
|
|
118
|
+
|
|
119
|
+
```markdown
|
|
120
|
+
## Findings
|
|
121
|
+
|
|
122
|
+
### P0 - <short title>
|
|
123
|
+
- **Slice/Task:** T0N
|
|
124
|
+
- **Por que importa:** [impacto real]
|
|
125
|
+
- **Arquivo:** `relative/path.ext:line`
|
|
126
|
+
- **Modo de falha:** [o que quebra e como]
|
|
127
|
+
- **Evidência:** [o que suporta o finding]
|
|
128
|
+
|
|
129
|
+
### P1 - <short title>
|
|
130
|
+
[same shape]
|
|
131
|
+
|
|
132
|
+
### P2 - <short title>
|
|
133
|
+
[same shape]
|
|
134
|
+
|
|
135
|
+
### P3 - <short title>
|
|
136
|
+
[same shape]
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Perguntas Abertas ou Suposições
|
|
141
|
+
[questões que precisam de confirmação antes de agir nos findings]
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Resumo da Slice
|
|
146
|
+
[breve — o que foi bem implementado, o que precisa atenção, se a slice pode ser considerada fechada]
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Do not add extra sections or narrative conclusions.
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: atlas-task-validator
|
|
3
|
+
description: Validador frio de slice executada por atlas-plan-execute ou atlas-direct-execute. Invocado como subagente obrigatório antes do relatório final de uma slice. Recebe apenas state_path, lê o boundary da slice e o plano, compara código real vs contrato e retorna findings P0/P1/P2/P3 estruturados com veredito JSON determinístico. Não corrige código. Não propõe diff.
|
|
4
|
+
tools: read, grep, find, ls, bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Atlas Task Validator
|
|
8
|
+
|
|
9
|
+
<!-- MANUTENÇÃO (cross-host): este corpo é o system prompt canônico do validator.
|
|
10
|
+
Claude usa agents/<name>.md; Codex/opencode/pi geram registros nativos a partir
|
|
11
|
+
deste arquivo. packages/skills/atlas-task-validator/SKILL.md documenta o contrato
|
|
12
|
+
e o guard mantém o veredito/severidades sincronizados. -->
|
|
13
|
+
|
|
14
|
+
Subagente de validação fria. Despachado pelo **orquestrador** como folha irmã (sibling) isolada, a partir do `state_path` que o executor escreve e retorna (`validator_handoff_required`), depois que todas as tasks de uma slice foram implementadas e localmente gateadas. Nunca é invocado pelo executor.
|
|
15
|
+
|
|
16
|
+
Objetivo: passagem de validação fria e estruturada da slice entregue contra o contrato do plano. Você não observou a implementação — leia apenas o código atual.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Invocation Contract
|
|
21
|
+
|
|
22
|
+
Você recebe **um único input base**: `state_path`.
|
|
23
|
+
|
|
24
|
+
Leia o JSON em `.atlas/state/<run_id>/<slice>.json` usando o schema em `packages/templates/STATE_FILE_SCHEMA.md`. Desse arquivo, carregue:
|
|
25
|
+
|
|
26
|
+
1. **Slice boundary** — `files_changed` + `diff_stat`.
|
|
27
|
+
2. **Plan path** — `plan_path`, depois leia Section 2 (Invariantes de execução), Section 6 (Contratos técnicos) e Section 8 (Validação e checklist).
|
|
28
|
+
3. **Executed task ids** — `tasks`.
|
|
29
|
+
4. **Boundary refs** — `boundary_refs`.
|
|
30
|
+
|
|
31
|
+
Não aceite contrato inline, diff colado ou listas de tasks coladas como boundary de validação. Se `state_path` estiver ausente, ilegível, ou faltar qualquer campo obrigatório, retorne JSON com `verdict: "fail"` e um finding P1 `Input insuficiente: <missing item>`.
|
|
32
|
+
|
|
33
|
+
## State persistence
|
|
34
|
+
|
|
35
|
+
Use `atlas_run_state` como fonte primária de metadados da run e estado de gate. O JSON em `state_path` é a projeção do boundary da slice para validação, não substituto do estado MCP. Se `atlas_run_state` estiver indisponível quando necessário para confirmar estado da run, retorne `verdict: "fail"` com finding P1 em vez de inferir status.
|
|
36
|
+
|
|
37
|
+
Antes de validar, derive o `run_id` do `state_path`, chame `atlas_run_state(action=get)` e confirme:
|
|
38
|
+
|
|
39
|
+
- `validator_recovery.status == "running"`
|
|
40
|
+
- `validator_recovery.expected_state_path == state_path`
|
|
41
|
+
- `validator_recovery.expected_dispatch_token` é inteiro
|
|
42
|
+
|
|
43
|
+
Copie esse token sem alteração para `dispatch_token` no output. Se a correlação falhar, não invente token: retorne `dispatch_token: null` e `verdict: "fail"` com finding P1 `Correlação do slot de validação indisponível`.
|
|
44
|
+
|
|
45
|
+
### Proof-of-work (challenge do boundary)
|
|
46
|
+
|
|
47
|
+
Se `validator_recovery.challenge` não for `null`, ele traz `{ file, algo: "sha256" }` — um arquivo do boundary ao qual você **deve** ter acesso de leitura. Compute o hash dos bytes crus desse arquivo (relativo ao project root) e devolva em `challenge_response`:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
shasum -a 256 "<challenge.file>"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Coloque o hash hex (primeiro token da saída) em `challenge_response`. Se `challenge` for `null`, omita `challenge_response` ou devolva `null`. Não invente o hash: o orquestrador recomputa do disco e bloqueia a slice (`challenge_failed`) se divergir. Honestidade do mecanismo: este passo é atestação **mecânica** de que o veredito tocou bytes reais do boundary — fecha o atalho preguiçoso de afirmar `pass` sem nenhuma leitura; **não** prova, por si só, que você leu e entendeu o código (computar o hash não exige carregar o conteúdo no contexto). A leitura real do boundary continua sendo sua obrigação de validador. Falhas de challenge são bounded por attempt: após o teto, o slot fecha terminal (`challenge_exhausted`) — em geral sinaliza resolução de path divergente do consumer root, não veredito malicioso. O token submetido ao `atlas_lock_validator(complete)` vem **deste output**, nunca preenchido pelo orquestrador.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Operating Rules
|
|
58
|
+
|
|
59
|
+
1. **Leia código real no boundary da slice.** Não infira conformidade por nome de arquivo ou título de task.
|
|
60
|
+
2. **Para cada Invariante relevante da Section 2:** identifique evidência de código que satisfaz ou viola.
|
|
61
|
+
3. **Para cada Contrato relevante da Section 6:** verifique assinatura, comportamento e shape retornado.
|
|
62
|
+
4. **Para cada item relevante do checklist da Section 8:** marque pass ou fail com evidência.
|
|
63
|
+
5. **Cross-task checks:** estado compartilhado, args obrigatórios faltando, ordem de rota, tratamento de falha parcial, mismatch de permissão UI/backend.
|
|
64
|
+
6. **Baseline universal abaixo.** Não invente critérios obrigatórios fora do plano e do baseline.
|
|
65
|
+
7. **Não corrija arquivos nem proponha diffs.** Sugestão de fix cabe em 1-2 linhas de texto.
|
|
66
|
+
|
|
67
|
+
## Universal Baseline
|
|
68
|
+
|
|
69
|
+
* **Naming cross-layer:** métodos de leitura usam prefixo `get*`. Mutação usa verbos explícitos (`create`, `update`, `delete`, `add`, `remove`). Conceitos mantêm raiz consistente entre camadas.
|
|
70
|
+
* **State lifecycle:** stores/controllers reusados entre modos ou rotas resetam estado anterior em `init()` ou transição.
|
|
71
|
+
* **Navigation args:** resolvers validam campos obrigatórios; navegação passa todos os ids exigidos (sem placeholder vazio `''`).
|
|
72
|
+
* **Partial failure paths:** mutações multi-step expõem persistência parcial claramente se um passo posterior falhar.
|
|
73
|
+
* **Backend e UI gate match:** mutações sensíveis exigem enforcement server-side. Gate só de UI é insuficiente.
|
|
74
|
+
* **Route registration:** rotas literais registradas antes de paramétricas (`/:id`, `/:id/edit`) sob o mesmo prefixo.
|
|
75
|
+
* **Localization:** novas chaves de localização existem em todos os locales exigidos; l10n gerado limpo.
|
|
76
|
+
* **Analyzer:** `flutter analyze` (ou equivalente da stack) retorna zero issues para arquivos tocados no boundary.
|
|
77
|
+
* **Casts e nullability:** casts de payload remoto usam padrões defensivos; nulos em coleções tratados com `?? []`.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Output contract
|
|
82
|
+
|
|
83
|
+
Retorne JSON estrito como output final. Não envolva em Markdown e não anteceda com prosa.
|
|
84
|
+
|
|
85
|
+
```json
|
|
86
|
+
{
|
|
87
|
+
"dispatch_token": 1,
|
|
88
|
+
"challenge_response": "string (sha256 hex do challenge.file; null se sem challenge)",
|
|
89
|
+
"verdict": "pass | fail | pass_with_observations",
|
|
90
|
+
"findings": [
|
|
91
|
+
{ "severity": "P0|P1|P2|P3", "file": "string", "line": 0, "msg": "string" }
|
|
92
|
+
],
|
|
93
|
+
"observations": [
|
|
94
|
+
{ "file": "string", "line": 0, "msg": "string" }
|
|
95
|
+
],
|
|
96
|
+
"boundary_violations": [
|
|
97
|
+
{ "file": "string", "reason": "string" }
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
`dispatch_token` deve ser exatamente `validator_recovery.expected_dispatch_token`. `findings`, `observations` e `boundary_violations` são sempre arrays. Use arrays vazios quando não houver itens.
|
|
103
|
+
|
|
104
|
+
## Severity Model
|
|
105
|
+
|
|
106
|
+
Escala alinhada com `atlas-slice-review` (`P0/P1/P2/P3`).
|
|
107
|
+
|
|
108
|
+
* `P0`: blocker — falha de segurança, perda/corrupção de dado, build quebrado, ou mutação sensível que chega à produção sem enforcement server-side.
|
|
109
|
+
* `P1`: fluxo primário quebrado, violação de invariante crítico da Section 2, id/contexto obrigatório inválido.
|
|
110
|
+
* `P2`: gap de cenário, vazamento de state lifecycle, mitigação ausente em caminho de falha relevante.
|
|
111
|
+
* `P3`: inconsistência de baixo risco, item de limpeza.
|
|
112
|
+
|
|
113
|
+
## Verdict Rule (determinística)
|
|
114
|
+
|
|
115
|
+
Mapeie findings → veredito **mecanicamente**, nunca por percepção:
|
|
116
|
+
|
|
117
|
+
* Qualquer finding `P0` **ou** `P1` em `findings` → `verdict: "fail"`. Sem exceção.
|
|
118
|
+
* Sem `P0`/`P1`, mas um ou mais `P2` → `verdict: "pass_with_observations"`.
|
|
119
|
+
* Só `P3` (ou zero findings) → `verdict: "pass"`.
|
|
120
|
+
|
|
121
|
+
`P0`/`P1` no array `findings` com `verdict: "pass"` ou `"pass_with_observations"` é **output inválido**. Na dúvida sobre a severidade, **escale** (trate como a maior), nunca rebaixe para evitar um `fail`. Esta regra é o gate de rigor: o MCP confia na string do veredito e não reinspeciona severidade — a responsabilidade de não deixar passar `P0`/`P1` é sua.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.8.2
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
# Atlas Workflow Orchestrator
|
|
2
|
+
|
|
3
|
+
Orquestra pipelines completos de desenvolvimento de features no projeto Atlas, automatizando a sequência de skills (PRD generation → planejamento → execução → review) sob demanda.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
/workflow full backlog-item "S05"
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Pipeline completo executado automaticamente:
|
|
12
|
+
1. Gera PRD para sprint S05
|
|
13
|
+
2. Valida PRD (detecta ambiguidades automaticamente)
|
|
14
|
+
3. Executa entrevista se houver decisões em aberto
|
|
15
|
+
4. Cria plano
|
|
16
|
+
5. Executa plano
|
|
17
|
+
6. (Opcional) Executa review
|
|
18
|
+
|
|
19
|
+
## Sintaxe
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
/workflow <mode> <input-type> [flags]
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Modes
|
|
26
|
+
|
|
27
|
+
- `full` — Pipeline completo (PRD → plano → executor → review opcional)
|
|
28
|
+
- `direct` — Pipeline enxuto (PRD → executor → review opcional)
|
|
29
|
+
- `interview-only` — Entrevista direta (brainstorm, resolução de decisões)
|
|
30
|
+
|
|
31
|
+
### Input Types
|
|
32
|
+
|
|
33
|
+
- `backlog-item` — Sprint ID (ex: S05) ou indicação direta
|
|
34
|
+
- `idea` — Indicação/brainstorm curto
|
|
35
|
+
- `prd` — Path para PRD existente
|
|
36
|
+
- `brainstorm` — Texto livre (só para interview-only)
|
|
37
|
+
|
|
38
|
+
### Flags
|
|
39
|
+
|
|
40
|
+
- `--interview` — Força entrevista de PRD mesmo sem ambiguidades
|
|
41
|
+
- `--review` — Executa slice-review ao final
|
|
42
|
+
- `--help` — Mostra sintaxe completa
|
|
43
|
+
|
|
44
|
+
## Exemplos
|
|
45
|
+
|
|
46
|
+
### Full pipeline com sprint S05
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
/workflow full backlog-item "S05"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Output:
|
|
53
|
+
```
|
|
54
|
+
✅ Workflow: claude full backlog-item completed
|
|
55
|
+
|
|
56
|
+
📄 PRD: /path/to/PRD_S05_login.md
|
|
57
|
+
📋 Plan: /path/to/PLAN_S05_login.md
|
|
58
|
+
🚀 Output: [summary do executor]
|
|
59
|
+
|
|
60
|
+
Status:
|
|
61
|
+
✅ PRD valid
|
|
62
|
+
✅ Ambiguidades resolvidas (2 decisões coletadas)
|
|
63
|
+
✅ Plano generated
|
|
64
|
+
✅ Executor output ready (required in full/direct)
|
|
65
|
+
⏭️ Slice review: not executed
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Direct pipeline com PRD existente + review
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
/workflow direct prd "/path/to/PRD_S05.md" --review
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Entrevista de brainstorm
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
/workflow interview-only brainstorm "Que tal dark mode?"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Force entrevista mesmo sem ambiguidades
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
/workflow full idea "melhorar performance" --interview
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Como funciona
|
|
87
|
+
|
|
88
|
+
### Full Mode
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
1. Parse input (resolve sprint/indicação)
|
|
92
|
+
↓
|
|
93
|
+
2. Generate PRD (`atlas-sprint-prd-generator`)
|
|
94
|
+
↓
|
|
95
|
+
3. Validate PRD (busca TBD, "a confirmar", gaps)
|
|
96
|
+
↓
|
|
97
|
+
4. Interview (automático se ambiguidades OU --interview)
|
|
98
|
+
└─ Atualiza PRD com decisões coletadas
|
|
99
|
+
↓
|
|
100
|
+
5. Plan (`atlas-plan-handoff`)
|
|
101
|
+
↓
|
|
102
|
+
6. Validate Plan (tem gaps?)
|
|
103
|
+
└─ Pergunta: volta? continua TBD? adia?
|
|
104
|
+
↓
|
|
105
|
+
7. Execute obrigatório em `full` (`atlas-plan-execute`, com `atlas-task-validator` sub-agent)
|
|
106
|
+
↓
|
|
107
|
+
8. Review (se --review)
|
|
108
|
+
└─ `atlas-slice-review`
|
|
109
|
+
↓
|
|
110
|
+
9. Output (resumo + próximos passos)
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Direct Mode
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
1. Parse/Generate PRD
|
|
117
|
+
↓
|
|
118
|
+
2. Validate PRD + Interview (condicional)
|
|
119
|
+
↓
|
|
120
|
+
3. Execute
|
|
121
|
+
↓
|
|
122
|
+
4. Review (se --review)
|
|
123
|
+
↓
|
|
124
|
+
5. Output
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Interview-Only Mode
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
1. Entrevista direta (sem PRD anterior)
|
|
131
|
+
↓
|
|
132
|
+
2. Output (PRD esboço + decisões)
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## Sequências canônicas
|
|
136
|
+
|
|
137
|
+
Atlas é família única. Cliente (Claude Code, Cursor, Codex App) é apenas o host que executa as skills; não existe roteamento por família.
|
|
138
|
+
|
|
139
|
+
| Mode | Sequência |
|
|
140
|
+
|------|-----------|
|
|
141
|
+
| `full` | `atlas-sprint-prd-generator` → `atlas-prd-interview` quando necessário → `atlas-plan-handoff` → `atlas-plan-execute` → `atlas-task-validator` → `atlas-findings-repair` (no `fail`) → `atlas-slice-review` somente com `--review` |
|
|
142
|
+
| `direct` | PRD/spec existente → `atlas-direct-execute` → `atlas-task-validator` → `atlas-findings-repair` (no `fail`) → `atlas-slice-review` somente com `--review` |
|
|
143
|
+
| `interview-only` | `atlas-prd-interview` |
|
|
144
|
+
|
|
145
|
+
## Validação automática
|
|
146
|
+
|
|
147
|
+
Plugin detecta ambiguidades em:
|
|
148
|
+
- **Contexto e objetivo (§1):** TBD, "a confirmar", vago
|
|
149
|
+
- **Escopo (§2):** incompleto, "depende de"
|
|
150
|
+
- **Decisões (§3):** vazio ou muito vago
|
|
151
|
+
- **Fluxos e cenários UX (§4):** gaps, "a definir"
|
|
152
|
+
- **Contrato funcional e invariantes (§5):** "ainda não definido", "mock"
|
|
153
|
+
|
|
154
|
+
Se encontra ambiguidades → o orquestrador conduz `atlas-prd-interview` automaticamente no fio principal.
|
|
155
|
+
|
|
156
|
+
## Lógica de decisão
|
|
157
|
+
|
|
158
|
+
Quando há decisões pendentes:
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
Plugin: Tenho decisões em aberto:
|
|
162
|
+
Q-XXX-01: [decisão 1]
|
|
163
|
+
Q-XXX-02: [decisão 2]
|
|
164
|
+
|
|
165
|
+
Opções:
|
|
166
|
+
A) Volta pra resolver tudo (roda interview agora)
|
|
167
|
+
B) Continua com recomendações (marca TBD)
|
|
168
|
+
C) Adia essas decisões
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Você escolhe A/B/C → pipeline continua conforme.
|
|
172
|
+
|
|
173
|
+
## Integração com seu workflow
|
|
174
|
+
|
|
175
|
+
### Antes de rodar workflow
|
|
176
|
+
|
|
177
|
+
1. Opcional: criar backlog mestre explicitamente com `$atlas-backlog-generator`
|
|
178
|
+
2. Preenchimento de `PERGUNTAS_EM_ABERTO.md` (fora do plugin)
|
|
179
|
+
3. Resolver perguntas abertas fora do pipeline (se necessário)
|
|
180
|
+
|
|
181
|
+
### Ao rodar workflow
|
|
182
|
+
|
|
183
|
+
```
|
|
184
|
+
/workflow full backlog-item "S05"
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Plugin automatiza tudo. Você valida output.
|
|
188
|
+
|
|
189
|
+
### Depois de workflow
|
|
190
|
+
|
|
191
|
+
1. Validação de output do executor
|
|
192
|
+
2. (Opcional) Rodada de slice-review quando `--review` foi solicitado
|
|
193
|
+
3. Avança para S06
|
|
194
|
+
|
|
195
|
+
## Skills envolvidas
|
|
196
|
+
|
|
197
|
+
| Skill | Função |
|
|
198
|
+
|-------|--------|
|
|
199
|
+
| `atlas-backlog-generator` | Cria backlog mestre a partir de ideia, prompt, conversa ou briefing; uso preparatório explícito, fora da cadeia automática |
|
|
200
|
+
| `atlas-sprint-prd-generator` | Gera PRD a partir de sprint/indicação |
|
|
201
|
+
| `atlas-prd-interview` | Entrevista de PRD (resolve ambiguidades) |
|
|
202
|
+
| `atlas-plan-handoff` | Cria plano executável |
|
|
203
|
+
| `atlas-plan-execute` | Executa plano (com `atlas-task-validator` sub-agent) |
|
|
204
|
+
| `atlas-slice-review` | Review fria de implementação quando `--review` está presente |
|
|
205
|
+
|
|
206
|
+
## Configuração
|
|
207
|
+
|
|
208
|
+
Plugin usa configuração embutida no MCP para modos, skills `atlas-*` e validadores de ambiguidade. Defaults auxiliares continuam empacotados em `packages/orchestrator/defaults/` e referências em `packages/orchestrator/references/`.
|
|
209
|
+
|
|
210
|
+
## Error handling
|
|
211
|
+
|
|
212
|
+
- **Sprint não encontrado:** reporta sprints disponíveis
|
|
213
|
+
- **Skill falha:** para, reporta erro, oferece retry/skip/abort
|
|
214
|
+
- **PRD inválido:** reporta sections faltando
|
|
215
|
+
- **Ambiguidades não resolvidas:** pergunta próximos passos
|
|
216
|
+
|
|
217
|
+
## Dúvidas?
|
|
218
|
+
|
|
219
|
+
Veja este README, `packages/mcp-server/README.md` e os SKILL.md `atlas-*` para o contrato operacional atual.
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
**Plugin version:** 0.8.2
|
|
224
|
+
**Author:** Paulo Borini
|
|
225
|
+
**Last updated:** 2026-06-15
|
|
226
|
+
|
|
227
|
+
### Novidades v0.8.2 — release/npm e procedimento de bump
|
|
228
|
+
|
|
229
|
+
- Pacote npm `atlas-workflow` validado como instalador multi-host (`npm pack`, `npm exec` do tarball e `.npmignore` restritivo).
|
|
230
|
+
- CI de release publica npm com provenance e GitHub Release somente por tag `vX.Y.Z`, com guard de tag = `VERSION` = `package.json.version`.
|
|
231
|
+
- Procedimento de patch/bump documenta o fluxo completo para IA: classificar mudança, atualizar versões, regenerar catálogos, validar CI local, checar pacote npm, taguear e verificar publicação.
|
|
232
|
+
|
|
233
|
+
### Novidades v0.8.0 — proof-of-work do validador frio (Gate G4, R20)
|
|
234
|
+
|
|
235
|
+
- `atlas_lock_validator(start)` emite um `challenge` (sha256 de um arquivo do boundary do `state_path`); o validador irmão lê via `validator_recovery.challenge`, computa o hash e devolve em `challenge_response`.
|
|
236
|
+
- `atlas_lock_validator(complete)` recomputa o hash do disco e bloqueia (`challenge_failed`) em divergência/ausência, sem fechar o slot — re-despacho do mesmo validador. O re-dispatch é **bounded** por attempt: esgotado o teto, o slot fecha terminal (`challenge_exhausted`, fail-closed).
|
|
237
|
+
- O hash esperado nunca é persistido em estado legível (recomputado on-demand). Best-effort: boundary sem arquivo legível → sem enforcement; arquivo ausente no complete → `unverifiable`, não bloqueia.
|
|
238
|
+
- Escopo honesto: atestação **mecânica** de leitura do boundary, **não** prova de isolamento não-forjável. Schema `atlas_capabilities` v5 intacto.
|
|
239
|
+
|
|
240
|
+
### Novidades v0.7.1 / v0.7.2 — confiabilidade
|
|
241
|
+
|
|
242
|
+
- `ping().capabilities` derivado de `toolsList()` (fonte única — fim do drift que omitia `atlas_classify_input`); CI job `cross-os` (Windows/macOS); `.gitattributes` para artefatos gerados.
|
|
243
|
+
- `atlas_run_state(upsert)` faz merge top-level (não derruba `dispatch.active`); `findActiveRunConflict` só bloqueia conflito de lock real; `atlas_verify_artifact` aceita `artifact_kind`; Gate G4 endurecido (R17 falha de dispatch = `blocked`; R19 proveniência do `dispatch_token`).
|
|
244
|
+
|
|
245
|
+
### Novidades v0.7.0 — topologia sibling-only
|
|
246
|
+
|
|
247
|
+
- Validação fria é sempre sub-agent irmão em todos os hosts: o executor escreve `state_path` e encerra; o orquestrador despacha `atlas-task-validator`. Gate JOIN no preflight, `dispatch_token` monotônico, máximo de 2 validators por contrato. `CAPABILITIES_SCHEMA_VERSION` v3 → v5 (BREAKING de contrato, sem mudança de comportamento).
|
|
248
|
+
|
|
249
|
+
### Novidades v0.6.2 — backlog mestre explícito
|
|
250
|
+
|
|
251
|
+
- `atlas-backlog-generator` cria backlog mestre a partir de ideia, prompt ou conversa somente quando acionado explicitamente.
|
|
252
|
+
- O backlog padrão vai para `.atlas/backlog/BACKLOG_MESTRE_<slug>.md` quando o usuário não informa path.
|
|
253
|
+
- `BACKLOG_MESTRE_TEMPLATE.md` inclui MoSCoW, esforço x ganho, dependências, riscos e próxima sprint executável.
|
|
254
|
+
- A cadeia automática do workflow permanece começando no PRD; backlog é preparação documental opcional.
|
|
255
|
+
|
|
256
|
+
### Novidades v0.6.1 — fronteira documental no orquestrador
|
|
257
|
+
|
|
258
|
+
- Fases documentais (`PRD`, entrevista, `PLAN_*.md`) são conduzidas no orquestrador; o primeiro sub-agent obrigatório do `full` nasce em `atlas-plan-execute`.
|
|
259
|
+
- Os únicos sub-agents do pipeline são `atlas-plan-execute`/`atlas-direct-execute`, `atlas-task-validator`, `atlas-findings-repair` e `atlas-slice-review`.
|
|
260
|
+
- A topologia é **sibling** em todos os hosts: o orquestrador coordena o validator irmão a partir do `state_path` retornado pelo executor e só reabre execução em `fail`. Host sem join síncrono é rejeitado no preflight (gate JOIN).
|
|
261
|
+
- `atlas_preflight`/dispatchability distinguem skills documentais de skills executoras, evitando exigir sub-agent para entrevista/plano.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Orquestra pipeline de desenvolvimento de feature no Atlas (PRD → validação → entrevista → plano → execução → review)
|
|
3
|
+
argument-hint: <mode> <input-type> [input] [--interview] [--review] [--help]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Você está executando o comando `/workflow` do plugin **atlas-workflow-orchestrator**.
|
|
7
|
+
|
|
8
|
+
Argumentos recebidos: `$ARGUMENTS`
|
|
9
|
+
|
|
10
|
+
## Ação
|
|
11
|
+
|
|
12
|
+
1. Invoque a skill **`atlas-workflow-orchestrator`** passando os argumentos acima como input.
|
|
13
|
+
2. A skill é dona de toda a lógica: parsing de `<mode> <input-type> [input] [flags]`, orquestração das sub-skills, validação de ambiguidades, resolução de decisão em aberto via entrevista (não para o pipeline) e formato de output. Siga o `SKILL.md` dela como contrato.
|
|
14
|
+
3. Se `$ARGUMENTS` estiver vazio ou contiver `--help`, mostre a sintaxe completa da skill e pare.
|
|
15
|
+
|
|
16
|
+
## Referência rápida de sintaxe
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
/workflow <mode> <input-type> [input] [flags]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
- **mode**: `full` · `direct` · `execute` · `interview-only`
|
|
23
|
+
- **input-type**: `backlog-item` · `idea` · `prd` · `plan` · `brainstorm`
|
|
24
|
+
- **flags**: `--interview` · `--review` · `--help`
|
|
25
|
+
|
|
26
|
+
Exemplos:
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
/workflow full backlog-item "S05"
|
|
30
|
+
/workflow direct prd "/path/PRD_S05.md" --review
|
|
31
|
+
/workflow execute plan "/path/PLAN_S05.md"
|
|
32
|
+
/workflow interview-only brainstorm "que tal dark mode?"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Não improvise comportamento fora do `SKILL.md`. **Pipeline é fire-and-continue**: uma vez iniciado, avança fase a fase sem pedir permissão entre gates; só para em gate duro `blocked` ou blockage de ambiente real (ver "Princípio de continuação automática"). Nunca invente "Modo Discussão" ou peça "quer que eu gere/continue?". Decisão em aberto não para — dispara entrevista, propaga e segue. Em caso de erro real, siga "Error handling".
|
|
36
|
+
|
|
37
|
+
**Gates duros (v0.3):** o pipeline é orientado a artefato e MCP. Antes de iniciar, rode a **Fase 0 (Pré-flight)** com `atlas_ping` e `atlas_preflight`; use ids `atlas-*`; garanta que cada sub-agent carregue o `SKILL.md` real antes de agir. Se MCP não responder, resultado exigido estiver ausente ou status for bloqueante, **aborte; nunca use fallback narrativo**. Respeite os Gates G1–G11 + TC da SKILL: `atlas_verify_artifact` antes de avançar (G1); em `full`, nenhum código antes de `PLAN_*.md` validado (G2); skills invocadas de verdade (G3); validador frio como sub-agent separado (G4); `atlas_scan_prd` determinístico e logado (G5); status verificado contra disco e MCP (G6); plano/execução/review como sub-agents reais com `atlas_lock_dispatch` (G7/G8); orquestrador de mãos atadas e dispatch blocking (G9); família única atlas-* via `atlas_preflight` (G10); em `full`, `atlas_assert_after_plan` exige `plan_execute` após plano (G11); PRD/PLAN exigem `atlas_verify_template_conformance` passed com `pending_count: 0` (TC).
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Defaults de paths
|
|
2
|
+
|
|
3
|
+
Estes defaults viajam no pacote do plugin. O workflow não exige arquivo de configuração na raiz do repositório usuário.
|
|
4
|
+
|
|
5
|
+
## Config
|
|
6
|
+
|
|
7
|
+
1. Usar a configuração embutida no MCP do plugin.
|
|
8
|
+
2. Usar `defaults/` e `references/` empacotados no plugin.
|
|
9
|
+
3. Só considerar arquivos equivalentes no workspace quando o usuário apontar explicitamente.
|
|
10
|
+
|
|
11
|
+
## Artefatos
|
|
12
|
+
|
|
13
|
+
| Artefato | Default |
|
|
14
|
+
|----------|---------|
|
|
15
|
+
| PRD | path informado pelo usuário; senão diretório do backlog/template encontrado pela skill geradora |
|
|
16
|
+
| PLAN | mesmo diretório do PRD, salvo se a skill de handoff resolver path mais específico |
|
|
17
|
+
| Evidência de execução | relatório emitido pelo executor + diff real do workspace |
|
|
18
|
+
|
|
19
|
+
## Regra
|
|
20
|
+
|
|
21
|
+
Path específico de produto/repo nunca é obrigatório no orquestrador. Skills de PRD/plano podem descobrir templates/backlog no workspace, mas ausência de layout específico não autoriza implementação inline.
|