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.
Files changed (197) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +235 -0
  3. package/VERSION +1 -0
  4. package/build/cli/atlas-init.mjs +590 -0
  5. package/hosts/opencode/.opencode/agents/atlas-direct-execute.md +31 -0
  6. package/hosts/opencode/.opencode/agents/atlas-findings-repair.md +35 -0
  7. package/hosts/opencode/.opencode/agents/atlas-plan-execute.md +33 -0
  8. package/hosts/opencode/.opencode/agents/atlas-slice-review.md +27 -0
  9. package/hosts/opencode/.opencode/agents/atlas-task-validator.md +121 -0
  10. package/hosts/opencode/.opencode/atlas/VERSION +1 -0
  11. package/hosts/opencode/.opencode/atlas/orchestrator/README.md +261 -0
  12. package/hosts/opencode/.opencode/atlas/orchestrator/commands/workflow.md +37 -0
  13. package/hosts/opencode/.opencode/atlas/orchestrator/defaults/paths.md +21 -0
  14. package/hosts/opencode/.opencode/atlas/orchestrator/references/host-adapters.md +104 -0
  15. package/hosts/opencode/.opencode/atlas/orchestrator/references/qa_s13_matrix.md +141 -0
  16. package/hosts/opencode/.opencode/atlas/orchestrator/references/subagent_dispatch.md +42 -0
  17. package/hosts/opencode/.opencode/atlas/orchestrator/skills/atlas-workflow-orchestrator/SKILL.md +412 -0
  18. package/hosts/opencode/.opencode/atlas/packages/mcp-server/README.md +28 -0
  19. package/hosts/opencode/.opencode/atlas/packages/mcp-server/package.json +15 -0
  20. package/hosts/opencode/.opencode/atlas/packages/mcp-server/server.js +3076 -0
  21. package/hosts/opencode/.opencode/atlas/packages/templates/BACKLOG_MESTRE_TEMPLATE.md +844 -0
  22. package/hosts/opencode/.opencode/atlas/packages/templates/BOUNDARY_PRD_PLAN.md +93 -0
  23. package/hosts/opencode/.opencode/atlas/packages/templates/PERGUNTAS_EM_ABERTO_TEMPLATE.md +139 -0
  24. package/hosts/opencode/.opencode/atlas/packages/templates/PLAN_TEMPLATE.md +146 -0
  25. package/hosts/opencode/.opencode/atlas/packages/templates/PRD_TEMPLATE.md +149 -0
  26. package/hosts/opencode/.opencode/atlas/packages/templates/STATE_FILE_SCHEMA.md +32 -0
  27. package/hosts/opencode/.opencode/skills/atlas-backlog-generator/SKILL.md +88 -0
  28. package/hosts/opencode/.opencode/skills/atlas-backlog-generator/agents/openai.yaml +4 -0
  29. package/hosts/opencode/.opencode/skills/atlas-direct-execute/SKILL.md +186 -0
  30. package/hosts/opencode/.opencode/skills/atlas-direct-execute/agents/openai.yaml +7 -0
  31. package/hosts/opencode/.opencode/skills/atlas-findings-repair/SKILL.md +148 -0
  32. package/hosts/opencode/.opencode/skills/atlas-findings-repair/agents/openai.yaml +7 -0
  33. package/hosts/opencode/.opencode/skills/atlas-plan-execute/SKILL.md +129 -0
  34. package/hosts/opencode/.opencode/skills/atlas-plan-execute/agents/openai.yaml +7 -0
  35. package/hosts/opencode/.opencode/skills/atlas-plan-execute/references/plan-contract.md +88 -0
  36. package/hosts/opencode/.opencode/skills/atlas-plan-execute/references/quality-gates.md +60 -0
  37. package/hosts/opencode/.opencode/skills/atlas-plan-execute/scripts/check_budget_state.py +96 -0
  38. package/hosts/opencode/.opencode/skills/atlas-plan-execute/scripts/extract_plan_contract.py +191 -0
  39. package/hosts/opencode/.opencode/skills/atlas-plan-execute/scripts/validate_gate_result.py +56 -0
  40. package/hosts/opencode/.opencode/skills/atlas-plan-handoff/SKILL.md +181 -0
  41. package/hosts/opencode/.opencode/skills/atlas-plan-handoff/agents/openai.yaml +7 -0
  42. package/hosts/opencode/.opencode/skills/atlas-prd-interview/SKILL.md +77 -0
  43. package/hosts/opencode/.opencode/skills/atlas-prd-interview/agents/openai.yaml +7 -0
  44. package/hosts/opencode/.opencode/skills/atlas-slice-review/SKILL.md +121 -0
  45. package/hosts/opencode/.opencode/skills/atlas-slice-review/agents/openai.yaml +4 -0
  46. package/hosts/opencode/.opencode/skills/atlas-slice-review/references/review-contract.md +58 -0
  47. package/hosts/opencode/.opencode/skills/atlas-slice-review/references/scenario-lenses.md +49 -0
  48. package/hosts/opencode/.opencode/skills/atlas-slice-review/scripts/classify_findings.py +56 -0
  49. package/hosts/opencode/.opencode/skills/atlas-slice-review/scripts/extract_review_slice.py +158 -0
  50. package/hosts/opencode/.opencode/skills/atlas-sprint-prd-generator/SKILL.md +74 -0
  51. package/hosts/opencode/.opencode/skills/atlas-sprint-prd-generator/agents/openai.yaml +7 -0
  52. package/hosts/opencode/.opencode/skills/atlas-task-validator/SKILL.md +158 -0
  53. package/hosts/opencode/.opencode/skills/atlas-task-validator/agents/openai.yaml +7 -0
  54. package/hosts/opencode/.opencode/skills/atlas-workflow-orchestrator/SKILL.md +412 -0
  55. package/hosts/opencode/opencode.json +13 -0
  56. package/hosts/pi/.mcp.json +11 -0
  57. package/hosts/pi/.pi/agents/atlas-direct-execute.md +218 -0
  58. package/hosts/pi/.pi/agents/atlas-findings-repair.md +184 -0
  59. package/hosts/pi/.pi/agents/atlas-plan-execute.md +163 -0
  60. package/hosts/pi/.pi/agents/atlas-slice-review.md +149 -0
  61. package/hosts/pi/.pi/agents/atlas-task-validator.md +121 -0
  62. package/hosts/pi/atlas/VERSION +1 -0
  63. package/hosts/pi/atlas/orchestrator/README.md +261 -0
  64. package/hosts/pi/atlas/orchestrator/commands/workflow.md +37 -0
  65. package/hosts/pi/atlas/orchestrator/defaults/paths.md +21 -0
  66. package/hosts/pi/atlas/orchestrator/references/host-adapters.md +104 -0
  67. package/hosts/pi/atlas/orchestrator/references/qa_s13_matrix.md +141 -0
  68. package/hosts/pi/atlas/orchestrator/references/subagent_dispatch.md +42 -0
  69. package/hosts/pi/atlas/orchestrator/skills/atlas-workflow-orchestrator/SKILL.md +412 -0
  70. package/hosts/pi/atlas/packages/mcp-server/README.md +28 -0
  71. package/hosts/pi/atlas/packages/mcp-server/package.json +15 -0
  72. package/hosts/pi/atlas/packages/mcp-server/server.js +3076 -0
  73. package/hosts/pi/atlas/packages/templates/BACKLOG_MESTRE_TEMPLATE.md +844 -0
  74. package/hosts/pi/atlas/packages/templates/BOUNDARY_PRD_PLAN.md +93 -0
  75. package/hosts/pi/atlas/packages/templates/PERGUNTAS_EM_ABERTO_TEMPLATE.md +139 -0
  76. package/hosts/pi/atlas/packages/templates/PLAN_TEMPLATE.md +146 -0
  77. package/hosts/pi/atlas/packages/templates/PRD_TEMPLATE.md +149 -0
  78. package/hosts/pi/atlas/packages/templates/STATE_FILE_SCHEMA.md +32 -0
  79. package/hosts/pi/skills/atlas-backlog-generator/SKILL.md +88 -0
  80. package/hosts/pi/skills/atlas-backlog-generator/agents/openai.yaml +4 -0
  81. package/hosts/pi/skills/atlas-direct-execute/SKILL.md +186 -0
  82. package/hosts/pi/skills/atlas-direct-execute/agents/openai.yaml +7 -0
  83. package/hosts/pi/skills/atlas-findings-repair/SKILL.md +148 -0
  84. package/hosts/pi/skills/atlas-findings-repair/agents/openai.yaml +7 -0
  85. package/hosts/pi/skills/atlas-plan-execute/SKILL.md +129 -0
  86. package/hosts/pi/skills/atlas-plan-execute/agents/openai.yaml +7 -0
  87. package/hosts/pi/skills/atlas-plan-execute/references/plan-contract.md +88 -0
  88. package/hosts/pi/skills/atlas-plan-execute/references/quality-gates.md +60 -0
  89. package/hosts/pi/skills/atlas-plan-execute/scripts/check_budget_state.py +96 -0
  90. package/hosts/pi/skills/atlas-plan-execute/scripts/extract_plan_contract.py +191 -0
  91. package/hosts/pi/skills/atlas-plan-execute/scripts/validate_gate_result.py +56 -0
  92. package/hosts/pi/skills/atlas-plan-handoff/SKILL.md +181 -0
  93. package/hosts/pi/skills/atlas-plan-handoff/agents/openai.yaml +7 -0
  94. package/hosts/pi/skills/atlas-prd-interview/SKILL.md +77 -0
  95. package/hosts/pi/skills/atlas-prd-interview/agents/openai.yaml +7 -0
  96. package/hosts/pi/skills/atlas-slice-review/SKILL.md +121 -0
  97. package/hosts/pi/skills/atlas-slice-review/agents/openai.yaml +4 -0
  98. package/hosts/pi/skills/atlas-slice-review/references/review-contract.md +58 -0
  99. package/hosts/pi/skills/atlas-slice-review/references/scenario-lenses.md +49 -0
  100. package/hosts/pi/skills/atlas-slice-review/scripts/classify_findings.py +56 -0
  101. package/hosts/pi/skills/atlas-slice-review/scripts/extract_review_slice.py +158 -0
  102. package/hosts/pi/skills/atlas-sprint-prd-generator/SKILL.md +74 -0
  103. package/hosts/pi/skills/atlas-sprint-prd-generator/agents/openai.yaml +7 -0
  104. package/hosts/pi/skills/atlas-task-validator/SKILL.md +158 -0
  105. package/hosts/pi/skills/atlas-task-validator/agents/openai.yaml +7 -0
  106. package/hosts/pi/skills/atlas-workflow-orchestrator/SKILL.md +412 -0
  107. package/package.json +17 -0
  108. package/plugins/atlas-workflow-orchestrator/.codex/agents/atlas-direct-execute.toml +3 -0
  109. package/plugins/atlas-workflow-orchestrator/.codex/agents/atlas-findings-repair.toml +3 -0
  110. package/plugins/atlas-workflow-orchestrator/.codex/agents/atlas-plan-execute.toml +3 -0
  111. package/plugins/atlas-workflow-orchestrator/.codex/agents/atlas-slice-review.toml +3 -0
  112. package/plugins/atlas-workflow-orchestrator/.codex/agents/atlas-task-validator.toml +5 -0
  113. package/plugins/atlas-workflow-orchestrator/.codex-plugin/plugin.json +37 -0
  114. package/plugins/atlas-workflow-orchestrator/.mcp.json +12 -0
  115. package/plugins/atlas-workflow-orchestrator/VERSION +1 -0
  116. package/plugins/atlas-workflow-orchestrator/agents/atlas-direct-execute.md +31 -0
  117. package/plugins/atlas-workflow-orchestrator/agents/atlas-findings-repair.md +35 -0
  118. package/plugins/atlas-workflow-orchestrator/agents/atlas-plan-execute.md +33 -0
  119. package/plugins/atlas-workflow-orchestrator/agents/atlas-slice-review.md +27 -0
  120. package/plugins/atlas-workflow-orchestrator/agents/atlas-task-validator.md +123 -0
  121. package/plugins/atlas-workflow-orchestrator/orchestrator/README.md +261 -0
  122. package/plugins/atlas-workflow-orchestrator/orchestrator/commands/workflow.md +37 -0
  123. package/plugins/atlas-workflow-orchestrator/orchestrator/defaults/paths.md +21 -0
  124. package/plugins/atlas-workflow-orchestrator/orchestrator/references/host-adapters.md +104 -0
  125. package/plugins/atlas-workflow-orchestrator/orchestrator/references/qa_s13_matrix.md +141 -0
  126. package/plugins/atlas-workflow-orchestrator/orchestrator/references/subagent_dispatch.md +42 -0
  127. package/plugins/atlas-workflow-orchestrator/orchestrator/skills/atlas-workflow-orchestrator/SKILL.md +412 -0
  128. package/plugins/atlas-workflow-orchestrator/packages/mcp-server/README.md +28 -0
  129. package/plugins/atlas-workflow-orchestrator/packages/mcp-server/package.json +15 -0
  130. package/plugins/atlas-workflow-orchestrator/packages/mcp-server/server.js +3076 -0
  131. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-backlog-generator/SKILL.md +88 -0
  132. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-backlog-generator/agents/openai.yaml +4 -0
  133. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-direct-execute/SKILL.md +186 -0
  134. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-direct-execute/agents/openai.yaml +7 -0
  135. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-findings-repair/SKILL.md +148 -0
  136. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-findings-repair/agents/openai.yaml +7 -0
  137. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-plan-execute/SKILL.md +129 -0
  138. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-plan-execute/agents/openai.yaml +7 -0
  139. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-plan-execute/references/plan-contract.md +88 -0
  140. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-plan-execute/references/quality-gates.md +60 -0
  141. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-plan-execute/scripts/check_budget_state.py +96 -0
  142. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-plan-execute/scripts/extract_plan_contract.py +191 -0
  143. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-plan-execute/scripts/validate_gate_result.py +56 -0
  144. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-plan-handoff/SKILL.md +181 -0
  145. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-plan-handoff/agents/openai.yaml +7 -0
  146. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-prd-interview/SKILL.md +77 -0
  147. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-prd-interview/agents/openai.yaml +7 -0
  148. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-slice-review/SKILL.md +121 -0
  149. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-slice-review/agents/openai.yaml +4 -0
  150. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-slice-review/references/review-contract.md +58 -0
  151. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-slice-review/references/scenario-lenses.md +49 -0
  152. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-slice-review/scripts/classify_findings.py +56 -0
  153. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-slice-review/scripts/extract_review_slice.py +158 -0
  154. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-sprint-prd-generator/SKILL.md +74 -0
  155. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-sprint-prd-generator/agents/openai.yaml +7 -0
  156. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-task-validator/SKILL.md +158 -0
  157. package/plugins/atlas-workflow-orchestrator/packages/skills/atlas-task-validator/agents/openai.yaml +7 -0
  158. package/plugins/atlas-workflow-orchestrator/packages/templates/BACKLOG_MESTRE_TEMPLATE.md +844 -0
  159. package/plugins/atlas-workflow-orchestrator/packages/templates/BOUNDARY_PRD_PLAN.md +93 -0
  160. package/plugins/atlas-workflow-orchestrator/packages/templates/PERGUNTAS_EM_ABERTO_TEMPLATE.md +139 -0
  161. package/plugins/atlas-workflow-orchestrator/packages/templates/PLAN_TEMPLATE.md +146 -0
  162. package/plugins/atlas-workflow-orchestrator/packages/templates/PRD_TEMPLATE.md +149 -0
  163. package/plugins/atlas-workflow-orchestrator/packages/templates/STATE_FILE_SCHEMA.md +32 -0
  164. package/plugins/atlas-workflow-orchestrator/skills/atlas-backlog-generator/SKILL.md +88 -0
  165. package/plugins/atlas-workflow-orchestrator/skills/atlas-backlog-generator/agents/openai.yaml +4 -0
  166. package/plugins/atlas-workflow-orchestrator/skills/atlas-direct-execute/SKILL.md +186 -0
  167. package/plugins/atlas-workflow-orchestrator/skills/atlas-direct-execute/agents/openai.yaml +7 -0
  168. package/plugins/atlas-workflow-orchestrator/skills/atlas-findings-repair/SKILL.md +148 -0
  169. package/plugins/atlas-workflow-orchestrator/skills/atlas-findings-repair/agents/openai.yaml +7 -0
  170. package/plugins/atlas-workflow-orchestrator/skills/atlas-plan-execute/SKILL.md +129 -0
  171. package/plugins/atlas-workflow-orchestrator/skills/atlas-plan-execute/agents/openai.yaml +7 -0
  172. package/plugins/atlas-workflow-orchestrator/skills/atlas-plan-execute/references/plan-contract.md +88 -0
  173. package/plugins/atlas-workflow-orchestrator/skills/atlas-plan-execute/references/quality-gates.md +60 -0
  174. package/plugins/atlas-workflow-orchestrator/skills/atlas-plan-execute/scripts/check_budget_state.py +96 -0
  175. package/plugins/atlas-workflow-orchestrator/skills/atlas-plan-execute/scripts/extract_plan_contract.py +191 -0
  176. package/plugins/atlas-workflow-orchestrator/skills/atlas-plan-execute/scripts/validate_gate_result.py +56 -0
  177. package/plugins/atlas-workflow-orchestrator/skills/atlas-plan-handoff/SKILL.md +181 -0
  178. package/plugins/atlas-workflow-orchestrator/skills/atlas-plan-handoff/agents/openai.yaml +7 -0
  179. package/plugins/atlas-workflow-orchestrator/skills/atlas-prd-interview/SKILL.md +77 -0
  180. package/plugins/atlas-workflow-orchestrator/skills/atlas-prd-interview/agents/openai.yaml +7 -0
  181. package/plugins/atlas-workflow-orchestrator/skills/atlas-slice-review/SKILL.md +121 -0
  182. package/plugins/atlas-workflow-orchestrator/skills/atlas-slice-review/agents/openai.yaml +4 -0
  183. package/plugins/atlas-workflow-orchestrator/skills/atlas-slice-review/references/review-contract.md +58 -0
  184. package/plugins/atlas-workflow-orchestrator/skills/atlas-slice-review/references/scenario-lenses.md +49 -0
  185. package/plugins/atlas-workflow-orchestrator/skills/atlas-slice-review/scripts/classify_findings.py +56 -0
  186. package/plugins/atlas-workflow-orchestrator/skills/atlas-slice-review/scripts/extract_review_slice.py +158 -0
  187. package/plugins/atlas-workflow-orchestrator/skills/atlas-sprint-prd-generator/SKILL.md +74 -0
  188. package/plugins/atlas-workflow-orchestrator/skills/atlas-sprint-prd-generator/agents/openai.yaml +7 -0
  189. package/plugins/atlas-workflow-orchestrator/skills/atlas-task-validator/SKILL.md +158 -0
  190. package/plugins/atlas-workflow-orchestrator/skills/atlas-task-validator/agents/openai.yaml +7 -0
  191. package/plugins/atlas-workflow-orchestrator/skills/atlas-workflow-orchestrator/SKILL.md +412 -0
  192. package/plugins/atlas-workflow-orchestrator/templates/BACKLOG_MESTRE_TEMPLATE.md +844 -0
  193. package/plugins/atlas-workflow-orchestrator/templates/BOUNDARY_PRD_PLAN.md +93 -0
  194. package/plugins/atlas-workflow-orchestrator/templates/PERGUNTAS_EM_ABERTO_TEMPLATE.md +139 -0
  195. package/plugins/atlas-workflow-orchestrator/templates/PLAN_TEMPLATE.md +146 -0
  196. package/plugins/atlas-workflow-orchestrator/templates/PRD_TEMPLATE.md +149 -0
  197. package/plugins/atlas-workflow-orchestrator/templates/STATE_FILE_SCHEMA.md +32 -0
