@jaimevalasek/aioson 1.33.1 → 1.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/CHANGELOG.md +76 -0
  2. package/docs/en/1-understand/ecosystem-map.md +45 -29
  3. package/docs/en/1-understand/glossary.md +6 -6
  4. package/docs/en/1-understand/what-is-aioson.md +5 -5
  5. package/docs/en/2-start/existing-project.md +7 -7
  6. package/docs/en/2-start/first-project.md +33 -39
  7. package/docs/en/2-start/initial-decisions.md +22 -19
  8. package/docs/en/3-recipes/README.md +2 -2
  9. package/docs/en/3-recipes/continuity-between-sessions.md +2 -2
  10. package/docs/en/3-recipes/from-idea-to-prd-via-briefing.md +13 -3
  11. package/docs/en/3-recipes/full-feature-with-sheldon.md +329 -338
  12. package/docs/en/4-agents/README.md +33 -16
  13. package/docs/en/4-agents/briefing-refiner.md +146 -0
  14. package/docs/en/4-agents/discovery-design-doc.md +20 -8
  15. package/docs/en/4-agents/forge-run.md +3 -2
  16. package/docs/en/5-reference/README.md +1 -0
  17. package/docs/en/5-reference/autopilot-handoff.md +286 -0
  18. package/docs/en/5-reference/cli-reference.md +57 -48
  19. package/docs/en/5-reference/executable-verification.md +10 -7
  20. package/docs/en/5-reference/parallel.md +2 -0
  21. package/docs/en/5-reference/qa-browser.md +2 -2
  22. package/docs/en/README.md +3 -3
  23. package/docs/pt/1-entender/glossario.md +5 -5
  24. package/docs/pt/1-entender/mapa-do-ecossistema.md +33 -22
  25. package/docs/pt/2-comecar/decisoes-iniciais.md +20 -18
  26. package/docs/pt/2-comecar/primeiro-projeto.md +2 -2
  27. package/docs/pt/3-receitas/README.md +1 -1
  28. package/docs/pt/3-receitas/app-saas-do-zero.md +35 -122
  29. package/docs/pt/3-receitas/da-ideia-ao-prd-via-briefing.md +8 -1
  30. package/docs/pt/3-receitas/feature-completa-com-sheldon.md +291 -338
  31. package/docs/pt/4-agentes/README.md +13 -11
  32. package/docs/pt/4-agentes/analyst.md +9 -5
  33. package/docs/pt/4-agentes/architect.md +9 -5
  34. package/docs/pt/4-agentes/briefing-refiner.md +64 -40
  35. package/docs/pt/4-agentes/briefing.md +6 -1
  36. package/docs/pt/4-agentes/dev.md +38 -8
  37. package/docs/pt/4-agentes/deyvin.md +4 -0
  38. package/docs/pt/4-agentes/discover.md +4 -0
  39. package/docs/pt/4-agentes/discovery-design-doc.md +25 -23
  40. package/docs/pt/4-agentes/neo.md +4 -0
  41. package/docs/pt/4-agentes/orache.md +6 -0
  42. package/docs/pt/4-agentes/orchestrator.md +176 -118
  43. package/docs/pt/4-agentes/pentester.md +11 -5
  44. package/docs/pt/4-agentes/pm.md +15 -7
  45. package/docs/pt/4-agentes/product.md +19 -1
  46. package/docs/pt/4-agentes/qa.md +10 -2
  47. package/docs/pt/4-agentes/setup.md +3 -1
  48. package/docs/pt/4-agentes/sheldon.md +178 -99
  49. package/docs/pt/4-agentes/tester.md +6 -0
  50. package/docs/pt/4-agentes/ux-ui.md +9 -5
  51. package/docs/pt/5-referencia/README.md +1 -1
  52. package/docs/pt/5-referencia/agent-chain-continuity.md +14 -5
  53. package/docs/pt/5-referencia/autopilot-handoff.md +191 -74
  54. package/docs/pt/5-referencia/comandos-cli.md +16 -7
  55. package/docs/pt/5-referencia/sdd-automation-scripts.md +6 -6
  56. package/docs/pt/5-referencia/sdd-framework.md +53 -16
  57. package/docs/pt/5-referencia/sdd-planos-e-estrutura.md +27 -15
  58. package/docs/pt/5-referencia/skills.md +2 -0
  59. package/docs/pt/README.md +4 -4
  60. package/docs/pt/agentes.md +50 -50
  61. package/package.json +2 -2
  62. package/src/agents.js +1 -1
  63. package/src/artifact-kinds.js +111 -0
  64. package/src/autopilot-signal.js +71 -0
  65. package/src/cli.js +112 -81
  66. package/src/commands/agent-epilogue.js +251 -186
  67. package/src/commands/agents.js +122 -50
  68. package/src/commands/audit-code.js +344 -0
  69. package/src/commands/briefing.js +337 -1
  70. package/src/commands/classify.js +389 -389
  71. package/src/commands/feature-close.js +122 -4
  72. package/src/commands/harness-check.js +259 -175
  73. package/src/commands/live.js +71 -11
  74. package/src/commands/review-feature.js +189 -0
  75. package/src/commands/runtime.js +81 -66
  76. package/src/commands/sync-agents-copy.js +115 -0
  77. package/src/commands/update.js +5 -1
  78. package/src/commands/verification-plan.js +143 -0
  79. package/src/commands/verify-artifact.js +593 -0
  80. package/src/commands/workflow-execute.js +434 -316
  81. package/src/commands/workflow-next.js +193 -20
  82. package/src/commands/workflow-plan.js +5 -5
  83. package/src/constants.js +2 -0
  84. package/src/doctor.js +4 -2
  85. package/src/gateway-pointer-merge.js +7 -1
  86. package/src/handoff-contract.js +267 -172
  87. package/src/harness/contract-integrity-gate.js +172 -0
  88. package/src/harness/contract-integrity.js +111 -0
  89. package/src/harness/contract-schema.js +377 -332
  90. package/src/harness/detect-runtime-feature.js +90 -0
  91. package/src/harness/static-criteria.js +192 -0
  92. package/src/i18n/messages/en.js +10 -5
  93. package/src/i18n/messages/es.js +10 -5
  94. package/src/i18n/messages/fr.js +10 -5
  95. package/src/i18n/messages/pt-BR.js +10 -5
  96. package/src/install-wizard.js +8 -8
  97. package/src/installer.js +13 -6
  98. package/src/lib/briefing-refiner/apply-feedback.js +18 -4
  99. package/src/lib/briefing-refiner/feedback-schema.js +73 -4
  100. package/src/lib/briefing-refiner/refinement-report.js +11 -0
  101. package/src/lib/briefing-refiner/review-html.js +388 -68
  102. package/src/parser.js +12 -0
  103. package/src/preflight-engine.js +12 -12
  104. package/src/verification/policy-engine.js +95 -95
  105. package/src/verification-policy.js +398 -0
  106. package/src/version.js +52 -1
  107. package/template/.aioson/agents/architect.md +34 -5
  108. package/template/.aioson/agents/briefing-refiner.md +91 -48
  109. package/template/.aioson/agents/briefing.md +4 -0
  110. package/template/.aioson/agents/committer.md +2 -1
  111. package/template/.aioson/agents/copywriter.md +30 -21
  112. package/template/.aioson/agents/design-hybrid-forge.md +10 -1
  113. package/template/.aioson/agents/dev.md +35 -23
  114. package/template/.aioson/agents/deyvin.md +4 -0
  115. package/template/.aioson/agents/discover.md +16 -3
  116. package/template/.aioson/agents/discovery-design-doc.md +7 -2
  117. package/template/.aioson/agents/genome.md +19 -10
  118. package/template/.aioson/agents/neo.md +34 -30
  119. package/template/.aioson/agents/orache.md +24 -11
  120. package/template/.aioson/agents/orchestrator.md +100 -7
  121. package/template/.aioson/agents/pentester.md +4 -0
  122. package/template/.aioson/agents/pm.md +8 -8
  123. package/template/.aioson/agents/product.md +25 -1
  124. package/template/.aioson/agents/profiler-enricher.md +20 -11
  125. package/template/.aioson/agents/profiler-forge.md +20 -11
  126. package/template/.aioson/agents/profiler-researcher.md +20 -11
  127. package/template/.aioson/agents/qa.md +96 -31
  128. package/template/.aioson/agents/setup.md +12 -1
  129. package/template/.aioson/agents/sheldon.md +103 -13
  130. package/template/.aioson/agents/site-forge.md +11 -2
  131. package/template/.aioson/agents/squad.md +20 -5
  132. package/template/.aioson/agents/tester.md +4 -0
  133. package/template/.aioson/agents/ux-ui.md +2 -1
  134. package/template/.aioson/agents/validator.md +33 -1
  135. package/template/.aioson/config/verification.json +61 -0
  136. package/template/.aioson/config.md +13 -9
  137. package/template/.aioson/docs/LAYERS.md +2 -2
  138. package/template/.aioson/docs/agent-help.md +126 -0
  139. package/template/.aioson/docs/autopilot-handoff.md +30 -20
  140. package/template/.aioson/docs/dev/execution-discipline.md +41 -0
  141. package/template/.aioson/docs/dev/phase-loop.md +50 -0
  142. package/template/.aioson/docs/play/llm-data-and-bindings.md +70 -7
  143. package/template/.aioson/docs/presets/workflow.config.full-merged.json +15 -0
  144. package/template/.aioson/docs/presets/workflow.config.lean.json +15 -0
  145. package/template/.aioson/docs/product/prd-contract.md +12 -12
  146. package/template/.aioson/docs/prototype-contract.md +21 -4
  147. package/template/.aioson/docs/reference-identity.md +94 -0
  148. package/template/.aioson/docs/sheldon/harness-contract.md +155 -28
  149. package/template/.aioson/docs/verification-config.md +82 -0
  150. package/template/.aioson/docs/verify-artifact-gates.md +91 -0
  151. package/template/.aioson/docs/workflow-lean-lane.md +129 -0
  152. package/template/.aioson/skills/design/interface-design/SKILL.md +17 -0
  153. package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +2 -0
  154. package/template/.aioson/skills/process/aioson-spec-driven/SKILL.md +16 -14
  155. package/template/.aioson/skills/process/aioson-spec-driven/references/approval-gates.md +2 -2
  156. package/template/.aioson/skills/process/aioson-spec-driven/references/classification-map.md +4 -4
  157. package/template/.aioson/skills/process/aioson-spec-driven/references/dev.md +15 -15
  158. package/template/.aioson/skills/process/prototype-forge/SKILL.md +6 -0
  159. package/template/.aioson/skills/process/reference-identity-extract/SKILL.md +164 -0
  160. package/template/.aioson/skills/static/multi-agent-patterns.md +5 -5
  161. package/template/AGENTS.md +36 -36
  162. package/template/CLAUDE.md +15 -11
