Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Guide architecture decisions using ADRs, trade-off analysis, pattern catalogs, and C4 diagrams for layered, hexagonal, event-driven, and CQRS patterns.
.claude/skills/williamzujkowski-architecture-decision-framework/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 26% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 19% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 40% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 181% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 73% | 0% |
Invoke when:
Outputs: Complete ADR, trade-off analysis, C4 diagrams, pattern recommendations.
NOW_ET using NIST/time.gov semantics (America/New_York, ISO-8601).decision_context is non-empty and describes business/technical problemconstraints include at least one quality attribute (performance, security, scalability, maintainability)stakeholders list includes technical decision-makersNOW_ET:When: Clear pattern match, minimal trade-offs, single stakeholder concern.
decision_context to one of:markdown # ADR-NNN: Decision Title]
Status: Proposed | Accepted | Deprecated | Superseded
## Context Business/technical context in 2-3 sentences]
## Decision Pattern/approach chosen]
## Consequences Positive: 1-2 benefits] Negative: 1-2 drawbacks]
When: Multiple patterns viable, significant trade-offs, cross-team impact.
For each candidate pattern (Layered, Hexagonal, Event-Driven, CQRS):
decision_contextcurrent_architecture In the context of [functional requirement or component], facing [non-functional requirement or quality concern], we decided for [chosen pattern/approach] and neglected [alternative 1], [alternative 2] to achieve [benefits and requirement satisfaction], accepting that [drawbacks and consequences].
Common hybrid patterns:
When: Greenfield complex system, high-risk migration, multiple conflicting stakeholders.
Include: Context, Decision Drivers, Considered Options, Decision Outcome, Pros/Cons, Links, Technical Story.
current_architectureFor Layered, Hexagonal, Event-Driven, CQRS:
decision_context is vague or lacks quality attribute constraints → Request clarificationcurrent_architecture migration cost > 2x implementation benefit → Recommend incremental strangler patternRequired Fields:
json{ "adr": { "format": "nygard | madr | y-statement", "title": "ADR-NNN: [Title]", "status": "proposed | accepted | deprecated | superseded", "context": "string", "decision": "string", "consequences": ["array of strings"], "date": "ISO-8601", "author": "string" }, "trade_off_analysis": { "method": "atam | cost-benefit | quality-attribute-matrix", "patterns_evaluated": ["array of pattern names"], "sensitivity_points": ["array"], "trade_off_points": ["array"], "risks": ["array"], "recommendation": "string" }, "c4_diagrams": { "context": "PlantUML or Mermaid syntax", "container": "PlantUML or Mermaid syntax (optional)", "component": "PlantUML or Mermaid syntax (optional)" }, "pattern_recommendation": { "primary": "pattern name", "rationale": "string (≤200 chars)", "alternatives": ["array of pattern names"], "migration_strategy": "greenfield | strangler | big-bang | phased" } }
Constraints:
NOW_ETyaml# T2 Example: Microservices API Gateway Decision decision_context: "E-commerce platform migrating from monolith to microservices" constraints: - performance: "< 200ms latency for 95th percentile" - scalability: "Handle 50k concurrent users" - maintainability: "Independent team deployment" output: adr_format: y-statement content: | In the context of migrating monolithic e-commerce to microservices, facing the need for unified API entry point with <200ms latency, we decided for API Gateway pattern with event-driven backend and neglected direct client-to-service calls, service mesh only, to achieve centralized auth/rate-limiting and loose coupling, accepting that gateway becomes potential bottleneck requiring HA design. trade_off_analysis: patterns_evaluated: [hexagonal, event-driven, cqrs] recommendation: "Hexagonal (services) + Event-Driven (inter-service)" trade_offs: - "Performance vs Maintainability: Event async adds latency but improves decoupling" - "Complexity vs Scalability: More components but independent scaling"
NOW_ET datesdecision_context and constraintsADR Templates & Practices:
Architecture Patterns:
C4 Model:
Trade-Off Analysis:
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-05 | fail→pass | 19,869 | 12,073 | -39% | 1 | 1 | 0% | 4,375 | 5,503 | +26% | 0 | 0 | — |
case-06 | fail→fail | 22,115 | 19,053 | -14% | 1 | 1 | 0% | 4,368 | 7,204 | +65% | 0 | 0 | — |
case-01 | fail→pass | 20,355 | 11,211 | -45% | 1 | 1 | 0% | 4,489 | 5,330 | +19% | 0 | 0 | — |
case-02 | fail→pass | 17,631 | 13,008 | -26% | 1 | 1 | 0% | 4,134 | 5,794 | +40% | 0 | 0 | — |
case-03 | pass→pass | 21,303 | 8,953 | -58% | 1 | 1 | 0% | 4,547 | 5,030 | +11% | 0 | 0 | — |
case-04 | fail→pass | 7,718 | 9,428 | +22% | 1 | 1 | 0% | 1,697 | 4,762 | +181% | 0 | 0 | — |
case-07 | fail→fail | 13,018 | 9,909 | -24% | 1 | 1 | 0% | 2,755 | 5,024 | +82% | 0 | 0 | — |
case-08 | fail→pass | 15,077 | 10,990 | -27% | 1 | 1 | 0% | 3,105 | 5,357 | +73% | 0 | 0 | — |
case-09 | fail→fail | 10,267 | 9,945 | -3% | 1 | 1 | 0% | 2,154 | 5,068 | +135% | 0 | 0 | — |
case-10 | fail→fail | 8,343 | 7,531 | -10% | 1 | 1 | 0% | 1,746 | 4,575 | +162% | 0 | 0 | — |
case-11 | pass→pass | 12,272 | 6,268 | -49% | 1 | 1 | 0% | 2,245 | 4,043 | +80% | 0 | 0 | — |
case-12 | fail→pass | 13,801 | 10,874 | -21% | 1 | 1 | 0% | 2,827 | 5,259 | +86% | 0 | 0 | — |
case-13 | pass→pass | 25,827 | 11,859 | -54% | 1 | 1 | 0% | 5,667 | 5,426 | -4% | 0 | 0 | — |
case-14 | pass→pass | 16,771 | 15,709 | -6% | 1 | 1 | 0% | 3,335 | 6,437 | +93% | 0 | 0 | — |
case-15 | fail→pass | 8,717 | 9,899 | +14% | 1 | 1 | 0% | 1,894 | 5,020 | +165% | 0 | 0 | — |
case-16 | pass→pass | 21,261 | 14,358 | -32% | 1 | 1 | 0% | 4,665 | 5,935 | +27% | 0 | 0 | — |
case-17 | fail→pass | 12,071 | 8,816 | -27% | 1 | 1 | 0% | 2,494 | 4,627 | +86% | 0 | 0 | — |
case-18 | fail→pass | 11,582 | 12,961 | +12% | 1 | 1 | 0% | 2,304 | 5,448 | +136% | 0 | 0 | — |
case-19 | fail→pass | 13,039 | 13,018 | -0% | 1 | 1 | 0% | 3,076 | 5,697 | +85% | 0 | 0 | — |
case-20 | pass→fail | 12,302 | 14,835 | +21% | 1 | 1 | 0% | 2,541 | 5,837 | +130% | 0 | 0 | — |
case-21 | pass→fail | 11,424 | 36,757 | +222% | 1 | 1 | 0% | 2,540 | 5,219 | +105% | 0 | 0 | — |
case-22 | pass→fail | 7,964 | 14,189 | +78% | 1 | 1 | 0% | 1,771 | 5,933 | +235% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +32 percentage points is the difference between those two pass rates over the 21 comparable cases. 3 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.