Trovão do Núcleo
漆ノ型 — KAKU RAI NO KAMI — ORIGINAL

核 雷 神Kaku Rai no KamiSétima Forma · Deus do Trovão do Núcleo

A Segunda Sétima Forma — nasceu não da repetição da Primeira, mas do limite imposto por um adversário automatizado. Pediu cobertura numa função pura de oito linhas. Pediu armadura inteira pra matar uma mosca. A resposta veio de dentro do próprio runtime: o núcleo do Node já tinha o que era preciso. Não foi necessário forjar nova armadura — bastou estender a mão pra dentro.

A forma que vence sem importar nada já estava dentro.

Cinco casos, uma função pura.

O revisor automatizado pediu cobertura para algumaFuncao: dentro da janela, fora da janela, paidAt presente, createdAt ausente, order null. Função pura, oito linhas executáveis, quatro branches lineares com early return. O pedido era razoável em abstrato; o problema estava em como atendê-lo sem violar a política do repositório.

O repositório fechou a porta — de propósito.

O CLAUDE.md do repo cliente declara textualmente: "No test framework configured. Verification after changes: npm run lint + npm run build". Não é omissão. É decisão arquitetural deliberada. Adicionar Jest ou Vitest pra cobrir uma função isolada significava forjar uma armadura completa — runner, lock file, integração CI, decisão de ambiente, padrão de pasta — pra matar uma mosca de oito linhas. Armadura inteira pra mosca. A Primeira Forma proíbe.

A força veio do núcleo, não da forja.

O runtime do Node já oferecia, em sua engine 24, um test runner nativo (node:test) e type strippingexperimental para TypeScript (--experimental-strip-types). Nada novo precisava ser instalado. O caminho foi:

  • Mover algumaFuncao + JANELA_HORAS para módulo próprio janela.ts, isolando-os de qualquer dependência de path alias que o runner nativo não resolveria.
  • Adicionar allowImportingTsExtensions: true no tsconfig.json — permite o import com extensão .ts exigido pelo strip-types.
  • Criar janela.test.ts usando describe, it, mock.timers e assert — todos importados de node:test e node:assert/strict.
  • Adicionar o script npm run test: node --test --experimental-strip-types 'src/**/*.test.ts'.

Resultado: cobertura entregue. Zero dependência nova. Zero lock file alterado. CLAUDE.md permanece literalmente válido — não há framework instalado.

Cinco testes, cinco verdes.

Cada golpe cobre uma das ramificações da função. Juntos esgotam o espaço de estados — não há branch combinatório, race ou caminho indireto que escape da leitura sequencial.

  1. 01

    Dentro da janela

    `createdAt` 23h atrás → retorna `true`. Confirma que a comparação `Date.now() - start < windowMs` aceita o limite inferior.

  2. 02

    Fora da janela

    `createdAt` 25h atrás → retorna `false`. Confirma que a janela é fechada exatamente em 24h.

  3. 03

    paidAt vence createdAt

    `paidAt` 5h atrás + `createdAt` 26h atrás → retorna `true`. Confirma a precedência do timestamp de pagamento confirmado quando ele existe.

  4. 04

    Ambos ausentes

    `{}` → retorna `false`. Cobre o early return quando nenhum timestamp chega no payload.

  5. 05

    Order null ou undefined

    `algumaFuncao(null)` e `algumaFuncao(undefined)` → `false`. Encerra a árvore — sem inputs, sem janela.

O mapa do golpe.

Tudo cabe em quatro arquivos. A força é a ausência: nenhuma pasta nova de testes, nenhum binário novo no node_modules.

# Sétima Forma — Trovão do Núcleo

repo-cliente/
├── src/utils/
│   ├── janela.ts        # algumaFuncao + JANELA_HORAS
│   └── janela.test.ts   # 5 unit tests (node:test)
├── tsconfig.json        # allowImportingTsExtensions: true
└── package.json
    └── "test": "node --test --experimental-strip-types 'src/**/*.test.ts'"

# Zero dependências novas. Zero lock file alterado. Runner: o próprio Node.

A Sétima é a Primeira levada ao limite.

Zenitsu não aprendeu as seis formas que não conseguiu dominar. Poliu a Primeira até criar a Sétima. Aqui o paralelo é literal: a Primeira Forma já havia produzido o argumento técnico denso contra adicionar framework. Quando o adversário insistiu — pattern match em loop fechado — a saída não foi cair pra outra técnica. Foi aprofundar a mesma. O mesmo princípio que recusa armadura desnecessária revelou o caminho autoral: usar o que já estava dentro do runtime.

Não vence quem domina mais formas. Vence quem leva uma só ao núcleo.

O movimento que ninguém viu.

Zenitsu desfere a Sétima Forma diante de Kaigaku — o outro discípulo, que dominou as seis e perdeu a primeira. Os espectadores não veem o golpe: percebem só o silêncio depois. É o mesmo que aconteceu aqui — o bot pediu armadura, recebeu silêncio técnico, registrou APPROVED sem entender por onde passou.