| name | ship-check |
| description | Roda as suítes de teste e o lint dos projetos do BitChicken (RW.BC.Crypto + RW.BC.DApp + RW.BC.Api) antes de concluir/commitar uma mudança. Use como verificação final ao terminar uma tarefa que tocou contratos, frontend e/ou a API. |
Skill: ship-check
Verificação final antes de concluir. Node 24 (nvm use 24). Rode só o que foi tocado.
Contratos — se mexeu em RW.BC.Crypto/
cd RW.BC.Crypto
npm test
npm run lint
dApp — se mexeu em RW.BC.DApp/
cd RW.BC.DApp
npx ng test --no-watch --coverage
npm run check:abi-drift
npx ng build --configuration production
check:abi-drift precisa de artefatos frescos: rode npm run compile em RW.BC.Crypto antes
(compila + checa que cada funcao/erro/evento do contract-abi.ts existe no contrato com selector identico).
Substitui o lembrete passivo do hook abi-drift-warn.sh por verificacao real — fecha a "armadilha no 1".
API — se mexeu em RW.BC.Api/ ou RW.BC.AppHost/
cd RW.BC.Api
dotnet build RW.BC.Api.slnx -p:AllowMissingPrunePackageData=true
dotnet test RW.BC.Api.slnx -p:AllowMissingPrunePackageData=true
Indexer — se mexeu em RW.BC.Indexer/
cd RW.BC.Indexer
npx tsc --noEmit
E2E ponta-a-ponta (read-model) — se mexeu na interface contrato/indexer/API
Smoke do pipeline contratos → indexer → API num ambiente Aspire vivo (ver
RW.BC.AppHost/README.md → "E2E ponta-a-ponta"):
dotnet run --project RW.BC.AppHost -p:AllowMissingPrunePackageData=true
cd RW.BC.Crypto && npm run seed-nfts:localhost && npm run seed-market:localhost && cd ..
API_PORT=$(ss -ltnp 2>/dev/null | grep RW.BC.Api | grep -oE '127.0.0.1:[0-9]+' | cut -d: -f2 | head -1)
API_BASE="http://localhost:${API_PORT}" RW.BC.AppHost/e2e-smoke.sh
Checklist