Source profileQuality 67/100

affaan-m/ECC/docs/zh-CN/skills/architecture-decision-records/SKILL.md

architecture-decision-records

Use it for engineering tasks; the detail page covers purpose, installation, and practical steps.

Source repository stars
234,327
Declared platforms
1
Static risk flags
0
Last source update
2026-07-27
Source checked
2026-07-28

Decision brief

What it does—and where it fits

在编码会话期间捕捉架构决策。让决策不仅存在于 Slack 线程、PR 评论或某人的记忆中,此技能将生成结构化的 ADR 文档,并与代码并存。

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeDeclaredSource recordInstall path and trigger
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/affaan-m/ECC --skill "docs/zh-CN/skills/architecture-decision-records"
    Safe inspection promptEditorial

    Inspect the Agent Skill "architecture-decision-records" from https://github.com/affaan-m/ECC/blob/4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38/docs/zh-CN/skills/architecture-decision-records/SKILL.md at commit 4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      何时激活

      用户明确说"让我们记录这个决定"或"为这个做 ADR" 用户在重要的备选方案(框架、库、模式、数据库、API 设计)之间做出选择 用户说"我们决定..."或"我们选择 X 而不是 Y 的原因是..." 用户询问"我们为什么选择了 X?"(读取现有 ADR) 在讨论架构权衡的规划阶段

      用户明确说"让我们记录这个决定"或"为这个做 ADR"用户在重要的备选方案(框架、库、模式、数据库、API 设计)之间做出选择用户说"我们决定..."或"我们选择 X 而不是 Y 的原因是..."
    2. 02

      ADR 格式

      使用 Michael Nygard 提出的轻量级 ADR 格式,并针对 AI 辅助开发进行调整:

      使用 Michael Nygard 提出的轻量级 ADR 格式,并针对 AI 辅助开发进行调整:
    3. 03

      ADR-NNNN: [决策标题]

      日期: YYYY-MM-DD 状态: 提议中 | 已接受 | 已弃用 | 被 ADR-NNNN 取代 决策者: [相关人员]

      优点: [益处]缺点: [弊端]为何不选: [被拒绝的具体原因]

    Permission review

    Static risk signals and limitations

    No configured static risk pattern was detected

    This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score67/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars234,327SourceRepository attention, not individual Skill quality
    Compatibility1 platformsSourceDeclared in the catalog source record
    Usage guidecatalog recordEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    affaan-m/ECC
    Skill path
    docs/zh-CN/skills/architecture-decision-records/SKILL.md
    Commit
    4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38
    License
    MIT
    Collected
    2026-07-28
    Default branch
    main
    View the original SKILL.md

    架构决策记录

    在编码会话期间捕捉架构决策。让决策不仅存在于 Slack 线程、PR 评论或某人的记忆中,此技能将生成结构化的 ADR 文档,并与代码并存。

    何时激活

    • 用户明确说"让我们记录这个决定"或"为这个做 ADR"
    • 用户在重要的备选方案(框架、库、模式、数据库、API 设计)之间做出选择
    • 用户说"我们决定..."或"我们选择 X 而不是 Y 的原因是..."
    • 用户询问"我们为什么选择了 X?"(读取现有 ADR)
    • 在讨论架构权衡的规划阶段

    ADR 格式

    使用 Michael Nygard 提出的轻量级 ADR 格式,并针对 AI 辅助开发进行调整:

    # ADR-NNNN: [决策标题]
    
    **日期**: YYYY-MM-DD
    **状态**: 提议中 | 已接受 | 已弃用 | 被 ADR-NNNN 取代
    **决策者**: [相关人员]
    
    ## 背景
    
    我们观察到的促使做出此决策或变更的问题是什么?
    
    [用 2-5 句话描述当前情况、约束条件和影响因素]
    
    ## 决策
    
    我们提议和/或正在进行的变更是什么?
    
    [用 1-3 句话清晰地陈述决策]
    
    ## 考虑的备选方案
    
    ### 备选方案 1: [名称]
    - **优点**: [益处]
    - **缺点**: [弊端]
    - **为何不选**: [被拒绝的具体原因]
    
    ### 备选方案 2: [名称]
    - **优点**: [益处]
    - **缺点**: [弊端]
    - **为何不选**: [被拒绝的具体原因]
    
    ## 影响
    
    由于此变更,哪些事情会变得更容易或更困难?
    
    ### 积极影响
    - [益处 1]
    - [益处 2]
    
    ### 消极影响
    - [权衡 1]
    - [权衡 2]
    
    ### 风险
    - [风险及缓解措施]
    

    工作流程

    捕捉新的 ADR

    当检测到决策时刻时:

    1. 初始化(仅首次) — 如果 docs/adr/ 不存在,在创建目录、一个包含索引表头(见下方 ADR 索引格式)的 README.md 以及一个供手动使用的空白 template.md 之前,询问用户进行确认。未经明确同意,不要创建文件。
    2. 识别决策 — 提取正在做出的核心架构选择
    3. 收集上下文 — 是什么问题引发了此决策?存在哪些约束?
    4. 记录备选方案 — 考虑了哪些其他选项?为什么拒绝了它们?
    5. 陈述后果 — 权衡是什么?什么变得更容易/更难?
    6. 分配编号 — 扫描 docs/adr/ 中的现有 ADR 并递增
    7. 确认并写入 — 向用户展示 ADR 草稿以供审查。仅在获得明确批准后写入 docs/adr/NNNN-decision-title.md。如果用户拒绝,则丢弃草稿,不写入任何文件。
    8. 更新索引 — 追加到 docs/adr/README.md

    读取现有 ADR

    当用户询问"我们为什么选择了 X?"时:

    1. 检查 docs/adr/ 是否存在 — 如果不存在,回复:"在此项目中未找到 ADR。您想开始记录架构决策吗?"
    2. 如果存在,扫描 docs/adr/README.md 索引以查找相关条目
    3. 读取匹配的 ADR 文件并呈现上下文和决策部分
    4. 如果未找到匹配项,回复:"未找到关于该决策的 ADR。您现在想记录一个吗?"

    ADR 目录结构

    docs/
    └── adr/
        ├── README.md              ← 所有 ADR 的索引
        ├── 0001-use-nextjs.md
        ├── 0002-postgres-over-mongo.md
        ├── 0003-rest-over-graphql.md
        └── template.md            ← 供手动使用的空白模板
    

    ADR 索引格式

    # 架构决策记录
    
    | ADR | 标题 | 状态 | 日期 |
    |-----|-------|--------|------|
    | [0001](0001-use-nextjs.md) | 使用 Next.js 作为前端框架 | 已采纳 | 2026-01-15 |
    | [0002](0002-postgres-over-mongo.md) | 主数据存储选用 PostgreSQL 而非 MongoDB | 已采纳 | 2026-01-20 |
    | [0003](0003-rest-over-graphql.md) | 选用 REST API 而非 GraphQL | 已采纳 | 2026-02-01 |
    

    决策检测信号

    留意对话中指示架构决策的以下模式:

    显式信号

    • "让我们选择 X"
    • "我们应该使用 X 而不是 Y"
    • "权衡是值得的,因为..."
    • "将此记录为 ADR"

    隐式信号(建议记录 ADR — 未经用户确认不要自动创建)

    • 比较两个框架或库并得出结论
    • 做出数据库模式设计选择并陈述理由
    • 在架构模式之间选择(单体 vs 微服务,REST vs GraphQL)
    • 决定身份验证/授权策略
    • 评估备选方案后选择部署基础设施

    优秀 ADR 的要素

    应该做

    • 具体明确 — "使用 Prisma ORM",而不是"使用一个 ORM"
    • 记录原因 — 理由比内容更重要
    • 包含被拒绝的备选方案 — 未来的开发者需要知道考虑了哪些选项
    • 诚实地陈述后果 — 每个决策都有权衡
    • 保持简短 — 一份 ADR 应在 2 分钟内可读完
    • 使用现在时态 — "我们使用 X",而不是"我们将使用 X"

    不应该做

    • 记录琐碎的决定 — 变量命名或格式化选择不需要 ADR
    • 写成论文 — 如果上下文部分超过 10 行,就太长了
    • 省略备选方案 — "我们只是选了它"不是一个有效的理由
    • 追溯记录而不加标记 — 如果记录过去的决定,请注明原始日期
    • 让 ADR 过时 — 被取代的决策应引用其替代品

    ADR 生命周期

    proposed → accepted → [deprecated | superseded by ADR-NNNN]
    
    • proposed:决策正在讨论中,尚未确定
    • accepted:决策已生效并正在遵循
    • deprecated:决策不再相关(例如,功能已移除)
    • superseded:更新的 ADR 取代了此决策(始终链接替代品)

    值得记录的决策类别

    类别示例
    技术选择框架、语言、数据库、云提供商
    架构模式单体 vs 微服务、事件驱动、CQRS
    API 设计REST vs GraphQL、版本控制策略、认证机制
    数据建模模式设计、规范化决策、缓存策略
    基础设施部署模型、CI/CD 流水线、监控堆栈
    安全认证策略、加密方法、密钥管理
    测试测试框架、覆盖率目标、E2E 与集成测试的平衡
    流程分支策略、评审流程、发布节奏

    与其他技能的集成

    • 规划代理:当规划者提出架构变更时,建议创建 ADR
    • 代码审查代理:标记引入架构变更但未附带相应 ADR 的 PR

    Alternatives

    Compare before choosing