关于 architect-analyze
architect-analyze 是一项只读技能,用于检查架构决策记录与架构描述。它帮助架构团队发现质量问题、内容不一致、过时信息和 Mermaid 图表错误,不会修改文件。
主要功能
- 01检查 ADR 的完整性与质量
- 02发现 ADR 与 AD.md 之间的偏差
- 03检查架构文档间的一致性
- 04标记过时引用与占位内容
- 05验证 Mermaid 图表
适用场景
- 01功能开发前审查架构
- 02架构变更后检查文档
- 03定期审计架构文档
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ tikalk/ adlc-team-skills --skill architect-analyze安装后在 Claude Code 中输入/architect-analyze确认已加载。
详细介绍
architect-analyze
此技能的作用
对 ADR(架构决策记录)与 AD(架构描述)执行只读架构一致性分析。此技能会识别差异、质量问题和缺漏,但不会修改任何文件。
主要分析维度:
- ADR 质量 — 完整性、清晰度和标准合规性
- ADR 与 AD 的一致性 — 双向偏差检测
- 内部一致性 — 跨制品的一致性
- 过时内容检测 — 过时的引用和占位符
- Mermaid 语法 — 对图表块执行确定性有效性检查,并提供位置和建议的补丁(Mermaid 检测阶段)
此技能会验证架构制品的一致性、完整性和质量。
使用时机
- 执行
/architect-implement后 — 验证生成的 AD.md - 执行
/architect-clarify后 — 验证 ADR 的完善情况 - 功能开发前 — 确保架构稳固
- 架构评审期间 — 作为架构文档的质量门禁
- 定期执行 — 随着代码库演进检测偏差
如果不存在架构制品,不要使用此技能;请先使用 /architect-init 或 /architect-specify。不要使用此技能创建架构;此技能仅用于分析。
流程
用户输入
如果用户输入不为空,请在继续之前考虑该输入:
$ARGUMENTS
示例:
"system"— 仅关注根目录级别的 AD.md 和 adr/ 目录"feature auth"— 关注特定功能的架构"adrs"— 关注 ADR 质量和 ADR 之间的一致性"views"— 关注 AD.md 视图的完整性和内部一致性- 空输入 — 分析所有架构制品
目标
执行只读架构一致性分析。识别差异、质量问题和缺漏,但不修改任何文件。
操作约束
严格只读:不得修改任何文件。输出结构化分析报告。提供整改建议(用户必须明确批准,才能手动执行任何后续编辑命令)。
宪章权威性:项目宪章(memory/constitution.md)在此分析范围内不可协商。与宪章冲突的问题会自动标记为 CRITICAL。
角色与上下文
作为架构分析师,验证架构文档质量:
- 根据 MADR 标准验证 ADR 的完整性
- 检测 ADR 与 AD.md 之间的偏差
- 识别各制品之间的内部不一致
- 标记过时内容和质量问题
架构文档层级:
| 文档 | 位置 | 用途 |
|---|---|---|
AD.md | 项目根目录 | 完整的架构描述(Rozanski & Woods) |
adr/ | {REPO_ROOT}/docs/adlc/memory/(旧版 .adlc/memory/ 作为回退路径) | 系统级 ADR(单独文件) |
constitution.md | {REPO_ROOT}/docs/adlc/memory/(旧版 .adlc/memory/ 作为回退路径) | 治理原则和约束 |
大纲
- 初始化分析上下文 — 加载架构制品
- 确定分析范围 — 系统、功能或全部
- 执行检测阶段 — A 到 G
- 分配严重级别 — CRITICAL/HIGH/MEDIUM/LOW
- 生成报告 — 结构化 Markdown 分析
- 提供后续操作 — 整改建议
阶段 1:初始化分析上下文
目标:加载所有架构制品以供分析
-
运行设置脚本:
- 从仓库根目录执行
{REPO_ROOT}/.agents/skills/architect-clarify/scripts/bash/setup-architect.sh(需要architect-clarify技能:adlc-cli skills add tikalk/adlc-team-skills --skill architect-clarify)。 - 解析 JSON,获取文件路径及其存在状态
- 从仓库根目录执行
-
加载系统级制品:
- 如果
AD.md(项目根目录)存在,则读取 - 从所有位置读取 ADR(按优先级排序):
{REPO_ROOT}/docs/adlc/memory/adr/adr.md(规范位置——已接受的 ADR;根据双重读取规则,旧版{REPO_ROOT}/.adlc/memory/adr/adr.md为回退位置){REPO_ROOT}/.adlc/drafts/adr/(工作副本——提议中/发现的 ADR,采用单文件格式)
- 如果
{REPO_ROOT}/docs/adlc/memory/constitution.md或其旧版回退位置{REPO_ROOT}/.adlc/memory/constitution.md中任一存在,则读取
- 如果
-
加载功能级制品(分析功能时):
- 扫描
specs/*/AD.md,查找功能架构 - 扫描
specs/*/adr/ADR-*.md,查找功能 ADR
- 扫描
-
建立制品清单:
制品 路径 状态 系统 AD AD.md找到/缺失 系统 ADR(规范位置) {REPO_ROOT}/docs/adlc/memory/adr/adr.md(旧版.adlc/memory/adr/adr.md为回退位置)找到/缺失 系统 ADR(草稿) {REPO_ROOT}/.adlc/drafts/adr/找到/缺失 宪章 {REPO_ROOT}/docs/adlc/memory/constitution.md(旧版.adlc/memory/constitution.md为回退位置)找到/缺失 功能 AD specs/*/AD.md数量:N 功能 ADR specs/*/adr/数量:N
阶段 2:确定分析范围
目标:根据用户输入聚焦分析
| 用户输入 | 范围 | 分析的制品 |
|---|---|---|
| (空) | 完整 | 所有系统制品 |
"system" | 仅系统 | AD.md、系统 ADR 位置 |
"adrs" | ADR 质量 | 所有 ADR 文件 |
"views" | AD 完整性 | AD.md |
阶段 3:执行检测轮次
聚焦于高信号发现。总数限制为 50 条发现;超出部分汇总至溢出摘要。
轮次 A:ADR 质量分析
目标:根据 MADR 标准验证每个 ADR
质量维度:
| 维度 | 检查项 | 缺失时的严重性 |
|---|---|---|
| 背景 | 清楚陈述问题,并记录影响因素 | 中 |
| 决策 | 可执行、可测试的决策陈述 | 高 |
| 正面后果 | 记录收益 | 中 |
| 负面后果 | 承认权衡 | 高 |
| 风险 | 识别风险并制定缓解措施 | 中 |
| 备选方案 | 至少 2 个选项,并对权衡作中性说明 | 高 |
| 状态 | 有效状态(Proposed/Accepted/Deprecated/Superseded/Discovered) | 低 |
| 宪章一致性 | 遵守 MUST 原则 | 严重 |
ADR 质量检查清单:
对于每个 ADR,请验证:
- 背景清晰,说明问题/机会
- 决策陈述明确且可执行
- 记录正面和负面后果
- 常见备选方案采用中性方式说明权衡(而非“因……而拒绝”)
- 识别风险并制定缓解策略
- 状态值有效
- 不与宪章中的 MUST 原则冲突
轮次 B:ADR 间一致性
目标:检测 ADR 之间的冲突和不一致
检查项:
-
相互冲突的决策:
- ADR 之间互相矛盾(例如,一个选择 PostgreSQL,另一个却假设使用 MongoDB)
- 技术栈不一致
-
缺失的依赖关系:
- 应互相引用却未引用的 ADR
- 对其他决策的隐含假设
-
术语漂移:
- 不同 ADR 对同一概念使用不同名称
- 组件命名不一致
-
技术栈一致性:
- 前端、后端和基础设施的选择相互匹配
- 不存在相互冲突的框架决策
阶段 C:ADR 与 AD 不一致(正向同步)
目标:检测 ADR 中未反映在 AD.md 中的决策
检查项:
| ADR 要素 | AD.md 中的预期内容 | 视图/章节 |
|---|---|---|
| 系统架构风格 | 上下文视图 | 3.1 |
| 数据库选择 | 信息视图 | 3.3 |
| API 风格 | 功能视图 | 3.2 |
| 身份验证方式 | 安全视角 | 4.1 |
| 部署平台 | 部署视图 | 3.6 |
| CI/CD 方式 | 开发视图 | 3.5 |
| 扩展策略 | 性能视角 | 4.2 |
| 缓存策略 | 信息视图 | 3.3 |
检测逻辑:
对于每个 ADR:
- 确定 ADR 主要影响的视图(使用上方映射表)
- 在 AD.md 中查找对该决策的体现
- 如果缺少该决策的体现或与之矛盾,则标记
阶段 D:AD 与 ADR 不一致(反向同步)
目标:检测缺少 ADR 支持的 AD.md 要素
检查项:
-
缺少 ADR 的组件:
- 功能视图中展示的主要组件,但没有决策依据
- 上下文视图中的外部依赖,但没有 ADR 说明依据
-
缺少理由的模式:
- 描述了架构模式,但未通过 ADR 说明
- 视图中包含技术选择,但没有支持该选择的决策
-
基础设施决策:
- 部署拓扑缺少基础设施 ADR
- 扩展方式缺少性能 ADR
阶段 E:AD 内部一致性
目标:验证 AD.md 各视图之间的一致性
检查项:
-
跨视图一致性:
- 所有视图中的同一组件名称保持一致
- 信息视图中的数据实体与功能视图中的引用相符
- 部署节点与功能组件保持一致
-
图文对应:
- Mermaid 图与文字描述相符
- 图中没有文字未提及的组件
- 文字中没有图中未呈现的组件
-
视图完整性:
- 所需章节齐全(引言、利益相关者、视图、关注点)
- 包含核心视图(上下文、功能、信息、开发、部署)
- 涵盖相关关注点(安全、性能)
-
图表语法验证(确定性检查——Mermaid 检测阶段):
-
Mermaid 语法有效(没有损坏的图表)
-
各图表的样式保持一致
-
运行共享验证器;它会为每个损坏的代码块生成一条发现,包含严重性、位置(文件 + 行号 + 围栏索引)和建议的补丁:
sh: {REPO_ROOT}/.agents/skills/architect-clarify/scripts/bash/setup-architect.sh sh: {REPO_ROOT}/.agents/skills/architect-clarify/scripts/bash/mermaid-lint.sh --tsv <artifact>规则集仅在验证器中说明一次——请直接阅读验证器中的规则,不要在此重新推导。退出代码:
0表示无问题,1表示存在 HIGH(语法错误),2表示仅有 MEDIUM(样式)发现。无法识别的图表类型属于 MEDIUM,绝不会属于 HIGH:此规则集不得误报语法错误。该阶段为只读(生命周期写入范围)——修复应由/architect-implement或人工完成。
-
-
视图文件一致性(DAG 状态验证):
- 检查
.adlc/architect/state.json是否存在,以及其中视图是否标记为“completed” - 检查
docs/adlc/architect/views/目录是否存在(旧版.adlc/architect/views/为回退路径) - 验证 state.json 中每个标记为“completed”的视图是否在磁盘上有对应文件
- 以下情况标记为 HIGH 严重性:
- state.json 报告视图“completed”,但 views/ 目录为空
- 视图文件不足 20 行(占位符/骨架内容)
- 视图文件无法读取(损坏/缺少权限)
- 报告格式:
检测到 DAG 状态不一致: - 状态报告:已完成 [N] 个视图 - 磁盘上的文件:[M] 个视图文件 - 缺少的文件:[缺少的视图列表] - 建议:重新生成视图或重置 state.json
- 检查
-
技术中立性(功能视图):
- 扫描功能视图(§3.2)中元素描述和 Mermaid 图里的产品/供应商名称
- 架构角色(可接受):数据库、对象存储、缓存、消息队列、AI 网关、工作流运行时、应用外壳、API 网关、身份验证服务等
- 产品名称(标记为 MEDIUM):PostgreSQL、Neon、Vercel、Next.js、Redis、MongoDB、AWS、Azure、S3 等
- 严重性:MEDIUM——不阻塞流程,但表明存在抽象违规
- 注意:ADR 可追溯性章节可以引用产品(这是允许的);仅标记元素描述和图表标签
-
功能-开发映射:
- 验证开发视图(§3.5)是否包含技术栈映射表(§3.5.2)
- 检查功能视图元素表(§3.2.1)中的每个元素是否至少在映射表中有一个对应条目
- N:1 映射(多个功能元素 → 一种技术)可以接受
- 严重性:缺少元素时为 MEDIUM;缺少映射表时为 LOW
- 交叉检查:技术架构图(§3.5.3)的结构应与功能视图图表(§3.2.2)相对应
阶段 F:过时内容检测
目标:识别过时的引用和占位符
检查项:
-
仍被引用的已弃用 ADR:
- AD.md 引用了状态为「已弃用」的 ADR
- 已被取代的决策仍在实施
-
占位符检测:
[TODO]、[TBD]、[PLACEHOLDER]标记[SYSTEM_NAME]、[STAKEHOLDER_*]未填写???、...、<placeholder>模式
-
日期不一致:
- ADR 日期明显早于 AD 的最后更新日期
- 功能架构与系统架构不同步
-
孤立引用:
- 提及了 ADR ID,但对应的 ADR 不存在
- 引用了组件名称,但未定义该组件
阶段 G:功能与系统对齐(如果存在功能架构)
目标:验证功能架构是否符合系统边界
检查项:
-
功能 ADR 对齐:
- 标记为「与 ADR-XXX 对齐」的功能 ADR 引用了有效的系统 ADR
- 不存在没有记录理由的 VIOLATION 标记
- 功能决策与系统约束一致
-
边界合规性:
- 功能组件符合系统功能视图结构
- 功能数据实体与系统信息视图一致
- 功能未超出系统范围(上下文视图)
-
集成点:
- 已记录功能与系统之间的接口
- 跨越功能边界的数据流保持一致
阶段 4:严重程度分级
严重程度标准:
| 严重程度 | 标准 | 示例 |
|---|---|---|
| CRITICAL | 违反宪章、存在安全性/数据完整性缺口、缺少核心 ADR | ADR 违反 MUST 原则、主要组件未记录 |
| HIGH | ADR 与 AD 存在影响实施的偏差、ADR 冲突、缺少备选方案 | ADR 中选择了某个数据库,但 AD 中使用了错误的数据库;两个 ADR 相互冲突 |
| MEDIUM | 后果说明不完整、内容过时、术语不一致、缺少可选视图 | ADR 缺少负面后果、TODO 占位符 |
| LOW | 样式改进、轻微文档缺漏、可选细节 | 格式不一致、措辞问题较轻微 |
阶段 5:生成分析报告
输出格式:
## Architecture Analysis Report
### Analysis Summary
| Attribute | Value |
|-----------|-------|
| **Mode** | [Full/System/Feature/ADRs/Views] |
| **Scope** | [Description of what was analyzed] |
| **Files Analyzed** | [List of files] |
| **Analysis Date** | [Current date] |
### Findings
| ID | Pass | Severity | Location | Summary | Recommendation |
|----|------|----------|----------|---------|----------------|
| A1 | ADR Quality | MEDIUM | ADR-003 | Missing negative consequences | Add trade-offs section |
| B1 | Inter-ADR | HIGH | ADR-002, ADR-005 | Conflicting database choices | Resolve PostgreSQL vs MongoDB conflict |
| C1 | ADR->AD Drift | HIGH | ADR-005 | Caching decision not in Information View | Update AD.md 3.3 |
| D1 | AD->ADR Drift | HIGH | AD.md:3.2 | Redis component has no ADR | Create ADR for cache choice |
| E1 | AD Consistency | MEDIUM | AD.md:3.2/3.6 | Component naming mismatch | Standardize "AuthService" naming |
| F1 | Staleness | LOW | AD.md:3.1 | [SYSTEM_NAME] placeholder | Fill in system name |
| G1 | Feature Align | HIGH | specs/auth/adr.md | VIOLATION flag unresolved | Document override justification |
### Coverage Metrics
| Metric | System | Feature: auth | Feature: payments |
|--------|--------|---------------|-------------------|
| ADR Count | 13 | 3 | 2 |
| AD Views Complete | 5/7 | 3/5 | 3/5 |
| ADR->AD Coverage | 85% | 100% | 67% |
| AD->ADR Coverage | 92% | 100% | 100% |
| Quality Score | 78% | 85% | 72% |
### Constitution Alignment
| Status | Count | Details |
|--------|-------|---------|
| Compliant | [N] | ADRs following MUST principles |
| Violations | [N] | ADRs violating MUST principles (CRITICAL) |
| Deviations | [N] | Justified SHOULD principle deviations |
### Issue Distribution
| Severity | Count |
|----------|-------|
| CRITICAL | [N] |
| HIGH | [N] |
| MEDIUM | [N] |
| LOW | [N] |
### Next Actions
Based on findings, recommended actions:
**If CRITICAL issues exist:**
- **Immediate**: Resolve constitution violations before proceeding
- Command: `/architect-clarify` to address ADR compliance
**If HIGH ADR quality issues:**
- **Refine**: Address missing alternatives and consequences
- Command: `/architect-clarify` to improve ADR quality
**If ADR->AD drift detected:**
- **Sync AD**: Update AD.md to reflect ADR decisions
- Command: `/architect-implement` to regenerate views
**If AD->ADR drift detected:**
- **Document**: Create missing ADRs for undocumented decisions
- Command: `/architect-specify` or `/architect-init` to add ADRs
**If feature alignment issues:**
- **Align**: Resolve feature-system boundary violations
- Command: Run `/architect-specify` or `/architect-init` to create missing ADRs
阶段 6:提供修复建议
呈现报告后,询问:
「你希望我针对最重要的 [N] 个问题提出具体的修复步骤吗?我可以为每项发现提供详细指导,但不会自动进行任何更改。」
关键规则
分析完整性
- 绝不修改文件——这是一项只读分析
- 绝不臆造缺失内容——准确报告缺失情况
- 优先处理违反宪章的问题——此类问题始终为 CRITICAL
- 基于证据得出发现——引用具体位置和内容
一致性标准
- 交叉引用所有内容——双向验证(ADR 与 AD)
- 检查所有层级——系统架构和功能架构必须保持一致
- 验证术语——相同概念必须使用相同名称
- 验证图表——Mermaid 语法必须有效
报告标准
- 最多列出 50 项发现——超出部分汇总到摘要中
- 注明位置——始终引用文件:行号或章节
- 提供可执行的建议——为每项发现提供修复建议
- 计算覆盖率指标——量化完整性
后续步骤
如果发现问题:
- 运行
/architect-clarify以完善 ADR(质量问题、缺少后果/备选方案、违反宪章)。 - 检测到 ADR 与 AD 存在偏差时,运行
/architect-implement以重新生成 AD.md。
对于缺失的 ADR 或功能边界问题,请酌情使用 /architect-specify 或 /architect-init。
验证
此技能的具体输出:
- 架构分析报告(结构化 Markdown),包括:
- 分析摘要(模式、范围、已分析文件、分析日期)
- 发现项表格,包含 ID、通过情况、严重性、位置、摘要和建议
- 覆盖率指标(ADR 数量、AD 视图完成情况、ADR→AD 覆盖率、AD→ADR 覆盖率、质量评分)
- 宪章一致性摘要(符合项、违规项、偏差)
- 按严重性划分的问题分布(CRITICAL、HIGH、MEDIUM、LOW)
- 根据发现项类型定制的后续操作
- 对 AD 和每个包含图表的产物运行 Mermaid 语法验证(共享检查器、Mermaid 检测流程)——报告每个有问题的代码块,并标明严重性、位置和建议的补丁。
- 不修改任何文件——分析严格为只读。
- 报告生成后,提供经用户批准的修复指导。