$ cat ./manifesto.md
S.A.F.A.
# Spec-AI-First Architecture

// Spec primeiro. Código depois. Sempre.

trocar linguagem ao vivo >

## Porque a S.A.F.A. é boa

Spoiler: a IA escreve seu código. A pergunta é se ela faz isso com um mapa — ou no escuro.

>_

A IA para de inventar

Sem spec, o agente alucina comportamento. Com spec, ele implementa exatamente o que foi pedido — nem mais, nem menos.

[]

Contexto delimitado

O Context Pack diz à IA quais arquivos ler. Ela não carrega o projeto inteiro pra trocar uma rota.

//

Fronteiras explícitas

Arquivos permitidos e proibidos em cada spec. A IA não pode quebrar o que não devia tocar.

$

Economia de tokens

Menos contexto desnecessário = respostas mais rápidas e muito mais baratas.

::

Linguagem trocável

Go 1.24 é o padrão. Quer Python? Node? Troca o perfil e segue o jogo.

~/

Memória que cresce

RAG + MCP: cada spec antiga vira contexto recuperável pela própria IA.

## Os três pilares

Tire um e o castelo desaba. Mantenha os três e a IA vira sua melhor dev.

01

Spec antes do código

A spec é a fonte de verdade. Sem spec aprovada, sem código. Simples assim.

02

Contexto mínimo viável

Máximo 8 arquivos por tarefa. A IA lê o necessário, não o universo.

03

Contratos explícitos

Skills, APIs e regras em Markdown — legíveis por humano, agente e ferramenta.

## Com spec vs no escuro

A mesma tarefa, dois universos paralelos.

  • A IA carrega o projeto inteiro pra trocar uma rota.
  • Inventa uma feature que ninguém pediu.
  • Refatora o módulo de pagamentos "de brinde".
  • Conta de tokens parece fatura de cartão em dezembro.
  • Ninguém sabe quando a tarefa está pronta.
  • Lê só os 8 arquivos do Context Pack.
  • Implementa exatamente o que a spec descreve.
  • Não toca em nada fora do escopo — é proibido.
  • Gasta uma fração dos tokens.
  • acceptance.md diz, com clareza, quando acabou.

## Troca de linguagem e arquitetura

Dois eixos independentes. Clique e veja o scaffold mudar — sem tocar no tooling Python.


    

## Memória que não esquece

Centenas de specs? Sem problema. A IA encontra o que importa sozinha.

/?

RAG vetorial

Cada spec é indexada no pgvector com embeddings multilíngues locais. Busca por significado, não por nome.

<>

MCP nativo

A IA chama search_specs() ao vivo durante a implementação. Contexto histórico na hora certa.

~$

Um comando

docker compose up -d e o Postgres + pgvector sobem na porta 5433. Pronto.

## Curiosidade aleatória

Aperte o botão e aprenda algo (divertido) sobre a S.A.F.A.

// rand() → fun_fact

O RAG é multilíngue: pt-br e en-us convivem no mesmo índice sem brigar.

283 specs imaginárias já indexadas neste servidor de mentirinha

## Mini gerador de spec

Digite o nome de uma feature e veja o comando + a pasta que o create_spec.py criaria.

$