Token导航 LogoToken导航TokenDH.com
研究检索external-serviceclawhub未标认证来源可访问clear审计通过

bookforge-architecture-tradeoff-analyzerBookforge 架构权衡分析器

Agent Skill

bookforge-architecture-tradeoff-analyzer 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

2,889

周安装

118

GitHub Stars

公开资料未说明

下载量

935
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:bookforge-architecture-tradeoff-analyzer(Bookforge 架构权衡分析器)
来源仓库:https://github.com/quochungto/bookforge-architecture-tradeoff-analyzer
安装命令:
openclaw skills install bookforge-architecture-tradeoff-analyzer
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install bookforge-architecture-tradeoff-analyzer

简介

bookforge-architecture-tradeoff-analyzer 分析质量属性间的权衡关系与折中方案。

  • 适用于架构模式选型或多方案对比决策场景。
  • 输出权衡矩阵与敏感性分析图表。bookforge-architecture-tradeoff-analyzer 属于研究检索类 Skill,可作为该场景下的辅助能力补充。
  • 需明确定义各属性度量标准方可进行比较。
  • 结果为定性指导,不承诺最优解。

SKILL.md

name
architecture-tradeoff-analyzer
description
Systematically analyze trade-offs across quality attribute dimensions for architecture decisions. Use this skill whenever the user is comparing architecture options, weighing competing quality attributes (performance vs scalability, simplicity vs flexibility), making any structural technology decision, evaluating monolith vs distributed, choosing communication patterns, or asking "what are the trade-offs?" — even if they don't explicitly say "trade-off analysis.
version
1.0.0
homepage
https://github.com/bookforge-ai/bookforge-skills/tree/main/books/fundamentals-of-software-architecture/skills/architecture-tradeoff-analyzer
metadata
{"openclaw":{"emoji":"📚","homepage":"https://github.com/bookforge-ai/bookforge-skills"}}
status
draft
source-books
title
Fundamentals of Software Architecture
authors
["Mark Richards", "Neal Ford"]
chapters
[1, 2, 4, 5, 18, 19]
tags
[software-architecture, architecture, trade-offs, decision-making, quality-attributes]
depends-on
[] # Foundation skill — no dependencies
execution
tier
1
mode
full
inputs
description
Architecture decision context from the user — what options they're considering and why
tools-required
[Read, Write]
tools-optional
[Grep, Glob]
mcps-required
[]
environment
Any agent environment. If a codebase exists, can read it for context.

Architecture Trade-off Analyzer

When to Use

You're in a situation where an architecture decision needs to be made and there are competing concerns. Typical triggers:

  • The user is choosing between architecture styles (monolith vs microservices, event-driven vs request-reply)
  • The user mentions competing quality attributes ("we need it fast AND scalable AND simple")
  • The user is presenting a single option as "the best" — they haven't analyzed trade-offs yet
  • The user is stuck in analysis paralysis or decision avoidance
  • An architecture decision needs to be documented with rationale

Before starting, verify:

  • Is there actually a decision to make? (If the user is just asking for information, explain concepts instead)
  • Are there at least 2 viable options to compare? (If only one option exists, help identify alternatives first)

Context

Required Context (must have before proceeding)

  • The decision to make: What architectural choice is being considered? Ask the user if not stated.
  • At least 2 viable options: You can't analyze trade-offs with only one option. If the user presents just one, help them identify at least one alternative.

Observable Context (gather from environment if available)

  • Codebase structure: If a project exists, scan for architecture patterns already in use

→ Look for: directory structure, config files (docker-compose, k8s manifests), service boundaries → If unavailable: treat as greenfield

  • Existing architecture docs: Check for ADRs, architecture diagrams, tech specs

→ Look for: docs/, architecture/, adr/, *.adr.md, README architecture sections → If unavailable: start from the user's verbal description

  • Team and operational context: Team size, deployment frequency, cloud provider, budget constraints

→ If unavailable: ask the user for the top constraints

