↑ ↓ para mover · Enter para abrir · Esc para fecharToque em um resultado

Showcase · nerviz-ai/bank-app

Banco Backend, caso a caso

Um projeto clean-architecture-single-module gerado e desenvolvido só com o Nerviz. Cada spec, cada relatório de run e cada commit estão públicos.

  1. geração/init-project

    clean-architecture-single-module, 20 minutos, build verde.

    Abrir no GitHub →
  2. UC-001create-customer

    O primeiro spec aprovado, com um partial por camada.

    Abrir no GitHub →
  3. UC-002prune-expired-idempotency-keys

    @Scheduled sem ShedLock, decidido pelo jobs-architect: o delete divide o trabalho entre réplicas.

    Abrir no GitHub →
  4. UC-003get-customer

    Uma leitura pública, registrada no spec como risco aceito explícito.

    Abrir no GitHub →
  5. UC-004initiate-kyc-verification

    O primeiro producer Kafka, com outbox, relay e prune.

    Abrir no GitHub →
  6. UC-005record-kyc-verdict

    310 testes, 0 falhas, 96,7% de linhas, 50 minutos.

    Abrir no GitHub →
  7. UC-006anonymize-customer

    Um DELETE que anonimiza o cliente e mantém a linha e o id. Traz o primeiro security filter chain do projeto: só o papel DATA_PROTECTION_OFFICER pode chamar.

    Abrir no GitHub →
bank-app aberto como está, na IDE
UC-005: o relatório final do executor
UC-006: o /new-feature, do prompt ao spec aprovado, sem as esperas
UC-006: o /new-feature-implement, grupo a grupo, sem as esperas
§ o CI do projeto

Todo push testado, desde o primeiro commit

O build.yml veio no scaffold do /init-project e mudou duas vezes desde então. 54 runs desde 2026-10-06: 51 verdes e 3 vermelhos. Contagem de 2026-10-15.

  • 51runs verdes de 54, todos no GitHub Actions
  • 367testes no último run: 287 de unidade e 80 de integração, contra 5 no scaffold
  • 15regras de boundary; o doctor gate varreu 203 arquivos-fonte contra elas no último run

O build.yml, passo a passo

O que cada step confere, na ordem em que o último run passou por ele. Dois jobs rodam em paralelo; qualquer step que falhe deixa o push vermelho.

Step 1 / 12os dois jobs0s → 5s no último run

O gatilho

on: push · pull_request · workflow_dispatch

Todo push na main, todo pull request e o disparo manual. Os dois jobs começam juntos, cada um no seu próprio ubuntu-latest.

Testes, run a run

Cada barra é um run do build.yml, na ordem em que rodou. A altura é o total de testes que o Maven reportou, unidade mais integração. Os saltos são os casos de uso.

  • passou
  • ✕falhou
  • ◆build.yml · mudou
100200300
  1. UC-001
  2. UC-004
  3. UC-005
  4. UC-006