package/docs/pt/README.md CHANGED
@@ -22,7 +22,7 @@ Esta é a porta de entrada da documentação em português. Não é um índice a
22
22
  ### Quero uma receita pronta para o meu caso
23
23
 
24
24
  **Trilhas canônicas — como features chegam ao dev:**
25
- 1. **[Feature completa com @sheldon](./3-receitas/feature-completa-com-sheldon.md)** — a trilha principal: `@product → @sheldon → @analyst → @architect @ux-ui @pm → @orchestrator → @scope-check → @dev → @qa` (com gates opcionais de `@tester` e `@pentester`)
25
+ 1. **[Feature completa com @sheldon](./3-receitas/feature-completa-com-sheldon.md)** — as duas trilhas: **SMALL lean** `@product → @sheldon → @dev → @qa` e **MEDIUM maestro** `@product → @orchestrator → @dev → @pentester → @qa` (com detours opt-in de `@tester`, `@validator`)
26
26
  2. [Da ideia ao PRD via @briefing](./3-receitas/da-ideia-ao-prd-via-briefing.md) — quando a ideia ainda é vaga
27
27
  3. [Plans externos para @product](./3-receitas/plans-externos-para-product.md) — quando você planejou em ChatGPT/Claude.io e quer trazer
28
28
 
