NovoPull requests verificados contra cada chamada

Documentação que diz a verdade, porque é gerada.

O Kuuhaku escaneia seus repositórios, descobre como eles conversam entre si e mantém o resultado como um site: um mapa de cada conexão com sua evidência, uma página por repositório, uma documentação que se atualiza a cada importação.

$ kuuhaku scan architecture.yaml
Escaneia o que você já roda
NodeExpressVueNextFlutter+ Java, Python, Go ›
Com a CLI, só o grafo sai das suas máquinas

Um site para a arquitetura, não uma wiki sobre ela.

Cada tela é montada a partir da última importação. Os números são os números do código, com o arquivo e a linha que os produziram.

Mapa

Os repositórios são os nós; REST, filas, sockets e bancos compartilhados são as arestas. Arraste, dê zoom, expanda um nó ali mesmo.

Uma página por repositório

Rotas com quem as chama, modelos, filas, chaves de ambiente, dependências, deploy e git.

GET /upload/single/:id7 chamadas
POST /auth/login3 chamadas
DELETE /devices/:idnunca chamada
GET /healthsem autenticação
Caixa de revisão

O que a varredura não conseguiu resolver, agrupado por tipo, cada item com uma resposta sugerida. O seu clique vira uma declaração.

POST /upload/single/*
nenhuma rota correspondente · mais parecida /upload/single/:id · 0,81
AceitarIgnorar
Diferenças entre importações

Cada importação é comparada com a anterior. O painel mostra o que mudou.

rotas+4 −1
filas órfãs2
alertas de segurança+2
commits23
Evidências, nunca porcentagens

Cada conexão mostra o arquivo e a linha dos dois lados e é classificada pelo tipo de prova por trás dela.

configPorta e host
inferidaNomes no código
declaradaEscrita à mão
não resolvidaCliente sem destino
observadaVista em execução
Pull requests

Saiba o que um pull request quebra antes do merge.

A verificação escaneia a branch e a base dela lado a lado e compara cada chamada entre os seus repositórios. O que deixa de funcionar aparece no pull request, com o arquivo e a linha de quem chama.

  • Uma rota removida, ou com o método trocado, enquanto algo ainda a chama
  • Uma chamada nova para uma rota que não existe, com as mais parecidas
  • Uma fila que perde o publicador enquanto os consumidores esperam
  • Um job de CI no GitHub Actions ou no Bitbucket Pipelines

Medido em 14 sistemas públicos: 127 rotas alteradas de propósito, 165 das 169 chamadas a elas apontadas, nenhum alarme falso.

$ kuuhaku check . --base origin/main
kuuhakubot commented on #482
✗2 breaking changes
api no longer serves PUT /devices/:id: that path takes PATCH now src/routes/devices.js:42
  • web_app src/pages/devices/edit.vue:118
  • mobile_app lib/services/devices.dart:57
web_app calls POST /orders/cancel on api, which serves no such route
  • web_app src/store/orders.js:88
  • nearest: POST /orders/:id/cancel
▸ 1 note: api adds 1 route nothing calls yet, GET /devices/export
7 repositories scanned at origin/main and with the change
Como funciona

Três passos, e depois tudo se mantém atualizado sozinho.

01
Descreva o workspace

Um architecture.yaml lista os repositórios e como cada um chama os outros. Cole o nosso prompt no seu assistente de IA e ele escreve o primeiro rascunho a partir do código.

repos:
  web_app:
    sinks:
      - patterns: ["api.$METHOD($URL)"]
  backend:
    port_env: PORT
02
Escaneie com uma chave somente leitura

Uma chave SSH por workspace, ou a CLI em uma máquina que já tem o código. Rotas, pontos de chamada, modelos, filas, chaves de ambiente e o histórico do git saem do próprio código.

$ kuuhaku scan architecture.yaml
  routes     861 in 146 files
  call sites 1.383 through 5 clients
  match      979 exact · 471 pattern
  review     44 items
03
Decida o que o código não consegue provar

Chamadas sem rota e filas que ninguém consome caem na caixa de revisão com uma resposta sugerida. O seu clique vira uma declaração e sobrevive a cada nova varredura.

POST /upload/single/*
  nenhuma rota correspondente
  parecida  /upload/single/:id
  sugestão  erro de digitação · 0,81
Linha de comando

Escaneie onde o código está.

A CLI roda em um notebook ou no CI, lê todos os repositórios de uma pasta e envia só o grafo: nomes, caminhos e números de linha, e três linhas em volta de cada item deixado para revisão.

  • Uma instalação com npm, ou npx no CI
  • Escaneia de uma vez todos os repositórios de uma pasta
  • Cada máquina conectada listada no workspace
  • Windows, macOS e Linux · Node 18 ou mais recente
~/work/acme
$ npm install -g kuuhaku
$ kuuhaku login --token ••••••••••••
✓ ana-laptop is connected to Acme Platform
$ kuuhaku scan . --push
acme: 7 git repositories, scanned as one workspace
  web_app         link clients · 3 of 3 resolved
  api             routes · 861 in 146 files
  process_events  queues · 8 published, 6 consumed
acme: 7 repos scanned in 38.4s
edges: 19 (12 rest, 5 queue, 1 websocket, 1 shared_db)
call sites: 1,383 routed 1,302 · 979 exact · 323 pattern
✓ pushed to Acme Platform · import #215
Preços

Pague por repositório, não por usuário.

Todo mundo na empresa deveria poder ler a arquitetura. Os preços são por workspace, por mês.

Gratuito
US$ 0

Para uma equipe testando nos próprios repositórios.

  • 1 workspace · até 5 repositórios
  • Scanner pela CLI, pastas locais
  • Mapa, páginas de repositório, caixa de revisão
  • As últimas 3 importações guardadas
Começar grátis
Company
US$ 199/ mês

Para muitas equipes, muitos repositórios e uma revisão de segurança para passar.

  • Repositórios e workspaces ilimitados
  • Scanner nas suas próprias máquinas
  • SSO e links de compartilhamento somente leitura
  • Exportação para architecture.yaml e Mermaid
  • Traces de execução quando forem lançados
Falar com a gente
O que conta como repositório?

Cada entrada no architecture.yaml. Um monorepo conta uma vez.

O código sai das nossas máquinas?

Com a CLI, só trechos de três linhas: ela roda onde o código está e envia só o grafo, que cita três linhas em volta de cada item deixado para revisão. O runner hospedado clona com a sua chave somente leitura numa pasta temporária, escaneia, guarda o grafo e apaga o checkout.

Quem pode ler o site?

Qualquer pessoa que você convidar, em todos os planos. Nunca cobramos por usuário.

Aponte para cinco repositórios. Leia o mapa em dez minutos.

Grátis para um workspace e até 5 repositórios. Sem cartão.