name: refactor-pass description: Perform a refactor pass focused on simplicity after recent changes. Use when the user asks for a refactor/cleanup pass, simplification, dead-code removal, or says "refactor pass".
Refactor Pass
Workflow
Review recent changes — identify simplification opportunities:
git difffor unstaged changesgit diff --cachedfor staged changesgit log --oneline -5for recent commits if no uncommitted changes
Apply refactors (in priority order):
- Remove dead code and unreachable paths
- Straighten convoluted logic flows
- Remove excessive parameters or intermediary variables
- Remove premature optimization (unnecessary
useMemo,useCallback, etc.) - Extract duplicated logic into custom hooks (
src/hooks/) or shared components (src/components/)
Verify — run all three checks:
yarn build && yarn lint && yarn type-checkOptional suggestions — identify abstractions or reusable patterns only if they clearly improve clarity. Keep suggestions brief; don't refactor speculatively.
Project-Specific Patterns to Enforce
When refactoring, watch for these anti-patterns from AGENTS.md:
| Anti-pattern | Refactor to |
|---|---|
useState for shared state |
Zustand store in src/stores/ |
useEffect for data fetching |
bitsocial-react-hooks (useComment, useFeed, etc.) |
useEffect to sync derived state |
Calculate during render |
| Copy-pasted logic across components | Custom hook in src/hooks/ |
Boolean flag soup (isLoading, isError, isSuccess) |
State machine in Zustand |
| Prop drilling through many layers | Zustand store |
Rules
- Before removing or simplifying code whose purpose is unclear, check
git log/git blamefor why it exists; if you still can't explain it, leave it alone and flag it instead (Chesterton's Fence) - Don't change behavior — refactors must be semantically equivalent
- Don't introduce new dependencies
- Format edited files with
npx oxfmt <file>after changes - If the build/lint/type-check fails after refactoring, fix it before finishing