Os 54 runs em tabela
Quando (UTC)CommitTestesTempoResultado
2026-10-06 15:56f5eaf3b chore: initial project scaffold — clean-architecture-single-module, m…5 (2 unidade · 3 integração)1m30s✓ passou
2026-10-06 16:341a8432a docs: show the app starting and passing verify in the README5 (2 unidade · 3 integração)1m09s✓ passou
2026-10-06 16:35523bcc3 docs: show the app starting and passing verify in the README5 (2 unidade · 3 integração)1m12s✓ passou
2026-10-06 16:38f561bb0 Merge pull request #1 from nerviz-ai/docs/readme-run-gifs5 (2 unidade · 3 integração)53s✓ passou
2026-10-06 16:41dd2dd2b docs: describe the CI pipeline and what it covers in the README5 (2 unidade · 3 integração)57s✓ passou
2026-10-06 16:48badb714 Merge pull request #2 from nerviz-ai/docs/readme-ci-pipeline5 (2 unidade · 3 integração)58s✓ passou
2026-10-07 09:0224558a5 docs(UC-001-create-customer): approved spec5 (2 unidade · 3 integração)1m02s✓ passou
2026-10-07 09:08d62c8d4 commit audit-usage5 (2 unidade · 3 integração)1m03s✓ passou
2026-10-07 10:240e74c8c feat(UC-001-create-customer): create customer with idempotent POST /a…113 (98 unidade · 15 integração)1m56s✓ passou
2026-10-07 10:259861ede commit audit-usage113 (98 unidade · 15 integração)1m53s✓ passou
2026-10-07 10:49651b779 ci: run SonarQube Cloud analysis on nerviz-ai_bank-app113 (98 unidade · 15 integração)2m25s✓ passou
2026-10-07 10:56249c4fa docs: add SonarQube Cloud badges and public report link to README113 (98 unidade · 15 integração)2m20s✓ passou
2026-10-07 11:06d7b62a3 chore(arch): adopt nerviz v0.17.8 and gate CI on doctor113 (98 unidade · 15 integração)2m17s✓ passou
2026-10-07 12:3331fc27c updating readme113 (98 unidade · 15 integração)1m36s✓ passou
2026-10-07 20:43940e578 report issue113 (98 unidade · 15 integração)2m32s✓ passou
2026-10-07 23:13a59c52c arch-update113 (98 unidade · 15 integração)1m58s✓ passou
2026-10-07 23:252da91cd arch-update113 (98 unidade · 15 integração)2m18s✓ passou
2026-10-08 00:537c4e714 arch-update137 (117 unidade · 20 integração)2m11s✓ passou
2026-10-08 01:061c966b0 chore: arch-update137 (117 unidade · 20 integração)2m04s✓ passou
2026-10-08 08:517985d5d chore(arch): update .claude to nerviz v0.20.0137 (117 unidade · 20 integração)2m12s✓ passou
2026-10-08 11:343061f71 arch-update137 (117 unidade · 20 integração)2m08s✓ passou
2026-10-08 12:006e57955 chore(arch): update .claude to nerviz v0.22.0137 (117 unidade · 20 integração)2m10s✓ passou
2026-10-08 12:240f96c8b chore: commit changes from before this run149 (126 unidade · 23 integração)2m11s✓ passou
2026-10-08 12:264fae2c3 audit-usage149 (126 unidade · 23 integração)2m09s✓ passou
2026-10-08 13:285068ff2 audit-usage149 (126 unidade · 23 integração)2m01s✓ passou
2026-10-08 13:38b3c4896 build(sonar): align coverage exclusions with JaCoCo gate149 (126 unidade · 23 integração)3m06s✓ passou
2026-10-08 22:1471015af docs(UC-004-initiate-kyc-verification): approved spec149 (126 unidade · 23 integração)2m07s✓ passou
2026-10-08 22:198be721f audit-usage149 (126 unidade · 23 integração)2m16s✓ passou
2026-10-09 00:297bc5c8f feat(UC-004-initiate-kyc-verification): initiate KYC verification via…260 (211 unidade · 49 integração)2m48s✓ passou
2026-10-11 13:0531ff9e0 docs: bring README in line with the current build and CI260 (211 unidade · 49 integração)2m32s✓ passou
2026-10-11 13:1308773e6 Merge pull request #3 from nerviz-ai/docs/readme-current-state260 (211 unidade · 49 integração)2m25s✓ passou
2026-10-11 15:121fcda1f audit-usage260 (211 unidade · 49 integração)2m31s✓ passou
2026-10-11 15:1413484e7 chore(arch): update .claude to nerviz v0.23.0260 (211 unidade · 49 integração)2m12s✓ passou
2026-10-11 23:124fe0f0d chore(arch): update .claude to nerviz v0.25.1 and apply single-module…260 (211 unidade · 49 integração)2m40s✓ passou
2026-10-12 14:49be62511 feat(UC-005-record-kyc-verdict): record KYC verdict on customer294 (235 unidade · 59 integração)2m09s✕ falhou
2026-10-12 15:230079e7c audit-usage294 (235 unidade · 59 integração)2m25s✕ falhou
2026-10-12 16:00ba4f5ad gifs294 (235 unidade · 59 integração)2m36s✕ falhou
2026-10-12 16:06a28934c chore(arch): update .claude to nerviz v0.25.3 and pass stop-gate-runs…294 (235 unidade · 59 integração)2m48s✓ passou
2026-10-12 21:30076f6f1 chore(arch): update .claude to nerviz v0.26.0294 (235 unidade · 59 integração)3m24s✓ passou
2026-10-12 21:5527e2456 chore(arch): update .claude to nerviz v0.27.0294 (235 unidade · 59 integração)3m20s✓ passou
2026-10-12 23:4479fe59c chore(arch): update .claude to nerviz v0.28.0294 (235 unidade · 59 integração)2m41s✓ passou
2026-10-13 00:129423b11 docs(UC-006-anonymize-customer): approved spec294 (235 unidade · 59 integração)2m52s✓ passou
2026-10-13 00:51d1527eb audit-usage294 (235 unidade · 59 integração)3m24s✓ passou
2026-10-13 01:068e8bf56 chore(arch): update .claude to nerviz v0.29.0294 (235 unidade · 59 integração)3m34s✓ passou
2026-10-13 01:086037ed3 chore(audit-usage): remove stale report citing deleted UC-004-initiate294 (235 unidade · 59 integração)3m08s✓ passou
2026-10-13 09:5902c4c17 feat(UC-006-anonymize-customer): anonymize a customer via DELETE /api…355 (276 unidade · 79 integração)3m56s✓ passou
2026-10-13 10:216b55699 feat(UC-006-anonymize-customer): add local Keycloak service to docker…355 (276 unidade · 79 integração)3m03s✓ passou
2026-10-13 15:1780564c1 build(sonar): exempt java:S4502 on SecurityConfig355 (276 unidade · 79 integração)4m09s✓ passou
2026-10-13 22:1445fc2bb refactor(api): move REST versioning to native API versioning359 (280 unidade · 79 integração)3m26s✓ passou
2026-10-14 12:48eb89105 chore: update .claude to nerviz v0.34.0 and apply its migrations360 (281 unidade · 79 integração)3m16s✓ passou
2026-10-14 17:377a5c534 chore: commit pending changes366 (287 unidade · 79 integração)3m17s✓ passou
2026-10-14 19:583187bac chore(arch): update .claude to nerviz v0.35.0366 (287 unidade · 79 integração)3m22s✓ passou
2026-10-15 09:02c0047d8 chore(arch): update .claude to nerviz v0.36.0366 (287 unidade · 79 integração)3m18s✓ passou
2026-10-15 21:16a3cc28a chore: commit pending changes367 (287 unidade · 80 integração)3m40s✓ passou
Todos os runs do bank-app →
§ qualidade de código

