The Smell Catalog
This segment should take about 55 minutes. It contains:
| Slide / Exercise | Duration |
|---|---|
| Clone Confetti | 7 minutes |
| Arc<Mutex<Everything>> | 7 minutes |
| Stringly-Typed Code | 5 minutes |
| unwrap() on External Input | 5 minutes |
| Over-Abstraction | 7 minutes |
| Lifetime Smells | 12 minutes |
| Exercise: Smell Catalog v1 | 12 minutes |
A smell isn’t a bug. It’s an easy-to-spot surface feature that often indicates a harder-to-spot design problem. Smells let a reviewer triage a large amount of generated code quickly.
Each page in this catalog has the same structure:
- Smell: what you see, usually greppable.
- Why generation produces it: the agent’s tendency.
- Principle: what good design does instead.
- Prompt: the instruction that regenerates it correctly.
One rule applies to the whole catalog: every smell here has legitimate uses. The question in review isn’t “is this construct present?” but “did someone decide to use it?”