Generate structured comparisons and decision matrices across analyzed frameworks. Use when (1) comparing multiple frameworks or approaches side-by-side, (2) making architectural decisions between alternatives, (3) creating best-of-breed selection documentation, (4) synthesizing findings from multiple analysis skills into actionable decisions, or (5) producing recommendation reports for technical stakeholders.
Synthesizes analysis outputs into structured decision frameworks.
| Dimension | What to Compare | Decision Criteria |
|---|---|---|
| Typing | Strict (Pydantic) vs Loose (dicts) | Team preference, runtime safety needs |
| Async | Native async vs sync-with-wrappers | Scalability requirements |
| State |
| Immutable vs mutable |
| Concurrency safety, debugging |
| Config | Code-first vs config-first | Flexibility vs discoverability |
| Extensibility | Composition vs inheritance | Maintainability, learning curve |
| Dimension | When to Include |
|---|---|
| Reasoning Pattern | Comparing agent frameworks |
| Memory Strategy | Long-running agents |
| Multi-Agent | Orchestration systems |
| Observability | Production deployments |
| Tool Interface | Custom tool development |
## Best-of-Breed Matrix: [Analysis Title]
| Dimension | Framework A | Framework B | Framework C | **Recommendation** |
|:----------|:------------|:------------|:------------|:-------------------|
| **Typing** | Pydantic V1, deep nesting | TypedDict, flat | Loose dicts | *Pydantic V2, flat structures* |
| **Async** | Sync core, async wrapper | Native async | Mixed | *Native async required* |
| **State** | Mutable, in-place | Immutable copy | Hybrid | *Immutable preferred* |
| **Config** | YAML + Python | Pure Python | JSON | *Python for type safety* |
| **Extensibility** | Deep inheritance (6 layers) | Composition | Protocols | *Composition + Protocols* |
### Dimension Details
#### Typing
- **Framework A**: Uses Pydantic V1 with deeply nested models (Message → Content → Block → ...)
- Pro: Full validation at boundaries
- Con: Difficult to extend, version migration pain
- **Framework B**: TypedDict with flat structure
- Pro: Simple, fast, IDE support
- Con: No runtime validation
- **Recommendation**: Adopt Pydantic V2 with intentionally flat structures. Use TypedDict for internal types.
[Continue for each dimension...]
Apply these heuristics when recommendations aren't obvious:
IF high_concurrency_expected:
PREFER native_async
PREFER immutable_state
PREFER stateless_tools
IF team_is_small OR rapid_iteration:
PREFER simple_inheritance_over_protocols
PREFER code_first_config
PREFER explicit_over_magic
IF mission_critical:
PREFER strict_typing
PREFER comprehensive_observability
PREFER explicit_error_boundaries
comparative-analysis/
├── matrix.md # Summary comparison table
├── dimensions/
│ ├── typing.md # Detailed typing analysis
│ ├── async.md # Concurrency model analysis
│ └── ...
├── recommendations.md # Final decisions
└── tradeoffs.md # Documented compromises
antipattern-catalog, architecture-synthesis