Default Assumptions

  • If no quality attributes specified → ask the user to pick their top 3 driving concerns
  • If no team context → assume a small team (3-8 developers)
  • If no existing architecture → assume greenfield project
  • If no deployment context → assume cloud-native

Process

Step 1: Frame the Decision

ACTION: Clearly state the architectural decision that needs to be made. Name the competing options.

WHY: Fuzzy decisions produce fuzzy analysis. "Should we use microservices?" is too vague. "Should our order processing system use microservices or a modular monolith, given that we need independent scaling of the payment module?" is a decision you can actually analyze. Framing also prevents scope creep — the analysis stays focused on THIS decision.

IF the user hasn't specified options → help them enumerate at least 2-3 viable alternatives before proceeding.

Step 2: Identify Relevant Quality Attributes

ACTION: Determine which architecture characteristics (quality attributes) are affected by this decision. Focus on the user's top 3 driving characteristics.

WHY: Not all quality attributes matter for every decision. Analyzing 15 attributes produces noise. The "Top-3 Rule" from architecture practice says: keep driving characteristics to three maximum. This forces prioritization and makes trade-offs visible. Each additional characteristic you design support for complicates the overall system — like flying a helicopter where every control affects every other control.

Common quality attribute categories:

  • Operational: availability, scalability, performance, reliability, elasticity
  • Structural: maintainability, extensibility, modularity, testability, deployability
  • Cross-cutting: security, observability, simplicity, cost, time-to-market

For the full taxonomy, see references/quality-attributes.md.

IF the user says "all of them are important" → push back. Ask: "If you could only optimize for 3, which would they be?" This reveals the real priorities.

Step 3: Analyze Each Option's Advantages

ACTION: For each architectural option, list what it does WELL across the identified quality attributes.

WHY: Start with advantages to build a fair picture. Most teams already lean toward one option — this step validates their intuition and builds confidence that you understand the options before challenging them.

Step 4: Hunt for the Negatives

ACTION: For each option, actively search for disadvantages, risks, and hidden costs. This is the critical step.

WHY: "Programmers know the benefits of everything and the trade-offs of nothing. Architects need to understand both." The natural human bias is to see advantages of the preferred option and disadvantages of alternatives. An architect's core job is to overcome this bias. If you can't articulate the downsides of your chosen approach, you haven't analyzed it deeply enough. If you think there are no trade-offs, you haven't found them yet (First Law, Corollary 1).

Probe for:

  • What gets WORSE when you optimize for the advantages?
  • What new failure modes does this option introduce?
  • What operational burden does it create?
  • What happens when the system scales 10x?
  • What coupling does this option hide?

Step 5: Build the Trade-off Matrix

ACTION: Create a comparison table with options as columns and quality attributes as rows. For each cell, mark whether the option supports (+), hurts (-), or is neutral (=) for that attribute, with a brief justification.

WHY: A visual matrix makes trade-offs undeniable. When you see that Option A is (+) on scalability but (-) on simplicity and (-) on cost, while Option B is the reverse, the decision becomes a conscious prioritization rather than a gut feeling. This is also the primary artifact stakeholders can review.

Format:

| Quality Attribute | Option A      | Option B      |
|-------------------|---------------|---------------|
| Scalability       | + (why)       | - (why)       |
| Simplicity        | - (why)       | + (why)       |
| Cost              | - (why)       | + (why)       |
| Deployability     | + (why)       | = (neutral)   |

Step 6: Identify Synergies and Conflicts

ACTION: Note where quality attributes reinforce each other (synergies) or conflict (tensions) within each option.

WHY: Trade-offs aren't just between options — they exist WITHIN options too. Security almost always hurts performance. Scalability often conflicts with simplicity. Recognizing these internal tensions prevents surprise later. It also reveals "least worst" opportunities — options where the internal conflicts are most manageable for your specific context.

Step 7: Apply the "Least Worst" Principle

ACTION: Recommend an option based on which has the most acceptable set of trade-offs for THIS specific context. Frame as "least worst" not "best."

