Definition of Done (PR Checklist)
Automated β (CI/GitHub enforces these)
These run automatically via ci.yml. If your PR fails them, fix and re-push.
- Go formatting & linting passes (gofmt, vet, golangci-lint)
- Unit + E2E tests pass (
go test ./...and./dev e2e) - Build succeeds (
go build) - CodeQL security scan passes
- Branch naming follows convention
Manual β Code Quality (Required)
- Error handling explicit β All errors wrapped with
%w, no silent failures - No regressions β Verify stealth, token efficiency, session persistence work (test locally if unsure)
- SOLID principles β Functions do one thing, testable, no unnecessary deps
- No redundant comments β Comments explain why or context, not what the code does
- β Bad:
// Loop through itemsabovefor _, item := range items - β Bad:
// Return errorabovereturn err - β
Good:
// Prioritize chromium-browser on ARM64 (Raspberry Pi default) - β
Good:
// Chrome may not be installed in CI, so empty result is valid
- β Bad:
Manual β Testing (Required)
- New/changed functionality has tests β Same-package unit tests preferred
- Docker E2E tests run locally β If you modified handlers/bridge/tabs, run:
./dev e2e(Docker curl E2E) and/or./dev e2e cli(Docker CLI E2E) - npm commands work (if npm wrapper touched):
npm packin/npm/produces valid tarballnpm install -g pinchtab(or from local tarball) succeedspinchtab --version+ basic commands work after install
Manual β Documentation (Required)
- README.md updated β If user-facing changes (CLI, API, env vars, install)
- /docs/ updated β If API/architecture/perf changed (optional for small fixes)
Manual β Review (Required)
- PR description explains what + why β Especially stealth/perf/compatibility impact
- Commits are atomic β Logical grouping, good messages
- No breaking changes to npm β Unless explicitly major version bump
Conditional (Only if applicable)
- Headed-mode tested (if dashboard/UI changes)
- Breaking changes documented in PR description (if any)
Quick Checklist (Copy/Paste for PRs)
## Definition of Done
- [ ] Unit + Docker E2E tests added & passing
- [ ] Error handling explicit (wrapped with %w)
- [ ] No regressions in stealth/perf/persistence
- [ ] No redundant comments (explain why, not what)
- [ ] README/docs updated (if user-facing)
- [ ] npm install works (if npm changes)