Pontos Críticos / Bloqueios Identificados pela Auditoria
Bloqueio #1:
Produção indisponível: backup.abkus.com sem DNS; sem origem pública não há gate de produção nem CTA de venda verificável.
Bloqueio #2:
O dataset demo entrega veredito critical com cópias plaintext e off-site gaps; /browse aparece com configs faltando e sbm size mismatch. Corrigir o dado ou rotular explicitamente como exemplo ilustrativo antes de vender.
Bloqueio #3:
Preço não definido: não há valor publicado nem entrada do abkus-backup na política v2; o instrumento ainda não foi precificado pelo owner.
Bloqueio #4:
SSO/RBAC autenticado não foi exercitado no catálogo: /dashboard e /browse redirecionam guest para a landpage; falta login canônico no DEV e a checagem de rota privilegiada (auditado por auth:smoke quando o acesso estiver liberado).
Relatório Completo de Qualidade & Evidências
# Dossiê de prontidão comercial — abkus-backup — 2026-10-19
- App: `abkus-backup`
- Data do teste: 2026-10-19
- Base: http://localhost:3370
- GATE: APPROVED
- Gate medido em: 2026-10-19T17:35:53.489Z
## Programa
- Páginas capturadas: `/`, `/landpage`, `/promotion`, `/help`, `/dashboard`, `/browse`, `/privacy`, `/terms`, `/help/manual.pdf`
- Gate de prontidão: **APPROVED** (2026-10-19T17:35:53.489Z)
- warning: /privacy: mobile 1 tap target(s) below 24px
- warning: /terms: mobile 1 tap target(s) below 24px
- `/` (desktop): screenshot `screenshots/root.desktop.png` · overflow=+0px · consoleErrors=0 · url=http://localhost:3370/landpage · sha256=cf729496a91e…
- `/` (mobile): screenshot `screenshots/root.mobile.png` · overflow=+0px · consoleErrors=0 · url=http://localhost:3370/landpage · sha256=6b71794bb1a1…
- `/landpage` (desktop): screenshot `screenshots/landpage.desktop.png` · overflow=+0px · consoleErrors=0 · url=http://localhost:3370/landpage · sha256=cf729496a91e…
- `/landpage` (mobile): screenshot `screenshots/landpage.mobile.png` · overflow=+0px · consoleErrors=0 · url=http://localhost:3370/landpage · sha256=6b71794bb1a1…
- `/promotion` (desktop): screenshot `screenshots/promotion.desktop.png` · overflow=+0px · consoleErrors=0 · url=http://localhost:3370/promotion · sha256=70f6d0e62a30…
- `/promotion` (mobile): screenshot `screenshots/promotion.mobile.png` · overflow=+0px · consoleErrors=0 · url=http://localhost:3370/promotion · sha256=53b65f4c2963…
- `/help` (desktop): screenshot `screenshots/help.desktop.png` · overflow=+0px · consoleErrors=0 · url=http://localhost:3370/help · sha256=ce29aa9d3a36…
- `/help` (mobile): screenshot `screenshots/help.mobile.png` · overflow=+0px · consoleErrors=0 · url=http://localhost:3370/help · sha256=73e8a1c22a5f…
- `/dashboard` (desktop): screenshot `screenshots/dashboard.desktop.png` · overflow=+0px · consoleErrors=0 · url=http://localhost:3370/landpage · sha256=cf729496a91e…
- `/dashboard` (mobile): screenshot `screenshots/dashboard.mobile.png` · overflow=+0px · consoleErrors=0 · url=http://localhost:3370/landpage · sha256=6b71794bb1a1…
- `/browse` (desktop): screenshot `screenshots/browse.desktop.png` · overflow=+0px · consoleErrors=0 · url=http://localhost:3370/landpage · sha256=cf729496a91e…
- `/browse` (mobile): screenshot `screenshots/browse.mobile.png` · overflow=+0px · consoleErrors=0 · url=http://localhost:3370/landpage · sha256=6b71794bb1a1…
- `/privacy` (desktop): screenshot `screenshots/privacy.desktop.png` · overflow=+0px · consoleErrors=0 · url=http://localhost:3370/privacy · sha256=a92fca583319…
- `/privacy` (mobile): screenshot `screenshots/privacy.mobile.png` · overflow=+0px · consoleErrors=0 · url=http://localhost:3370/privacy · sha256=22957087bf50…
- `/terms` (desktop): screenshot `screenshots/terms.desktop.png` · overflow=+0px · consoleErrors=0 · url=http://localhost:3370/terms · sha256=c85ce99128c5…
- `/terms` (mobile): screenshot `screenshots/terms.mobile.png` · overflow=+0px · consoleErrors=0 · url=http://localhost:3370/terms · sha256=de79bef04f37…
- `/help/manual.pdf` (desktop): screenshot `screenshots/help_manual.pdf.desktop.png` · overflow=+0px · consoleErrors=0 · url=about:blank · sha256=99db2a93b06f…
- `/help/manual.pdf` (mobile): screenshot `screenshots/help_manual.pdf.mobile.png` · overflow=+0px · consoleErrors=0 · url=about:blank · sha256=fb32313e11bc…
## Apoio
- `/help` capturado: `screenshots/help.desktop.png`, `screenshots/help.mobile.png` — conferir manual/PDF, FAQ e contato no screenshot.
- Manual PDF, FAQ e suporte alcançável não são medidos por heurística: o parecer os julga nos screenshots acima.
## Promoção
- landpage: capturada · pricing: NÃO capturada · promotion: capturada
- Claims registry (`docs/claims/abkus-backup.md`):
# Alegações — abkus-backup (registro do app)
Superfícies públicas: `/landpage`, `/promotion`, `/help`. Regra: `docs/claims/README.md`; guard:
`node scripts/qa/lint-ad-claims.mjs` (lê este arquivo e `docs/claims/abkus-backup.md`).
| alegação (trecho exato) | superfície | status | prova / substituição |
|---|---|---|---|
| _(nenhuma alegação numérica, comparativa, de endosso ou de oferta)_ | landpage, promotion, help | PROVEN | As superfícies descrevem apenas a **função** entregue: catálogo (o que/onde/quando/tamanho/cifrada?/hash), visualizador de pastas por host (origem/destino), cobertura, prova de restore, retenção e veredito único. Sem preço, sem trial, sem "trusted by", sem "%/Nº". |
| "one verdict (ok, attention or critical)" | landpage | PROVEN | `src/lib/catalog/verdict.ts` (`computeVerdict`) — testado em `verdict.test.ts`. |
| "a restore that was actually tested" | landpage | PROVEN | `src/lib/catalog/proof.ts` lê o relatório do drill (`restore-proof.json`); `unproven` é explícito. |
| "what each VPS or computer holds, at the source and at the destination" | landpage | PROVEN | `scripts/collect-inventory.ts` + `inventory.ts` + `inventory-diff.ts`; testado. |
Revisar quando incrementos de venda (preço/trial) entrarem: qualquer oferta vira linha aqui **com prova**.
## Condições
- Não medido automaticamente: trial, reembolso, cancelamento e limites são julgados nos screenshots de `/pricing`, `/promotion` e `/help`.
- Se algum desses três caminhos não estiver na lista capturada, o parecer deve registrar a lacuna como bloqueio.
## Preço
- Preço publicado deve sair do catálogo do hub; comparar com `docs/audit/2026-10-17-politica-precos-v2.md`.
- `/pricing` NÃO capturado — preço sem evidência.
## Dados
- sem evidência de dados (rode `scripts/ops/db-health-report.mjs --json` e aponte QATEST_DB_HEALTH).
## Passe visual
- Veredito do passe visual: **approved**
- Notas: Re-teste DEV 14:34 GNT-3 com 9 paths: mobile colapsa em 390px com hamburger e sem overflow; desktop limpo. Tap targets <24px zerados nas 3 paginas que tinham warnings (/help,/landpage,/promotion); restam 1 em /privacy e 1 em /terms. /dashboard e /browse capturam a landpage porque exigem sessao (guest) — comportamento esperado, nao defeito.
## Parecer
O parecer é emitido pelo modelo a partir desta evidência (`parecer.json`, schema em `docs/QA_OFICIAL.md`).