WHY: There is no "best" architecture — only trade-offs. The goal is the option whose downsides are most tolerable given the team's constraints, business goals, and risk appetite. Framing as "least worst" sets honest expectations: you're choosing which problems you'd rather have, not eliminating problems. This prevents "Covering Your Assets" — the anti-pattern where architects avoid decisions out of fear of being wrong.

The decision depends on: deployment environment, business drivers, company culture, budgets, timeframes, developer skill set, and operational maturity.

After stating the recommendation, always include a "Context Sensitivity" analysis: explicitly state what would change the recommendation. For example: "If the team had 2+ years of microservices experience, we'd recommend Option A instead." This prevents the recommendation from being treated as universal truth — it's context-dependent, and the conditions under which it would flip should be transparent.

Reference named anti-patterns when relevant: When the analysis reveals a decision-making dysfunction (fear of deciding, repeated debates, lost rationale), name the anti-pattern explicitly:

  • Covering Your Assets — avoiding decisions out of fear of being wrong
  • Groundhog Day — same decisions debated repeatedly because rationale wasn't recorded
  • Email-Driven Architecture — decisions lost because they were communicated only via email, not documented
  • Analysis Paralysis — over-analyzing without deciding (the flip side of Covering Your Assets)

Naming the anti-pattern helps teams recognize and break the pattern.

Step 8: Document the Decision

ACTION: Produce a Trade-off Analysis Report (see Output format below). If the decision is architecturally significant, also produce an ADR summary.

WHY: "Why is more important than how" (Second Law). Future developers can look at a system and figure out HOW it's structured. What they can't figure out is WHY those choices were made. Without documentation, teams fall into the "Groundhog Day" anti-pattern — the same decisions get debated repeatedly because nobody recorded the rationale.

A decision is architecturally significant if it affects: structure, nonfunctional characteristics, dependencies, interfaces, or construction techniques.

Inputs

  • The architectural decision to analyze (from user)
  • Quality attributes to evaluate (from user, or discovered in Step 2)
  • Optionally: existing codebase, architecture docs, team context

Outputs

Trade-off Analysis Report

# Trade-off Analysis: {Decision Title}

## Decision
{Clear statement of the decision being analyzed}

## Options Considered
1. **{Option A}** — {one-line description}
2. **{Option B}** — {one-line description}
3. **{Option C}** — {if applicable}

## Driving Quality Attributes
1. {Top priority attribute}
2. {Second priority}
3. {Third priority}

## Trade-off Matrix

| Quality Attribute | Option A | Option B | Option C |
|-------------------|----------|----------|----------|
| {Attribute 1}     | + reason | - reason | = reason |
| {Attribute 2}     | - reason | + reason | + reason |
| {Attribute 3}     | + reason | = reason | - reason |

## Synergies and Conflicts
- {Option A}: {attribute X} reinforces {attribute Y} because...
- {Option B}: {attribute X} conflicts with {attribute Z} because...

