This skill should be used when the user asks to "review code design", "check API design", "evaluate abstractions", "review naming", "check SOLID compliance", "design an API", "choose between REST and...
Code, component, and API design evaluation.
processData() actually process data?Red flags:
Manager, Handler, Processor, Utils — often god classesTest: "The {ClassName} is responsible for..." — if you need "and", split it.
Example leak:
// Leaky — exposes internal Map structure
class Cache {
getAll(): Map<string, Value> { return this.internal; }
}
// Clean — hides implementation
class Cache {
entries(): Array<[string, Value]> { return [...this.internal]; }
}
Ask (bad):
if (order.status === 'pending' && order.items.length > 0) {
order.status = 'confirmed';
}
Tell (good):
order.confirm(); // Object owns its state transitions
| Principle | Question | Violation Signal |
|---|---|---|
| Single Responsibility | One reason to change? | Class has multiple "and"s |
| Open/Closed | Extend without modifying? | Switch statements on types |
| Liskov Substitution | Subtypes substitutable? | Instanceof checks |
| Interface Segregation | Clients use what they depend on? | Empty method implementations |
| Dependency Inversion | Depend on abstractions? | new ConcreteClass() in domain |
| Protocol | Best For | Avoid When |
|---|---|---|
| REST | CRUD, public APIs, caching | Real-time, complex queries |
| GraphQL | Flexible queries, multi-client | Simple CRUD, N+1 risk |
| gRPC | Internal services, performance | Browser clients |
| WebSocket/SSE | Real-time updates | Request-response |
Primary: Karman (naming/abstractions), Ace (DX), Burner (coupling) Secondary: Dijkstra (correctness), Vector (auth for APIs)
## Design Review: {Component}
### Abstraction Quality
- {Finding 1}
- {Finding 2}
### SOLID Violations
- {Principle}: {violation}
### API Assessment (if applicable)
- {Finding}
### DX Friction Points
- {Point 1}
### Recommendations
1. {Action}
2. {Action}
references/solid-gotchas.md — Common SOLID violations with fixesreferences/api-rest.md — REST production gotchasreferences/api-graphql.md — GraphQL N+1, complexity, caching trapsreferences/api-grpc.md — gRPC streaming, versioning gotchas