| name | reviewer-app-testing |
| description | Use when operating reviewer-account browser rehearsals that require BYOK unlock, memory-only decrypted information, and same-session client navigation. |
Hussh Reviewer App Testing Skill
Purpose and Trigger
- Primary scope:
reviewer-app-testing
- Trigger on reviewer Playwright flows, BYOK unlock continuity, protected route chains, or cold-session re-unlock proof.
- Avoid overlap with
vault-pkm-governance, pkm-upgrade-rehearsal, and frontend-cache-coherence.
Coverage and Ownership
- Role:
spoke
- Owner family:
security-audit
Owned repo surfaces:
.codex/skills/reviewer-app-testing
hushh-webapp/scripts/testing/reviewer-test-identity.mjs
hushh-webapp/scripts/testing/verify-signed-in-routes.mjs
Non-owned surfaces:
consent-protocol/hushh_mcp/vault
hushh-webapp/lib/pkm
scripts/ci/pkm-upgrade-gate.sh
Do Use
- Canonical reviewer identity, authentication, passphrase-wrapper unlock, and vault-key integrity proof.
- Same-browser-context protected flows where decrypted information and keys must remain memory-only.
- Separate cold-context reauthentication and re-unlock proof after the same-session route chain.
- Shared Playwright helpers used by domain-specific reviewer rehearsals.
Do Not Use
- Vault cryptography or PKM storage implementation changes; use
vault-pkm-governance.
- PKM restructuring, preservation, scope, rollback, or payload acceptance; use
pkm-upgrade-rehearsal.
- Generic public-route browser checks that do not depend on an unlocked vault.
- Shared reviewer mutation without explicit operator authority for the current task.
Read First
.codex/skills/reviewer-app-testing/references/byok-reviewer-browser-contract.md
hushh-webapp/scripts/testing/reviewer-test-identity.mjs
hushh-webapp/lib/testing/native-test.ts
hushh-webapp/components/app-ui/native-test-bootstrap.tsx
hushh-webapp/components/app-ui/native-test-router.tsx
hushh-webapp/lib/utils/browser-navigation.ts
Workflow
- Resolve the canonical reviewer through the shared identity module; never print or persist its secrets.
- Decide and record whether the run is read-only or explicitly mutation-authorized.
- Prove a cold authenticated entry visibly hard-gates on the vault before supplying any passphrase.
- Unlock, derive the wrapper key locally, and verify
vaultKeyHash.
- Keep passphrase, tokens, key, and decrypted information in memory throughout the same-session route chain.
- Use Next client navigation and assert
vault_unlocked after every protected route transition.
- Fail the route chain on critical first-party vault, consent, connection, notification, or PKM API 5xx responses.
- Close the context, then test cold-session authentication and re-unlock separately.
- Hand domain assertions to the owning spoke while retaining this BYOK/session contract.
Handoff Rules
- Vault and encrypted-storage implementation work routes to
vault-pkm-governance.
- PKM upgrade and exact payload rehearsal routes to
pkm-upgrade-rehearsal.
- Cache behavior proof routes to
frontend-cache-coherence; broad security work returns to security-audit.
Required Checks
./scripts/ci/reviewer-app-testing-check.sh
./bin/hushh codex route-task reviewer-app-rehearsal --text