WitNote / .github /DEFINITION_OF_DONE.md
AUXteam's picture
Upload folder using huggingface_hub
6a7089a verified

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 items above for _, item := range items
    • ❌ Bad: // Return error above return err
    • βœ… Good: // Prioritize chromium-browser on ARM64 (Raspberry Pi default)
    • βœ… Good: // Chrome may not be installed in CI, so empty result is valid

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 pack in /npm/ produces valid tarball
    • npm install -g pinchtab (or from local tarball) succeeds
    • pinchtab --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)