skills/search-before-edit/SKILL.md
Mandatory discipline requiring grep/search before any file modification. Prevents breaking existing patterns by ensuring all usages, imports, and dependencies are understood before edits are applied.
npx skillsauth add adilkalam/orca search-before-editInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
MANDATORY: Always search/grep before modifying ANY file. This prevents breaking existing patterns and ensures changes fit the codebase.
Before editing ANY file, you MUST:
DO:
# Example: Before creating a new button component
grep -r "Button" src/components/
grep -r "btn-" src/styles/
grep -r "button" src/ # case variations
DO:
# Example: Before renaming a function
grep -r "oldFunctionName" .
grep -r "from.*module-with-function" .
grep -r "oldFunctionName" **/*.test.*
DO:
# Example: Before deleting a component
grep -r "ComponentName" .
grep -r "component-name" . # kebab-case
grep -r "componentName" . # camelCase
Run multiple searches with different terms. First-pass results often miss key details.
# Don't just search once
grep -r "authentication"
# Also try variations
grep -r "auth"
grep -r "login"
grep -r "session"
grep -r "signin"
grep -r "sign-in"
Start with broad, high-level queries, then narrow down:
When modifying a file, check its neighbors:
*.test.*, *.spec.*)*.d.ts, types.ts)*.stories.*)# Only TypeScript files
grep -r "pattern" --include="*.ts" --include="*.tsx"
# Exclude node_modules and build
grep -r "pattern" --exclude-dir=node_modules --exclude-dir=dist
DON'T:
// MISTAKE: Renaming without searching
Rename: getUserById -> fetchUserById
Result: 12 files still call getUserById, app breaks
// CORRECT: Search first
Search: grep -r "getUserById"
Found: 12 files use this function
Action: Update all 12 files, then rename
After making changes, verify:
# Post-edit verification
grep -r "oldPattern" # Should return nothing
npm run typecheck # Should pass
npm run lint # Should pass
npm run test # Should pass
New file creation: 2 searches minimum
Modifying existing file: 3 searches minimum
Deleting code: 5 searches minimum
Renaming: 4 searches minimum
User: "Add a logout button to the header"
Agent thinking:
1. Search for existing header: grep -r "Header" src/
2. Search for existing auth UI: grep -r "logout" . && grep -r "signOut"
3. Search for auth patterns: grep -r "useAuth" .
4. Search for button patterns: grep -r "Button" src/components/
5. Now I understand the patterns, implement the change
User: "Add a logout button to the header"
Agent: *immediately creates new component without searching*
Result: Duplicates existing LogoutButton, uses wrong auth pattern,
doesn't match existing button styles
This skill works with:
testing
Run technical quality checks across accessibility, performance, theming, responsive design, and anti-patterns. Generates a scored report with P0-P3 severity ratings and actionable plan. Use when the user wants an accessibility check, performance audit, or technical quality review.
tools
Improves typography by fixing font choices, hierarchy, sizing, weight, and readability so text feels intentional. Use when the user mentions fonts, type, readability, text hierarchy, sizing looks off, or wants more polished, intentional typography.
tools
Three.js animation - keyframe animation, skeletal animation, morph targets, animation mixing. Use when animating objects, playing GLTF animations, creating procedural motion, or blending animations.
development
Plan the UX and UI for a feature before writing code. Runs a structured discovery interview, then produces a design brief that guides implementation. Use during the planning phase to establish design direction, constraints, and strategy before any code is written.