| name | quality-contracts |
| description | Use when changing cross-surface verification policy, contract-test placement, test selection, or quality gates across frontend and backend. |
Hussh Quality Contracts Skill
Purpose and Trigger
- Primary scope:
quality-contracts
- Trigger on contract-test placement, test selection, route/browser verification, and cross-surface quality rules.
- Avoid overlap with
streaming-contracts and repo-operations.
Coverage and Ownership
- Role:
spoke
- Owner family:
security-audit
Owned repo surfaces:
docs/reference/quality
hushh-webapp/__tests__
consent-protocol/tests
Non-owned surfaces:
security-audit
frontend
backend
Do Use
- Test selection and contract-test placement decisions.
- Cross-surface verification policy and quality-gate ownership.
- Reviewing whether a change is missing authoritative checks.
Do Not Use
- Broad security intake where the correct spoke is unclear.
- Repo-wide CI/deploy operations work.
- Narrow streaming-protocol work when the issue is clearly streaming only.
Read First
docs/reference/quality/README.md
docs/reference/quality/pr-impact-checklist.md
docs/reference/kai/kai-runtime-smoke-checklist.md
.codex/skills/quality-contracts/references/browser-verification-contract.md
docs/reference/quality/definition-of-done.md
Workflow
- Start from the contract or user-visible behavior that needs proof.
- Select the smallest authoritative checks across frontend, backend, route, data, and browser surfaces.
- Keep frontend and backend contract tests aligned with the same user-visible or policy-visible rule.
- Do not add one-time, manual, skipped-by-default, or source-string tests to routine suites when a reusable runtime helper, component test, service test, or script-first smoke proves the behavior.
- Source-reading contract tests are allowed only for explicit architecture boundaries with no cheaper runtime surface; delete them when behavior-level coverage becomes available.
- Legacy, migration, and compatibility tests stay only while they protect a live compatibility/removal boundary; otherwise delete or move the durable fact into the canonical contract.
- Use Playwright only when a real browser is required; follow
browser-verification-contract.md for protected routes.
- For signed-in, vault, PKM, Email Helper, consent, or app-review proof, resolve the reviewer from runtime env (
REVIEWER_UID; deprecated aliases only as migration fallbacks) and assert the browser session, vault owner, workflow owner, and PKM data owner are the same user. Do not validate against copied recipients, counterparty labels, admin fixtures, or a hardcoded UID/email.
- Treat CI pipeline ownership as
repo-operations unless the primary question is what should be verified.
- For new tables or data-contract changes, include the repo data-model audit.
- When changing required test sets or gate policy, rerun selected checks once after the edit and once from the canonical repo entrypoint.
- Treat helper-only drift as advisory unless it weakens runtime, deploy, or test authority.
Handoff Rules
- Broad or ambiguous security work routes back to
security-audit.
- CI or deploy pipeline ownership routes to
repo-operations.
- Streaming-specific contract work routes to
streaming-contracts.
- Pure frontend or backend implementation routes to
frontend or backend.
Required Checks
cd hushh-webapp && npm run test:ci
cd hushh-webapp && npm run verify:service-boundary
cd consent-protocol && python3 -m pytest tests/quality -q
./bin/hushh codex data-model-audit