Pre-pipeline review
Review the current SuperPlane diff for correctness and reuse, then run only the fast Make targets that match touched paths. Goal: catch pipeline failures from lint, format, and build without running slow unit or E2E suites.
Do not duplicate clean-code, ui-copy, simplified-technical-english, or commit-and-pr-messages. Point at them when relevant. Read AGENTS.md in full when you need setup or command facts. For UI or models work, also read web_src/AGENTS.md or pkg/models/AGENTS.md.
Path-to-target matrix and skip list: checks.md.
Workflow
Copy this checklist and track progress:
Pre-pipeline review:
- [ ] 1. Scope the diff
- [ ] 2. Review for correctness and reuse
- [ ] 3. Map paths to Make targets (checks.md)
- [ ] 4. Ensure app container is up
- [ ] 5. Format, then run matching checks
- [ ] 6. Fix failures and re-run until green or blocked
- [ ] 7. Report findings and check results
1. Scope the diff
Run git status and git diff (staged and unstaged). If the user named a
branch or PR, include that range. Note which areas changed: Go, JS/TS, protos,
models, gRPC actions, components, migrations, docs-only.
2. Review for correctness and reuse
Review the change against the bar below. Search the repo before flagging or accepting new helpers, components, or patterns. Prefer existing code over new abstractions.
3. Map paths to Make targets
Open checks.md. Select only the targets that match touched paths. Do not run the skip list unless the user explicitly asks.
4. Ensure app container is up
make dev.test.is.running
If that fails, run make dev.up and wait. Do not run make dev.setup
unless deps or protos clearly need it. Never drop or recreate databases
(db.delete, dev.setup.no.cache, etc.).
5. Format, then run matching checks
Use make only. Do not invent host go / npm commands when a Make target
exists.
- Run format for the languages you touched (
make format.go,make format.js). - Run the matching
check.*/linttargets from checks.md. - Prefer parallel independent checks when safe.
6. Fix and re-run
If a check fails:
- Fix the underlying issue (format drift, lint, type error, missing auth wire-up).
- Re-run format if you edited files, then re-run the failed check.
- Do not expand the ESLint budget, skip checks, or hand-edit generated artifacts to get green.
Stop and report if you hit a real blocker (missing setup, unrelated infra, needs user decision).
7. Report
Use this structure:
## Review
### Critical
- …
### Suggestions
- …
(If none: say so.)
## Checks
| Target | Result |
| --- | --- |
| `make lint` | pass / fail / skipped (reason) |
## Blockers
- … (or "None")
Review bar
Must catch:
- Wrong or missing behavior, broken edge cases, inconsistent state across callers of changed APIs.
- Duplication or reinventing the wheel: before accepting new helpers or UI,
search
web_src/src/lib,web_src/src/hooks,web_src/src/components/ui, and nearby packages underpkg/. - No new
web_src/src/utils/folders orutils.tsfiles. - Do not hand-edit generated files:
pkg/protos/,pkg/openapi_client/,web_src/src/api-client/,api/. Editprotos/and runmake pb.gen. - Do not hand-write migrations; use
make db.migration.create NAME=<name>. - Proto request enums mapped via
pkg/grpc/actions/common.go(Proto*/*ToProto). New workers registered incmd/server/main.go. New gRPC endpoints covered inpkg/authorization/interceptor.go. - User-facing product name is SuperPlane (capital P).
- When UI strings changed, follow ui-copy and STE skills.
Severity:
- Critical: Must fix before merge (bugs, CI-breaking issues, policy violations above).
- Suggestion: Improve if cheap; not a merge blocker.
Related skills
- Clean-code standards: clean-code
- UI strings: ui-copy, simplified-technical-english
- Commit / PR wording: commit-and-pr-messages