npx claudepluginhub zunosmartlabs/zsl-superpowersThis skill uses the workspace's default tool permissions.
Please review this pull request and provide feedback on:
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
Please review this pull request and provide feedback on:
Use the repository's CLAUDE.md for guidance on style and conventions. Be constructive and helpful in your feedback.
Before suggesting Sentry additions:
Check existing patterns — Search for similar code in the codebase. If 5+ routes handle 401s without Sentry, that's the project pattern.
Distinguish error types:
Apply the "would this wake someone up?" test: If this condition happening at 3am shouldn't trigger an alert, don't log it as an exception.
Expected conditions are not exceptions:
If suggesting Sentry, verify the codebase doesn't already handle similar cases differently.
Before suggesting coverage exclusions:
Read existing config — jest.config.ts (collectCoverageFrom) and codecov.yml (ignore). Skip files already excluded or outside collection scope.
Analyze file content (don't pattern-match paths):
validation.ts, *-utils.ts, mock-data.ts with logic.createClient() usage, route handlers, React components with useEffect/useState.Verify before suggesting: Is file in collection scope? Does existing pattern cover it? Does file contain ANY pure functions?
If pure functions exist → suggest unit tests, not exclusion.
Before suggesting SQL changes:
Check existing comments — Inline SQL comments (-- comment) are valid documentation. Don't suggest COMMENT ON statements if inline comments already explain the logic.
COMMENT ON is for tooling — Use COMMENT ON when database documentation tools need metadata. Use inline comments for developer readability. Both are valid; don't require both.
Index comments — Partial indexes with WHERE clauses benefit from inline comments explaining the filtering logic. COMMENT ON INDEX is optional and only useful if you use database documentation generators.
Before suggesting runtime type checks or validation:
Check database constraints first — If a column has CHECK, FOREIGN KEY, NOT NULL, or enum type constraints, the database already enforces valid values. Runtime validation is redundant.
Type casts from DB are often necessary — Supabase generates string for constrained columns (e.g., country: string even with CHECK (country IN ('NZ', 'AU'))). A type cast like as "NZ" | "AU" is correct—it tells TypeScript what the DB guarantees.
Don't add validation for impossible states:
if (country !== "NZ" && country !== "AU") throw when DB has CHECK constraintIf suggesting runtime checks, verify the constraint isn't already enforced at:
Defensive code for impossible states adds noise without value.
Before suggesting JSDoc, comments, or documentation:
Check existing conventions — Search for @param, @returns, /** patterns in the codebase. If <5% of functions have JSDoc, don't suggest adding it to one file.
Self-documenting code is preferred — Clear prop names, TypeScript interfaces, and descriptive function names often eliminate the need for JSDoc.
Don't suggest inconsistent documentation:
CLAUDE.md guidance: "Don't add docstrings, comments, or type annotations to code you didn't change"
Documentation suggestions should match codebase conventions, not ideal-world standards.
Before suggesting configurability or abstraction:
Constants vs environment variables:
Apply the "how often would this change?" test: If the answer is "rarely" or "never in production," a constant is sufficient. Environment variables add deployment complexity for no benefit.
DRY without over-abstracting:
Examples:
300 → CACHE_MAX_AGE_SECONDS = 300 (good)process.env.CACHE_MAX_AGE (over-engineering unless proven need)150 → BLUR_DELAY_MS = 150 (good)ConfigService for 3 constants (over-engineering)If suggesting configurability, explain the concrete use case requiring runtime changes.
git diff main...HEAD (or staging...HEAD depending on the project's base branch) to see changes since branchingmake lint)This approval gate prevents applying incorrect fixes based on false positives and lets the user decide which issues are worth addressing.
Be thorough and critical - this review should catch issues before they reach the PR stage.