@@ -0,0 +1,3 @@
1
+ name = "atlas-direct-execute"
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
+ developer_instructions = "# Atlas Direct Execute (sub-agent)\n\n<!-- MANUTENÇÃO (cross-host): SHIM portável — carrega o SKILL.md real de\n atlas-direct-execute como primeira ação (references/subagent_dispatch.md). Contrato em\n packages/skills/atlas-direct-execute/SKILL.md (fonte única). Versões Codex/opencode/pi\n GERADAS por build/gen-host-agent.mjs. Não copiar o corpo da skill para cá. -->\n\nSub-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).\n\n## Primeira ação obrigatória\n\nCarregue a skill completa `atlas-direct-execute` e siga-a integralmente:\n\n- **Claude Code:** invoque a tool `Skill` com `atlas-direct-execute`.\n- **Outros hosts:** use o mecanismo nativo de skills do host para carregar `atlas-direct-execute`.\n\nProibido \"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.\n\n## Input\n\nO orquestrador passa o PRD/spec/path escopado e as flags da fase. Use `atlas_run_state` como fonte primária do estado da run.\n\n## Validação fria (Gate G4)\n\nAntes 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,3 @@
1
+ name = "atlas-findings-repair"
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
+ developer_instructions = "# Atlas Findings Repair (sub-agent)\n\n<!-- MANUTENÇÃO (cross-host): shim portável. O contrato real vive em\n packages/skills/atlas-findings-repair/SKILL.md. Codex/opencode/pi geram\n registros nativos a partir deste arquivo por build/gen-host-agent.mjs. -->\n\nSub-agent de reparo bounded despachado pelo orquestrador `atlas-workflow-orchestrator`.\n\n## Primeira ação obrigatória\n\nCarregue a skill completa `atlas-findings-repair` e siga-a integralmente:\n\n- **Claude Code:** invoque a tool `Skill` com `atlas-findings-repair`.\n- **Outros hosts:** use o mecanismo nativo de skills do host para carregar `atlas-findings-repair`.\n\nProibido “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`.\n\n## Input\n\nO 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.\n\n## Limites\n\n- Corrigir apenas findings P0/P1/P2 da slice atual\n- Não despachar validator nem outro subagente\n- Não replanejar\n- Não ampliar escopo\n- Atualizar o `state_path` original em lugar; não trocar o boundary para outro arquivo\n- Ao terminar, devolver `repair_complete` ou `blocked`"
@@ -0,0 +1,3 @@
1
+ name = "atlas-plan-execute"
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
+ developer_instructions = "# Atlas Plan Execute (sub-agent)\n\n<!-- MANUTENÇÃO (cross-host): este corpo é um SHIM portável — instrui o sub-agent a\n carregar o SKILL.md real da skill atlas-plan-execute como primeira ação, conforme\n references/subagent_dispatch.md. O contrato de execução vive em\n packages/skills/atlas-plan-execute/SKILL.md (fonte única, sem drift). Não copiar o\n corpo da skill para cá. As versões Codex/opencode/pi são GERADAS deste arquivo por\n build/gen-host-agent.mjs (só o frontmatter muda). -->\n\nSub-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).\n\n## Primeira ação obrigatória\n\nCarregue a skill completa `atlas-plan-execute` e siga-a integralmente:\n\n- **Claude Code:** invoque a tool `Skill` com `atlas-plan-execute`.\n- **Outros hosts:** use o mecanismo nativo de skills do host para carregar `atlas-plan-execute`.\n\nProibido \"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.\n\n## Input\n\nO 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.\n\n## Validação fria (Gate G4)\n\nAntes 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,3 @@
1
+ name = "atlas-slice-review"
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
+ developer_instructions = "# Atlas Slice Review (sub-agent)\n\n<!-- MANUTENÇÃO (cross-host): SHIM portável — carrega o SKILL.md real de\n atlas-slice-review como primeira ação (references/subagent_dispatch.md). Contrato em\n packages/skills/atlas-slice-review/SKILL.md (fonte única). Versões Codex/opencode/pi\n GERADAS por build/gen-host-agent.mjs. Não copiar o corpo da skill para cá. -->\n\nSub-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.\n\n## Primeira ação obrigatória\n\nCarregue a skill completa `atlas-slice-review` e siga-a integralmente:\n\n- **Claude Code:** invoque a tool `Skill` com `atlas-slice-review`.\n- **Outros hosts:** use o mecanismo nativo de skills do host para carregar `atlas-slice-review`.\n\nProibido \"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.\n\n## Input\n\nO 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."
@@ -0,0 +1,5 @@
1
+ name = "atlas-task-validator"
2
+ 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."
3
+ model = "gpt-5.4"
4
+ model_reasoning_effort = "high"
5
+ developer_instructions = "# Atlas Task Validator\n\n<!-- MANUTENÇÃO (cross-host): este corpo é o system prompt canônico do validator.\n Claude usa agents/<name>.md; Codex/opencode/pi geram registros nativos a partir\n deste arquivo. packages/skills/atlas-task-validator/SKILL.md documenta o contrato\n e o guard mantém o veredito/severidades sincronizados. -->\n\nSubagente 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.\n\nObjetivo: 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.\n\n---\n\n## Invocation Contract\n\nVocê recebe **um único input base**: `state_path`.\n\nLeia o JSON em `.atlas/state/<run_id>/<slice>.json` usando o schema em `packages/templates/STATE_FILE_SCHEMA.md`. Desse arquivo, carregue:\n\n1. **Slice boundary** — `files_changed` + `diff_stat`.\n2. **Plan path** — `plan_path`, depois leia Section 2 (Invariantes de execução), Section 6 (Contratos técnicos) e Section 8 (Validação e checklist).\n3. **Executed task ids** — `tasks`.\n4. **Boundary refs** — `boundary_refs`.\n\nNã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>`.\n\n## State persistence\n\nUse `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.\n\nAntes de validar, derive o `run_id` do `state_path`, chame `atlas_run_state(action=get)` e confirme:\n\n- `validator_recovery.status == \"running\"`\n- `validator_recovery.expected_state_path == state_path`\n- `validator_recovery.expected_dispatch_token` é inteiro\n\nCopie 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`.\n\n### Proof-of-work (challenge do boundary)\n\nSe `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`:\n\n```bash\nshasum -a 256 \"<challenge.file>\"\n```\n\nColoque 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.\n\n---\n\n## Operating Rules\n\n1. **Leia código real no boundary da slice.** Não infira conformidade por nome de arquivo ou título de task.\n2. **Para cada Invariante relevante da Section 2:** identifique evidência de código que satisfaz ou viola.\n3. **Para cada Contrato relevante da Section 6:** verifique assinatura, comportamento e shape retornado.\n4. **Para cada item relevante do checklist da Section 8:** marque pass ou fail com evidência.\n5. **Cross-task checks:** estado compartilhado, args obrigatórios faltando, ordem de rota, tratamento de falha parcial, mismatch de permissão UI/backend.\n6. **Baseline universal abaixo.** Não invente critérios obrigatórios fora do plano e do baseline.\n7. **Não corrija arquivos nem proponha diffs.** Sugestão de fix cabe em 1-2 linhas de texto.\n\n## Universal Baseline\n\n* **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.\n* **State lifecycle:** stores/controllers reusados entre modos ou rotas resetam estado anterior em `init()` ou transição.\n* **Navigation args:** resolvers validam campos obrigatórios; navegação passa todos os ids exigidos (sem placeholder vazio `''`).\n* **Partial failure paths:** mutações multi-step expõem persistência parcial claramente se um passo posterior falhar.\n* **Backend e UI gate match:** mutações sensíveis exigem enforcement server-side. Gate só de UI é insuficiente.\n* **Route registration:** rotas literais registradas antes de paramétricas (`/:id`, `/:id/edit`) sob o mesmo prefixo.\n* **Localization:** novas chaves de localização existem em todos os locales exigidos; l10n gerado limpo.\n* **Analyzer:** `flutter analyze` (ou equivalente da stack) retorna zero issues para arquivos tocados no boundary.\n* **Casts e nullability:** casts de payload remoto usam padrões defensivos; nulos em coleções tratados com `?? []`.\n\n---\n\n## Output contract\n\nRetorne JSON estrito como output final. Não envolva em Markdown e não anteceda com prosa.\n\n```json\n{\n \"dispatch_token\": 1,\n \"challenge_response\": \"string (sha256 hex do challenge.file; null se sem challenge)\",\n \"verdict\": \"pass | fail | pass_with_observations\",\n \"findings\": [\n { \"severity\": \"P0|P1|P2|P3\", \"file\": \"string\", \"line\": 0, \"msg\": \"string\" }\n ],\n \"observations\": [\n { \"file\": \"string\", \"line\": 0, \"msg\": \"string\" }\n ],\n \"boundary_violations\": [\n { \"file\": \"string\", \"reason\": \"string\" }\n ]\n}\n```\n\n`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.\n\n## Severity Model\n\nEscala alinhada com `atlas-slice-review` (`P0/P1/P2/P3`).\n\n* `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.\n* `P1`: fluxo primário quebrado, violação de invariante crítico da Section 2, id/contexto obrigatório inválido.\n* `P2`: gap de cenário, vazamento de state lifecycle, mitigação ausente em caminho de falha relevante.\n* `P3`: inconsistência de baixo risco, item de limpeza.\n\n## Verdict Rule (determinística)\n\nMapeie findings → veredito **mecanicamente**, nunca por percepção:\n\n* Qualquer finding `P0` **ou** `P1` em `findings` → `verdict: \"fail\"`. Sem exceção.\n* Sem `P0`/`P1`, mas um ou mais `P2` → `verdict: \"pass_with_observations\"`.\n* Só `P3` (ou zero findings) → `verdict: \"pass\"`.\n\n`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,37 @@
1
+ {
2
+ "name": "atlas-workflow-orchestrator",
3
+ "version": "0.8.2",
4
+ "description": "Orquestra pipelines via sub-agents (PRD, entrevista, plan handoff, execução, validator, repair, review) e oferece geração explícita de backlog mestre. Bundle único: 9 skills atlas-* + orquestrador + 5 templates canônicos.",
5
+ "author": {
6
+ "name": "Paulo Borini"
7
+ },
8
+ "keywords": [
9
+ "atlas",
10
+ "workflow",
11
+ "orchestration",
12
+ "prd",
13
+ "planning",
14
+ "execution",
15
+ "codex"
16
+ ],
17
+ "skills": "./skills/",
18
+ "mcpServers": "./.mcp.json",
19
+ "interface": {
20
+ "displayName": "Atlas Workflow Orchestrator",
21
+ "shortDescription": "Workflow completo por sub-agents.",
22
+ "longDescription": "Porta o Atlas Workflow Orchestrator para Codex: o orquestrador decide fases e usa skills atlas-* para PRD, entrevista e plano; depois despacha sub-agents bloqueantes para plan_execute, task_validator e slice_review opcional. A geração de backlog mestre fica disponível como skill explícita, não automática.",
23
+ "developerName": "Paulo Borini",
24
+ "category": "Engineering",
25
+ "capabilities": [
26
+ "Read",
27
+ "Write",
28
+ "Review"
29
+ ],
30
+ "defaultPrompt": [
31
+ "Use $atlas-backlog-generator para criar um backlog mestre a partir desta ideia:",
32
+ "workflow full backlog-item S05",
33
+ "workflow direct prd PRD_S05.md --review",
34
+ "workflow interview-only brainstorm nova ideia"
35
+ ]
36
+ }
37
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "mcpServers": {
3
+ "atlas-workflow": {
4
+ "command": "node",
5
+ "cwd": ".",
6
+ "args": [
7
+ "packages/mcp-server/server.js"
8
+ ],
9
+ "transport": "stdio"
10
+ }
11
+ }
12
+ }
@@ -0,0 +1 @@
1
+ 0.8.2
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: atlas-direct-execute
3
+ 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).
4
+ tools: Read, Write, Edit, Grep, Glob, Bash, Skill, Agent
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,35 @@
1
+ ---
2
+ name: atlas-findings-repair
3
+ 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.
4
+ tools: Read, Write, Edit, Grep, Glob, Bash, Skill
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
+ - Ao terminar, devolver `repair_complete` ou `blocked`
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: atlas-plan-execute
3
+ 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).
4
+ tools: Read, Write, Edit, Grep, Glob, Bash, Skill, Agent
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
+ 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, Glob, Bash, Skill
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.
@@ -0,0 +1,123 @@
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, Glob, Bash
5
+ model: sonnet
6
+ effort: high
7
+ ---
8
+
9
+ # Atlas Task Validator
10
+
11
+ <!-- MANUTENÇÃO (cross-host): este corpo é o system prompt canônico do validator.
12
+ Claude usa agents/<name>.md; Codex/opencode/pi geram registros nativos a partir
13
+ deste arquivo. packages/skills/atlas-task-validator/SKILL.md documenta o contrato
14
+ e o guard mantém o veredito/severidades sincronizados. -->
15
+
16
+ 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.
17
+
18
+ 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.
19
+
20
+ ---
21
+
22
+ ## Invocation Contract
23
+
24
+ Você recebe **um único input base**: `state_path`.
25
+
26
+ Leia o JSON em `.atlas/state/<run_id>/<slice>.json` usando o schema em `packages/templates/STATE_FILE_SCHEMA.md`. Desse arquivo, carregue:
27
+
28
+ 1. **Slice boundary** — `files_changed` + `diff_stat`.
29
+ 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).
30
+ 3. **Executed task ids** — `tasks`.
31
+ 4. **Boundary refs** — `boundary_refs`.
32
+
33
+ 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>`.
34
+
35
+ ## State persistence
36
+
37
+ 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.
38
+
39
+ Antes de validar, derive o `run_id` do `state_path`, chame `atlas_run_state(action=get)` e confirme:
40
+
41
+ - `validator_recovery.status == "running"`
42
+ - `validator_recovery.expected_state_path == state_path`
43
+ - `validator_recovery.expected_dispatch_token` é inteiro
44
+
45
+ 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`.
46
+
47
+ ### Proof-of-work (challenge do boundary)
48
+
49
+ 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`:
50
+
51
+ ```bash
52
+ shasum -a 256 "<challenge.file>"
53
+ ```
54
+
55
+ 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.
56
+
57
+ ---
58
+
59
+ ## Operating Rules
60
+
61
+ 1. **Leia código real no boundary da slice.** Não infira conformidade por nome de arquivo ou título de task.
62
+ 2. **Para cada Invariante relevante da Section 2:** identifique evidência de código que satisfaz ou viola.
63
+ 3. **Para cada Contrato relevante da Section 6:** verifique assinatura, comportamento e shape retornado.
64
+ 4. **Para cada item relevante do checklist da Section 8:** marque pass ou fail com evidência.
65
+ 5. **Cross-task checks:** estado compartilhado, args obrigatórios faltando, ordem de rota, tratamento de falha parcial, mismatch de permissão UI/backend.
66
+ 6. **Baseline universal abaixo.** Não invente critérios obrigatórios fora do plano e do baseline.
67
+ 7. **Não corrija arquivos nem proponha diffs.** Sugestão de fix cabe em 1-2 linhas de texto.
68
+
69
+ ## Universal Baseline
70
+
71
+ * **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.
72
+ * **State lifecycle:** stores/controllers reusados entre modos ou rotas resetam estado anterior em `init()` ou transição.
73
+ * **Navigation args:** resolvers validam campos obrigatórios; navegação passa todos os ids exigidos (sem placeholder vazio `''`).
74
+ * **Partial failure paths:** mutações multi-step expõem persistência parcial claramente se um passo posterior falhar.
75
+ * **Backend e UI gate match:** mutações sensíveis exigem enforcement server-side. Gate só de UI é insuficiente.
76
+ * **Route registration:** rotas literais registradas antes de paramétricas (`/:id`, `/:id/edit`) sob o mesmo prefixo.
77
+ * **Localization:** novas chaves de localização existem em todos os locales exigidos; l10n gerado limpo.
78
+ * **Analyzer:** `flutter analyze` (ou equivalente da stack) retorna zero issues para arquivos tocados no boundary.
79
+ * **Casts e nullability:** casts de payload remoto usam padrões defensivos; nulos em coleções tratados com `?? []`.
80
+
81
+ ---
82
+
83
+ ## Output contract
84
+
85
+ Retorne JSON estrito como output final. Não envolva em Markdown e não anteceda com prosa.
86
+
87
+ ```json
88
+ {
89
+ "dispatch_token": 1,
90
+ "challenge_response": "string (sha256 hex do challenge.file; null se sem challenge)",
91
+ "verdict": "pass | fail | pass_with_observations",
92
+ "findings": [
93
+ { "severity": "P0|P1|P2|P3", "file": "string", "line": 0, "msg": "string" }
94
+ ],
95
+ "observations": [
96
+ { "file": "string", "line": 0, "msg": "string" }
97
+ ],
98
+ "boundary_violations": [
99
+ { "file": "string", "reason": "string" }
100
+ ]
101
+ }
102
+ ```
103
+
104
+ `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.
105
+
106
+ ## Severity Model
107
+
108
+ Escala alinhada com `atlas-slice-review` (`P0/P1/P2/P3`).
109
+
110
+ * `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.
111
+ * `P1`: fluxo primário quebrado, violação de invariante crítico da Section 2, id/contexto obrigatório inválido.
112
+ * `P2`: gap de cenário, vazamento de state lifecycle, mitigação ausente em caminho de falha relevante.
113
+ * `P3`: inconsistência de baixo risco, item de limpeza.
114
+
115
+ ## Verdict Rule (determinística)
116
+
117
+ Mapeie findings → veredito **mecanicamente**, nunca por percepção:
118
+
119
+ * Qualquer finding `P0` **ou** `P1` em `findings` → `verdict: "fail"`. Sem exceção.
120
+ * Sem `P0`/`P1`, mas um ou mais `P2` → `verdict: "pass_with_observations"`.
121
+ * Só `P3` (ou zero findings) → `verdict: "pass"`.
122
+
123
+ `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,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.