@@ -37,7 +37,7 @@ Esta é a porta de entrada da documentação em português. Não é um índice a
37
37
  11. [Continuidade entre sessões](./3-receitas/continuidade-entre-sessoes.md) — feature dossier, dev-resume, drift detection
38
38
 
39
39
  ### Quero a referência técnica de um agente ou comando
40
- - **[Fichas dos 29 agentes (30 entradas com 1 alias)](./4-agentes/README.md)** — uma ficha por agente, com diálogo típico, saídas em disco e handoff
40
+ - **[Fichas dos 29 agentes (30 entradas com 1 alias)](./4-agentes/README.md)** — uma ficha por agente, com diálogo típico, saídas em disco e handoff
41
41
  - **[Referência técnica completa](./5-referencia/README.md)** — 32 docs organizados em 5 categorias (novos 2026, artefatos, CLI/config, agentes/squads, skills/design)
42
42
  - [Guia de agentes (legado)](./agentes.md) — visão tabular alternativa
43
43
 
@@ -83,7 +83,7 @@ npx @jaimevalasek/aioson init meu-projeto
83
83
  cd meu-projeto
84
84
 
85
85
  # 3. Abra seu cliente AI (Claude Code, Codex e OpenCode) e digite:
86
- /aioson:agent:setup
86
+ /aioson:agent:setup
87
87
  ```
88
88
 
89
89
  A partir daí, os agentes guiam você. Detalhes em [Primeiro projeto do zero](./2-comecar/primeiro-projeto.md).
@@ -99,7 +99,7 @@ Atualmente só PT está em reforma. EN/ES/FR continuam usando os arquivos legado
99
99
  ## Status desta documentação
100
100
 
101
101
  **Fase A (entender + começar)** — concluída · 8 docs em `1-entender/` e `2-comecar/`.
102
- **Fase B (receitas práticas + ficha por agente)** — concluída · 11 receitas em `3-receitas/` + 29 fichas em `4-agentes/`.
102
+ **Fase B (receitas práticas + ficha por agente)** — concluída · 11 receitas em `3-receitas/` + 29 fichas em `4-agentes/`.
103
103
  **Fase C (referência técnica completa)** — concluída · 32 docs em `5-referencia/`, com 6 totalmente novos cobrindo features 2026 antes não documentadas em PT.
104
104
  **Fase D (trilhas de workflow)** — concluída · 3 trilhas canônicas de feature: briefing→PRD, plans externos, e trilha completa com @sheldon.
105
105
 
@@ -1,8 +1,8 @@
1
1
  # Guia de Agentes
2
2
 
3
- > **Versão tabular alternativa (legado).** Para fichas individuais detalhadas com diálogos, saídas em disco e handoff, veja [`4-agentes/README.md`](./4-agentes/README.md).
4
-
5
- > `@pair` é alias de `@deyvin` e não possui ficha separada.
3
+ > **Versão tabular alternativa (legado).** Para fichas individuais detalhadas com diálogos, saídas em disco e handoff, veja [`4-agentes/README.md`](./4-agentes/README.md).
4
+
5
+ > `@pair` é alias de `@deyvin` e não possui ficha separada.
6
6
 
7
7
  > Quando usar cada agente, o que ele entrega e como ativá-lo.
8
8
 
@@ -15,11 +15,11 @@ O AIOSON tem agentes oficiais de projeto e também pode criar agentes de squad.
15
15
  ```
16
16
  @setup ← sempre o primeiro
