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

bookforge-architecture-decision-record-creatorBookforge 建筑决策记录创建者

Agent Skill

bookforge-architecture-decision-record-creator 用于整理文档、README、Markdown 和说明材料,适合在 OpenClaw 中需要把零散信息整理成结构清晰的文档时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

3,060

周安装

125

GitHub Stars

公开资料未说明

下载量

980
OpenClaw

安装说明

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

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

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

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

命令行安装

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

ClawHubOpenClaw
openclaw skills install bookforge-architecture-decision-record-creator

简介

bookforge-architecture-decision-record-creator 生成七部分结构化架构决策记录 (ADR)。

  • 适用于记录关键架构选择及其理由,便于团队协作追溯。
  • 模板包含现状、选项、决策与后果等要素。
  • 输出为 Markdown 格式,可直接纳入文档仓库。
  • 决策内容需人工确认,工具仅提供格式化框架。

SKILL.md

name
architecture-decision-record-creator
description
Create structured Architecture Decision Records (ADRs) with 7 sections to document architecture decisions with full justification. Use this skill whenever the user has made or needs to make an architecture decision, wants to document why a technical choice was made, is choosing between technologies or patterns, needs to create an ADR, or is experiencing repeated debates about past decisions — even if they don't explicitly mention "ADR" or "architecture decision record.
version
1.0.0
homepage
https://github.com/bookforge-ai/bookforge-skills/tree/main/books/fundamentals-of-software-architecture/skills/architecture-decision-record-creator
metadata
{"openclaw":{"emoji":"📚","homepage":"https://github.com/bookforge-ai/bookforge-skills"}}
status
draft
depends-on
source-books
title
Fundamentals of Software Architecture
authors
["Mark Richards", "Neal Ford"]
chapters
[19]
tags
[software-architecture, architecture, decisions, documentation, adr, governance]
execution
tier
1
mode
full
inputs
description
An architecture decision that needs to be documented — the choice, the context, and the alternatives
tools-required
[Write]
tools-optional
[Read, Grep, Glob]
mcps-required
[]
environment
Any agent environment. If a codebase exists, can check for existing ADRs and suggest numbering.

Architecture Decision Record Creator

When to Use

An architecture decision has been made (or needs to be made) and it should be documented. Typical situations:

  • A technology or pattern choice has been decided — needs formal documentation
  • A decision keeps getting revisited ("didn't we already decide this?") — the Groundhog Day anti-pattern
  • A stakeholder asks "why did we choose X?" and nobody can answer — missing documentation
  • Before implementing a significant technical change — document BEFORE building
  • An existing decision needs to be superseded by a new one

