architecture-tradeoff
Skill5 starsChanged 18 days agoMITView on GitHub
Use when architectural decisions involve competing quality attributes (performance vs modifiability, availability vs consistency, security vs usability), when the user says "tradeoff analysis", "ATAM", "quality attributes", "what are we giving up", or when a design choice affects multiple non-functional requirements in tension.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- tvna/claude-mdtheir own version, first seen Jun 30, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- tvna/claude-md★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository50 other files it gives its agents.
- analyze-pr-commentsSkill
- architecture-analyzeSkill
- askSkill
- code-smellsSkill
- debugging-rocprof-sysSkill
- exploration-explore-codeSkill
- git-commitSkill
- git-gh-clientSkill
- git-prepare-pull-requestSkill
- git-pull-request-statusSkill
- gitSkill
- grill-meSkill
- library-amd-smiSkill
- notify-meSkill
- planning-architectureSkill
- planning-baseSkill
- planning-bugfixSkill
- planning-docsSkill
- planning-featureSkill
- planning-refactorSkill
- programming-cmake-best-practicesSkill
- programming-cpp-constexprSkill
- programming-cpp-design-patternsSkill
- programming-cpp-naming-rulesSkill
- programming-cpp-policy-based-diSkill
- programming-cppSkill
- programming-cpp-stl-algorithmsSkill
- programming-pythonSkill
- pr-review-interactiveSkill
- pr-reviewSkill
- radisha-create-skillSkill
- radisha-helpSkill
- radisha-improve-skillSkill
- radisha-skillsSkill
- radisha-updateSkill
- refactoring-techniquesSkill
- review-architectureSkill
- rocprofsys-buildSkill
- rocprofsys-configureSkill
- rocprofsysSkill
- static-analysisSkill
- testing-gtest-gmockSkill
- testing-pytestSkill
- testing-testplanSkill
- therock-build-to-commitSkill
- therock-commit-in-buildSkill
- therock-first-build-with-commitSkill
- update-pr-descriptionSkill
- verify-pmc-metricsSkill
- watchSkill
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 76
Use ++ (strongly supports), + (supports), o (neutral), - (hinders), -- (strongly hinders).
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Architecture Tradeoff Analysis
Structured method to expose how architectural decisions affect quality attributes in tension. Based on ATAM (Architecture Tradeoff Analysis Method). Produces a decision matrix with sensitivity points, tradeoff points, and risk catalog.
Complements: architecture (broad modes), design-review (component interface options). This skill operates at system/subsystem level analyzing quality attribute tensions.
When to Use
- Choosing between architectural approaches with competing concerns
- Evaluating an existing architecture against quality requirements
- Stakeholders disagree on priorities (speed vs safety, flexibility vs simplicity)
- Migration decisions with multiple valid paths
- Any "it depends" answer that needs structured decomposition
When NOT to Use
- Single quality attribute dominance (no tension)
- Component-level interface design (use
design-review) - Code-level refactoring (use
code-quality)
Process
1. Establish Quality Attribute Utility Tree
Elicit and prioritize quality attributes relevant to the system. Each leaf is a concrete, testable scenario.
Performance
├── Latency: API response < 50ms p99 under 1k RPS (H,H)
├── Throughput: Handle 10k concurrent connections (H,M)
└── Startup: Cold start < 3s (M,L)
Modifiability
├── Add new output format in < 1 dev-day (H,H)
└── Swap storage backend without API changes (M,M)
Availability
├── Survive single-node failure without data loss (H,H)
└── Graceful degradation under 10x load spike (H,M)
Security
└── Zero trust between internal services (M,H)(importance, difficulty) — H/M/L for each. Focus analysis on (H,H) and (H,M) scenarios.
Ask: "What quality attributes matter most? For each, give me a concrete scenario with measurable criteria."
2. Map Architectural Approaches
For each major decision point, identify 2-4 candidate approaches. Keep descriptions factual — no advocacy yet.
| Decision Point | Approach A | Approach B | Approach C |
| Communication | Sync REST | Async messaging | gRPC streaming |
| Data storage | Single SQL DB | Event sourcing | Polyglot persistence |
| Deployment | Monolith | Microservices | Modular monolith |
3. Analyze Each Approach Against Scenarios
For every (approach, scenario) pair, assess impact:
| Scenario | Approach A | Approach B | Approach C |
| API < 50ms p99 | ++ direct call path | -- queue latency | + streaming amortizes |
| Add output format < 1d | - coupled transform | ++ isolated handler | + plugin interface |
| Survive node failure | -- single point | ++ replicated consumers | + reconnect semantics |
Use ++ (strongly supports), + (supports), o (neutral), - (hinders), -- (strongly hinders).
4. Identify Sensitivity and Tradeoff Points
Sensitivity point: A property of one approach where a small change in the architecture significantly affects one quality attribute.
"If we add connection pooling to Approach A, latency drops from '-' to '++'."
Tradeoff point: A property that affects two or more quality attributes in opposite directions.
"Async messaging improves availability (++) but hinders latency (--). These are in direct tension."
Document each explicitly:
### Sensitivity Points
- S1: Connection pool size in Approach A — small change flips latency from fail to pass
- S2: Message batch size in Approach B — affects both throughput and consistency
### Tradeoff Points
- T1: Sync vs async communication — latency ↔ availability
- T2: Schema coupling — modifiability ↔ type safety
- T3: Replication factor — availability ↔ consistency ↔ cost5. Catalog Risks
A risk is an architecturally significant decision that may cause problems. A non-risk is a good decision worth documenting.
| ID | Description | Affected Scenarios | Severity |
| R1 | Single DB = SPOF for all services | Availability scenarios | HIGH |
| R2 | Async retry storm under failure | Throughput, availability | MEDIUM |
| NR1 | Circuit breakers on all external calls | Availability | — |
| NR2 | Schema versioning from day one | Modifiability | — |
6. Decision Matrix
Weight quality attributes, score approaches, produce recommendation.
| Quality Attribute | Weight | Approach A | Approach B | Approach C |
|-------------------|--------|-----------|-----------|-----------|
| Latency (p99) | 0.30 | 8 | 3 | 7 |
| Modifiability | 0.25 | 4 | 9 | 7 |
| Availability | 0.25 | 3 | 8 | 6 |
| Security | 0.10 | 6 | 6 | 6 |
| Ops complexity | 0.10 | 9 | 4 | 6 |
| **Weighted Total**| | **5.65** | **6.15** | **6.60** |Scores 1-10. Weights must sum to 1.0. Ask user to validate weights before scoring.
7. Recommend with Caveats
State recommendation clearly. Include:
- Which tradeoff points the recommendation accepts
- Which risks it carries and how to mitigate
- Under what changed assumptions the recommendation would flip
- Sensitivity points to monitor post-implementation
Template:
"Recommend Approach C (weighted 6.60). Accepts T1 tradeoff (moderate latency for availability). Carries R2 risk — mitigate with backpressure. If latency weight increases to 0.40+, Approach A wins. Monitor S1 (pool sizing) in production."
Quick Reference
| Step | Output | Key Question |
| Utility tree | Prioritized scenarios | "What matters and how much?" |
| Approach map | Candidate table | "What are our options?" |
| Impact analysis | Scenario × approach matrix | "How does each option affect each concern?" |
| Sensitivity/tradeoff | S and T point catalog | "Where are the tensions?" |
| Risk catalog | Risk/non-risk table | "What could go wrong?" |
| Decision matrix | Weighted scores | "Which approach wins given our priorities?" |
| Recommendation | Decision + caveats | "What do we accept and what do we watch?" |
Common Mistakes
| Mistake | Fix |
| Skipping utility tree — jumping to solutions | Quality scenarios must exist before evaluating approaches |
| Equal weights on everything | Force ranking — if everything matters equally, nothing does |
| Missing tradeoff points | Every ++ paired with a -- elsewhere is a tradeoff — find them |
| Scoring without scenarios | Scores must trace to specific quality attribute scenarios |
| Ignoring sensitivity points | These are where small implementation choices swing outcomes |
| Presenting matrix without recommendation | Be opinionated — state which approach and why |
| Forgetting reversal conditions | Always state when the recommendation would change |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