17
17
  @product ← gera o PRD base vivo e roteia o fluxo
18
- @deyvin ← companheiro tecnico para continuidade e pequenas implementacoes
19
- @discovery-design-doc ← quando precisa clarear escopo e gerar design doc vivo
20
- @analyst ← projetos SMALL e MEDIUM
21
- @scope-check ← valida alinhamento antes de codar ou depois de fix relevante
22
- @architect ← projetos SMALL e MEDIUM
18
+ @deyvin ← companheiro tecnico para continuidade e pequenas implementacoes
19
+ @discovery-design-doc ← quando precisa clarear escopo e gerar design doc vivo
20
+ @analyst ← projetos SMALL e MEDIUM
21
+ @scope-check ← valida alinhamento antes de codar ou depois de fix relevante
22
+ @architect ← projetos SMALL e MEDIUM
23
23
  @ux-ui ← UI/UX quando há interfaces (SMALL e MEDIUM)
24
24
  @pm ← apenas MEDIUM
25
25
  @orchestrator ← apenas MEDIUM
@@ -55,9 +55,11 @@ O AIOSON tem agentes oficiais de projeto e também pode criar agentes de squad.
55
55
 
56
56
  Quando o projeto ja existe e voce roda `scan:project`, o handoff correto agora e:
57
57
 
58
- ```text
59
- scan:project -> @analyst -> @scope-check -> @architect -> @dev
60
- ```
58
+ ```text
59
+ scan:project -> @analyst -> @scope-check -> @dev (ou @architect quando o full-merged opt-in do SMALL estiver ativo)
60
+ ```
61
+
62
+ > Desde a lane lean (v1.35.0), `@analyst`/`@architect` nao sao mais hops obrigatorios do fluxo padrao apos o scan. A classificacao decide a lane: SMALL segue `@sheldon` como autoridade unica de spec (`@product -> @sheldon -> @dev`), MEDIUM segue o maestro `@orchestrator` (que dispara `@analyst`/`@architect`/`@pm` como sub-agentes do fan-out). Um `@analyst` isolado logo apos o scan continua valido como detour opt-in para mapear o dominio existente antes de abrir a primeira feature.
61
63
 
62
64
  Regras do fluxo:
63
65
  - os artefatos locais do scan (`scan-index.md`, `scan-folders.md`, `scan-<pasta>.md`, `scan-aioson.md`) servem como mapas brutos do codigo
@@ -81,7 +83,7 @@ Regras do fluxo:
81
83
 
82
84
  **Como ativar:**
83
85
  ```
84
- /aioson:agent:setup
86
+ /aioson:agent:setup
85
87
  ```
86
88
 
87
89
  **O que ele pergunta:**
@@ -138,7 +140,7 @@ O `@product` detecta esses arquivos automaticamente e pergunta se deve usá-los
138
140
 
139
141
  **Como ativar:**
140
142
  ```
141
- /aioson:agent:product
143
+ /aioson:agent:product
142
144
  ```
143
145
 
144
146
  **Entrega:** Arquivo `.aioson/context/prd.md` ou `.aioson/context/prd-{slug}.md` com:
@@ -182,12 +184,12 @@ O `@product` detecta esses arquivos automaticamente e pergunta se deve usá-los
182
184
 
183
185
  **Como ativar:**
184
186
  ```
185
- /aioson:agent:deyvin
187
+ /aioson:agent:deyvin
186
188
  ```
187
189
 
188
190
  Alias compativel:
189
191
  ```text
190
- /aioson:agent:pair
192
+ /aioson:agent:pair
191
193
  ```
192
194
 
193
195
  **Exemplos bons de uso:**
@@ -227,7 +229,7 @@ Alias compativel:
227
229
 
228
230
  **Como ativar:**
229
231
  ```
230
- /aioson:agent:analyst
232
+ /aioson:agent:analyst
231
233
  ```
232
234
 
233
235
  **Exemplo de perguntas que ele faz:**
@@ -268,7 +270,7 @@ Em **modo feature**, entrega adicionalmente:
268
270
 
269
271
  **Como ativar:**
270
272
  ```
271
- /aioson:agent:discovery-design-doc
273
+ /aioson:agent:discovery-design-doc
272
274
  ```
273
275
 
274
276
  **Entrega:**
@@ -300,7 +302,7 @@ Em **modo feature**, entrega adicionalmente:
300
302
 
301
303
  **Como ativar:**
302
304
  ```
303
- /aioson:agent:architect
305
+ /aioson:agent:architect
304
306
  ```
305
307
 
306
308
  **Estruturas que ele propõe (exemplo Laravel SMALL):**
@@ -341,7 +343,7 @@ tests/
341
343
 
342
344
  **Como ativar o agente UI/UX:**
343
345
  ```
344
- /aioson:agent:ux-ui
346
+ /aioson:agent:ux-ui
345
347
  ```
346
348
 
347
349
  **Submodos disponíveis:**
@@ -384,7 +386,7 @@ tests/
384
386
 
385
387
  **Como ativar:**
386
388
  ```
387
- /aioson:agent:pm
389
+ /aioson:agent:pm
388
390
  ```
389
391
 
390
392
  **Regra de ouro do @pm:** O documento deve ter no máximo 2 páginas. Se passar disso, corte funcionalidades do MVP.
