2.4 KiB
2.4 KiB
name, description, source
| name | description | source |
|---|---|---|
| elegance | Iteratively study and apply elegant coding patterns. Each iteration - understand the code, research what simple and elegant code looks like, apply learnings, verify with CI. Use as a standalone refactoring pass or when the user asks to make code more elegant, simple, or idiomatic. | https://github.com/srid/emanote/tree/master/.claude/skills/elegance |
Elegance
Iteratively study and apply elegant coding patterns. Each iteration: understand the code, research what simple & elegant code looks like, apply learnings, verify with CI.
Run for 3 iterations (or as specified by the user — can be a number or a duration like 2h).
0. Determine Scope
- Before starting, use the
AskUserQuestiontool to ask: should this operate on the whole codebase or only on changes in the current branch/PR? - If scoped to current branch/PR, use
git diff main...HEAD(or the appropriate base branch) to identify changed files and limit all subsequent steps to those files only.
For each iteration (1 to N)
1. Understand
- Read through the relevant source files.
- Note patterns, repetition, unnecessary complexity, non-idiomatic code.
2. Research
- Use WebSearch/WebFetch to research what simple, elegant (yet readable!) code looks like for the relevant technology.
- Look for idiomatic patterns, standard simplifications, and community best practices.
- Focus on: simplicity, readability, removing unnecessary abstraction, leveraging language features.
3. Apply
- Refactor based on what you learned.
- This can include: edits, code reorganization, or even rewrites where simplicity demands it.
- Prefer fewer lines, clearer intent, and idiomatic style.
- Don't add abstractions — remove them.
4. Verify
- Run tests/CI to check edits.
- If CI fails, fix the issues before proceeding to the next iteration.
5. Log Progress
- Briefly note what changed in this iteration and why.
After all iterations
- Do not git commit. Leave all changes in the working directory for the user to review.
- Present a summary of what changed across all iterations.
Principles
- Simple over clever: Elegant code is simple code.
- Readable over terse: Brevity is good, but not at the cost of clarity.
- Idiomatic over generic: Use the language's strengths. Write TypeScript like TypeScript, not like Java.
- Each iteration builds on the last: Don't undo previous improvements. Deepen them.