keep-it-simple
Use when tempted to write clever code. Use when solution feels complex. Use when showing off skills instead of solving problems.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when tempted to write clever code. Use when solution feels complex. Use when showing off skills instead of solving problems.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when writing tests. Use when test structure is unclear. Use when arrange/act/assert phases are mixed.
Use when designing or modifying APIs. Use when adding breaking changes. Use when clients depend on API stability.
Use when implementing authentication. Use when storing passwords. Use when asked to store credentials insecurely.
Use when same data is fetched repeatedly. Use when database queries are slow. Use when implementing caching without invalidation strategy.
Use when tempted to use class inheritance. Use when creating class hierarchies. Use when subclass needs only some parent behavior.
Use when acquiring multiple locks. Use when operations wait for each other. Use when system hangs without crashing.
| name | keep-it-simple |
| description | Use when tempted to write clever code. Use when solution feels complex. Use when showing off skills instead of solving problems. |
The simplest solution that works is the best solution.
Clever code impresses no one. Simple code ships faster, breaks less, and others can maintain it.
NEVER choose clever over clear. Simple wins.
No exceptions:
If you're proud of how clever your code is, simplify it:
// ❌ VIOLATION: Clever one-liner
const isPalindrome = (s: string): boolean =>
(s = s.toLowerCase().replace(/[^a-z0-9]/g, '')) === [...s].reverse().join('');
// ✅ CORRECT: Simple and clear
function isPalindrome(str: string): boolean {
const cleaned = str.toLowerCase().replace(/[^a-z0-9]/g, '');
for (let i = 0; i < cleaned.length / 2; i++) {
if (cleaned[i] !== cleaned[cleaned.length - 1 - i]) {
return false;
}
}
return true;
}
| Complex Code | Impact |
|---|---|
| Clever one-liners | Unreadable, hard to debug |
| Nested ternaries | Logic becomes opaque |
| Over-abstraction | Indirection hides intent |
| Premature optimization | Complexity without measured benefit |
| Design pattern overuse | Patterns for patterns' sake |
Write code that a junior developer can understand in 30 seconds:
// ❌ COMPLEX: "Elegant" functional chain
const result = data
.filter(Boolean)
.map(x => transform(x))
.reduce((acc, x) => ({ ...acc, [x.id]: x }), {})
.values()
.filter(x => x.active)
.sort((a, b) => b.date - a.date)
.slice(0, 10);
// ✅ SIMPLE: Clear steps with names
const validItems = data.filter(Boolean);
const transformed = validItems.map(transform);
const activeItems = transformed.filter(item => item.active);
const sorted = activeItems.sort((a, b) => b.date - a.date);
const topTen = sorted.slice(0, 10);
Pressure: "This one-liner is more elegant than the verbose version"
Response: Elegance is clarity, not brevity. Simple code is more elegant than clever code.
Action: Use the clear version. Name intermediate variables.
Pressure: "I want to demonstrate I know advanced patterns"
Response: Senior engineers are recognized for simple solutions, not complex ones.
Action: Solve the problem simply. Save cleverness for where it's needed.
Pressure: "The complex version is O(n) vs O(n log n)"
Response: Premature optimization. Is this actually a bottleneck?
Action: Write simple code. Optimize only when profiling shows need.
Pressure: "I'll provide two implementations to show versatility"
Response: One clear solution is better than multiple options.
Action: Pick the simplest approach. Provide only that.
If you notice ANY of these, simplify:
? : ? :All of these mean: Rewrite simply.
| Complex | Simple |
|---|---|
| Nested ternaries | if/else statements |
| Long chains | Named intermediate variables |
| Clever regex | Multiple simple checks |
| One-liner | Multi-line with comments |
| Implicit | Explicit |
| Magic numbers | Named constants |
| Symptom | Action |
|---|---|
| "Elegant" one-liner | Expand to clear multi-line |
| Nested ternary | Convert to if/else |
| Complex chain | Break into named steps |
| Multiple approaches | Pick simplest one |
| Pride in cleverness | Rewrite simply |
| Excuse | Reality |
|---|---|
| "It's more elegant" | Clear code is more elegant than clever code. |
| "Shows advanced skills" | Simple solutions show more skill. |
| "It's a nice one-liner" | One-liners are often unreadable. |
| "Technically better" | Premature optimization is bad. |
| "Multiple options show versatility" | One clear solution is better. |
| "It's how experts do it" | Experts write simple code. |
Simple beats clever. Clear beats concise. Obvious beats elegant.
When solving a problem: find the simplest solution that works. If a junior dev can't understand it in 30 seconds, simplify it.