# Pilot Execution Checklist

## Environment

- [ ] `npm run deploy:check-env` passes with production/staging env.
- [ ] `npm run db:migrate` is idempotent.
- [ ] `npm audit` reports 0 vulnerabilities.
- [ ] `EXPORT_STORAGE_DIR` is writable and backed up.
- [ ] `EXPORT_STORAGE_READINESS.md` reviewed for single-node/multi-node deployment mode.
- [ ] `LOG_FORMAT=json` logs are collected.

## UI QA

- [ ] `npm run ui:qa` passes.
- [ ] Admin dashboard opens on desktop and mobile.
- [ ] Settlement batch page: list, detail drawer, export, permission states.
- [ ] Reconciliation page: filters, async export status/history/download.
- [ ] Merchant settlement page: login session display, logout, export.
- [ ] Device technical detail: health/config/credential modal.

## MQTT Pilot Device

- [ ] `npm run mqtt:check-acl -- --file /etc/mosquitto/acl` passes.
- [ ] Device A and B credentials exist in broker passwd.
- [ ] `npm run smoke:mqtt-acl` passes.
- [ ] `npm run smoke:mqtt-real` passes.
- [ ] Physical device receives payment success downlink.
- [ ] Physical device receives config push and sends ACK.

## Backup/Restore

- [ ] `npm run backup:production -- --out <dir> --include-mosquitto` succeeds.
- [ ] Backup copied to secure storage.
- [ ] `npm run restore:plan -- --backup <dump>` reviewed.
- [ ] Restore drill on disposable database succeeds.
- [ ] `npm run restore:validate` passes against restored service.

## Load/Staging Baseline

- [ ] `BASE_URL=<staging-url> npm run load:test:staging` succeeds.
- [ ] Report stored in `reports/`.
- [ ] p95 and error count recorded in handoff/release notes.
- [ ] Export worker metrics checked in `/admin/observability/summary`.

## Go/No-Go

- [ ] No critical failed notifications.
- [ ] No settlement reconciliation mismatch unexplained.
- [ ] No unexpected login failure spike.
- [ ] Rollback release artifact is available.
- [ ] Operator has access to `OPERATIONAL_RUNBOOK.md`.
