stealthos-cli 0.1.0-alpha.3 → 0.1.0-alpha.5

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 (177) hide show
  1. package/ai/CONTRACT.md +110 -0
  2. package/ai/INDEX.md +203 -0
  3. package/ai/README.md +434 -0
  4. package/ai/ROUTER.md +288 -0
  5. package/ai/agents/README.md +103 -0
  6. package/ai/agents/architect.md +59 -0
  7. package/ai/agents/backend-engineer.md +62 -0
  8. package/ai/agents/founder.md +45 -0
  9. package/ai/agents/frontend-engineer.md +61 -0
  10. package/ai/agents/product-manager.md +56 -0
  11. package/ai/agents/qa-engineer.md +53 -0
  12. package/ai/agents/researcher.md +74 -0
  13. package/ai/agents/reviewer.md +73 -0
  14. package/ai/agents/security-engineer.md +59 -0
  15. package/ai/agents/sre-engineer.md +70 -0
  16. package/ai/agents/tech-lead.md +70 -0
  17. package/ai/architecture/README.md +35 -0
  18. package/ai/architecture/components.md +24 -0
  19. package/ai/architecture/containers.md +30 -0
  20. package/ai/architecture/event-flows.md +36 -0
  21. package/ai/architecture/sequence-diagrams.md +38 -0
  22. package/ai/architecture/system-context.md +46 -0
  23. package/ai/architecture/threat-modeling.md +40 -0
  24. package/ai/blueprints/README.md +67 -0
  25. package/ai/blueprints/_schema.json +40 -0
  26. package/ai/blueprints/ai-platform.json +28 -0
  27. package/ai/blueprints/crm.json +22 -0
  28. package/ai/blueprints/game.json +25 -0
  29. package/ai/blueprints/mobile.json +24 -0
  30. package/ai/blueprints/realtime.json +22 -0
  31. package/ai/blueprints/saas.json +25 -0
  32. package/ai/blueprints/telemetry.json +30 -0
  33. package/ai/blueprints/web.json +23 -0
  34. package/ai/bootstrap/discovery-questions.md +117 -0
  35. package/ai/bootstrap/dispatcher.md +85 -0
  36. package/ai/bootstrap/existing-project.md +191 -0
  37. package/ai/bootstrap/new-project.md +127 -0
  38. package/ai/bootstrap/tech-mapping.md +164 -0
  39. package/ai/clients/README.md +114 -0
  40. package/ai/clients/antigravity.md +125 -0
  41. package/ai/clients/claude-code.md +65 -0
  42. package/ai/clients/cline.md +69 -0
  43. package/ai/clients/codex-aider-cli.md +82 -0
  44. package/ai/clients/continue.md +67 -0
  45. package/ai/clients/copilot.md +49 -0
  46. package/ai/clients/cursor.md +81 -0
  47. package/ai/clients/snippets/mcp-absolute-paths.json +9 -0
  48. package/ai/clients/snippets/mcp-http.json +7 -0
  49. package/ai/clients/snippets/mcp-stdio.json +9 -0
  50. package/ai/clients/trae.md +69 -0
  51. package/ai/clients/windsurf.md +71 -0
  52. package/ai/core/pipeline/execution-engine.md +157 -0
  53. package/ai/engineering/README.md +32 -0
  54. package/ai/engineering/observability/incident-response.md +82 -0
  55. package/ai/evals/protocol-tests.md +150 -0
  56. package/ai/evolution/agent-evolution.md +161 -0
  57. package/ai/evolution/improvements.md +91 -0
  58. package/ai/evolution/learnings.md +49 -0
  59. package/ai/evolution/patterns-discovered.md +48 -0
  60. package/ai/execution/README.md +33 -0
  61. package/ai/execution/backlog.md +27 -0
  62. package/ai/execution/milestones.md +26 -0
  63. package/ai/execution/roadmap.md +30 -0
  64. package/ai/execution/sprint.md +42 -0
  65. package/ai/governance/README.md +34 -0
  66. package/ai/governance/architecture-principles.md +99 -0
  67. package/ai/governance/definition-of-done.md +88 -0
  68. package/ai/governance/definition-of-ready.md +69 -0
  69. package/ai/governance/engineering-principles.md +70 -0
  70. package/ai/governance/quality-gates.md +85 -0
  71. package/ai/governance/security-policies.md +84 -0
  72. package/ai/hooks/enforce-audit.ps1 +41 -0
  73. package/ai/hooks/enforce-audit.sh +39 -0
  74. package/ai/hooks/guard-edit.ps1 +182 -0
  75. package/ai/hooks/guard-edit.sh +161 -0
  76. package/ai/hooks/inject-os-reminder.ps1 +40 -0
  77. package/ai/hooks/inject-os-reminder.sh +16 -0
  78. package/ai/manifest.json +238 -0
  79. package/ai/memory/_detected-stack.json +33 -0
  80. package/ai/memory/_summary.md +49 -0
  81. package/ai/memory/archive/.gitkeep +3 -0
  82. package/ai/memory/completed-tasks.md +156 -0
  83. package/ai/memory/decisions.md +257 -0
  84. package/ai/memory/errors-and-solutions.md +41 -0
  85. package/ai/memory/known-issues.md +40 -0
  86. package/ai/memory/pending-tasks.md +37 -0
  87. package/ai/memory/project-context.md +67 -0
  88. package/ai/operating-system/architecture.md +54 -0
  89. package/ai/operating-system/coding-standards.md +84 -0
  90. package/ai/operating-system/folder-structure.md +126 -0
  91. package/ai/operating-system/performance-rules.md +86 -0
  92. package/ai/operating-system/quality-control.md +81 -0
  93. package/ai/operating-system/security-rules.md +91 -0
  94. package/ai/operating-system/workflow.md +86 -0
  95. package/ai/product/README.md +24 -0
  96. package/ai/product/business-rules.md +26 -0
  97. package/ai/product/personas.md +29 -0
  98. package/ai/product/user-journeys.md +30 -0
  99. package/ai/product/vision.md +35 -0
  100. package/ai/rules/behavior.md +45 -0
  101. package/ai/rules/do.md +47 -0
  102. package/ai/rules/dont.md +46 -0
  103. package/ai/rules/execution-flow.md +125 -0
  104. package/ai/rules/structural-constraints.md +59 -0
  105. package/ai/rules/structure-canon.md +116 -0
  106. package/ai/runtime.md +179 -0
  107. package/ai/scripts/detect-stack.ps1 +166 -0
  108. package/ai/scripts/detect-stack.sh +172 -0
  109. package/ai/scripts/init-ai-os.ps1 +215 -0
  110. package/ai/scripts/init-ai-os.sh +99 -0
  111. package/ai/scripts/lint-os.ps1 +99 -0
  112. package/ai/scripts/lint-os.sh +85 -0
  113. package/ai/scripts/start-os.ps1 +151 -0
  114. package/ai/scripts/start-os.sh +141 -0
  115. package/ai/server/README.md +105 -0
  116. package/ai/server/aios-server.mjs +2134 -0
  117. package/ai/server/package-lock.json +802 -0
  118. package/ai/server/package.json +31 -0
  119. package/ai/server/src/analyzer/graph-builder.ts +92 -0
  120. package/ai/server/src/analyzer/index.ts +191 -0
  121. package/ai/server/src/analyzer/module-mapper.ts +171 -0
  122. package/ai/server/src/analyzer/smell-detector.ts +54 -0
  123. package/ai/server/src/analyzer/stack-detector.ts +70 -0
  124. package/ai/server/src/index.ts +16 -0
  125. package/ai/server/src/packager/context-builder.ts +217 -0
  126. package/ai/server/src/packager/index.ts +3 -0
  127. package/ai/server/src/packager/memory-injector.ts +128 -0
  128. package/ai/server/src/packager/module-summarizer.ts +60 -0
  129. package/ai/server/src/packager/token-estimator.ts +26 -0
  130. package/ai/server/src/snapshot/index.ts +3 -0
  131. package/ai/server/src/snapshot/snapshot-creator.ts +206 -0
  132. package/ai/server/src/snapshot/snapshot-diff.ts +86 -0
  133. package/ai/server/src/snapshot/snapshot-restore.ts +14 -0
  134. package/ai/server/src/types.ts +94 -0
  135. package/ai/server/tsconfig.json +26 -0
  136. package/ai/skills/architecture-design.md +82 -0
  137. package/ai/skills/backend-engineering.md +57 -0
  138. package/ai/skills/database-design.md +76 -0
  139. package/ai/skills/frontend-engineering.md +63 -0
  140. package/ai/skills/performance.md +73 -0
  141. package/ai/skills/scalability.md +84 -0
  142. package/ai/skills/security.md +71 -0
  143. package/ai/skills/testing.md +77 -0
  144. package/ai/specs/ADR/ADR-0002-typescript-runtime.md +103 -0
  145. package/ai/specs/ADR/ADR-0004-runtime-orchestrator.md +94 -0
  146. package/ai/specs/ADR/ADR-0005-workflow-engine.md +105 -0
  147. package/ai/specs/ADR/ADR-0006-runtime-state.md +104 -0
  148. package/ai/specs/ADR/ADR-0007-state-compiler-drift-context-layers-artifact-index.md +82 -0
  149. package/ai/specs/ADR/ADR-0008-intent-runtime-discovery-branching.md +93 -0
  150. package/ai/specs/ADR/ADR-0009-confidence-system-maturity-tracking.md +113 -0
  151. package/ai/specs/ADR/ADR-0010-structural-architecture-standards.md +121 -0
  152. package/ai/specs/ADR/ADR-0011-mcp-prompts.md +86 -0
  153. package/ai/specs/ADR/ADR-0012-stealthos-hybrid-architecture.md +174 -0
  154. package/ai/specs/ADR/_TEMPLATE.md +60 -0
  155. package/ai/specs/BRD/_TEMPLATE.md +50 -0
  156. package/ai/specs/PRD/_TEMPLATE.md +72 -0
  157. package/ai/specs/README.md +43 -0
  158. package/ai/specs/RFC/RFC-0001-runtime-orchestrator.md +149 -0
  159. package/ai/specs/RFC/RFC-0002-runtime-orchestrator-extended.md +134 -0
  160. package/ai/specs/RFC/_TEMPLATE.md +61 -0
  161. package/ai/specs/RUNBOOKS/_TEMPLATE.md +68 -0
  162. package/ai/specs/SDD/_TEMPLATE.md +104 -0
  163. package/ai/specs/TASKS/_TEMPLATE.md +52 -0
  164. package/ai/tools/debugging.md +64 -0
  165. package/ai/tools/dependency-analysis.md +46 -0
  166. package/ai/tools/internet-research.md +42 -0
  167. package/ai/tools/mcp-discovery.md +44 -0
  168. package/ai/workflows/_schema.json +81 -0
  169. package/ai/workflows/init.json +148 -0
  170. package/ai/workflows/sync.json +71 -0
  171. package/ai/workflows/work.json +91 -0
  172. package/package.json +42 -36
  173. package/scripts/bundle-ai.mjs +58 -0
  174. package/src/cli.mjs +83 -79
  175. package/src/commands/install.mjs +35 -11
  176. package/src/commands/run.mjs +117 -0
  177. package/src/lib/resolve-source.mjs +27 -10