@@ -410,7 +412,7 @@ tests/
410
412
 
411
413
  **Como ativar:**
412
414
  ```
413
- /aioson:agent:orchestrator
415
+ /aioson:agent:orchestrator
414
416
  ```
415
417
 
416
418
  **Ou via CLI para preparar os arquivos:**
@@ -455,7 +457,7 @@ npx @jaimevalasek/aioson parallel:status
455
457
 
456
458
  **Como ativar:**
457
459
  ```
458
- /aioson:agent:squad
460
+ /aioson:agent:squad
459
461
  ```
460
462
 
461
463
  **Entrega:**
@@ -481,7 +483,7 @@ npx @jaimevalasek/aioson parallel:status
481
483
 
482
484
  **Como ativar:**
483
485
  ```
484
- /aioson:agent:genome
486
+ /aioson:agent:genome
485
487
  ```
486
488
 
487
489
  **Entrega:**
@@ -517,7 +519,7 @@ Depois disso, ela passa a ser parte real do pacote local da squad e deve ser con
517
519
 
518
520
  **Como ativar:**
519
521
  ```
520
- /aioson:agent:dev
522
+ /aioson:agent:dev
521
523
  ```
522
524
 
523
525
  **Princípios que ele aplica em qualquer stack:**
@@ -570,7 +572,7 @@ Se o usuário pedir para pular o teste, o `@dev` resiste, explica, e só cede ap
570
572
 
571
573
  **Como ativar:**
572
574
  ```
573
- /aioson:agent:qa
575
+ /aioson:agent:qa
574
576
  ```
575
577
 
576
578
  **Entrega:**
@@ -634,7 +636,7 @@ O root de `.aioson/context/` fica limpo automaticamente. O desenvolvedor não pr
634
636
 
635
637
  **Como ativar:**
636
638
  ```
637
- /aioson:agent:tester
639
+ /aioson:agent:tester
638
640
  ```
639
641
 
640
642
  **Entrega:**
@@ -669,7 +671,7 @@ O root de `.aioson/context/` fica limpo automaticamente. O desenvolvedor não pr
669
671
 
670
672
  **Como ativar:**
671
673
  ```
672
- /aioson:agent:sheldon
674
+ /aioson:agent:sheldon
673
675
  ```
674
676
 
675
677
  **Entrega:**
@@ -698,7 +700,7 @@ Agentes que nao fazem parte do fluxo principal de entrega, mas entram sob demand
698
700
 
699
701
  **Como ativar:**
700
702
  ```
701
- /aioson:agent:committer
703
+ /aioson:agent:committer
702
704
  ```
703
705
 
704
706
  **Entrega:**
@@ -719,7 +721,7 @@ Agentes que nao fazem parte do fluxo principal de entrega, mas entram sob demand
719
721
 
720
722
  **Como ativar:**
721
723
  ```
722
- /aioson:agent:copywriter
724
+ /aioson:agent:copywriter
723
725
  ```
724
726
 
725
727
  **Entrega:**
@@ -741,7 +743,7 @@ Agentes que nao fazem parte do fluxo principal de entrega, mas entram sob demand
741
743
 
742
744
  **Como ativar:**
743
745
  ```
744
- /aioson:agent:briefing
746
+ /aioson:agent:briefing
745
747
  ```
746
748
 
747
749
  **Entrega:**
@@ -762,7 +764,7 @@ Agentes que nao fazem parte do fluxo principal de entrega, mas entram sob demand
762
764
 
763
765
  **Como ativar:**
764
766
  ```
765
- /aioson:agent:design-hybrid-forge
767
+ /aioson:agent:design-hybrid-forge
766
768
  ```
767
769
 
768
770
  **Entrega:**
@@ -782,7 +784,7 @@ Agentes que nao fazem parte do fluxo principal de entrega, mas entram sob demand
782
784
 
783
785
  **Como ativar:**
784
786
  ```
785
- /aioson:agent:discover
787
+ /aioson:agent:discover
786
788
  ```
787
789
 
788
790
  **Ou via CLI:**
@@ -809,7 +811,7 @@ npx @jaimevalasek/aioson scan:project . --folder=src
809
811
 
810
812
  **Como ativar:**
811
813
  ```
812
- /aioson:agent:neo
814
+ /aioson:agent:neo
813
815
  ```
814
816
 
815
817
  **Entrega:**
@@ -830,7 +832,7 @@ npx @jaimevalasek/aioson scan:project . --folder=src
830
832
 
831
833
  **Como ativar:**
832
834
  ```
833
- /aioson:agent:orache
835
+ /aioson:agent:orache
834
836
  ```
835
837
 
836
838
  **Entrega:**
@@ -852,7 +854,7 @@ npx @jaimevalasek/aioson scan:project . --folder=src
852
854
 
853
855
  **Como ativar:**
854
856
  ```
855
- /aioson:agent:pentester
857
+ /aioson:agent:pentester
856
858
  ```
857
859
 
858
860
  **Entrega:**
@@ -873,7 +875,7 @@ npx @jaimevalasek/aioson scan:project . --folder=src
873
875
 
874
876
  **Como ativar:**
875
877
  ```
876
- /aioson:agent:profiler-researcher
878
+ /aioson:agent:profiler-researcher
877
879
  ```
