| name | cleanup |
| description | Run all code quality skills in sequence — effects, memo, callbacks, state, React Query, and emcn design review |
Cleanup
Arguments:
- scope: what to review (default: your current changes). Examples: "diff to main", "PR #123", "src/components/", "whole codebase"
- fix: whether to apply fixes (default: true). Set to false to only propose changes.
User arguments: $ARGUMENTS
Steps
Run each of these skills in order on the specified scope, passing through the scope and fix arguments. After each skill completes, move to the next. Do not skip any.
/you-might-not-need-an-effect $ARGUMENTS
/you-might-not-need-a-memo $ARGUMENTS
/you-might-not-need-a-callback $ARGUMENTS
/you-might-not-need-state $ARGUMENTS
/react-query-best-practices $ARGUMENTS
/emcn-design-review $ARGUMENTS
After all skills have run, output a summary of what was found and fixed (or proposed) across all six passes.
Boundary Audit Guidance
- When removing route-local Zod schemas, replacing raw
fetch( calls in hooks, or removing as unknown as X casts, do not introduce // boundary-raw-fetch: <reason> or // double-cast-allowed: <reason> annotations to silence the audit. Fix the underlying call instead — adopt a contract from @/lib/api/contracts/** and use requestJson(contract, ...) from @/lib/api/client/request, or refine the type so the double cast is unnecessary.
- Annotations are reserved for legitimate exceptions only: streaming responses, binary downloads, multipart uploads, signed-URL flows, OAuth redirects, external-origin requests, and double casts where no narrower type is available. Each annotation requires a non-empty reason; empty reasons fail
bun run check:api-validation:strict.