@@ -0,0 +1,50 @@
1
+ ---
2
+ id: BRD-NNNN
3
+ slug: <slug-kebab>
4
+ status: draft # draft | review | approved | deprecated
5
+ owner: product-manager
6
+ created: AAAA-MM-DD
7
+ stakeholders: [...]
8
+ related:
9
+ - PRD-NNNN
10
+ ---
11
+
12
+ # BRD-NNNN — <Iniciativa de negócio>
13
+
14
+ > BRD é o **porquê de negócio** atrás do PRD. Use quando há stakeholders externos, ROI a justificar, ou decisão estratégica.
15
+
16
+ ## 1. Objetivo de negócio
17
+ 1 parágrafo: qual o resultado de negócio desejado?
18
+
19
+ ## 2. Contexto
20
+ Por que isso é importante AGORA? (oportunidade de mercado, pressão regulatória, retenção, competição)
21
+
22
+ ## 3. Stakeholders
23
+ | Papel | Nome | Interesse |
24
+ |---|---|---|
25
+ | Patrocinador | ... | ROI |
26
+ | Usuário-chave | ... | Eficiência |
27
+ | Operação | ... | Custo |
28
+
29
+ ## 4. Métricas de negócio
30
+ - **Receita / custo evitado esperado**: $X em Y meses
31
+ - **Adoção esperada**: N usuários, % conversão
32
+ - **Indicadores qualitativos**: NPS, CSAT
33
+
34
+ ## 5. Investimento estimado
35
+ - Engenharia: <semanas-pessoa>
36
+ - Infra: <$/mês>
37
+ - Outros: <$>
38
+
39
+ ## 6. ROI / Payback
40
+ - Payback estimado: <meses>
41
+ - Cenários: pessimista / realista / otimista
42
+
43
+ ## 7. Restrições de negócio
44
+ - Prazo: <data> (motivo: <evento>)
45
+ - Compliance: LGPD / GDPR / PCI / HIPAA / outro
46
+ - Orçamento: <teto>
47
+
48
+ ## 8. Aprovação
49
+ - [ ] Patrocinador aprovou
50
+ - [ ] Pronto para gerar PRD (`product-manager` continua)
@@ -0,0 +1,72 @@
1
+ ---
2
+ id: PRD-NNNN
3
+ slug: <slug-kebab>
4
+ status: draft # draft | review | approved | deprecated | superseded-by-NNNN
5
+ owner: product-manager
6
+ created: AAAA-MM-DD
7
+ updated: AAAA-MM-DD
8
+ supersedes: null
9
+ related:
10
+ - BRD-NNNN
11
+ - SDD-NNNN (a ser criado por architect)
12
+ ---
13
+
14
+ # PRD-NNNN — <Título conciso da feature>
15
+
16
+ ## 1. Problema
17
+ O que NÃO funciona hoje? Quem sofre? Qual o tamanho do problema (qualitativo + quantitativo se possível)?
18
+
19
+ ## 2. Objetivo
20
+ 1 frase: "Permitir que <persona> faça <ação> para alcançar <benefício>."
21
+
22
+ ## 3. KPIs / Métricas de sucesso
23
+ - **North-star**: <métrica principal — ex.: "% de uploads que disparam alerta em <60s">
24
+ - **Leading indicators**: <métricas que prevêem o north-star>
25
+ - **Guard-rails**: <métricas que NÃO podem piorar — performance, custo, satisfação>
26
+
27
+ ## 4. Usuários / Personas
28
+ Referência a `product/personas.md`. Quais personas usam essa feature? Em qual jornada (`product/user-journeys.md`)?
29
+
30
+ ## 5. Casos de uso
31
+ 1. **<Caso primário>** — Como <persona>, quero <ação> para <objetivo>.
32
+ 2. **<Caso secundário>** — ...
33
+ 3. **<Caso de exceção>** — ...
34
+
35
+ ## 6. Requisitos funcionais
36
+ - RF-01: O sistema DEVE <comportamento>.
37
+ - RF-02: O sistema DEVE <comportamento>.
38
+ - RF-03: ...
39
+
40
+ ## 7. Requisitos não-funcionais
41
+ - RNF-01: **Performance** — p95 < 200ms para <operação>.
42
+ - RNF-02: **Disponibilidade** — 99.5% uptime.
43
+ - RNF-03: **Segurança** — autenticação obrigatória, dados sensíveis criptografados.
44
+ - RNF-04: **Acessibilidade** — WCAG 2.1 AA mínimo.
45
+ - RNF-05: **Custo** — ≤ $X/mês adicionais em infra.
46
+
47
+ ## 8. Critérios de aceitação
48
+ Testáveis. Cada RF tem 1+ critério.
49
+ - **AC-01**: Dado <contexto>, quando <ação>, então <resultado verificável>.
50
+ - **AC-02**: ...
51
+
52
+ ## 9. Fora de escopo
53
+ O que **explicitamente** NÃO está nesta entrega? Evita scope-creep.
54
+
55
+ ## 10. Dependências / Riscos
56
+ - Dep: <feature/sistema X precisa estar pronto>
57
+ - Risco: <O que pode dar errado> — Mitigação: <ação>
58
+
59
+ ## 11. Rollout
60
+ - **Estratégia**: feature flag | canário | gradual | big-bang
61
+ - **Métricas de rollout**: <quais sinais indicam "ok prosseguir" vs "rollback">
62
+
63
+ ## 12. Aprovação
64
+ - [ ] Founder aprovou (G2)
65
+ - [ ] Pronto para entregar ao `architect` (G3)
66
+
67
+ ---
68
+
69
+ ## Histórico de mudanças
70
+ | Versão | Data | Autor | Mudança |
71
+ |---|---|---|---|
72
+ | 0.1 | AAAA-MM-DD | product-manager | Draft inicial |
@@ -0,0 +1,43 @@
1
+ ---
2
+ version: 1.0.0
3
+ updated: 2026-05-15
4
+ tier: on_demand
5
+ audience: humano + agente
6
+ ---
7
+
8
+ # Specs — Documentos canônicos
9
+
10
+ > Templates padronizados que materializam o pipeline IDEIA → DEPLOY. Cada doc tem **owner** (agente responsável) e **gate** que produz.
11
+
12
+ | Pasta | Doc | Owner | Gate |
13
+ |---|---|---|---|
14
+ | `PRD/` | Product Requirements Document | `product-manager` | G2 |
15
+ | `BRD/` | Business Requirements Document | `product-manager` | G1 (auxiliar) |
16
+ | `SDD/` | Software Design Document | `architect` | G3 |
17
+ | `ADR/` | Architecture Decision Record | `architect` | G3 (parte do SDD) |
18
+ | `RFC/` | Request for Comments | `tech-lead` | G4 (mudança em decisão) |
19
+ | `RUNBOOKS/` | Operational runbooks | `sre-engineer` | G9 |
20
+ | `TASKS/` | Decomposição de tasks | `tech-lead` | G4 |
21
+
22
+ ## Nomenclatura
23
+
24
+ - `PRD-NNNN-<slug-kebab>.md` (PRD-0001-events-heatmap)
25
+ - `SDD-NNNN-<slug>.md`
26
+ - `ADR-NNNN-<slug>.md` (espelha em `memory/decisions.md`)
27
+ - `RFC-NNNN-<slug>.md`
28
+ - `RUNBOOK-NNNN-<slug>.md`
29
+ - `TASK-NNNN-<slug>.md` (ou consolida em `execution/backlog.md`)
30
+
31
+ Numeração contínua (não reusar). Status no front-matter (`draft | review | approved | deprecated | superseded-by-NNNN`).
32
+
33
+ ## Templates
34
+
35
+ Cada pasta contém `_TEMPLATE.md` (prefixo `_` para ordem alfabética + indicar uso). Copiar e renomear.
36
+
37
+ ## Ciclo de vida
38
+
39
+ ```
40
+ draft → review (gate aplicável) → approved → (deprecated | superseded-by)
41
+ ```
42
+
43
+ Doc aprovado é **imutável** exceto correção tipográfica. Mudança real = novo doc com `supersedes: <antigo>`.
@@ -0,0 +1,149 @@
1
+ ---
2
+ id: RFC-0001
3
+ slug: runtime-orchestrator
4
+ status: accepted
5
+ opened: 2026-05-16
6
+ author: tech-lead
7
+ related:
8
+ - ADR-0002 (typescript-runtime — base sobre a qual orquestramos)
9
+ - ADR-0004 (a ser criado — decisão consolidada)
10
+ ---
11
+
12
+ # RFC-0001 — Runtime Orchestrator: workflows determinísticos sobre as 17 tools MCP
13
+
14
+ ## Mudança proposta
15
+
16
+ Substituir o modelo atual de **"17 tools MCP soltas + 8 slash commands granulares"** por um **Runtime Orchestrator** com 3 camadas:
17
+
18
+ 1. **Commands consolidados** — apenas `/init`, `/sync`, `/work`. Os 8 antigos são aposentados.
19
+ 2. **Workflow Engine** — workflows declarativos em JSON (`.ai/workflows/<name>.json`) que orquestram chamadas determinísticas às 17 tools primitivas existentes.
20
+ 3. **Runtime State** — `.ai/runtime/state.json` persistindo `project_phase`, `last_sync`, `current_focus`, `active_artifacts`.
21
+
22
+ A LLM continua escolhendo *quando* invocar `/init`/`/sync`/`/work`, mas a *sequência interna* de tools é determinística (definida pelo workflow JSON, não improvisada pela LLM).
23
+
24
+ ## Motivação
25
+
26
+ Sinal observado em sessão 2026-05-16 (Antigravity Workbench):
27
+ - 17 tools `aios_*` aparecem como flat list, sem indicação de sequência ou dependência.
28
+ - LLM sem orquestração tende a: (a) usar tools fora de ordem, (b) esquecer steps obrigatórios (snapshot após mudança de estado, memory update após decisão), (c) repetir chamadas, (d) escolher tool errada.
29
+ - 8 slash commands granulares (`/analyze`, `/context`, `/snapshot`, `/audit`, `/load-os`, `/os-status`, `/compact-memory`, `/promote-learning`) sobrecarregam superfície de uso e ainda não compõem fluxos.
30
+
31
+ Sintoma esperado se não mudar:
32
+ - Cada nova capacidade adicionada vira nova tool → superfície cresce linearmente, complexidade cognitiva cresce mais que linear.
33
+ - Workflows críticos (init de projeto, sync após desenvolvimento, execução de tarefa) viram conhecimento implícito da LLM → não auditável, não rastreável, não testável.
34
+
35
+ ## Estado atual
36
+
37
+ Sob ADR-0002 (Runtime v0.1):
38
+ - 17 tools MCP expostas via `.ai/server/aios-server.mjs` (12 base + 5 Runtime v0.1).
39
+ - 8 slash commands em `.claude/commands/*.md` (Claude Code only).
40
+ - Comandos chamam tools individuais; sem composição automática.
41
+ - Sem state persistente entre sessões além de `.ai/memory/*` (que é narrativa, não estado operacional).
42
+ - Tier system existe (core/conditional/on-demand) mas não há tool que devolva tier sob demanda — LLM precisa ler manualmente.
43
+ - Artefatos vivem espalhados (`.ai/specs/*`, `.ai/snapshots/*`, `.ai/context/packages/*`) sem índice unificado.
44
+
45
+ ## Alternativas
46
+
47
+ ### Alt 1 — Status quo (não mudar)
48
+ - Custo: 0
49
+ - Resultado: dívida arquitetural cresce; LLM cada vez mais erra ordem operacional; difícil onboardar nova IDE/CLI sem replicar 8 commands.
50
+ - **Descartada**: sinal claro de degradação.
51
+
52
+ ### Alt 2 — Runtime Orchestrator (esta proposta)
53
+ - Custo: 4 fases incrementais, ~40-50 arquivos tocados, 4 ADRs novos.
54
+ - Resultado: 3 commands, workflows determinísticos, state persistente, context layers explícitas, artifact index.
55
+ - **Escolhida**.
56
+
57
+ ### Alt 3 — Manter 8 commands + adicionar 3 novos como "orchestrators"
58
+ - Custo: menor (sem deletar).
59
+ - Resultado: superfície cresce de 8 para 11; ambiguidade sobre quando usar granular vs composto.
60
+ - **Descartada pelo usuário**: opção explícita por "substituir tudo pelos 3 novos" (sessão 2026-05-16).
61
+
62
+ ## Plano de migração (4 fases)
63
+
64
+ ### Fase 1 — Workflow Engine MVP
65
+ **Entrega**: `aios_run_workflow(name, input)` + 3 workflows JSON + 3 slash commands consolidados + remoção dos 8 antigos.
66
+
67
+ **Arquivos novos**:
68
+ - `.ai/workflows/init.json` — projeto novo / primeira sessão
69
+ - `.ai/workflows/sync.json` — sincronização periódica de estado
70
+ - `.ai/workflows/work.json` — execução de tarefa (MVP, expandido na Fase 4)
71
+ - `.claude/commands/{init,sync,work}.md`
72
+
73
+ **Arquivos modificados**:
74
+ - `.ai/server/aios-server.mjs` — nova tool `aios_run_workflow` + handler + helper `resolveArgs`
75
+ - `AGENTS.md`, `.ai/clients/{README,antigravity,claude-code}.md`, `.ai/runtime.md`, `.ai/README.md`, `.cursor/rules/ai-os.mdc` — atualizar tabelas: 3 comandos novos substituem 8 antigos
76
+ - `.claude/settings.local.json` — permitir nova tool
77
+
78
+ **Arquivos deletados**:
79
+ - `.claude/commands/{analyze,audit,compact-memory,context,load-os,os-status,promote-learning,snapshot}.md` (8 arquivos)
80
+
81
+ **ADR**: ADR-0005 (workflow-engine).
82
+
83
+ ### Fase 2 — Runtime State
84
+ **Entrega**: `.ai/runtime/state.json` + tools `aios_state_get`, `aios_state_set`, `aios_state_advance` + workflows da Fase 1 passam a atualizar state.
85
+
86
+ **Schema state.json**:
87
+ ```json
88
+ {
89
+ "project_phase": "discovery|planning|development|maintenance",
90
+ "last_sync_at": "ISO-8601",
91
+ "last_snapshot_id": "string|null",
92
+ "current_focus": "string|null",
93
+ "active_artifacts": { "specs": [], "packages": [], "snapshots": [] },
94
+ "open_decisions": [],
95
+ "open_tasks": []
96
+ }
97
+ ```
98
+
99
+ **ADR**: ADR-0006 (runtime-state).
100
+
101
+ ### Fase 3 — Context Layers explícitas + Artifact Index
102
+ **Entrega**:
103
+ - Tool `aios_get_context(layer: "core"|"working"|"deep", focus?: string)` que devolve apenas o tier pedido.
104
+ - `.ai/artifacts/index.json` consolidando metadata de specs/snapshots/packages/ADRs.
105
+ - Tool `aios_artifact_list(type, status)` para consultar o índice.
106
+
107
+ **ADR**: ADR-0007 (context-layers-and-artifact-index).
108
+
109
+ ### Fase 4 — Intent Runtime para `/work`
110
+ **Entrega**: expandir `work.json` para implementar fluxo: Intent Classification → Gap Analysis → Clarification → Plan → Approval → Execution → Validation → Memory → Snapshot.
111
+
112
+ Requer:
113
+ - Workflow conditional branches (if/else por classification).
114
+ - Step de "pause for user input" (interrupção controlada).
115
+ - Tool `aios_intent_classify(query)` (heurística + opcional LLM-call no servidor — provavelmente sem LLM no MVP).
116
+
117
+ **ADR**: ADR-0008 (intent-runtime).
118
+
119
+ ### Rollback
120
+ - Cada fase isolada em commit/ADR próprio.
121
+ - Para reverter Fase 1: restaurar 8 commands antigos do git history; remover `aios_run_workflow` e workflows JSON.
122
+ - Cuidado: docs cross-IDE referenciam novos commands — rollback exige atualizar docs também.
123
+
124
+ ## Riscos
125
+
126
+ | Risco | Mitigação |
127
+ |---|---|
128
+ | Workflow JSON vira config-language proprietária e implícita | Mantê-lo simples: só `steps[]` com `tool/args/on_error`. Não criar DSL. |
129
+ | LLM ignora workflows e chama tools primitivas direto | Tools primitivas continuam expostas (não remover); docs orientam preferência por workflows |
130
+ | YAML vs JSON debate | JSON: zero-deps no Node; pode ler/escrever com `JSON.parse/stringify`. YAML exigiria nova dep. |
131
+ | Aposentar 8 commands quebra muscle memory | Documentar mapeamento "antigo → novo" em `.ai/clients/README.md`; deixar nota em commit |
132
+ | Substituição de variável `${...}` vira mini-template engine | Manter restrito a `${input.X}`, `${timestamp}`, `${state.X}` (Fase 2+). Sem condicionais nem loops. |
133
+ | Pause-for-input na Fase 4 exige MCP protocol extension | Fase 4 desenhada para usar AskUserQuestion (Claude) / Function Calling pause (Gemini) externamente, workflow apenas declara pontos de pausa |
134
+
135
+ ## Métricas de sucesso
136
+
137
+ - Métrica 1: **Superfície de slash commands** — 8 → 3 (-62%)
138
+ - Métrica 2: **Reprodutibilidade de fluxo `sync`** — execuções independentes geram mesmo conjunto de artefatos (verificar via `aios_snapshot_diff` entre snapshots de syncs consecutivos)
139
+ - Métrica 3: **Token economy** — workflows devolvem relatório resumido em vez de dumps individuais (target: -40% tokens por sync típico)
140
+ - Métrica 4: **Onboardabilidade** — novo cliente IDE precisa documentar 3 commands em vez de 8
141
+
142
+ ## Decisão
143
+
144
+ - [x] **Aceito** → criar ADR-0004 (decisão consolidada) + ADRs por fase (0005, 0006, 0007, 0008).
145
+ - Aprovado por: usuário (sessão 2026-05-16, AskUserQuestion "escopo: 4 fases" + "ação com commands antigos: substituir tudo pelos 3 novos").
146
+
147
+ ## Comentários
148
+
149
+ - [2026-05-16] tech-lead: Inspiração de análise externa apresentada pelo usuário (aprofundamento sobre AI Engineering Runtime vs MCP puro). Filtrada para alinhar com estado real do projeto (Project Graph, Decision Engine, Context Layers já existem parcialmente sob outros nomes).
@@ -0,0 +1,134 @@
1
+ ---
2
+ id: RFC-0002
3
+ slug: runtime-orchestrator-extended
4
+ status: accepted
5
+ opened: 2026-05-16
6
+ author: tech-lead
7
+ related:
8
+ - RFC-0001 (proposta original — esta RFC ESTENDE, não substitui)
9
+ - ADR-0004 (decisão consolidada)
10
+ - ADR-0005 (Fase 1 — Workflow Engine MVP)
11
+ ---
12
+
13
+ # RFC-0002 — Runtime Orchestrator Extended: State Compiler, Lifecycle, Drift Detection, Contracts, Confidence
14
+
15
+ ## Mudança proposta
16
+
17
+ Estender o Runtime Orchestrator definido em RFC-0001 com **5 conceitos operacionais** que transformam o sistema de "orquestrador de tools" em **runtime operacional persistente com ciclo contínuo de engenharia**:
18
+
19
+ 1. **Project State Compiler** — `/sync` produz `.ai/runtime/runtime-context.json` único, compilado semanticamente. `/work` consome esse artefato em vez de relê tudo.
20
+ 2. **Runtime Lifecycle** — campo `phase` no state.json (`discovery|planning|implementation|stabilization|production`) + `mode` (`readonly|analysis|execution|validation`). Comportamento do `/work` adapta-se à fase.
21
+ 3. **Documentation Drift Detection** — tool `aios_detect_drift` compara código atual vs specs/snapshots; reporta divergências; `/sync` mostra como warning.
22
+ 4. **Execution Contracts** — workflows declaram `guarantees: []` (snapshot_created, memory_updated, ...); engine valida cumprimento ao final.
23
+ 5. **Context TTL + Confidence System** — separar memory em `persistent` (architecture, decisions) vs `rotating` (recent_errors, active_focus) com TTL; cada categoria registra `confidence: low|medium|high` para guiar perguntas/assumptions da LLM.
24
+
25
+ ## Motivação
26
+
27
+ Sessão 2026-05-16 (após Fase 1 entregue): análise externa apresentada pelo usuário aponta que o sistema agora tem **continuidade operacional** (o ciclo /init → /sync → /work → /sync → /work), mas ainda carece de:
28
+
29
+ - **Single compiled state** que `/work` consuma → hoje cada `/work` precisa reler CORE + memory + context. Custo de tokens cresce linearmente com sessão.
30
+ - **Drift awareness** → código pode mudar sem que specs/decisions reflitam; LLM acaba citando documentação obsoleta.
31
+ - **Lifecycle awareness** → `/work` em fase "discovery" deveria fazer mais perguntas; em "stabilization" deveria priorizar testes/validação. Hoje é homogêneo.
32
+ - **Auditabilidade de contratos** → workflow declara o que faz nos `steps[]`, mas não declara o que **garante** ao chamador. Difícil verificar pós-execução.
33
+ - **Confidence registration** → LLM assume com mesma confiança fatos sólidos (architecture) e inferências fracas (telemetry_rules). Custo: erros de "alta convicção".
34
+
35
+ ## Estado atual (após Fase 1)
36
+
37
+ - **Entregue** (ADR-0005): Workflow Engine MVP + 3 workflows + 3 commands consolidados; 19 tools MCP (17 primitivas + 2 do orchestrator).
38
+ - **Pendente do RFC-0001**: Fases 2 (Runtime State), 3 (Context Layers + Artifact Index), 4 (Intent Runtime para `/work`).
39
+
40
+ Esta RFC **redistribui e expande** Fases 2-4 e adiciona Fase 5.
41
+
42
+ ## Alternativas
43
+
44
+ ### Alt 1 — Não estender; entregar Fases 2-4 originais minimalistas
45
+ - Custo: 0 (plano original).
46
+ - Resultado: sistema funcional mas perde os 5 conceitos novos que mitigam problemas reais identificados pela análise externa.
47
+ - **Descartada**: usuário aprovou adoção completa.
48
+
49
+ ### Alt 2 — Esta proposta (estender + Fase 5 nova)
50
+ - Custo: 4 fases (2-5), ~30 arquivos novos/modificados, 4 ADRs (0006-0009).
51
+ - Resultado: runtime operacional completo com state compilado, lifecycle awareness, drift detection, execution contracts, confidence system.
52
+ - **Escolhida**.
53
+
54
+ ### Alt 3 — Substituir RFC-0001 inline
55
+ - Pros: 1 RFC vivo.
56
+ - Cons: perde rastreabilidade da evolução.
57
+ - **Descartada**: usuário preferiu manter RFC-0001 + criar RFC-0002.
58
+
59
+ ## Plano de migração (Fases 2-5 redistribuídas)
60
+
61
+ ### Fase 2 — Runtime State + Lifecycle + Context TTL + Execution Contracts + Safety Rule
62
+ **ADR-0006**.
63
+
64
+ Entregáveis:
65
+ - `.ai/runtime/state.schema.json` + `.ai/runtime/state.json` (inicializado vazio).
66
+ - Schema: `{ identity, lifecycle: { phase, mode }, persistent: {...}, rotating: { ttl_days, entries: [...] }, active_workflow_history: [...] }`.
67
+ - Tools: `aios_state_get(path?)`, `aios_state_set(path, value)`, `aios_state_advance(phase|mode)`, `aios_state_reset()`.
68
+ - Workflow schema estendido: campos opcionais `guarantees: [...]` (lista de strings auditáveis: "snapshot_created", "memory_updated", "context_recompiled", "lint_clean") + `safety: { project_files_readonly: boolean }`.
69
+ - `runWorkflow` valida guarantees após execução; reporta `unmet_guarantees: [...]` no relatório.
70
+ - Workflows `init`/`sync`/`work` atualizados para escrever no `state.json` (último step) e declarar guarantees.
71
+ - Token namespace expandido: `${state.X}` agora resolve.
72
+
73
+ ### Fase 3 — Project State Compiler + Drift Detection + Context Layers + Artifact Index
74
+ **ADR-0007**.
75
+
76
+ Entregáveis:
77
+ - Tool `aios_compile_runtime_context()` — produz `.ai/runtime/runtime-context.json` consolidando: identity (do state) + active_modules (do project-state) + engineering_memory (decisions + errors-and-solutions, comprimidos) + active_work_state (do state.rotating) + runtime_rules (de rules/* e governance/*, índice apenas) + context_prioritization (top-N módulos por relevância).
78
+ - **Tamanho-alvo**: ≤ 4000 tokens (compressão semântica, não dump).
79
+ - Tool `aios_detect_drift({ since_snapshot? })` — compara AST atual (`project-state.json`) vs último snapshot e specs (`PRD/SDD/ADR/_TEMPLATE.md`); retorna `{ code_changes_without_spec_update: [...], specs_updated_no_code: [...], orphan_modules: [...] }`.
80
+ - Tool `aios_get_context(layer: "core"|"working"|"deep", focus?)` — atalho para devolver só o tier pedido.
81
+ - `.ai/artifacts/index.json` — índice consolidado de specs/snapshots/packages/ADRs com metadata (id, type, status, created_at, refs).
82
+ - Tool `aios_artifact_list(type?, status?)`.
83
+ - Workflow `sync` ganha steps `compile_runtime_context` + `detect_drift` no final.
84
+ - Workflow `work` consome `runtime-context.json` no primeiro step (substitui `load_core` + parte de `route_query`).
85
+
86
+ ### Fase 4 — Intent Runtime para `/work` + Discovery Runtime ramificado em `/init`
87
+ **ADR-0008**.
88
+
89
+ Entregáveis:
90
+ - Workflow `work` v2: pipeline completo Intent → Gap Analysis → Clarification (pause) → Plan → Approval (pause) → Execute → Validate → Memory Update → Snapshot. Pause-for-input declarado em campo `pause_for: { reason, prompt }`; engine retorna relatório com `status: "paused"` e cliente externo (AskUserQuestion/Function Calling) resolve.
91
+ - Workflow `init` v2: ramificação automática `if state.identity.maturity == "empty" → discovery_branch; else → reverse_engineering_branch`.
92
+ - Schema de workflow ganha `branches: { condition, steps: [...] }`.
93
+ - Tool `aios_resume_workflow(execution_id, user_input)` para retomar workflow pausado.
94
+
95
+ ### Fase 5 — Confidence System + Maturity Tracking
96
+ **ADR-0009**.
97
+
98
+ Entregáveis:
99
+ - Schema `state.confidence`: `{ architecture, modules, telemetry, decisions, ... }` com valores `low|medium|high`.
100
+ - Tool `aios_confidence_get(category?)`, `aios_confidence_set(category, value, reason)`.
101
+ - Workflows registram updates de confidence em pontos chave (`work` aumenta confiança em módulo após validação bem-sucedida; `sync` reduz se detectou drift).
102
+ - `runtime-context.json` inclui top-3 categorias de baixa confiança como **flags** para LLM perguntar.
103
+
104
+ ### Rollback
105
+ - Cada fase tem ADR próprio. Reverter Fase N implica remover tools, schema fields e workflow steps; outras fases permanecem.
106
+ - Fase 5 é independente — pode ser desligada sem afetar 1-4.
107
+
108
+ ## Riscos
109
+
110
+ | Risco | Mitigação |
111
+ |---|---|
112
+ | `runtime-context.json` vira dump (quebra o ponto do compiler) | Auditoria de tamanho: tool valida ≤ 4000 tokens; rejeita se exceder. Compressão prioriza decisions + critical modules. |
113
+ | Drift Detection gera falsos positivos | Severity tiers (warning, no-op, info); só `info` por default; usuário pode subir |
114
+ | Workflow pause-for-input vira deadlock | Timeout opcional (default 30 min); engine marca `execution_id` como expirado |
115
+ | Confidence System vira micromanage | Adoção opt-in; `work` só consulta se categoria estiver `low` |
116
+ | Schema do state.json vira "god object" | Validação strict via JSON Schema; mudanças exigem ADR |
117
+ | Performance: `compile_runtime_context` em projetos grandes | Cache invalidado por hash do project-state.json; recomputa só se mudou |
118
+
119
+ ## Métricas de sucesso
120
+
121
+ - Métrica 1: **Tokens lidos por `/work`** — baseline atual ~5k (CORE + memory grep + context package). Target pós-Fase 3: **≤ 2k** (só `runtime-context.json`).
122
+ - Métrica 2: **Drift detectado vs corrigido** — `/sync` reporta drift; queremos ≥ 80% corrigido na próxima sessão.
123
+ - Métrica 3: **Lifecycle adoption** — `state.lifecycle.phase` muda ao longo do projeto; mensurar diversidade de phases usadas em 1 mês.
124
+ - Métrica 4: **Confidence atomicity** — # categorias com `low` confidence reduzido ao longo de sprints.
125
+ - Métrica 5: **Guarantees fulfillment** — % de execuções com `unmet_guarantees: []`.
126
+
127
+ ## Decisão
128
+
129
+ - [x] **Aceito** — usuário aprovou "Adotar TUDO incluindo Confidence System (Fase 5)" e "Tudo em sequência (2 → 3 → 4) até acabar" (sessão 2026-05-16).
130
+ - Cada fase exige ADR próprio antes de execução (ADR-0006 a 0009).
131
+
132
+ ## Comentários
133
+
134
+ - [2026-05-16] tech-lead: Conceitos vieram de análise externa apresentada pelo usuário. Filtrei: aceitei State Compiler/Drift/Lifecycle/Contracts/TTL/Confidence; descartei "criar pastas duplicadas" (`domain/`, `validations/`, etc. — conceitos já existem em outros nomes); mantive JSON em vez de YAML (zero-deps).
@@ -0,0 +1,61 @@
1
+ ---
2
+ id: RFC-NNNN
3
+ slug: <slug-kebab>
4
+ status: open # open | accepted | rejected | withdrawn | superseded-by-NNNN
5
+ opened: AAAA-MM-DD
6
+ author: tech-lead
7
+ related:
8
+ - ADR-NNNN (decisão que está sendo questionada/refinada)
9
+ - SDD-NNNN
10
+ ---
11
+
12
+ # RFC-NNNN — <Mudança proposta em frase curta>
13
+
14
+ > RFC é para **proposta de mudança em decisão prévia** ou **escolha técnica controversa**. Diferente do ADR (decisão tomada), o RFC é discussão aberta.
15
+
16
+ ## Mudança proposta
17
+ 1-2 parágrafos: o que muda, em relação ao estado atual.
18
+
19
+ ## Motivação
20
+ Por quê agora? Que dado/sinal motivou essa proposta? (perf medida, custo, complexidade, bug recorrente)
21
+
22
+ ## Estado atual
23
+ Como funciona hoje (cite ADR-NNNN se aplicável). Limitações observadas.
24
+
25
+ ## Alternativas
26
+
27
+ ### Alt 1 — Status quo (não mudar)
28
+ - Custo: 0
29
+ - Resultado: problema persiste
30
+
31
+ ### Alt 2 — <proposta principal>
32
+ - Custo: <esforço/risco>
33
+ - Resultado esperado: <medido como>
34
+
35
+ ### Alt 3 — <alternativa>
36
+ - ...
37
+
38
+ ## Plano de migração (se Alt 2 aceita)
39
+ 1. Fase 1: ...
40
+ 2. Fase 2: ...
41
+ 3. Rollback: ...
42
+
43
+ ## Riscos
44
+ | Risco | Mitigação |
45
+ |---|---|
46
+ | ... | ... |
47
+
48
+ ## Métricas de sucesso
49
+ Como saberemos que a mudança foi positiva?
50
+ - Métrica 1: <antes> → <depois esperado>
51
+ - Métrica 2: ...
52
+
53
+ ## Comentários
54
+ > Discussão aberta. Stakeholders comentam aqui antes de aceitar/rejeitar.
55
+
56
+ - [date] [author]: ...
57
+
58
+ ## Decisão
59
+ - [ ] Aceito → criar ADR-NNNN substituindo o anterior, marcar este RFC como `accepted`.
60
+ - [ ] Rejeitado → marcar `rejected`, justificar.
61
+ - [ ] Withdrawn → autor retirou.
@@ -0,0 +1,68 @@
1
+ ---
2
+ id: RUNBOOK-NNNN
3
+ slug: <slug-kebab>
4
+ status: active # active | deprecated | superseded-by-NNNN
5
+ owner: sre-engineer
6
+ created: AAAA-MM-DD
7
+ updated: AAAA-MM-DD
8
+ severity: P0 | P1 | P2 | P3
9
+ related:
10
+ - SDD-NNNN
11
+ - alert: <nome do alerta no Grafana/Datadog>
12
+ ---
13
+
14
+ # RUNBOOK-NNNN — <Cenário operacional>
15
+
16
+ ## Quando este runbook se aplica
17
+ Quando o alerta `<nome>` dispara OU quando observar o sintoma <X>.
18
+
19
+ ## Severidade
20
+ **P<N>** — impacto: <descrição>. SLA de resposta: <tempo>.
21
+
22
+ ## Diagnóstico (em ordem)
23
+
24
+ ### 1. Verificar health endpoints
25
+ ```bash
26
+ curl -fsS https://<host>/health
27
+ curl -fsS https://<host>/health/db
28
+ ```
29
+ Esperado: 200 + JSON com `status: ok`. Se 5xx → siga §2. Se timeout → siga §3.
30
+
31
+ ### 2. Verificar logs recentes
32
+ ```bash
33
+ # Loki / Sentry / equivalente
34
+ kubectl logs -n <ns> -l app=<app> --tail=200
35
+ ```
36
+ Procurar por: `[ERROR]`, `ECONNREFUSED`, `Timeout`, `OOM`.
37
+
38
+ ### 3. Verificar métricas
39
+ - Dashboard: <link>
40
+ - Métricas chave: error_rate, p99_latency, queue_depth, db_connections
41
+
42
+ ### 4. Verificar dependências
43
+ | Dep | Comando |
44
+ |---|---|
45
+ | Postgres | `psql -h $DB_HOST -c "SELECT 1"` |
46
+ | Redis | `redis-cli -h $REDIS_HOST ping` |
47
+ | Getrak API | `curl -fsS https://api.getrak.com/status` |
48
+
49
+ ## Mitigação
50
+
51
+ ### Cenário A: <causa provável A>
52
+ ```bash
53
+ # Comando exato de mitigação
54
+ ```
55
+ Tempo estimado: <X min>. Reversível: sim/não.
56
+
57
+ ### Cenário B: <causa provável B>
58
+ ...
59
+
60
+ ## Escalação
61
+ - Após <tempo> sem resolução → notificar <canal/pessoa>.
62
+ - Se afetar >X usuários → status page + comunicação.
63
+
64
+ ## Pós-incidente
65
+ - [ ] Postmortem aberto em `memory/errors-and-solutions.md`
66
+ - [ ] Causa-raiz identificada
67
+ - [ ] Ação preventiva listada (vira task em `pending-tasks.md`)
68
+ - [ ] Runbook atualizado se faltou algo