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,71 @@
1
+ ---
2
+ version: 1.0.0
3
+ updated: 2026-05-14
4
+ tier: conditional
5
+ tokens: ~700
6
+ load: security
7
+ triggers: segurança, security, auth, senha, token, xss, csrf, sql injection, vulnerab, lgpd, gdpr
8
+ ---
9
+
10
+ # Skill: Security
11
+
12
+ ## Princípios
13
+
14
+ - **Defense in depth.** Múltiplas camadas; nunca confiar em uma só.
15
+ - **Least privilege.** Token/role mínimo necessário, expirando o mais cedo possível.
16
+ - **Validate at boundaries.** Input do usuário, retorno de APIs externas, leituras de DB.
17
+ - **Secrets never in code.** Sempre via cofre (Vault, KMS, env injection em runtime).
18
+
19
+ ## OWASP Top 10 — Checklist
20
+
21
+ - [ ] **Injection** (SQL, NoSQL, command, LDAP): parametrize sempre.
22
+ - [ ] **Broken auth**: hashes fortes (argon2/bcrypt), MFA, rate limit em login.
23
+ - [ ] **Sensitive data exposure**: HTTPS, criptografia em repouso, mascaramento em logs.
24
+ - [ ] **XXE**: desabilitar entidades externas em parsers XML.
25
+ - [ ] **Broken access control**: checagem por recurso, não só por role.
26
+ - [ ] **Security misconfig**: defaults seguros, headers (CSP, HSTS, X-Frame-Options).
27
+ - [ ] **XSS**: escape por contexto (HTML, JS, attr, URL).
28
+ - [ ] **Deserialization**: nunca desserializar input não confiável sem validação.
29
+ - [ ] **Vulnerable deps**: auditoria contínua (`npm audit`, Dependabot, Snyk).
30
+ - [ ] **Logging & monitoring**: log de eventos de segurança, alerta em anomalias.
31
+
32
+ ## Autenticação
33
+
34
+ - Senhas: argon2id ou bcrypt (cost >= 12).
35
+ - Tokens: JWT só com expiração curta + refresh; ou session opaca server-side.
36
+ - MFA via TOTP > SMS.
37
+ - Reset de senha: token de uso único, expiração < 1h.
38
+
39
+ ## Autorização
40
+
41
+ - RBAC > ACL ad-hoc.
42
+ - Verificar permissão em CADA endpoint, não confiar em UI esconder botão.
43
+ - Avoid IDOR: verificar ownership do recurso, não só ID.
44
+
45
+ ## Segredos
46
+
47
+ - Nunca em código, nunca em commit, nunca em log.
48
+ - Rotação automática quando possível.
49
+ - Diferentes por ambiente (dev/staging/prod).
50
+ - `.env` no `.gitignore`; `.env.example` versionado sem valores.
51
+
52
+ ## Headers HTTP
53
+
54
+ ```
55
+ Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
56
+ Content-Security-Policy: default-src 'self'; ...
57
+ X-Content-Type-Options: nosniff
58
+ X-Frame-Options: DENY
59
+ Referrer-Policy: strict-origin-when-cross-origin
60
+ ```
61
+
62
+ ## Logs e PII
63
+
64
+ - Não logar: senhas, tokens, PII completa, cartões.
65
+ - Mascarar ao logar (`user_***@domain`).
66
+ - LGPD/GDPR: minimização, propósito, prazo, direito ao apagamento.
67
+
68
+ ## Registro
69
+
70
+ Vulnerabilidade encontrada → `memory/decisions.md` com severidade + correção + data.
71
+ Se virou padrão → `evolution/patterns-discovered.md`.
@@ -0,0 +1,77 @@
1
+ ---
2
+ version: 1.0.0
3
+ updated: 2026-05-14
4
+ tier: conditional
5
+ tokens: ~550
6
+ load: testing
7
+ triggers: teste, test, tdd, unit, e2e, integration, mock, cobertura
8
+ ---
9
+
10
+ # Skill: Testing
11
+
12
+ ## Princípios
13
+
14
+ - **Teste comportamento, não implementação.** Refatorar não deve quebrar testes.
15
+ - **Pirâmide.** Muito unit, médio integração, pouco E2E.
16
+ - **Determinístico.** Sem flaky. Se flaky, corrigir ou remover — nunca retry cego.
17
+ - **Rápido.** Suite unit < 30s. Se demorar, isolar lentos.
18
+
19
+ ## Tipos
20
+
21
+ | Tipo | Cobre | Custo | Velocidade |
22
+ |---|---|---|---|
23
+ | Unit | função/módulo puro | baixo | ms |
24
+ | Integration | múltiplos módulos + I/O real | médio | s |
25
+ | E2E | usuário → sistema completo | alto | s a min |
26
+ | Contract | borda entre serviços | médio | ms |
27
+ | Property-based | invariantes em N inputs aleatórios | médio | s |
28
+
29
+ ## O que testar
30
+
31
+ - **Sempre**: regra de negócio, transformação de dados, branching condicional.
32
+ - **Frequentemente**: integração com DB/API externa (com mock controlado).
33
+ - **Estrategicamente**: fluxo crítico ponta-a-ponta (login, checkout, etc.).
34
+ - **Não obsessivamente**: getters/setters triviais, código de framework.
35
+
36
+ ## AAA / Given-When-Then
37
+
38
+ ```
39
+ // Arrange / Given
40
+ const order = buildOrder({ items: 3, discount: 0.1 });
41
+
42
+ // Act / When
43
+ const total = calculateTotal(order);
44
+
45
+ // Assert / Then
46
+ expect(total).toBe(270);
47
+ ```
48
+
49
+ ## Mocks — quando usar
50
+
51
+ - I/O externo lento ou caro (rede, disco, API paga).
52
+ - Tempo (`Date.now`, timers).
53
+ - Aleatoriedade.
54
+
55
+ ## Mocks — quando NÃO usar
56
+
57
+ - Banco em testes de integração (use container real ou in-memory equivalente).
58
+ - Lógica que você está testando — se está mockando o sujeito do teste, está testando o mock.
59
+
60
+ ## Test data
61
+
62
+ - Builders / factories > literais espalhados.
63
+ - Fixtures versionadas para dados complexos.
64
+ - Limpar estado entre testes (transação rollback em DB, reset em memória).
65
+
66
+ ## CI
67
+
68
+ - Toda PR roda lint + type + unit + integration.
69
+ - E2E em pipeline separado, possivelmente em scheduled (não em todo push).
70
+ - Flaky test detectado → quarentena + issue, nunca silenciar com retry.
71
+
72
+ ## Anti-padrões
73
+
74
+ - Teste que só passa em ordem específica.
75
+ - Teste com `sleep(N)` arbitrário em vez de espera explícita por condição.
76
+ - Teste que duplica a implementação ("assert que a função foi chamada com X").
77
+ - Cobertura como métrica final (90% de cobertura testando nada útil é pior que 50% testando o crítico).
@@ -0,0 +1,103 @@
1
+ ---
2
+ id: ADR-0002
3
+ title: Adoção de TypeScript + dependências controladas para Runtime v0.1
4
+ status: accepted
5
+ date: 2026-05-15
6
+ deciders: igor.araujoedv@gmail.com (Founder)
7
+ supersedes: null
8
+ superseded_by: null
9
+ related: [`.ai/server/package.json`, `.ai/server/tsconfig.json`, `.ai/server/aios-server.mjs`]
10
+ tags: [runtime, build, dependencies, breaking-policy]
11
+ note_on_numbering: "ADR-0001 foi reservado em IMP-001 (guard-edit hook) sem arquivo real escrito. Este é o primeiro ADR formalmente registrado."
12
+ ---
13
+
14
+ # ADR-0002 — TypeScript + ts-morph + commander para Runtime v0.1
15
+
16
+ ## Contexto
17
+
18
+ O AI Operating System (v4.0.0) entregou estrutura passiva sólida: 91+ arquivos markdown + MCP daemon Node.js (`aios-server.mjs`) com 12 tools de lookup/leitura. Toda a "inteligência" estava em **documentos**, não em **código executável**.
19
+
20
+ Pesquisa do Founder identificou três componentes de alto ROI ausentes (referenciados como "AI-DOS v0.1 — Núcleo"):
21
+
22
+ 1. **Context Packager** — comprime o projeto em representação semântica (YAML-blocks) em vez de servir arquivos brutos ao LLM. Reduz drasticamente custo de tokens e alucinação.
23
+ 2. **Project State Engine** — mapa factual e queryable: módulos, imports/exports, grafo de dependências, code smells.
24
+ 3. **Snapshot System** — captura estado (state.json + hashes + memória relevante) pré/pós mudança.
25
+
26
+ Implementar esses três motores sem AST parsing decente é inviável: regex-based module discovery em TS/JS produz alucinação inaceitável (imports dinâmicos, re-exports, barrel files, type-only imports são todos casos onde regex falha). Análise estrutural confiável exige parser real.
27
+
28
+ ## Decisão
29
+
30
+ Adotar **TypeScript** + um conjunto pequeno e auditado de dependências para o Runtime v0.1:
31
+
32
+ | Dependência | Categoria | Justificativa |
33
+ |---|---|---|
34
+ | `ts-morph` ^22.0.0 | runtime | API tipada sobre o compilador TypeScript. Trata corretamente imports, re-exports, decorators, generics. Mantido pelo autor do tsmorph (David Sherret). |
35
+ | `commander` ^12.1.0 | runtime | CLI tipada para futuros entrypoints. Substitui `process.argv.slice(2)` manual no `aios-server.mjs`. |
36
+ | `typescript` ^5.4.0 | dev | Compilador. |
37
+ | `esbuild` ^0.21.0 | dev | Bundler que produz **um único `.mjs`** em `dist/index.mjs`, sem `node_modules` em runtime. |
38
+ | `@types/node` ^20.12.0 | dev | Tipos do Node. |
39
+
40
+ O runtime compilado (`dist/index.mjs`) é importado pelo `aios-server.mjs` (que **continua sendo um `.mjs` puro**, sem build próprio). Isso mantém o entrypoint MCP simples enquanto permite que a lógica complexa seja escrita em TypeScript tipado.
41
+
42
+ ## Alternativas consideradas
43
+
44
+ ### A. Manter zero-deps (`.mjs` puro)
45
+ - **Prós**: zero supply-chain surface, sem build, sem `npm install`, alinhado ao princípio "memória reduz alucinação, regras reduzem deriva".
46
+ - **Contras**: AST parsing decente é praticamente impossível em Node nativo. Implementar nosso próprio parser TS seria reinventar 10 anos de tsc. Resultado seria *menos confiável*, contrariando o motivo de adotar AST em primeiro lugar.
47
+ - **Rejeitada** porque o custo de não ter AST decente é maior que o custo das deps.
48
+
49
+ ### B. TypeScript + ts-morph SEM bundler
50
+ - **Prós**: setup mais simples.
51
+ - **Contras**: `node_modules/` em produção (>500 arquivos). Risco de divergência entre dev e prod. Mais difícil de auditar.
52
+ - **Rejeitada** em favor do bundle `dist/index.mjs` único.
53
+
54
+ ### C. SQLite (better-sqlite3) para storage
55
+ - Considerada mas **rejeitada para v0.1**. JSON sidecar + Markdown atende. SQLite só se justifica quando queries complexas (ranking, joins, full-text) ficarem necessárias.
56
+
57
+ ## Consequências
58
+
59
+ ### Positivas
60
+ - AST parsing confiável (ts-morph faz o que o tsc faz).
61
+ - TypeScript em desenvolvimento → menos bugs por type-error.
62
+ - CLI tipada → entrypoints futuros (`/spec`, `/task`, `/dialog`) ficam baratos.
63
+ - Bundle único `dist/index.mjs` mantém runtime simples (zero `node_modules` em produção quando build é feito).
64
+ - `aios-server.mjs` **continua zero-deps no runtime** (importa `dist/index.mjs` que é self-contained).
65
+
66
+ ### Negativas
67
+ - Quebra a regra **"NUNCA instalar dependência nova sem justificar e pedir confirmação"** do CLAUDE.md global. Mitigado por:
68
+ - Esta ADR é o registro formal.
69
+ - User aprovou explicitamente via AskUserQuestion (2026-05-15).
70
+ - Deps são pequenas, populares, mantidas. Auditáveis em <30min cada.
71
+ - Requer `npm install` + `npm run build` antes do primeiro uso do runtime v0.1.
72
+ - `start-os.{ps1,sh}` precisa detectar ausência de Node/npm e dar mensagem clara.
73
+
74
+ ### Neutras
75
+ - Versionamento: `dist/` é gerado (gitignored). `package-lock.json` versionado para reprodutibilidade.
76
+
77
+ ## Mitigações
78
+
79
+ | Risco | Mitigação |
80
+ |---|---|
81
+ | Supply chain attack em deps | Lockfile versionado; `npm audit` no CI futuro; pinning de versões major. |
82
+ | Build quebrado em dev novo | `start-os` detecta ausência de `dist/` e executa `npm install && npm run build` automaticamente; mensagem clara se Node não está instalado. |
83
+ | TypeScript version drift | Versão pinada em `^5.4.0`; bumps requerem nova ADR ou minor (não major). |
84
+ | `aios-server.mjs` virar dependent | Mantido `.mjs` puro com `import` opcional de `dist/index.mjs`. Se import falhar, daemon continua funcionando com as 12 tools antigas (graceful degradation). |
85
+
86
+ ## Status
87
+
88
+ **Aceito em 2026-05-15.** Implementação na branch atual.
89
+
90
+ ## Validação
91
+
92
+ - [x] User aprovou stack via AskUserQuestion
93
+ - [ ] `npm install && npm run build` produz `dist/index.mjs` válido
94
+ - [ ] `aios-server.mjs` carrega `dist/index.mjs` sem erro
95
+ - [ ] As 12 tools antigas continuam funcionando após a integração
96
+ - [ ] As 5 tools novas (`aios_analyze_project`, `aios_build_context_package`, `aios_snapshot`, `aios_snapshot_list`, `aios_snapshot_diff`) estão expostas
97
+
98
+ (checkmarks restantes serão preenchidos ao concluir a Verification end-to-end do plano)
99
+
100
+ ## Notas
101
+
102
+ - Próxima ADR esperada: **ADR-0003** quando v0.2 introduzir embeddings/SQLite (se necessário).
103
+ - Esta decisão NÃO autoriza adicionar deps fora desta lista sem nova ADR.
@@ -0,0 +1,94 @@
1
+ ---
2
+ id: ADR-0004
3
+ slug: runtime-orchestrator
4
+ status: accepted
5
+ date: 2026-05-16
6
+ deciders: [user, tech-lead]
7
+ related:
8
+ - RFC-0001 (proposta consolidada)
9
+ - ADR-0002 (typescript-runtime — base)
10
+ ---
11
+
12
+ # ADR-0004 — Runtime Orchestrator com 3 commands consolidados
13
+
14
+ ## Contexto
15
+
16
+ Sob ADR-0002, o `.ai/server/` expõe 17 tools MCP primitivas; sob a estrutura atual, `.claude/commands/` tem 8 slash commands granulares (`/analyze`, `/audit`, `/compact-memory`, `/context`, `/load-os`, `/os-status`, `/promote-learning`, `/snapshot`).
17
+
18
+ Em sessão 2026-05-16, ao habilitar o servidor MCP no Antigravity (Gemini), constatou-se que a LLM recebe **lista plana de 17 tools sem indicação de sequência ou dependência**. Risco: LLM erra ordem, esquece steps obrigatórios, repete chamadas, escolhe tool errada. Sintoma esperado: degradação cumulativa com cada nova capacidade.
19
+
20
+ Análise externa apresentada pelo usuário e refinada em RFC-0001 propõe substituir a superfície granular por **3 commands consolidados** que executam **workflows determinísticos** sobre as 17 primitivas.
21
+
22
+ ## Decisão
23
+
24
+ **Decidimos adotar o Runtime Orchestrator descrito em RFC-0001**, em 4 fases incrementais, cada uma com seu próprio ADR de execução:
25
+
26
+ 1. **Fase 1** (ADR-0005): Workflow Engine MVP. Aposentar os 8 commands antigos. Criar `/init`, `/sync`, `/work`.
27
+ 2. **Fase 2** (ADR-0006): Runtime State em `.ai/runtime/state.json`.
28
+ 3. **Fase 3** (ADR-0007): Context Layers explícitas + Artifact Index.
29
+ 4. **Fase 4** (ADR-0008): Intent Runtime para `/work` (gap analysis, clarification, plan/approve).
30
+
31
+ Cada fase é entregável independente e pode ser validada antes da próxima.
32
+
33
+ ## Consequências
34
+
35
+ ### Positivas
36
+ - LLM recebe **3 entrypoints semânticos** em vez de 17 primitivas planas → menor risco de ordem errada / step esquecido.
37
+ - Workflows são **declarativos e auditáveis** (JSON em `.ai/workflows/`). Pode-se rastrear cada execução.
38
+ - Composição passa a ser **first-class**: nova capacidade complexa vira novo workflow, não nova tool.
39
+ - Onboarding de IDEs cross-platform fica mais simples (documentar 3 commands).
40
+
41
+ ### Negativas / Trade-offs aceitos
42
+ - **Muscle memory**: quem usa `/analyze`, `/context`, etc. precisa migrar para `/sync` ou `/work`. Documentação faz mapeamento.
43
+ - **Indireção adicional**: chamar `/sync` em vez de `aios_snapshot` direto adiciona um hop de leitura+parse de JSON. Aceitável dado que rodamos local.
44
+ - **JSON em vez de YAML**: workflows ficam mais verbosos, mas zero-deps no Node (sem adicionar parser).
45
+ - **Substituição de variáveis** `${input.X}` introduz mini-template engine; mantido propositalmente trivial (sem condicionais/loops) para não virar DSL.
46
+
47
+ ### Neutras
48
+ - 17 tools primitivas continuam expostas — workflow é uma camada acima, não substitui.
49
+ - ADR-0002 (Runtime v0.1) permanece base válida.
50
+
51
+ ## Alternativas consideradas
52
+
53
+ ### Alternativa A — Status quo
54
+ - Pros: zero custo agora.
55
+ - Cons: dívida cresce; LLM cada vez mais erra ordem; difícil portar para mais IDEs.
56
+ - **Descartada**: sinal claro de degradação.
57
+
58
+ ### Alternativa B — Adicionar 3 commands consolidados E manter os 8 antigos
59
+ - Pros: zero quebra de muscle memory.
60
+ - Cons: superfície vai de 8 para 11; ambiguidade sobre quando usar granular vs composto.
61
+ - **Descartada pelo usuário** (sessão 2026-05-16): preferiu superfície limpa, aceitou custo de migração.
62
+
63
+ ### Alternativa C — Workflow Engine em outra linguagem (Python, Rust)
64
+ - Pros: ecossistema de ferramentas mais maduro.
65
+ - Cons: violaria zero-deps de ADR-0002 (Node puro); exige novo runtime.
66
+ - **Descartada**: incompatível com decisão prévia.
67
+
68
+ ## Critérios de decisão
69
+
70
+ | Critério | Peso | Status Quo | Alt B (10 cmds) | **Esta decisão (3 cmds)** |
71
+ |---|---|---|---|---|
72
+ | Superfície semântica simples | Alto | Baixo (8) | Médio (11) | **Alto (3)** |
73
+ | Determinismo de sequência | Alto | Baixo | Médio | **Alto** |
74
+ | Zero-deps preservado | Alto | Alto | Alto | **Alto** |
75
+ | Custo de migração | Médio | Zero | Baixo | **Médio (~40 arquivos)** |
76
+ | Auditabilidade | Alto | Baixo | Médio | **Alto** |
77
+
78
+ ## Impacto futuro
79
+
80
+ Se essa decisão se mostrar errada (sinais: workflows ficam muito rígidos, LLMs modernos preferem chamar primitivas direto, comunidade adota outra convenção):
81
+ - **Reverter Fase 1** é caro (8 commands precisam ser recriados; docs cross-IDE atualizadas).
82
+ - **Reverter Fases 2-4** é mais barato (são adições; podem ser desligadas sem quebrar Fase 1).
83
+ - Mitigação: cada fase tem ADR próprio, então podemos parar entre fases se sinal negativo aparecer.
84
+
85
+ ## Referências
86
+
87
+ - RFC-0001 (proposta detalhada, plano de migração, riscos)
88
+ - ADR-0002 (TypeScript Runtime — base sobre a qual o orquestrador opera)
89
+ - Sessão 2026-05-16: AskUserQuestion confirmou "Fases 1+2+3+4" e "substituir tudo pelos 3 novos"
90
+ - Análise externa apresentada pelo usuário (síntese sobre AI Engineering Runtime vs MCP puro)
91
+
92
+ ---
93
+
94
+ > **Lembrete**: este ADR cobre a decisão consolidada. Cada fase tem ADR próprio (0005, 0006, 0007, 0008) com detalhes técnicos da implementação. Espelho em `.ai/memory/decisions.md`.
@@ -0,0 +1,105 @@
1
+ ---
2
+ id: ADR-0005
3
+ slug: workflow-engine
4
+ status: accepted
5
+ date: 2026-05-16
6
+ deciders: [user, tech-lead]
7
+ related:
8
+ - ADR-0004 (decisão consolidada Runtime Orchestrator)
9
+ - RFC-0001 (proposta detalhada)
10
+ ---
11
+
12
+ # ADR-0005 — Workflow Engine MVP (Fase 1)
13
+
14
+ ## Contexto
15
+
16
+ Sob ADR-0004, decidimos implementar o Runtime Orchestrator em 4 fases. Este ADR cobre **Fase 1**: substituir os 8 slash commands granulares por 3 commands consolidados que executam workflows determinísticos sobre as 17 tools primitivas existentes.
17
+
18
+ ## Decisão
19
+
20
+ **Implementamos um Workflow Engine MVP** com 5 componentes:
21
+
22
+ 1. **Workflow descriptors** em `.ai/workflows/<id>.json`:
23
+ - Schema declarado em `.ai/workflows/_schema.json` (JSON Schema draft-07).
24
+ - Campos obrigatórios: `id`, `version`, `description`, `steps[]`.
25
+ - Cada step: `id`, `tool` (uma das 17 primitivas `aios_*`), `args` (opcional), `on_error` (`abort` | `continue`, default `abort`).
26
+ - Args suportam substituição de variáveis `${input.X}`, `${timestamp}`, com fallback literal `'string'`.
27
+
28
+ 2. **Tool MCP `aios_run_workflow(name, input)`** no `.ai/server/aios-server.mjs`:
29
+ - Carrega `.ai/workflows/<name>.json` (validando regex `^[a-z][a-z0-9_-]{0,32}$` para evitar path traversal).
30
+ - Executa steps em sequência, capturando duração e preview do resultado (truncado em 400 chars).
31
+ - Retorna relatório JSON: `{ workflow, version, started_at, finished_at, status, steps: [...] }`.
32
+ - `on_error: continue` permite step falhar sem abortar o workflow.
33
+
34
+ 3. **Tool MCP `aios_list_workflows()`** para listar workflows disponíveis.
35
+
36
+ 4. **3 workflows iniciais**:
37
+ - `.ai/workflows/init.json` — detect_stack → analyze_project → build_context_package → snapshot baseline → load CORE
38
+ - `.ai/workflows/sync.json` — detect_stack → analyze_project → rebuild context → lint → snapshot incremental
39
+ - `.ai/workflows/work.json` (MVP) — classify_task → route_query → load CORE → search_memory → focused context
40
+
41
+ 5. **3 slash commands** em `.claude/commands/`:
42
+ - `/init`, `/sync`, `/work` — cada um chama `aios_run_workflow` com o nome respectivo.
43
+ - **Os 8 commands antigos foram deletados** (`/analyze`, `/audit`, `/compact-memory`, `/context`, `/load-os`, `/os-status`, `/promote-learning`, `/snapshot`).
44
+
45
+ ## Consequências
46
+
47
+ ### Positivas
48
+ - Superfície de slash commands: 8 → 3 (redução de 62%).
49
+ - Sequência de tools deixa de ser improvisada pela LLM — workflows são determinísticos.
50
+ - Workflows são **declarativos** (JSON) e auditáveis — facil debugar qual step falhou.
51
+ - Composição vira first-class: nova capacidade complexa é novo workflow JSON, não nova tool.
52
+ - Zero novas dependências (JSON parser é built-in no Node).
53
+
54
+ ### Negativas / Trade-offs aceitos
55
+ - Muscle memory: quem usa `/analyze`, `/context`, etc. precisa migrar para `/sync` ou `/work`.
56
+ - `aios_run_workflow` adiciona um hop de indireção (parse JSON + iterate steps). Aceitável em uso local.
57
+ - Substituição de variável `${...}` introduz mini-template engine; mantido propositalmente trivial (sem condicionais/loops) para não virar DSL.
58
+ - JSON é mais verboso que YAML, mas evita nova dep.
59
+
60
+ ### Neutras
61
+ - 17 tools primitivas continuam expostas — workflows são uma camada acima.
62
+ - Slash command `/init` colide nominalmente com built-in `init` (Initialize CLAUDE.md) do Claude Code. Custom commands em `.claude/commands/` têm precedência para slash commands; para Skill tool a desambiguação é manual. Documentado em `.claude/commands/init.md`.
63
+
64
+ ## Alternativas consideradas
65
+
66
+ ### Alternativa A — YAML em vez de JSON
67
+ - Pros: mais legível para humanos.
68
+ - Cons: exige dep (js-yaml ou similar), violando zero-deps de ADR-0002.
69
+ - **Descartada**.
70
+
71
+ ### Alternativa B — Workflow engine externo (Temporal, n8n)
72
+ - Pros: feature-rich, durável, observable.
73
+ - Cons: dep externa pesada, overkill para uso local single-user.
74
+ - **Descartada**.
75
+
76
+ ### Alternativa C — DSL própria (com condicionais, loops)
77
+ - Pros: mais expressivo.
78
+ - Cons: vira projeto paralelo de manter; risco de "in-house programming language".
79
+ - **Descartada**: manter steps lineares; condicionais ficam para Fase 4 (Intent Runtime).
80
+
81
+ ## Critérios de decisão
82
+
83
+ | Critério | Peso | Alt A (YAML) | Alt B (Temporal) | **Esta (JSON nativo)** |
84
+ |---|---|---|---|---|
85
+ | Zero-deps | Alto | Baixo | Baixo | **Alto** |
86
+ | Simplicidade implementação | Alto | Médio | Baixo | **Alto** |
87
+ | Expressividade | Médio | Médio | Alto | **Médio** |
88
+ | Tempo até MVP | Alto | Médio | Baixo | **Alto** |
89
+
90
+ ## Impacto futuro
91
+
92
+ - Fase 2 (Runtime State) vai adicionar `${state.X}` à substituição de variáveis.
93
+ - Fase 4 (Intent Runtime) vai estender com pause-for-input e conditional branches — exige cuidado para não virar DSL completo.
94
+ - Se workflow JSON ficar muito grande, considerar split por arquivo (`init/steps.json` + `init/meta.json`).
95
+
96
+ ## Referências
97
+
98
+ - ADR-0004 (decisão consolidada)
99
+ - RFC-0001 (proposta detalhada)
100
+ - `.ai/workflows/_schema.json` (validação)
101
+ - `.ai/server/aios-server.mjs` (implementação)
102
+
103
+ ---
104
+
105
+ > Espelho em `.ai/memory/decisions.md`. Próxima fase: ADR-0006 (Runtime State).
@@ -0,0 +1,104 @@
1
+ ---
2
+ id: ADR-0006
3
+ slug: runtime-state
4
+ status: accepted
5
+ date: 2026-05-16
6
+ deciders: [user, tech-lead]
7
+ related:
8
+ - RFC-0002 (extensão consolidada)
9
+ - ADR-0005 (Fase 1 — Workflow Engine MVP)
10
+ ---
11
+
12
+ # ADR-0006 — Runtime State + Lifecycle + Context TTL + Execution Contracts + Safety Rule (Fase 2)
13
+
14
+ ## Contexto
15
+
16
+ Sob ADR-0005 (Fase 1), o Workflow Engine executa workflows sem persistir estado entre sessões: cada `/sync` ou `/work` começa "do zero". A análise externa de 2026-05-16 destacou que isso impede **continuidade operacional** — LLM não sabe em que fase do projeto está, qual o foco atual, quais decisões foram tomadas recentemente.
17
+
18
+ Esta ADR cobre **Fase 2** do RFC-0002.
19
+
20
+ ## Decisão
21
+
22
+ **Decidimos persistir o estado operacional em `.ai/runtime/state.json`** com 5 componentes:
23
+
24
+ 1. **Identity** — nome do projeto, maturity (empty/minimal/partial/mature), stack.
25
+ 2. **Lifecycle** — `phase` (discovery/planning/implementation/stabilization/production) + `mode` (readonly/analysis/execution/validation).
26
+ 3. **Persistent context** — refs a decisões arquiteturais + rules (não rotaciona).
27
+ 4. **Rotating context** — TTL configurável (default 30 dias): active_focus, recent_errors, open_questions. Entries com `expires_at`; tools podem prunar.
28
+ 5. **Workflow history** — últimas N execuções de workflows com timestamp, status, guarantees met/unmet.
29
+
30
+ **4 tools MCP novas**: `aios_state_get`, `aios_state_set`, `aios_state_advance`, `aios_state_reset`.
31
+
32
+ **Workflow schema estendido** com 2 campos opcionais:
33
+ - `guarantees: [string]` — lista de invariantes auditáveis. Engine valida cumprimento após execução; relatório inclui `unmet_guarantees: []`.
34
+ - `safety: { project_files_readonly: boolean }` — declarativo; futuro: engine pode bloquear steps que tentem editar fora de `.ai/` quando flag ativa.
35
+
36
+ **Substituição de variáveis em workflows** ganha `${state.X}` (ex: `${state.lifecycle.phase}`).
37
+
38
+ Mapeamento `guarantee → tools provedoras` é fixo no servidor:
39
+ ```
40
+ snapshot_created → aios_snapshot
41
+ state_updated → aios_state_set, aios_state_advance, aios_state_reset
42
+ context_compiled → aios_build_context_package
43
+ lint_clean → aios_lint
44
+ stack_detected → aios_detect_stack
45
+ project_analyzed → aios_analyze_project
46
+ core_loaded → aios_get_core_bundle
47
+ ```
48
+
49
+ Workflows `init`/`sync`/`work` atualizados:
50
+ - `init`: guarantees todas + state advance para `discovery`.
51
+ - `sync`: guarantees stack+analyzed+context+lint+snapshot+state_updated.
52
+ - `work`: guarantees core_loaded+context_compiled (sem state advance — work é repetível).
53
+
54
+ ## Consequências
55
+
56
+ ### Positivas
57
+ - LLM tem fonte única de verdade sobre estado operacional (`/work` pode consultar `aios_state_get({path: "lifecycle.phase"})` em vez de inferir).
58
+ - Workflow guarantees criam contrato auditável (relatório mostra se algum invariante falhou).
59
+ - Context TTL evita acúmulo infinito de `recent_errors`/`open_questions`.
60
+ - Base preparada para Fase 3 (State Compiler vai ler do state.json) e Fase 5 (Confidence vive sob state).
61
+
62
+ ### Negativas / Trade-offs aceitos
63
+ - `.ai/runtime/state.json` é mais um arquivo a manter sincronizado. Mitigação: workflows escrevem nele automaticamente.
64
+ - Guarantees mapeamento hardcoded no servidor; nova guarantee exige edit de código (não declarável só no workflow JSON). Aceitável: lista pequena, estável.
65
+ - `${state.X}` introduz acoplamento workflows ↔ state schema. Schema versionado.
66
+
67
+ ### Neutras
68
+ - Manifest atualizado para incluir `.ai/runtime/state.schema.json` e `.ai/runtime/state.json` como required.
69
+ - Diretório `.ai/runtime/` já existia (PID file); agora ganha state.
70
+
71
+ ## Alternativas consideradas
72
+
73
+ ### Alternativa A — Estado em memory/_summary.md (markdown narrativo)
74
+ - Pros: humanamente legível.
75
+ - Cons: não-estruturado; LLM precisa parsear; falsos negativos em busca.
76
+ - **Descartada**: precisamos de schema validável.
77
+
78
+ ### Alternativa B — SQLite em `.ai/runtime/state.db`
79
+ - Pros: queries ricas, transações.
80
+ - Cons: viola zero-deps (better-sqlite3 ou similar); overkill para single-writer.
81
+ - **Descartada**.
82
+
83
+ ### Alternativa C — Guarantees como JSON Schema validação do output
84
+ - Pros: declarativo total.
85
+ - Cons: cada tool teria que produzir output conformante; refactor grande.
86
+ - **Descartada**: mapeamento tool→guarantee é simples e suficiente.
87
+
88
+ ## Impacto futuro
89
+
90
+ - Fase 3 (State Compiler) vai produzir `runtime-context.json` consolidando `state.json` + outras fontes.
91
+ - Fase 4 (Intent Runtime) vai usar `state.lifecycle.phase` para adaptar comportamento do `/work`.
92
+ - Fase 5 (Confidence) vai estender schema do state com bloco `confidence: {}`.
93
+ - Se schema do state.json se mostrar limitante: nova versão major + migration ADR.
94
+
95
+ ## Referências
96
+
97
+ - RFC-0002 (proposta consolidada Fases 2-5)
98
+ - ADR-0005 (Fase 1 — base sobre a qual estendemos)
99
+ - `.ai/runtime/state.schema.json` (validação)
100
+ - `.ai/server/aios-server.mjs` (implementação)
101
+
102
+ ---
103
+
104
+ > Espelho em `.ai/memory/decisions.md`. Próxima fase: ADR-0007 (State Compiler + Drift + Context Layers + Artifact Index).
@@ -0,0 +1,82 @@
1
+ ---
2
+ id: ADR-0007
3
+ slug: state-compiler-drift-context-layers-artifact-index
4
+ status: accepted
5
+ date: 2026-05-16
6
+ deciders: [user, tech-lead]
7
+ related:
8
+ - RFC-0002 (extensão consolidada)
9
+ - ADR-0006 (Fase 2 — Runtime State)
10
+ ---
11
+
12
+ # ADR-0007 — State Compiler + Drift Detection + Context Layers + Artifact Index (Fase 3)
13
+
14
+ ## Contexto
15
+
16
+ Sob ADR-0006 (Fase 2), o sistema persiste estado operacional. Mas o `/work` ainda relê CORE + memory + context a cada execução (~5k tokens). A análise externa propõe um **Project State Compiler** que produz um pacote operacional único e otimizado, consumido por `/work`.
17
+
18
+ Esta ADR cobre **Fase 3** do RFC-0002.
19
+
20
+ ## Decisão
21
+
22
+ **Decidimos implementar 4 capacidades novas**:
23
+
24
+ 1. **State Compiler** — tool `aios_compile_runtime_context()` produz `.ai/runtime/runtime-context.json` consolidando state.json + project-state.json + últimas N decisions + top-M módulos por relevância + memory rotating. **Target: ≤ 4000 tokens** (compressão semântica, não dump). Cache invalidado por hash do project-state.
25
+
26
+ 2. **Drift Detection** — tool `aios_detect_drift({ since_snapshot? })` compara arquivos atuais vs último snapshot (ou snapshot informado): retorna `{ code_changes_without_spec_update, specs_updated_no_code_change, orphan_modules }`. Sem AST profundo (Fase 4 pode aprofundar) — usa hash + mtime + presença de SDD/ADR referenciando o módulo.
27
+
28
+ 3. **Context Layers explícitas** — tool `aios_get_context(layer, focus?)` atalho para devolver:
29
+ - `core` → `aios_get_core_bundle()`
30
+ - `working` → state + project-state resumido + memory rotating + últimas 3 decisions
31
+ - `deep` → working + full project-state + memory full + all decisions
32
+
33
+ 4. **Artifact Index** — tool `aios_artifact_list({ type?, status? })` retorna catálogo de specs/snapshots/packages/ADRs. Mantém `.ai/artifacts/index.json` opcionalmente (auto-gerado por `aios_compile_runtime_context`).
34
+
35
+ Workflow `sync` ganha 2 steps finais: `compile_runtime_context` + `detect_drift` (drift como info, não bloqueante).
36
+ Workflow `work` v2.1 ganha step inicial `load_runtime_context` opcional (preferido a `load_core` quando context recente existe).
37
+
38
+ ## Consequências
39
+
40
+ ### Positivas
41
+ - `/work` pode carregar **um único arquivo** (`runtime-context.json` ~4k tokens) em vez de CORE + memory + context separados (~5k).
42
+ - Drift detection alerta divergências antes que virem inconsistência crônica.
43
+ - `aios_get_context(layer)` simplifica chamada — LLM não precisa saber quais tools compor.
44
+ - Artifact index torna inventário consultável (útil para `/work` decidir se precisa de spec específico).
45
+
46
+ ### Negativas / Trade-offs aceitos
47
+ - Cache do runtime-context invalida facilmente (qualquer change em project-state). Aceitável: recompilar é barato (~1s para projetos médios).
48
+ - Drift detection sem AST profundo pode gerar falsos positivos (arquivo mudou mas spec atualizada não detectada). Mitigação: severity tier `info` por default.
49
+ - Runtime context é JSON estruturado, não markdown narrativo — menos legível para humano. Mitigação: opcional `aios_compile_runtime_context({ format: "markdown" })` futuro.
50
+
51
+ ### Neutras
52
+ - `.ai/runtime/runtime-context.json` é arquivo gerado; gitignore opcional.
53
+ - `.ai/artifacts/index.json` é arquivo gerado; gitignore opcional.
54
+
55
+ ## Alternativas consideradas
56
+
57
+ ### A — Sempre recompilar sob demanda (sem cache em disco)
58
+ - Pros: nunca stale.
59
+ - Cons: latência por chamada; perde benefício de "single file leitor".
60
+ - **Descartada**: cache em disco é mais eficiente; invalidação é rápida.
61
+
62
+ ### B — Drift detection via AST diff completo
63
+ - Pros: precisão alta.
64
+ - Cons: lento; reusaria ts-morph; complexidade grande.
65
+ - **Descartada na Fase 3**: hash+mtime+ref-check é suficiente como MVP; Fase 4+ pode aprofundar.
66
+
67
+ ### C — Artifact Index gerado por crawler separado
68
+ - Pros: roda em background.
69
+ - Cons: mais um processo a coordenar.
70
+ - **Descartada**: index gerado in-process pelo compile_runtime_context.
71
+
72
+ ## Impacto futuro
73
+
74
+ - Fase 4 (Intent Runtime) vai consumir `runtime-context.json` no início do `/work`.
75
+ - Fase 5 (Confidence) vai adicionar bloco `confidence` ao compiled context.
76
+ - Se runtime-context exceder 4000 tokens repetidamente: revisar algoritmo de compressão; pode precisar de tiered context (core/working/deep no próprio arquivo).
77
+
78
+ ## Referências
79
+
80
+ - RFC-0002 (Fase 3 detalhada)
81
+ - ADR-0006 (state.json — fonte de identity/lifecycle/rotating)
82
+ - `.ai/server/aios-server.mjs` (implementação)