Código gerado por IA TAMBÉM pode ter QUALIDADE

Todo push na main manda o código para o SonarQube Cloud, no step sonar analysis do CI. O relatório é público: abaixo, os badges ao vivo e um retrato da última análise.

Ao vivo, do SonarQube CloudAbrir o relatório completo →
SonarQube Cloud · alert_statusSonarQube Cloud · coverageSonarQube Cloud · bugsSonarQube Cloud · vulnerabilitiesSonarQube Cloud · code_smellsSonarQube Cloud · duplicated_lines_densitySonarQube Cloud · reliability_ratingSonarQube Cloud · security_ratingSonarQube Cloud · sqale_ratingSonarQube Cloud · ncloc

Estes badges são desenhados pelo SonarQube Cloud a cada carregamento da página. O SonarQube Cloud não deixa o relatório abrir dentro do frame de outro site, então o relatório completo abre lá. Análise de 2026-10-24 23:26 UTC, commit 948c8dc.

Quality gate: Sonar way, aprovado

O Sonar way é o gate padrão do SonarQube Cloud. Ele julga o código novo, aqui tudo desde a versão anterior (2026-10-07), em seis condições:

  1. Rating de confiabilidadenew_reliability_ratingAexigido ≤ A
  2. Rating de segurançanew_security_ratingAexigido ≤ A
  3. Rating de manutenibilidadenew_maintainability_ratingAexigido ≤ A
  4. Coberturanew_coverage96,5%exigido ≥ 80%
  5. Linhas duplicadasnew_duplicated_lines_density0,0%exigido ≤ 3%
  6. Security hotspots revisadosnew_security_hotspots_reviewed100%exigido = 100%

O código inteiro

  • 0issues abertas0 de confiabilidade · 0 de segurança · 0 de manutenibilidade
  • 0security hotspots para revisar
  • 0,0%de linhas duplicadas
  • 0 minde dívida técnica

3.946 linhas de código em 142 arquivos

Cobertura, contra o piso do CI

No CI, o jacoco:check reprova o build abaixo de 80% das linhas ou 70% dos branches. O SonarQube Cloud lê o mesmo relatório do JaCoCo.

  • linhaspiso do CI 80%96,4%
  • branchespiso do CI 70%88,8%