878
880
 
879
881
  **Entrega:**
@@ -892,7 +894,7 @@ npx @jaimevalasek/aioson scan:project . --folder=src
892
894
 
893
895
  **Como ativar:**
894
896
  ```
895
- /aioson:agent:profiler-enricher
897
+ /aioson:agent:profiler-enricher
896
898
  ```
897
899
 
898
900
  **Entrega:**
@@ -911,7 +913,7 @@ npx @jaimevalasek/aioson scan:project . --folder=src
911
913
 
912
914
  **Como ativar:**
913
915
  ```
914
- /aioson:agent:profiler-forge
916
+ /aioson:agent:profiler-forge
915
917
  ```
916
918
 
917
919
  **Entrega:**
@@ -930,7 +932,7 @@ npx @jaimevalasek/aioson scan:project . --folder=src
930
932
 
931
933
  **Como ativar:**
932
934
  ```
933
- /aioson:agent:site-forge
935
+ /aioson:agent:site-forge
934
936
  ```
935
937
 
936
938
  **Exemplos de uso:**
@@ -956,7 +958,7 @@ Extraia o design de https://exemplo.com como uma skill
956
958
 
957
959
  **Como ativar:**
958
960
  ```
959
- /aioson:agent:validator
961
+ /aioson:agent:validator
960
962
  ```
961
963
 
962
964
  **Entrega:**
@@ -972,22 +974,20 @@ Extraia o design de https://exemplo.com como uma skill
972
974
  ```
973
975
  Duração típica: minutos a horas. Sem análise, sem arquitetura formal.
974
976
 
975
- ### SMALL
977
+ ### SMALL — lean lane (padrão v1.35.0)
976
978
  ```
977
- @setup → @product → [@sheldon] → @analyst → @architect → @dev → @qa → [@tester]
979
+ @setup → @product → @sheldon → @dev → @qa → [@tester]
978
980
  ```
979
- Duração típica: horas a dias. Análise leve, estrutura clara.
981
+ Duração típica: horas a dias. `@sheldon` é a autoridade única de spec: produz requirements + decisões técnicas + plano faseado + harness-contract (Gates A/B/C) em uma passada. `@analyst`, `@architect`, `@scope-check` são detours opt-in.
980
982
 
981
- ### MEDIUM
983
+ ### MEDIUM — maestro lane (v1.35.0)
982
984
  ```
