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)
```markdown
## 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)
```