Harness Selection
The harness is where the work happens. Choose deliberately.
What is a Harness?
Section titled “What is a Harness?”The harness is your interface to the models: the CLI, IDE extension, or application that orchestrates prompts, tools, and context. It shapes how you work.
Key Selection Criteria
Section titled “Key Selection Criteria”Tool Access
Section titled “Tool Access”- What tools can the harness invoke?
- Can it read/write files, run commands, access APIs?
- How are permissions managed?
Context Management
Section titled “Context Management”- How does it handle long conversations?
- Does it support memory across sessions?
- How does it manage context window limits?
Model Flexibility
Section titled “Model Flexibility”- Which models are available?
- Can you switch models mid-task?
- How is routing handled?
Extensibility
Section titled “Extensibility”- Can you add custom skills or commands?
- How are plugins/extensions managed?
- What’s the learning curve?
Current Options
Section titled “Current Options”Document your org’s evaluated harnesses here.
| Harness | Strengths | Limitations |
|---|---|---|
| Claude Code | Deep tool integration, skills system | Anthropic models only |
| Cursor | IDE-native, fast iteration | Limited orchestration |
| Aider | Git-aware, lightweight | Fewer bells and whistles |
| Custom | Full control | Build and maintain yourself |
Evaluation Questions
Section titled “Evaluation Questions”- Does it support the patterns we use? (fanout, pipelines, adversarial)
- How does it handle failures and retries?
- What’s the context overhead per interaction?
- Can it evolve with our stack, or is it a point-in-time choice?
Anti-patterns
Section titled “Anti-patterns”- Choosing based on hype rather than fit
- Switching harnesses without migrating skills/patterns
- Over-customizing to the point of lock-in
- Under-investing in harness proficiency