983
- @setup → @product → [@sheldon] → @analyst → @architect → @ux-ui → @pm → @orchestrator → @dev → @pentester → @qa → [@tester]
985
+ @setup → @product → [@sheldon] → @orchestrator → @dev → @pentester → @qa → [@tester]
984
986
  ```
985
- Duração típica: dias a semanas. Análise completa, paralelismo, backlog formal, revisao adversarial obrigatoria.
986
-
987
- > O `@pentester` entra obrigatoriamente em projetos MEDIUM entre `@dev` e `@qa`. Em projetos sensiveis ou com requisitos de seguranca, ative-o tambem em SMALL.
987
+ Duração típica: dias a semanas. `@orchestrator` é o maestro de spec: faz fan-out para `@analyst` + `@architect` + `@pm` (+ `@ux-ui` quando UI-heavy) como sub-agentes, consolida e verifica os artefatos. `@pentester` é inline (entre `@dev` e `@qa`).
988
988
 
989
- `[@sheldon]` — opcional, recomendado antes de iniciar a cadeia de execução para validar o PRD.
990
- `[@tester]` — opcional, recomendado quando a cobertura de testes for insuficiente após `@dev`.
989
+ > `[@sheldon]` — opcional no MEDIUM como pré-etapa antes do `@orchestrator` para endurecer o PRD.
990
+ > `[@tester]` — opcional, recomendado quando a cobertura de testes for insuficiente após `@dev`.
991
991
 
992
992
  ---
993
993
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jaimevalasek/aioson",
3
- "version": "1.33.1",
3
+ "version": "1.37.0",
4
4
  "description": "AI operating framework for hyper-personalized software.",
5
5
  "keywords": [
6
6
  "ai",
@@ -42,7 +42,7 @@
42
42
  "test:genome-2.0:block-a": "node scripts/smoke/genome-2.0-smoke.js && npm run test:genome && npm test && npm run lint",
43
43
  "test:genome-2.0:rollout": "node scripts/testing/genome-2.0-rollout.js",
44
44
  "lint": "node scripts/check-js.js",
45
- "sync:agents": "node src/commands/sync-agents-preflight.js && rsync -av --progress --exclude='config.md' --exclude='runtime/' --exclude='backups/' --exclude='mcp/servers.local.json' template/ ./",
45
+ "sync:agents": "node src/commands/sync-agents-preflight.js && node src/commands/sync-agents-copy.js",
46
46
  "ci": "npm run lint && npm test"
47
47
  },
48
48
  "dependencies": {
package/src/agents.js CHANGED
@@ -67,7 +67,7 @@ function buildAgentPrompt(agent, tool, options = {}) {
67
67
  '',
68
68
  `**Language boundary:** Agent instructions are canonical in English. All user-facing communication must be in ${interactionLanguage}.`,
69
69
  '',
70
- `**Scope boundary:** You operate exclusively as ${agent.command}. Do not perform work that belongs to another agent. When your work is complete, output only the handoff — which agent is next and why. Do not continue into that agent\'s territory.${autoHandoff ? ' Exception: autopilot handoff is active for this stage — follow `.aioson/docs/autopilot-handoff.md` and auto-invoke the next agent\'s skill when no stop condition applies. The chain stops before the first `@dev` activation (human clears context and starts implementation) and continues through the post-dev review cycle (`@dev` → `@qa` → `@tester`/`@pentester` when their triggers fire → `@validator`); it NEVER auto-runs `feature:close`/publish — those require explicit human approval.' : ''}`,
70
+ `**Scope boundary:** You operate exclusively as ${agent.command}. Do not perform work that belongs to another agent. When your work is complete, output only the handoff — which agent is next and why. Do not continue into that agent\'s territory.${autoHandoff ? ' Exception: autopilot handoff is active for this stage — follow `.aioson/docs/autopilot-handoff.md` and auto-invoke the next agent\'s skill when no stop condition applies. The chain runs the whole feature: the spec authority (`@sheldon`/`@orchestrator`) seeds the agentic scheme and crosses into `@dev` via the `dev-state.md` cold-start packet once its own gates/decisions are settled, and the post-dev review cycle (`@dev` → `@qa` → `@tester`/`@pentester` when their triggers fire → `@validator`) continues automatically. It stops only for a genuine human decision or a stop condition, and NEVER auto-runs `feature:close`/publish — those require explicit human approval.' : ''}`,
71
71
  ].join('\n');
72
72
 
73
73
  if (safeTool === 'claude') {
@@ -0,0 +1,111 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Canonical map: which agents produce a `verify:artifact`-checkable artifact at
5
+ * session end, the kind, and how that artifact's path is resolved.
6
+ *
7
+ * needs: 'none' — self-resolving (fixed path); the engine can prove it at
8
+ * `agent:done` with no extra input.
9
+ * needs: 'slug' — path keyed by --slug; the agent threads it into agent:done.
10
+ * needs: 'file' — date-stamped / caller-known path, threaded via --file.
11
+ * needs: 'dir' — a generated-site root, via --dir (advisory static floor only
12
+ * at agent:done; the full `npm run build` stays in the agent's
13
+ * explicit Done gate).
14
+ *
15
+ * This is the bridge that makes the periphery's done-gates AUTO-FIRE: instead of
16
+ * relying on each agent to remember its `## Done gate` line, `agent:done` runs the
17
+ * check itself (advisory, best-effort). Keep in sync with the RULESETS/ADAPTERS
18
+ * registry in commands/verify-artifact.js and the per-agent Done gates — it is one
19
+ * of the workflow agent-enumeration sites.
20
+ */
21
+ const AGENT_ARTIFACT_KIND = {
22
+ setup: { kind: 'project-context', needs: 'none' },
23
+ discover: { kind: 'bootstrap', needs: 'none' },
24
+ committer: { kind: 'commit-message', needs: 'none' },
25
+ genome: { kind: 'genome', needs: 'slug' },
26
+ 'profiler-forge': { kind: 'genome', needs: 'slug' },
27
+ 'profiler-researcher': { kind: 'research-report', needs: 'slug' },
28
+ 'profiler-enricher': { kind: 'enriched-profile', needs: 'slug' },
29
+ 'design-hybrid-forge': { kind: 'hybrid-skill', needs: 'slug' },
30
+ copywriter: { kind: 'copy', needs: 'slug' },
31
+ orache: { kind: 'orache-report', needs: 'file' },
32
+ 'site-forge': { kind: 'site', needs: 'dir', opts: { noBuild: true } },
33
+ 'briefing-refiner': { kind: 'review', needs: 'slug' }
34
+ };
35
+
36
+ const NEEDS_FLAG = { slug: '--slug=<slug>', file: '--file=<path>', dir: '--dir=<dir>' };
37
+
38
+ /** Resolve an agent name (with or without a leading @) to its artifact mapping, or null. */
39
+ function resolveAgentArtifact(agent) {
40
+ const name = String(agent || '').trim().replace(/^@/, '');
41
+ return AGENT_ARTIFACT_KIND[name] || null;
42
+ }
43
+
44
+ /**
45
+ * Best-effort advisory `verify:artifact` for the calling agent at `agent:done`.
46
+ *
47
+ * Returns `null` when the agent produces no checkable artifact (the common case —
48
+ * product, dev, qa, …). Otherwise a uniform advisory descriptor:
49
+ * { kind, ok, skipped, issues?, reason }
50
+ * - self-resolving kinds, or locator-keyed kinds whose locator was threaded into
51
+ * agent:done, run the real check (advisory — never blocks).
52
+ * - a locator-keyed kind with no locator yields `skipped:true` plus a one-line
53
+ * hint naming the exact command, so it is surfaced instead of silently missing.
54
+ *
55
+ * Never throws — a failure here must never break the session-end registration.
56
+ */
57
+ async function verifyAgentArtifact({ targetDir, agent, options = {} }) {
58
+ const mapping = resolveAgentArtifact(agent);
59
+ if (!mapping) return null;
60
+ const { kind, needs } = mapping;
61
+ const slug = options.slug ? String(options.slug).trim() : null;
62
+ const file = options.file ? String(options.file).trim() : null;
63
+ const dir = options.dir ? String(options.dir).trim() : null;
64
+
65
+ const missingLocator =
66
+ (needs === 'slug' && !slug) || (needs === 'file' && !file) || (needs === 'dir' && !dir);
67
+ if (missingLocator) {
68
+ const flag = NEEDS_FLAG[needs];
69
+ return {
70
+ kind,
71
+ ok: true,
72
+ skipped: true,
73
+ reason: `needs ${flag} — run: aioson verify:artifact . --kind=${kind} ${flag} --advisory`
74
+ };
75
+ }
76
+
77
+ try {
78
+ const { runVerifyArtifact } = require('./commands/verify-artifact');
79
+ const report = await runVerifyArtifact({
80
+ args: [targetDir],
81
+ options: {
82
+ kind,
83
+ slug,
84
+ file,
85
+ dir,
86
+ advisory: true,
87
+ suppressExitCode: true,
88
+ json: true,
89
+ ...(mapping.opts && mapping.opts.noBuild ? { 'no-build': true } : {})
90
+ },
91
+ logger: { log() {}, error() {}, warn() {} }
92
+ });
93
+ if (!report) return null;
94
+ const issues = report.issues || [];
95
+ const head = issues.slice(0, 3).join('; ');
96
+ const more = issues.length > 3 ? ` (+${issues.length - 3} more)` : '';
97
+ return {
98
+ kind,
99
+ ok: Boolean(report.ok),
100
+ skipped: false,
101
+ issues,
102
+ reason: report.ok
103
+ ? null
104
+ : `${head}${more} — advisory; see .aioson/context/verify-artifact-${kind}.json`
105
+ };
106
+ } catch {
107
+ return null;
108
+ }
109
+ }
110
+
111
+ module.exports = { AGENT_ARTIFACT_KIND, resolveAgentArtifact, verifyAgentArtifact };
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Autopilot activation signal — the single source of truth for "is autopilot
5
+ * on?" outside the agent markdown files.
6
+ *
7
+ * Contract (docs/autopilot-handoff.md "Activation"), highest precedence first:
8
+ * - A scheme for the CURRENT feature with `agentic_policy.enabled: false`
9
+ * (the `--step` disarm) → OFF, even over `auto_handoff: true` — an explicit
10
+ * per-feature choice always wins over the project default.
11
+ * - `auto_handoff: true` in project.context.md frontmatter → ON (project default).
12
+ * - `auto_handoff: false` → OFF, even if a seeded scheme is lying around
13
+ * (step-by-step is the standing choice; a leftover scheme must not override it).
14
+ * - flag absent → ON only when `.aioson/context/workflow-execute.json` exists
15
+ * with `agentic_policy.enabled: true` (the per-feature "Autopilot" choice,
16
+ * which deliberately does NOT persist the frontmatter flag). When a slug is
17
+ * provided, the scheme counts only if it was seeded for THAT feature — a
18
+ * scheme left by a different/closed feature does not.
19
+ */
20
+
21
+ const fs = require('node:fs/promises');
22
+ const path = require('node:path');
23
+ const { validateProjectContextFile } = require('./context');
24
+
25
+ const EXECUTION_STATE_RELATIVE_PATH = '.aioson/context/workflow-execute.json';
26
+
27
+ async function readSeededScheme(targetDir) {
28
+ try {
29
+ const raw = await fs.readFile(path.join(targetDir, EXECUTION_STATE_RELATIVE_PATH), 'utf8');
30
+ return JSON.parse(raw);
31
+ } catch {
32
+ return null;
33
+ }
34
+ }
35
+
36
+ async function resolveAutopilotSignal(targetDir, { slug = null, projectContext = null } = {}) {
37
+ let flag;
38
+ try {
39
+ const context = projectContext || await validateProjectContextFile(targetDir);
40
+ flag = context && context.data && Object.prototype.hasOwnProperty.call(context.data, 'auto_handoff')
41
+ ? context.data.auto_handoff === true
42
+ : null;
43
+ } catch {
44
+ flag = null;
45
+ }
46
+
47
+ const scheme = await readSeededScheme(targetDir);
48
+ const slugMatches = Boolean(
49
+ scheme && (!slug || !scheme.feature || String(scheme.feature) === String(slug))
50
+ );
51
+
52
+ // Explicit per-feature disarm (--step) beats the project-wide flag.
53
+ if (
54
+ scheme && scheme.agentic_policy && scheme.agentic_policy.enabled === false &&
55
+ slugMatches
56
+ ) {
57
+ return { enabled: false, source: 'scheme_disarmed' };
58
+ }
59
+
60
+ if (flag === true) return { enabled: true, source: 'frontmatter' };
61
+ if (flag === false) return { enabled: false, source: 'frontmatter_off' };
62
+
63
+ const schemeEnabled = Boolean(scheme && scheme.agentic_policy && scheme.agentic_policy.enabled === true);
64
+ if (!schemeEnabled) return { enabled: false, source: null };
65
+ if (!slugMatches) return { enabled: false, source: 'scheme_other_feature' };
66
+ return { enabled: true, source: 'seeded_scheme' };
67
+ }
68
+
69
+ module.exports = {
70
+ resolveAutopilotSignal
71
+ };