Run applicable development checks before proposing a change. Publication checks apply only in
the authorized publication environment. This checklist captures recurring review requirements;
AGENTS.md and CONTRIBUTING.md explain their purpose. Checks come from repository hooks, the
CI workflow, and documented invariants.
- No secrets in the diff.
.env/.env.local/.env.*.local,config.json,apps/*/config.json,cookies.txt,login_response.json,.tor-data/are gitignored — they must stay uncommitted (secrets live only in.env.local+ encrypted at rest in DuckDB viaWATCHMAN_MASTER_KEY). - pino redaction left intact — tokens/PII are never logged; all inputs validated server-side (Zod).
- No files >1 MB and no leftover merge-conflict markers in the proposed diff (pre-commit blocks both).
- Backend TS uses
undefined, nevernull; ESMimport/exportonly; functions over classes (service classes excepted). -
apps/backend/openapi.yamledited? Rannpm run generate:typesand included the refreshedapps/frontend/src/types/generated.ts(CIVerify Generated Artifactsfails on drift). - Security model unchanged: no auth/CSRF/rate-limiting added (ADR-017/ADR-025); the origin allow-list (CORS + WebSocket upgrade) stays the only browser gate.
- New/changed service = class extending
BaseService(checkHealth()+getStats()), registered inbootstrap/registerServices.ts; verified health check, timeout/circuit-breaker, secret handling, and multi-instance behavior. Config goes through the/configAPI (DuckDB), not new env vars. - Architectural decision recorded as a new append-only ADR in
docs/adr/(next free number, fromtemplate.md). - Behavior, API, architecture, service, configuration, security, package, build, deployment, or
workflow changed? Ran
update-watchman-docsafter the implementation diff stabilized and updated every stale surface, or recorded why no documentation change was warranted.
Use the impact-based checks in AGENTS.md for development. Instruction-only and documentation-only
changes need relevant content and link checks; they do not require the application suite. For
applicable code changes, record the results of the following checks and explain omissions:
- Typecheck:
npm run typecheck(backend + frontend); for desktop changes,cd apps/desktop && npx tsc --noEmit -p tsconfig.json. - Lint: targeted lint or
npm run lint:frontendandnpm run lint:backendfor affected workspaces. - Tests: targeted tests,
npm run test(backend Vitest), ornpm run test:frontendfor affected surfaces. - Build:
npm run build(frontend + backend) for changes requiring build verification underAGENTS.md. - Dependency changes:
npx audit-ci --config .audit-ci.jsonclean (no un-allowlisted HIGH/CRITICAL deps). - Final validation ran after documentation and generated artifacts were synchronized; any implementation change made during validation triggered another documentation check.
- Required CI gates remain required for publication. Report actual
CI Completestatus when available; otherwise mark it unverified rather than predicting success.
- Scope kept tight and unrelated cleanup logged as a follow-up.
- Regular local development leaves a reviewed working-tree diff for the LockBox
git-agent, with changed files, validation results, skipped checks, and remaining risks. Do not stage, sign, commit, or push in that session. Cloud publication followsAGENTS.md.
These checks apply only inside an explicitly authorized LockBox git-agent session. They do not
block review of an uncommitted working-tree diff or authorize publication from a development session.
-
gitleaks git --staged --redactclean (pre-commit runs it; CISecrets Scanis the backstop). - Signed commit (
commit.gpgsign=true, SSH format) with a Conventional Commit message (type(scope): subject, enforced by thecommit-msghook) explaining what changed and why. - Commit directly to
mainunless the task requests a branch.