Before starting, verify:

  • Is there actually a DECISION to document? (If it's still an open question, use architecture-tradeoff-analyzer first to analyze trade-offs, then come back here to document the result)
  • Is this decision architecturally significant? (Step 1 below helps determine this)

Context

Required Context (must have before proceeding)

  • The decision: What was decided (or what needs to be decided). Ask the user if not stated.
  • The alternatives: What options were considered. If only one option was considered, that's a red flag — push back and identify at least one alternative.

Observable Context (gather from environment if available)

  • Existing ADRs: Check for prior decisions in the project

→ Look for: docs/adr/, docs/decisions/, architecture/, *.adr.md, files matching ADR-*.md or *-adr.md → If found: determine the next sequential number, check for related/conflicting prior decisions → If none: this will be ADR 1, suggest establishing an ADR directory

  • Codebase context: What technologies, patterns, and structures currently exist

→ Look for: package.json, pyproject.toml, docker-compose, CI configs → This informs the Context section of the ADR

Default Assumptions

  • If no existing ADR numbering → start at ADR 1
  • If no approval process exists → default to "Accepted" status (solo dev or small team)
  • If compliance mechanism is unclear → suggest manual review as the starting point

Process

Step 1: Assess Architectural Significance

ACTION: Determine if this decision is architecturally significant by evaluating against 5 dimensions.

WHY: Not every technical decision needs an ADR. Over-documenting trivial choices creates noise and dilutes the value of ADRs. A decision is architecturally significant if it affects at least one of these dimensions — and it's the significance that justifies the effort of formal documentation.

Evaluate the decision against:

DimensionQuestion
StructureDoes this affect the patterns or styles of architecture?
Nonfunctional characteristicsDoes this impact a quality attribute that matters to the system?
DependenciesDoes this create or change coupling between components/services?
InterfacesDoes this affect how services or components are accessed?
Construction techniquesDoes this impact platforms, frameworks, tools, or processes?

IF the decision affects at least one dimension → it's architecturally significant, proceed to write the ADR. IF it affects none → it's a technical implementation detail, not an architecture decision. Document it in code comments or a tech spec instead.

IMPORTANT: Show your work. Include the significance assessment as a visible section in your output BEFORE the ADR itself. This is not just an internal check — it demonstrates rigor and helps stakeholders understand why this decision warrants formal documentation.

Output the assessment as:

## Significance Assessment
| Dimension | Affected? | How |
|-----------|:---------:|-----|
| Structure | Yes/No | {explanation} |
| Nonfunctional characteristics | Yes/No | {explanation} |
| Dependencies | Yes/No | {explanation} |
| Interfaces | Yes/No | {explanation} |
| Construction techniques | Yes/No | {explanation} |

**Verdict:** Architecturally significant — affects {N} of 5 dimensions.

CAUTION: Don't assume technology decisions aren't architectural. If choosing Kafka over RabbitMQ directly supports a performance or scalability characteristic, it IS an architecture decision — the technology choice supports the architecture.

Step 2: Determine Status

ACTION: Set the appropriate ADR status based on the decision's approval context.

WHY: Status isn't just metadata — it communicates where the decision is in its lifecycle and what action is needed. Setting the wrong status (e.g., "Accepted" when approval is needed) can lead to unauthorized implementations. Setting "Proposed" when the architect can self-approve adds unnecessary bureaucracy.

StatusWhen to use
ProposedDecision needs approval from a governance body or senior architect
AcceptedDecision is approved and ready for implementation
Superseded by ADR NDecision has been replaced (link to the new ADR)
RFC (with deadline)Architect wants broader input before deciding. MUST include a deadline date — otherwise it becomes an open-ended discussion that never concludes (Analysis Paralysis).

Escalation triggers — the decision should be Proposed (not self-approved) when:

  • Cost exceeds the team's authority (significant purchases, licensing)
  • Cross-team impact — it affects other teams or systems
  • Security implications — any security-relevant change needs governance review

Step 3: Write the Context Section

ACTION: Describe the forces at play — what situation is forcing this decision? Include the alternatives considered.

WHY: Context serves double duty: it explains WHY the decision is needed AND documents the architecture. A future developer reading this ADR learns both the decision and the architectural context it applies to. Keep it concise — if alternatives need detailed analysis, add a separate Alternatives section or reference a trade-off analysis.

Format: A clear, concise statement of the situation + the alternatives.

Good: *"The order service must pass information to the payment service. This could be done using REST (synchronous) or asynchronous messaging via Kafka."*

Bad: *"We need to figure out how services should communicate."* (Too vague — which services? What are the options?)

Before writing context, diagnose the situation for anti-patterns. Check if the scenario shows signs of:

  • Covering Your Assets — Has this decision been deferred repeatedly? Is the architect afraid to commit?
  • Groundhog Day — Is this a decision that was already made but nobody recorded WHY, so it's being revisited?
  • Email-Driven Architecture — Was a prior decision made but lost in email/Slack, so it's being re-made?

If an anti-pattern is present, NAME IT explicitly in the Context section and note how this ADR addresses it. For example: *"This decision is being re-made because the original rationale (ADR-12) did not document WHY the monolith was chosen — a classic Groundhog Day anti-pattern. This ADR includes full justification to prevent recurrence."*

Step 4: Write the Decision Section

ACTION: State the decision in active, commanding voice with full justification emphasizing WHY.

WHY: "Why is more important than how" (Second Law of Software Architecture). Anyone can look at the system and figure out HOW it works. What they can't figure out is WHY it was built that way. Without WHY, future developers may undo good decisions — like the architect who replaced gRPC with messaging for "better decoupling," not knowing the original gRPC choice was specifically to reduce latency, causing timeouts throughout the system.

  • Use affirmative, commanding voice: "We will use..." not "I think we should..."
  • Lead with the decision, then justify
  • Include BOTH technical AND business justification
  • Apply the business value litmus test: if the decision provides no business value (cost savings, time to market, user satisfaction, or strategic positioning), reconsider whether it should be made at all

Step 5: Write the Consequences Section

ACTION: Document BOTH positive and negative impacts of the decision.

WHY: Every architecture decision has trade-offs — this is the First Law. Documenting only positives is dishonest and sets up future surprises. Documenting negatives explicitly forces the architect to think about whether the impacts outweigh the benefits. It also prevents the Groundhog Day anti-pattern — when someone questions the decision later, the consequences are already documented with the reasoning.

For each consequence, indicate whether it's positive or negative:

  • Positive: What improves because of this decision?
  • Negative: What gets worse or becomes more complex? What new risks are introduced?
  • Trade-off: What are we accepting in exchange for the benefits?

Step 6: Write the Compliance Section

ACTION: Specify HOW the decision will be measured and governed.

WHY: A decision without enforcement is a suggestion. Many architecture decisions erode over time because nobody checks whether they're being followed. The Compliance section forces the architect to think about governance at decision time, not as an afterthought. This is the difference between "we decided to use layered architecture" and "we decided to use layered architecture, AND here's the ArchUnit test that enforces it."

Two types of compliance:

TypeWhen to useExample
ManualDecision is hard to check automatically, involves judgment"Review service boundaries during quarterly architecture review"
Automated fitness functionDecision can be verified programmatically"ArchUnit test ensures shared services reside in the services layer"

For automated compliance, specify:

  • How the fitness function would be written
  • Where the test lives
  • How and when it's executed (CI pipeline, pre-commit, scheduled)

Step 7: Write the Notes Section

ACTION: Add metadata: original author, approval date, last modified, approvers, supersession history.

WHY: Notes provide the audit trail. When a decision is questioned months later, the Notes section shows who made it, who approved it, and what changed. This is especially important in regulated environments where decision provenance matters.

Inputs

  • The decision to document (from user or from a completed trade-off analysis)
  • Context: what alternatives were considered, what constraints apply
  • Optionally: existing ADR directory for numbering and cross-referencing

Outputs

Architecture Decision Record

## Significance Assessment
| Dimension | Affected? | How |
|-----------|:---------:|-----|
| Structure | Yes/No | {explanation} |
| Nonfunctional characteristics | Yes/No | {explanation} |
| Dependencies | Yes/No | {explanation} |
| Interfaces | Yes/No | {explanation} |
| Construction techniques | Yes/No | {explanation} |

**Verdict:** Architecturally significant — affects {N} of 5 dimensions.

---

# ADR {N}: {Short Descriptive Title}

## Status
{Proposed | Accepted | Superseded by ADR N | RFC, Deadline YYYY-MM-DD}

## Context
{Clear, concise description of the situation and forces at play.
What alternatives were considered?}

## Decision
{Active voice. Affirmative. Full justification emphasizing WHY.
Both technical and business justification.}

## Consequences

### Positive
- {What improves}

### Negative
- {What gets worse or becomes more complex}

### Trade-offs
- {What we're accepting in exchange}

## Compliance
{How this decision will be enforced}
- **Type:** Manual review | Automated fitness function
- **Mechanism:** {Specific enforcement mechanism}
- **Frequency:** {When/how often compliance is checked}

## Notes
- **Author:** {name}
- **Date:** {YYYY-MM-DD}
- **Approved by:** {name(s), if applicable}
- **Last modified:** {YYYY-MM-DD}
- **Supersedes:** {ADR N, if applicable}
- **Superseded by:** {ADR N, if applicable}

Key Principles

  • WHY over HOW — The Decision section's most powerful aspect is the justification. Anyone can see how a system works; only the ADR explains why it was built that way. Without WHY, good decisions get undone by well-meaning but uninformed future developers.
  • Decisions without enforcement are suggestions — The Compliance section is what separates an ADR from a wish. If you can automate compliance (fitness functions, ArchUnit tests), do it. If not, schedule manual reviews. But never leave enforcement unspecified.
  • Both positive AND negative consequences — Every decision has trade-offs. Documenting only positives is dishonest. The negative consequences, acknowledged upfront, prevent surprise later and provide ammunition when someone asks "did you consider X?"
  • Name the anti-pattern when you see it — If a team avoids deciding (Covering Your Assets), revisits decisions repeatedly (Groundhog Day), or loses decisions in email (Email-Driven Architecture), name the dysfunction. These three anti-patterns form a progressive chain — overcoming one often reveals the next.
  • Last responsible moment, not last possible moment — Decide when you have enough information to justify the choice, but before development teams are blocked. Too early = premature commitment. Too late = analysis paralysis. The sweet spot is "last responsible moment."
  • Business value litmus test — If a decision provides no business value (cost, time to market, user satisfaction, strategic positioning), reconsider making it. Architecture decisions exist to serve business outcomes, not architectural purity.

Examples

Scenario: Documenting a messaging decision for an auction system Trigger: "We decided to use asynchronous messaging between the order and payment services. Can you write an ADR for this?" Process: Assessed significance — affects structure (async vs sync), dependencies (service coupling), and nonfunctional characteristics (performance, reliability). Set status: Accepted (small team, self-approved). Context: order → payment communication, REST vs async messaging. Decision: "We will use asynchronous messaging via RabbitMQ" with WHY: reduces latency from 3,100ms to 25ms for review posting, decouples services. Consequences: positive (responsiveness, decoupling), negative (complex error handling for bad content). Compliance: automated test verifying no direct REST calls between these services. Output: Complete ADR with all 7 sections, filed as ADR-42.

Scenario: Superseding a previous technology decision Trigger: "We originally chose gRPC for service communication but now want to switch to messaging. There's an existing ADR for the gRPC decision." Process: Assessed significance — affects structure and dependencies. Created new ADR with status "Accepted, supersedes ADR 23." Documented WHY the original decision (latency reduction) is no longer the priority and why decoupling now matters more. Explicitly noted the consequence: latency will increase, and upstream timeouts must be reconfigured. Updated ADR 23 status to "Superseded by ADR 45." Output: New ADR-45 + updated status on ADR-23, creating a traceable decision history.

Scenario: Decision that needs broader input Trigger: "I think we should adopt event sourcing for our audit trail, but I want the team's input before committing." Process: Assessed significance — affects structure (event store pattern), construction techniques (new tooling). Set status: RFC, Deadline 2026-04-15. Wrote Context explaining the audit requirements and alternatives (event sourcing vs append-only table vs CDC). Decision section presents the architect's recommendation with justification, inviting comments. Noted in Compliance: "if adopted, automated test verifying all state changes emit events." Output: ADR in RFC status with deadline, ready for team review. After deadline, architect incorporates feedback and moves to Accepted.

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

Install related skills from ClawhHub:

  • clawhub install bookforge-architecture-tradeoff-analyzer

Or install the full book set from GitHub: bookforge-skills

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

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

04

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

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

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

能力 4

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

能力 5

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

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

平台分布

OpenClaw

82.37%
按下载量换算807

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

external-service

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

安装前确认

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

来源信息

继续浏览同类 Skills