Install any skill in seconds. Free to start, no credit card required.
Get Started Free →架构与实现审查 —— 基于「概念建模 → 职责划分 → 机制/策略分离 → 因果与不变量 → 属性建模 → 模块化 → SOLID → GRASP → YAGNI」的全维度审查,带置信度门控与假阳性抑制(对抗"过度工程建议"这类 AI slop)。触发于:要求 review/审查架构、检查目录结构/依赖关系/职责划分、重构前评估、技术债盘点、判断是否过度设计,或问「这个设计合理吗 / 该怎么拆 / 有没有循环依赖 / 这个改动架构上 OK 吗」。一律按最高强度审查。用法:`arch-check [范围] [--fix|--plan]`。范围可为目录/文件/PR;缺省审当前分支相对基线的全部变更。
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 55% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 156% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 58% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 70% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 54% | 0% |
把架构审查做成与代码审查相同的操作流程,而不是一份让人逐条挑刺的清单。核心纪律:只报有把握、有实质影响的问题;架构审查最常见的失败是"建议加更多抽象"——这本身就是要被滤掉的 AI slop。
从用户输入里解析两件事(缺省值见下):
--plan 出可勾选的重构任务清单;--fix 直接应用低风险重构。强度恒定:始终按最高强度审——全部 lens(A–E)、fan-out 并行子 agent、依赖图/环检测、对每条 finding 做对抗式复核。不存在"轻审"模式。
| 模式 | 何时用 | 审什么 | |---|---|---| | diff(分支变更) | 在 git 仓库里且用户没给路径 | 当前分支相对基线的全部变更的架构影响:新概念是否放对位置、职责归属、是否引入新耦合/环、是否把策略硬编码进机制、是否破坏既有不变量 | | audit(全量) | 用户给了目录/文件/模块,或明确要"审整个 X" | 该范围的完整架构体检(下方全部维度) |
diff 范围 = 当前分支相对基线的所有变更(不是只看未提交的)。取变更集:
BASE=$(git merge-base HEAD origin/main 2>/dev/null || git merge-base HEAD main 2>/dev/null || git merge-base HEAD master)
git diff --stat $BASE...HEAD # 已提交的分支变更
git diff --stat # 叠加未提交的工作区改动
git diff $BASE...HEAD # 完整 diff基线优先级:origin/main → main → master →(都没有则问用户或退回 HEAD~N)。在 base/main 分支本身上、无分叉时,退回审未提交改动;仍为空则提示无变更可审。
缺省判定:给了路径 → audit;没给路径、在 git 仓库 → diff(当前分支全部变更);不在仓库且没给路径 → 询问要审的范围。
审查时只读当前 lens 对应的 reference 文件,不要把全部 reference 一次性读进上下文。
| Lens | 关注 | Reference | |---|---|---| | A. 概念建模 | 概念识别/命名、抽象质量、封装、实体关系 | references/concept-modeling.md | | B. 职责与因果 | 职责划分、机制/策略分离、因果与不变量、属性三分(identity/value/derived) | references/responsibility-causality.md | | C. 结构与依赖 | 目录结构、模块化、依赖方向、循环依赖 | references/structure-modularity.md | | D. 经典原则 | SOLID、GRASP、YAGNI | references/solid-grasp-yagni.md | | E. 时间/churn | 共变更耦合、变更热点(上帝文件)、不稳定抽象(仅 git 仓库) | references/cochange-churn.md |
优先级(冲突/取舍时的让步顺序,前者压过后者): 概念正确性 > 职责归属 > 因果与不变量 > 属性建模 > 依赖方向/环 > 模块内聚 > 文件大小/命名风格 (Lens E 的发现不单独成档,归并到它指向的问题:共变更→概念边界/耦合,热点→职责过载,不稳定抽象→依赖方向。)
结构性断言必须先 grep 再下结论,并在 finding 里附 file:line 证据;写不出证据 = 幻觉,不报(置信度封顶 25)。 适用于:依赖/跨层、循环依赖、single-writer/多写者、概念散落、derived 无 invalidation、上帝文件、职责扩散。各语言的依赖/环/写入点探测命令见 references/evidence-and-detection.md。
被显式调用即视为值得审,直接开审,不做"值不值得"的门控。
AGENTS.md、CLAUDE.md 或仓库提供的等价指令文件(仅记录路径与要点)、列出范围内文件;用 references/evidence-and-detection.md 里的命令实跑依赖/环检测、写入点定位、文件体量。优先用真实工具输出,别凭空想象结构。严重度 × 置信度 排序。没有过线 finding 就如实说"未发现实质架构问题"。只保留 ≥ 80 分。
置信度回答"是不是真的",严重度回答"有多要紧"——两者独立。
默认(报告):简短、引用 file:line、按严重度分组。不要堆砌通过项;聚焦真问题 + 可操作修复。范围较大或用户要"完整报告"时用 references/report-format.md 的大模板;范围小用下面的精简格式即可。
精简版格式:
## 架构审查(<范围>)
发现 N 个问题(已滤除 <M> 个低置信/假阳性):
🔴 严重
1. <一句话问题> — `path/to/file.ts:120`
影响:<对可维护性/扩展性/正确性的实质影响>
证据:<关键 file:line 或工具输出片段,可一键核对>
修复:<具体步骤>
🟡 建议
2. ...
✅ 健康:<一句话说哪些维度是好的,可选>--plan:把上面每条 finding 转成可勾选的重构任务清单(使用当前客户端可用的任务或清单机制;不可用时输出 Markdown checklist),按 Phase(概念澄清 → 结构重组 → 依赖治理)分组,标工作量 S/M/L。
--fix:仅对 🟢/🟡 中低风险、机械、不改公共契约的项直接改(如改名、移动文件归位、提取明显的策略参数)。🔴 概念/职责级重构不自动改——这类需要人确认设计意图,只在报告里给方案。改完逐条说明改了什么。
file:line、实质影响、证据,否则不报。Other measured skills in the registry, with their headline benchmark lift.