Documentação do spaceAI v1.0

Roadmap em 5 fases

Veja em que ordem atacar as 27 tarefas do roadmap, do barato que alivia rápido ao padrão MCP que se expande para todos os apps. Cada fase tem marco e critério de saída.

A lógica da sequência#

1Fase 0estancar · 6 tarefas
→
2Fase 1fundação · 4 tarefas
→
3Fase 2contrato · 4 tarefas
→
4Fase 3decisões · 6 tarefas
→
5Fase 4padrão MCP · 7 tarefas

Primeiro estancamos o que sangra e custa pouco. Depois ligamos a fiscalização automática que sustenta todo o resto. Só então amarramos contratos e decidimos estrutura, do barato reversível ao caro irreversível. Por último, o padrão MCP leva a arquitetura dos adaptadores a todos os apps. Ficam fora 3 tarefas que já estavam feitas quando o roadmap foi montado: TB-13, TB-14, TB-15.

O andamento por fase#

Quantas tarefas de cada fase já estão feitas, calculado do board:

Fase 0 — Estancar
0 de 6
Fase 1 — Fundação executável
2 de 4
Fase 2 — Contrato e dados
0 de 4
Fase 3 — Decisões estruturais
0 de 6
Fase 4 — O padrão MCP da casa
0 de 7

Fase 0 — Estancar#

Fechar os vazamentos que podem causar acidente ainda hoje, com custo baixo.

Por que nesta posição

Primeiro socorro: estanca o sangramento antes de operar.

As tarefas desta fase são:

TarefaAppsEsforçoEstado
TB-03 Corrigir a documentação quebrada e criar os READMEs que faltamconta-central load-balance render motor agent-packagebaratoa fazer
TB-04 Instalar a varredura de segredo e o Renovate na raiz do monorepospaceAI agent-package renderbaratoa fazer
TB-05 Pôr as três fechaduras nos containers do load-balance, do mypanel e do motorload-balance mypanel motorbaratoa fazer
TB-06 Unificar o pin do @nomad/ui e padronizar os paths de healthconta-central load-balance motor mypanelbaratoa fazer
TB-17 Corrigir o WorkingDirectory do systemd de /be para /backendmotorbaratoa fazer
TB-29 Rotacionar os dois tokens que ficaram no histórico do .mcp.jsonspaceAI agent-package mypanelbaratoa fazer

Marco: Varredura de segredo na raiz, containers com as três fechaduras, units do systemd apontando para /backend e os tokens antigos do .mcp.json revogados.

Critério de saída: Nenhum segredo novo entra sem varredura e nenhum container novo sobe sem as fechaduras.

Fase 1 — Fundação executável#

Ligar a fiscalização que trabalha sozinha a cada verificação local.

Por que nesta posição

Radar ligado: a fiscalização passa a multar sozinha, sem depender de revisão humana.

As tarefas desta fase são:

TarefaAppsEsforçoEstado
TB-01 Instalar ESLint com regra de fronteira nos 3 backends sem lintload-balance motor mypanelbaratofeito
TB-30 Tirar o eval do logger do load-balanceload-balancebaratofeito
TB-09 Adotar piso de cobertura e knip nos 4 projetos semconta-central load-balance motor mypanelmédioa fazer
TB-16 Rodar npm run gates no motor com instalação limpamotormédioa fazer

Marco: ESLint de fronteira nos backends que não tinham lint, gates do motor verde com instalação limpa e piso de cobertura rodando local, via npm run gates.

Critério de saída: Lint, testes e build verdes no load-balance, no motor e no mypanel, com o output colado na mensagem de merge, antes de qualquer tarefa da Fase 2.

Fase 2 — Contrato e dados#

Amarrar frontend e backend no mesmo contrato, como um trabalho de data quality.

Por que nesta posição

Cardápio impresso: um cardápio oficial acaba com as cópias à mão dos garçons.

As tarefas desta fase são:

TarefaAppsEsforçoEstado
TB-02 Fechar o cliente OpenAPI gerado no renderrenderbaratoa fazer
TB-07 Isolar o process.env em src/config e gerar o .env.example do schemaload-balance motor mypanel conta-centralmédioa fazer
TB-08 Adotar a RFC 9457 como envelope de erro único dos 6 backendsconta-central mypanel load-balance motormédioa fazer
TB-11 Gerar o contrato REST nos projetos com catálogo manualmotor conta-central load-balance mypanelaltoa fazer

Marco: Cliente OpenAPI gerado, erro padrão RFC 9457 e variáveis validadas num módulo único.

Critério de saída: Nenhuma rota nova sem cliente gerado e nenhum erro fora do envelope padrão.

Fase 3 — Decisões estruturais#

Decidir por escrito o que trava todas as outras obras.

Por que nesta posição

Escritura registrada: decide uma vez, e ninguém reabre o debate.

As tarefas desta fase são:

TarefaAppsEsforçoEstado
TB-10 Decidir a topologia do repositório por escrito e reduzir os lockfilesmotor mypanelmédioa fazer
TB-12 Padronizar features por domínio e a fonte de verdade do design systemconta-central render mypanel motormédioa fazer
TB-18 Decidir o destino do Dockerfile.worker órfãomotorbaratoa decidir
TB-19 Decidir o rename do pacote motor-femotorbaratoa decidir
TB-20 Decidir se o nomad-ui vira workspace ou segue remotospaceAImédioa decidir
TB-21 Alinhar o Node 22 do motor com o Node 24 da casamotoraltoa decidir

Marco: Topologia, workspace do nomad-ui, versão do Node e Dockerfile órfão decididos, com as exceções explícitas.

Critério de saída: Cada decisão vira registro escrito; sem registro, a tarefa não fecha.

Fase 4 — O padrão MCP da casa#

Fechar a arquitetura dos adaptadores: uma regra de negócio, duas portas de entrada.

Por que nesta posição

Um balcão com duas janelas: o mesmo atendente atende pela HTTP e pelo MCP, sem dois atendentes aprendendo a mesma coisa.

As tarefas desta fase são:

TarefaAppsEsforçoEstado
TB-22 Dar versão e envelope único às tools MCP do agent-packageagent-package rendermédioa fazer
TB-23 Medir o N+1 por tool e padronizar a paginaçãoagent-package render mypanel motor load-balance conta-centralmédioa fazer
TB-24 Desacoplar o núcleo dos services do mcp/ no agent-packageagent-packagemédioa fazer
TB-25 Escrever o system prompt e a doc de tools de cada agente coordenadoragent-package motor render mypanel load-balance conta-centralmédioa fazer
TB-26 Levar o Swagger aos 4 backends que ainda não têmconta-central load-balance motor mypanelmédioa fazer
TB-27 Fechar as 134 operações sem contrato no agent-packageagent-packagealtoa fazer
TB-28 Levar o padrão de serviço com dois adaptadores aos outros 4 appsmotor load-balance render conta-centralaltoa fazer

Marco: Tool com envelope único e versão própria, N+1 medido por tool, Swagger em todo backend e o coordenador de cada app com prompt e doc de tools.

Critério de saída: Toda tool nova sai de um ponto só, responde no envelope padrão, tem o custo de query declarado, e o Swagger de cada backend descreve a operação inteira.

Próximos passos#

Você tem a sequência completa, com marcos e critérios. Comece pela Fase 0 — Estancar.

Explore além:

Documentação gerada por build.py.