K
Kodama Vault
knowledge hub
Vault
HomeBoardMap of ContentChatConversasAuditoria
Agentes
AgentsIssuesCriar IssueTerminalPreviews
Sistema
MCPSetup MCPSettings
Brain
amazon-arb-scoutcode-standards-auditordesign-master (subagent)erica-nardi-auditorfeature-auditorGlobal agent instructionskodama-hub-auditorAgente: kodama-hub-launch-qalanding-page-architect (subagent spec)meta-campaign-builder (subagent spec)need-context-auditorprospek-blog-auditor — gate editorial do blog do Prospekprospek-blog-author — autor do blog do Prospekprospek-campaign-manager — gerente de campanhas do Prospekprospek-content-director — diretor de conteúdo diário do blogProspek Demo RecorderSubagent — prospek-marketing-creativeprospek-qaprospek-social-producerprospek-social-publisherprospek-social-strategistroblox-sim-buildersageland-auditor (subagent spec)seo-geo-optimizerteam-leadervek1-auditor — subagent specvek1-styleguide-auditor
Análise custos migração — evitar senha no payloadLevantamento fluxo registro + duplicados StripeRelatório segurança + pentes finos (Cláudio)Revisão security concerns e race conditionsMagic link / esqueceu senha via SupabaseCorrigir erros pós-upgrade TypeScriptTestar PRs do agente Vault para mergeAnálise de 3 issues para iniciarErro no terminal do VSCodePR #173 — aguardando aprovação do LeoTestar fluxo ponta a ponta — criação de clients no StripePR #172 — testar e subir correção de funções deprecatedPitch de vendas SaaS — agendar call de conversãoOrganizar issues e bugs rápidos para a semanaMerge PR cadastro-novo — funcionalidades e correçõesCorrigir bugs PR #173 e #172 — image domainsPR mesosóico — página de acesso mobile + segurança OTPRefatoração de códigos — PR #202Ajustes em PRs abertos de ontemEstudo de jornada de compra e técnicas de fechamentoDefinir preço e entregável do produtoProspecção de reuniões para esta semanaAgente anti AI slop — centralização de conhecimento ConnfitPR #179 — resolver conflitos e erros de teste CLIAlinhamento de preços e usos da ConffitFix adicional para PR #183 — perfil do usuárioCorrigir estilização da Connfit para identidade visualSubir modificações no copy da ConnfitCriação de 4 campanhas no Meta AdsRevisão de PRs do GilinesExploração do Roblox EditorRelatório João — devolutiva TikTok ShopReunião presencial Zassi Uniformes — diagnóstico automaçõesCriar repositório de diagnósticos e relatórios de entrevistasDiagnóstico da ZassiGeração de relatórios para reuniões de fechamentoProposta Zassi — apresentação amanhãProspecção — Clínica Odontológica Dr. ButAlinhamento com ADRIANO sobre produtos e simulaçãoCombinar com Lauro os produtos do diagnósticoSolicitar recursos (vbucks) à INEDIA/ObiettoAnálise de issues do Kodama-Hub e início pelo vaultIssue KH03 — estudo de abordagem DockerKH-12 — script de correção e PR no kodama-hubTeste de despacho e agentes da vaultRemover issues 7, 9 e 10 do fluxo de trabalhoKH-15 — testar e preparar para Gilini testar em prod (Kodama Hub)VEK-1 — testar no WhatsAppBot local — testar localmenteEscrever issues para replicação do modelo de LPSwarm — modelar landing pages para tecnologias concorrentes (Google Ads)Configurar Docker no Windows para tarefas do Hub LisaLP de Suplementos — iniciar issue #96 (Vek)PR #93 git — subir para testar em prodPR #94 git — despachar agents pelo vaultTestes e documentação de bugs no site VEKPR #98 de LP — cosméticosRemover issues concluídas do board (#5, #10, #11, #12, #13)PRs de comparação vek1 vs LPs — correções e mergeDocumentação de uso e bugs na Vek1Criação de issues via Vault — bugs VekFix bug redirect botão Produtos na sidebar colapsada (vek)Planejamento de issues e mini sprint no site da Vek1facilitabusca — cron de fetch parado desde 05/08 (RESOLVIDO 11/08)
kodama-watchdog — self-heal + alerta pra todos os projetos da VPS HermesVPS Hermes — acesso e estrutura
Memory namespacing (multi-user)
OpenSpec -- Spec-Driven Development no VaultPlano de Teste — OpenSpec Vault Persistence
CaumzitoNyxzZanini
Amazon Arb (atacado→varejo BR)
Claude Code — Setup MCP VaultClaude Desktop — Setup MCP Vault (remote)VS Code + Copilot — Setup MCP Vault
Skill — Carousel Designer (Paper Style)carousel-paperPlugin marketing-skills (coreyhaines31/marketingskills)
Standup 2026-05-14Standup 2026-05-15Standup 2026-05-16Standup 2026-05-17Standup 2026-05-18Standup 2026-05-19Standup 2026-05-20Standup 2026-05-21Standup 2026-05-22Standup 2026-05-25Standup 2026-05-26Standup 2026-05-27Standup 2026-05-28Standup 2026-05-29Standup 2026-06-01Standup 2026-06-02Standup 2026-06-03Standup 2026-06-05Standup 2026-06-11Standup 2026-06-15Standup 2026-06-16Standup 2026-06-17Standup 2026-06-18Standup 2026-06-22Standup 2026-06-23Standup 2026-06-29Standup 2026-06-30Standup 2026-07-01Standup 2026-07-02Standup 2026-07-03Standup 2026-07-06Standup 2026-07-07Standup 2026-07-08Standup 2026-07-09Standup 2026-07-10Standup 2026-07-13Standup 2026-07-14Standup 2026-07-15Standup 2026-07-16Standup 2026-07-17Standup 2026-07-21Standup 2026-07-22Standup 2026-07-23Standup 2026-07-28Standup 2026-07-29Standup 2026-07-30Standup 2026-07-31Standup 2026-08-03Standup 2026-08-06Standup 2026-08-07Standup 2026-08-10Standup 2026-08-11Standup 2026-08-12Standups
MOCStandup 2026 07 23Welcome
v0.3
K
Kodama Vault
brain / projects / vek1 / agents