## Recommendation
**{Recommended option}** — the least worst choice for this context because:
- {Primary justification tied to top driving attribute}
- {Secondary justification}
- {Acknowledged downsides and why they're acceptable}

## Risks of This Choice

| Risk | Likelihood | Impact | Mitigation |
|------|-----------|--------|------------|
| {Risk 1} | Low/Med/High | Low/Med/High | {Concrete mitigation} |
| {Risk 2} | Low/Med/High | Low/Med/High | {Concrete mitigation} |

## Context Sensitivity
This recommendation assumes: {key assumptions}.
- **If {constraint X changed}** → we'd recommend {Option Y} instead because {reason}
- **If {constraint Z changed}** → the trade-off balance shifts toward {Option W} because {reason}

## Architecture Decision Record (if architecturally significant)
- **Status:** Proposed
- **Context:** {forces at play}
- **Decision:** {active voice, with full WHY justification}
- **Consequences:** {positive AND negative trade-offs}

Key Principles

  • Everything is a trade-off — If you think you've found something that isn't, you haven't looked hard enough. This isn't pessimism; it's the foundational reality of architecture that enables honest decision-making.
  • Why over how — Document the reasoning, not just the outcome. Future developers can reverse-engineer how a system works; they can't reverse-engineer why it was built that way. WHY prevents repeated debates.
  • Least worst, not best — Never shoot for the "best" architecture. Aim for the one with the most acceptable set of trade-offs for your specific context. This framing sets honest expectations and prevents decision paralysis.
  • Top-3 quality attributes — Resist the urge to optimize for everything. Each additional quality attribute you support complicates the system. Force stakeholders to choose their top 3 driving characteristics.
  • Hunt the negatives — The value of a trade-off analysis is in the disadvantages you discover, not the advantages. Advantages are easy to see. Disadvantages require deliberate searching. An analysis with no negatives is an incomplete analysis.
  • Context is everything — "It depends" is a valid answer. The same trade-off analysis on the same options will produce different recommendations for different teams, budgets, timelines, and business goals. Never copy an architecture decision from another project without re-analyzing the trade-offs in YOUR context. Always state what would change the recommendation if constraints shifted.
  • Name the dysfunction — When you spot a decision-making anti-pattern (fear of deciding, repeated debates, lost decisions), name it explicitly. Covering Your Assets, Groundhog Day, Email-Driven Architecture, and Analysis Paralysis are common patterns that teams fall into. Naming the pattern is the first step to breaking it.

Examples

Scenario: Messaging pattern for auction system Trigger: "Should we use pub/sub topics or point-to-point queues for our bidding system?" Process: Framed decision as topics vs queues for bid distribution. Identified driving attributes: extensibility, security, monitoring. Built matrix showing topics excel at extensibility and decoupling, but queues excel at security (isolated access), heterogeneous contracts (per-consumer formats), and monitoring (per-queue metrics). Identified conflict: extensibility vs security within topics. Output: Recommended queues for the payment and analytics services (security-critical), topics for the bid streaming service (extensibility-critical). Trade-off: accept tighter coupling in exchange for security and monitoring control.

Scenario: Monolith vs microservices for sandwich ordering app Trigger: "We're building a simple ordering system but customization per franchise is key. Microservices?" Process: Framed as modular monolith vs microkernel. Top 3 attributes: customization, simplicity, cost. Matrix showed both options are acceptable — modular monolith is simpler and cheaper but customization requires explicit override design; microkernel maps naturally to customization (plug-in per franchise) but adds infrastructure complexity. Applied least-worst: for a small team with budget constraints, modular monolith with a customization override endpoint is the least worst — it's simpler, cheaper, and customization can be explicitly designed with fitness functions. Output: Trade-off analysis report + ADR recommending modular monolith with override endpoint. Explicitly documented the trade-off: accepting manual customization management in exchange for simplicity and low cost.

Scenario: Synchronous vs asynchronous for high-scale system Trigger: "We're redesigning our auction platform. REST everywhere or should we mix in message queues?" Process: Framed as synchronous-default vs async-where-needed. Top 3: reliability, scalability, simplicity. Matrix: sync is simpler and easier to debug but creates cascading failures under load; async scales better and buffers spikes but introduces data synchronization complexity, potential deadlocks, and harder debugging. Applied context: the payment service needs reliability buffering (many auctions ending simultaneously), but the session management service is simple request/response. Output: Recommended mixed approach: synchronous by default (simpler), asynchronous for payment processing and bid capture (reliability-critical, spike-prone). Documented the "use synchronous by default, asynchronous when necessary" principle.

References

License

This skill is licensed under CC-BY-SA-4.0. Source: BookForge — Fundamentals of Software Architecture by Mark Richards, Neal Ford.

Related BookForge Skills

This skill is standalone. Browse more BookForge skills: bookforge-skills

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

71%
按下载量换算664

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

external-service

该 Skill 可能调用第三方服务、云服务或外部模型 API,使用前需要确认账号、额度、数据发送范围和服务条款。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills