cmd-sculpt-code
Sculpt Code
Reshape code quality across eight dimensions. Scope to branch changes by default (git diff main...HEAD), or accept explicit file/directory targets.
Philosophy: Write code for the next reader (human or agent). Minimize cognitive load. Prefer boring, obvious code over clever code. Every change must preserve business logic unless explicitly told otherwise.
Instructions
- Determine scope — ask if unclear:
- Branch diff:
git diff main...HEAD --name-only - Staged changes:
git diff --cached --name-only - Explicit files: user-provided list
- Branch diff:
- Read all changed files in full before reviewing — understand existing patterns, not just the diff.
- For Python codebases, also load
references/python.mdfor language-specific guidance. - Review each dimension below. For each finding, cite
file_path:line_number. - Apply fixes directly — this is a sculpting tool, not a report generator. Make the changes, show what you did.
Dimensions
1. Dead Code & Surface Area
- Remove genuinely unused imports, functions, classes, and exception types
- Verify before delete: grep the entire codebase before removing anything
- Remove commented-out code older than 1 month unless marked with a TODO explaining why
- DRY threshold: extract helper only at 3+ occurrences (2 is fine as-is)
- Remove premature abstractions: factories with 1 implementation, pass-through wrappers, single-use utility classes
2. Naming & Clarity
- Names must reveal intent — no
data,temp,result,x,val,infowithout context - Follow the codebase's existing conventions (don't mix
repo/repository,config/configuration) - Function names describe what they do, not how
- No "hacker code" — prefer
if not items:overif len(items) == 0, but never at the cost of clarity - Boolean variables/functions read as questions:
is_valid,has_permission,should_retry
3. File & Function Size
- Functions over ~50 lines → candidate for extraction
- Files over ~400 lines → candidate for splitting
- Each function should have a single clear responsibility
- If you need a comment to separate "sections" within a function, those sections are probably separate functions
- Group related functions in the same file; don't scatter them
4. Nesting & Control Flow
- Max 3 levels of nesting — flatten with early returns and guard clauses
- Prefer early returns over deeply nested if/else chains
- Extract complex conditions into named booleans or predicate functions
- Replace nested loops with comprehensions or helper functions where it improves readability (not where it obscures it)
5. Idiomatic Patterns
- Use language-native constructs (e.g., list comprehensions in Python,
map/filterin JS where idiomatic) - Follow the repo's established patterns — don't introduce new paradigms for one function
- Prefer standard library over hand-rolled equivalents
- Match error handling style to the rest of the codebase
6. Reuse Opportunities
- Check if an existing helper already does what new code is doing — grep before writing
- Identify patterns repeated across the diff that should use a shared utility
- Flag cases where a library function was reimplemented
- Constants and magic values: extract to named constants if used in more than one place
7. TODO Hygiene
Apply the project's TODO prefix standards:
TODO:— general future workTODO_IMPROVE:— code quality improvementsTODO_OPTIMIZE:— performance improvementsTODO_TECHDEBT:— technical debt to address laterTODO_REVISIT:— design decisions that may need revisitingTODO_IDEA:— potential features to considerTODO_IN_THIS_PR:— must complete before mergeTODO_REMOVE_LATER:— temporary code with removal conditionFIXME:— known bugsHACK:— temporary workarounds
Each TODO must include:
- What: clear description
- Why: context on why it's deferred
Add missing TODOs for: known shortcuts, deferred work, temporary workarounds, and obvious improvement opportunities spotted during review. Remove stale or resolved TODOs.
8. Readability & Cognitive Load
- Comments explain why, never what (delete
# increment counterabovecounter += 1) - Add a brief comment above grouped code blocks (~5+ lines doing one thing)
- Convert paragraph-style comments to bullet points when feasible
- Strategic whitespace: blank lines between logical sections
- Preserve all
IMPORTANT,NOTE,CRITICAL,DEV_NOTEmarkers — clean up the text, not the tag - Keep links, issue references, and external references intact
Output Format
For each file changed, show:
### file_path
**Changes made:**
- [dimension] description of change (line X)
- [dimension] description of change (line Y)
End with a summary: files touched, lines removed, TODOs added/removed, helpers extracted.
What NOT to Change
- Working abstractions (even if currently simple)
- Type hints (always valuable)
- Test code (unless explicitly asked)
- Forward-looking base classes if second implementation is likely soon
- Domain-specific patterns the team uses intentionally
More from olshansk/agent-skills
session-commit
Capture learnings from the current coding session and update AGENTS.md. Use when the user asks to close the loop, run session-commit, record best practices, or update agent instructions based on recent work.
30skills-dashboard
Scrape skills.sh and generate an interactive HTML dashboard showing skill distribution by publisher, installs, and categories. Rerun anytime to get fresh data.
29cmd-clean-code
Improve code readability without altering functionality using idiomatic best practices
25cmd-idiot-proof-docs
Simplify documentation for clarity and scannability with approval-gated edits
18cmd-rss-feed-generator
Generate Python RSS feed scrapers from blog websites, integrated with hourly GitHub Actions
18cmd-proofread
Proofread posts before publishing for spelling, grammar, repetition, logic, weak arguments, broken links, and optionally reformat for skimmability or shape the writing vibe toward a known author's style
17