vek1-qa

Você escreve e roda testes do vek1 com Vitest (vitest.config.ts,
src/**/__tests__/). Rodar: npm run test / npm run test:watch /
npm run test:coverage. Para um arquivo específico:
npx vitest run caminho/do/arquivo.test.ts.

O que mockar (e o que NÃO mockar)

O vek1 é um BFF: server actions e API routes não tocam o banco diretamente, elas chamam
apiClient.<recurso>.* (que por sua vez chama o backend externo vek1-api via HTTP). Logo:

  • Mocke @/lib/api-client (o objeto apiClient e seus métodos) — é o ponto de
    fronteira real. Ver src/app/actions/__tests__/billing-actions.test.ts como referência
    atual e correta:
    vi.mock('@/lib/auth-server', () => ({ requireUser: vi.fn(), getCurrentUser: vi.fn() }));
    vi.mock('@/lib/api-client', async () => {
      const actual = await vi.importActual<typeof import('@/lib/api-client')>('@/lib/api-client');
      return { ...actual, apiClient: { billing: { getSummary: vi.fn(), /* ... */ } } };
    });
    vi.mock('next/cache', () => ({ revalidatePath: vi.fn() }));
    
  • Mocke @/lib/auth-server (getCurrentUser/requireUser) para simular usuário
    autenticado/não-autenticado.
  • NÃO mocke @supabase/ssr, createServerClient, ou qualquer coisa de Supabase — o
    projeto migrou para Drizzle + Better Auth. src/app/actions/__tests__/store-actions.test.ts
    é um exemplo do padrão antigo e obsoleto: está com describe.skip e um comentário
    TODO(migration): mocks Supabase obsoletos explícito. Não copie desse arquivo — é dívida
    técnica conhecida, não referência.
  • NÃO mocke Drizzle/db.* em testes de action/route de produto — se você sentir
    necessidade de mockar db.insert/db.select num teste de document-actions.ts ou
    similar, é sinal de que confundiu o BFF com um app de DB direto (ver vek1-frontend).
    Drizzle direto só faz sentido em testes de código de auth.
  • Para embeddings.ts/chamadas a vek1-api (/embed, /extract-lead, etc.), mocke o
    fetch — não bata em serviço real durante teste automatizado.

Convenções

  • Nome de teste descreve comportamento, não implementação: retorna 401 quando usuário não está autenticado, não testa createDocument.
  • Arquivo de teste ao lado do domínio: src/app/actions/__tests__/,
    src/lib/queries/__tests__/, src/lib/utils/__tests__/, src/components/__tests__/.
  • Testes que dependem de banco real (DATABASE_URL) costumam vir com skip condicional —
    isso é esperado neste repo (ver src/lib/queries/__tests__/documents.test.ts), não é
    teste quebrado.

Antes de escrever um teste novo

  1. Rode a suíte relevante primeiro para ter baseline (npx vitest run <path>) — o repo
    tem débito técnico conhecido (describe.skip em testes com mock Supabase obsoleto);
    não confunda isso com regressão da sua mudança.
  2. Verifique se já existe teste cobrindo o caso antes de duplicar.
  3. Para actions/routes novas, siga o padrão de billing-actions.test.ts
    (api-client + auth-server mockados), não o de store-actions.test.ts.
  4. Ambiente Windows: se vitest/tsc falharem com Cannot find module '@rollup/rollup-win32-x64-msvc', é um bug conhecido de optional-dependency do npm no
    Windows — rode npm install @rollup/rollup-win32-x64-msvc --no-save (não mexa no
    lockfile por causa disso).

Antes de considerar terminado

  • npx tsc --noEmit -p . limpo (ignorando erros pré-existentes não relacionados — confirme
    rodando a mesma checagem em main/antes da sua mudança se não tiver certeza).
  • npx eslint <arquivos alterados> limpo.
  • Suíte relevante passando, sem introduzir novos skip.
notas relacionadas
carregando…