定位与用途
Architecture Viewer 是 AI 改码后的增量架构验收门,不是全量架构治理平台。它解决的问题是:AI 编码会话一次改动几十个文件,合入前难以说清架构到底变了什么——删了哪个被广泛依赖的类型、有没有跨层调用、新引入了哪些第三方包、谁会被波及。它在会话结束时给出 Before/After 架构对比和风险分级,关键结论需对照源码核实。
它不判断业务逻辑正确性,不替代测试、类型检查、安全审查或人工 Code Review;不做全量架构治理(需要组织级架构看板、Git 历史热点、多仓聚合时建议看 Sonargraph / CodeScene);不做 AI 泛审查——不审查代码风格、性能、安全漏洞,只做可复核的结构事实:本轮改了哪些实体、有没有跨层违规、波及谁。
主要能力
- 风险发现(lib/risk-rules.js):跨层依赖违规、层级穿透(controller 直连 storage)、类型删除(按下游数量升降级)、新增外部依赖、高扇出变更、孤儿新实体。
- 影响面分析(lib/impact.js):从被改实体出发,沿 import/extends/implements/calls 等 wiring 边反向 BFS(base 与 head 反向边取并集,穿透被改实体集群),报告集群边界之外的直接/间接受害者。归属关系边(declared-in)不参与。
- 跨层违规检测依赖“每个文件属于哪一层”。0.9 起分层由四个信号交叉推断,不需要手写配置:.av/layers.json 用户配置(最高优先);import 框架语义(如 sqlalchemy/gorm/JpaRepository → storage,flask/express/gin/@RestController → controller,@Entity → domain 等);目录名/文件名约定(services/、*Controller.java、data_collection/ 等);结构位置兜底(被很多模块依赖且自己不依赖别人 → domain,只出不进 → controller)。每次 session report / extract 后,推断结果写入 .av/layers.suggested.json(按目录聚合,含置信度和判定依据;import 信号与目录名冲突的文件会单列)。审阅没问题就不用管;想锁定或纠正,复制为 .av/layers.json 即可——它永远优先、不会被覆盖。实测 246 文件的 Python 爬虫仓分层覆盖率从 57% 提升到 92%。
使用方式
一键接入 AI 工具(推荐 · Cursor / Claude / DeepSeek)
自动检测已安装的 AI 编程工具(Cursor、Claude、DeepSeek Harness),写入 MCP。之后对 AI 说“改完用架构门检查一下”即可。Agent 应调用 av_guard;对话里回最多 3 行 verdict。有 git 时对照 HEAD,commit 即接受当前结构。不必先拍照、不必默认打开 HTML。升级:先 uninstall(需要时 --npm),再装新版本后 setup / setup . --project。
CLI 结构门(脚本 / CI / 无 MCP)
日常不必 session start。无 git 的仓,av_guard / session guard 会自动补快照。完整 Before/After HTML(.av/session-report.html)是可选深挖。高风险时退出码为 1。session report / check / diff 共用退出码:0 通过 · 1 架构门未通过 · 2 参数配置错 · 3 扫描解析失败 · 4 基线不存在或失效。
PR 自动评论(GitHub Actions)
每个 PR 自动贴一条架构影响面评论;同一 PR 重复 push 只更新原评论,不刷屏。评论内容包括:变更计数表、新增/移除第三方依赖清单、🔴🟠 风险发现、影响面 Top N(反向依赖)。本仓 dogfood 工作流见 .github/workflows/architecture-diff.yml。
Quick Start(30 秒):装一次,之后只说话。然后对 AI 说:“改完用架构门检查一下”。把对话里的 verdict(最多 3 行)当验收:绿灯 → git commit(即接受);红灯 → 先修或解释,可用 av_explain_finding。术语:基线 = 对照物(有 git 就是 HEAD);verdict = 对话里那几行灯;红灯 = 可能改坏了,绿灯 = 结构上没问题。
安装要求 Node.js ≥ 18。支持语言:JavaScript / TypeScript(含 Vue、Svelte)、Python、Go、Java(tree-sitter 解析,内置六平台 prebuild,安装无需编译)。接入请钉 arch-viewer@0.12.2-rc.7 或 @next,不要与工作区源码或 latest 混用。
CI 漂移门
新模块 / 服务 / 入口没画进六视图时 CI 失败,坏图进不了主干(粒度是目录与部署单元,不是每一个新文件;文件级变化看 session report)。相关工作流:漂移红灯 .github/workflows/architecture-check.yml;漂移 + 规范 + PR 评论 .github/workflows/architecture-drift.yml(Gitee 等价见 .gitee/workflows/)。规则写法见 architecture-rules.example.yaml:复制为仓库根或套件目录的 architecture-rules.yaml 即可;check 未传 --rules 时会自动读取该文件。
本地版交付边界
本轮结构变更报告、可定位源码的结构总览,以及人工核实的风险提示。六视图降为兼容功能,不再是默认交付或卖点。绿灯不保证没有漏报;分析不完整不是通过。支持范围、离线模式与已知局限见随包交付的“首发交付范围”。AI 精修、扩展、多仓和 SaaS 不在首发质量承诺内。
适用场景
- AI 编程会话结束后的结构验收:改完代码后检查结构变化与风险提示,由工程师确认后提交。
- PR 阶段的架构影响面提示:在 GitHub PR 中自动评论变更计数、依赖变化与风险发现。
- CI 中的架构漂移拦截:新模块 / 服务 / 入口未纳入结构视图时失败。
限制与说明
- 不判断业务逻辑正确性,不替代测试、类型检查、安全审查或人工 Code Review。
- 不做全量架构治理,不做 AI 泛审查。
- 绿灯不保证没有漏报;分析不完整不是通过。
- 定位是本地试点候选,不是稳定商用版;AI 精修、扩展、多仓和 SaaS 不在首发质量承诺内。
- 以下数字均为验证期定价,未经付费数据支撑(详见 COMMERCIAL.md)。
- CLI 遥测默认关闭,企业友好。开启后仅记录:事件名(CLI 命令名)、耗时(毫秒)、退出码、CLI 版本、操作系统类型。不记录:文件路径、代码内容、仓库名/URL、用户邮箱。数据落本地 ~/.config/arch-viewer/telemetry.log(JSONL),可随时查看或删除。
- 首次登录自动建档为 7 天 Pro 试用。token 存于 ~/.config/arch-viewer/auth.json(权限 0600),重启终端仍登录。generate / check / session / --refine(自带 Key)属 Community,永不要求登录。
其他
- 落地页:本地 npm run web → http://127.0.0.1:3847/ ;部署见 docs/commercial/landing-deploy.md。
- 成片:docs/demos/demo.mp4。文档总索引:docs/README.md。
- 英文 README:README.en.md。
- 新手入门:小白图文攻略;Quickstart。
- 发布记录与源提交:docs/commercial/npm-publish.md。
- 许可:Apache-2.0。