Chain-of-thought helps with:
- Complex algorithms with multiple steps
- Tasks where edge cases matter
- Code you need to understand later
Chain-of-thought may hurt with:
- Simple, well-defined tasks (adds unnecessary overhead)
- Time-sensitive generation (slower)
- Advanced reasoning models that already think internally
Use it when complexity justifies the extra steps.