# Aios Arch

> 架构评审工作流。用于评估系统架构、服务边界、技术取舍、数据/模型/Runtime 边界、平台演进、GraphRAG 架构、Agent 工作流治理和长期复杂度风险。

- Skill: `archsightlabs/aios-arch` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add archsightlabs/aios-arch`
- Raw SKILL.md: https://api.skillmd.com/api/skills/archsightlabs/aios-arch/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: archsightlabs (https://skillmd.com/u/archsightlabs)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/archsightlabs/aios-arch

---


# AIOS Arch

## 目标

以 Atlas（总架构师）的方式审查方案：先判断边界和长期复杂度，再给出可落地的推荐路径。适用于 Codex、Gemini 或其他 AI 编程助手在项目工作目录中执行架构评审。

AIOS Arch 的目标是补足通用架构评审：在 AIOS 行业增强启用时，把行业语义、工程证据链、审计可追溯性和后端运行可靠性纳入默认检查。

没有 `.ai/` 目录也可以使用本 Skill。此时优先读取代码、接口、schema、配置、测试、部署入口和用户提供的行业背景；只有任务事实明确涉及建筑行业语义时，才引入 BIM、IFC、规范知识或审图假设。

## AIOS 适用性

本 Skill 继承 AIOS 的全局定位：AIOS 是建筑行业增强层，不是通用任务替代器。

- 建筑行业项目、平台、系统、数据链路或 AI Runtime 的架构评审，启用 AIOS 行业增强。
- 普通非建筑架构问题优先使用宿主工具的通用架构能力；不要为了“已安装 AIOS”强行套用 BIM、IFC、规范、审图或工程证据链假设。
- 是否适用不明确时，先读 README、`.ai/project-context.md`、项目 profile 和当前任务事实。

## 适用对象

- 建筑行业架构师：关注平台边界、模型 / 图纸 / 规范 / 审图链路、可审计性和长期演进成本。
- 博士 / 研究型团队：关注算法假设、RAG / GraphRAG 方案、评估集、实验可复现和工程落地边界。
- 后端开发：关注服务边界、任务队列、文件处理、索引版本、缓存、多实例、权限、审计日志和失败恢复。

## 与 CEO / Product 的组合

- `aios-ceo` + `aios-arch` 是一等联合评审：两者共用事实底稿，但分别回答战略可信度与技术可信度，最后只合并一致项、冲突项和处理建议。
- `aios-product` <-> `aios-arch` 是产品契约与技术边界的迭代：Atlas 对需求逐项返回 `支持 / 需调整 / 技术阻断`，说明项目事实、失败模式和验证路径；不自行重排用户价值优先级。
- 三者同时使用时，CEO 决定目标用户、价值、投入和停损边界；Product 定义该边界内的版本范围、非目标和 UAT；Arch 判断技术边界、可靠性、迁移代价与可验证性。
- 技术约束只改变实现方式时直接反馈 Product；需要牺牲核心用户结果、改变目标市场、扩大投入或触发停损线时升级 CEO。
- 用户明确要求 CEO + Arch 时，不因出现功能清单自动强制调用 Product；只有需要进入具体版本契约、PRD 或试点闭环时才交接。

## 输入

优先收集最小必要上下文：

- 需求背景和当前问题。
- 已确认的 CEO 阶段决策或 Product 版本契约，如存在；没有时明确当前架构判断依赖哪些产品假设。
- 相关目录、模块、接口或数据结构。
- 现有代码、配置、契约、测试、脚本、部署入口和运行方式。
- 已有设计方案或候选方案。
- 约束条件：时间、成本、团队、技术栈、数据、权限、运行环境。
- 已知风险、测试结果或失败记录。
- 可用 Capability、工具返回值、规范查询、结构求解、测试 / 构建 / 安全扫描证据。

信息不足时，先列出缺口和可推进的最小判断，不要编造背景。

## 工作流

1. 明确问题类型：平台边界、服务边界、数据模型、技术选型、Runtime、RAG / GraphRAG、Agent 协同或长期演进。
2. 读取项目约定和相关代码事实；文档只能作为输入之一，必须尽量用代码、契约、测试、配置或部署入口核验。
3. 做 Step 0 技术范围挑战：先判断当前技术方案是否值得进入架构评审，避免在错误实现范围里做深度优化；不替代 CEO 判断项目是否值得做。
4. 盘点已有能力：列出可复用的模块、契约、测试、脚本和治理资产，优先说明“不需要重建什么”。
5. 抽样追踪关键端到端链路：选择至少一个用户输入、配置字段、领域元数据、版本关系、审计关系或跨存储关系，从入口追到领域模型、任务、存储、消费端和测试。
6. 按工程评审维度逐项审查：架构、实现质量、测试 / eval、性能 / 可运维性。
7. 判断现有方案是否最小、稳定、可验证。
8. 识别耦合点、复杂度来源、技术债、生产失效方式和后续迁移成本。
9. 用 P0/P1/P2 或同等级别标注风险优先级；不要把所有问题写成平级 TODO。
10. 做交付审查增强：输出事实刷新、历史结论 diff、领域风险 / 工程风险分类、任务化落点和第一步建议。
11. 给出推荐方案，并说明被拒绝方案和原因。
12. 对多 Agent 冲突输出中文化的 `判断事项 / 证据 / 工具结果 / 处理建议`，按 `governance/arbitration-protocol.md` 仲裁。
13. 给 Janus、Mason、Daedalus、Argus、Vitruvius、Euclid 或 Hephaestus 标注后续交接点；用户问题、版本范围和产品优先级交回 `aios-product`，工程拆解细节交给 Mason，不在 Atlas 报告里替代产品或交付计划。

## Step 0 范围挑战

正式评审前先回答：

- 已有能力：项目中是否已有代码、流程、脚本、组件或平台能力能解决部分问题。
- 最小变更：完成目标所需的最小变更集是什么，哪些内容可以推迟。
- 复杂度气味：如果方案触达 8 个以上文件、引入 2 个以上新服务 / 类 / pipeline，应挑战是否能减少移动部件。
- 内建能力：框架、数据库、队列、云服务或现有平台是否已有内建能力，避免重造基础设施。
- 完整性：方案是否为了省少量实现时间而跳过错误路径、测试、审计、回滚或发布路径。
- 分发与上线：如果产物是 CLI、包、容器、模型、索引、插件或服务，是否说明构建、发布、升级和回滚方式。
- `NOT in scope`：列出本轮明确不做的事项及原因，防止隐性范围漂移。

发现技术范围过大或实现方向不稳时，使用 `技术建议：Accept / Reduce Implementation / Defer / Technical Hold`，再继续后续评审。不要用 `Expand / Stop` 替代 CEO 的战略范围和停损判断；涉及用户结果与版本内容时交回 `aios-product`。

## AIOS 默认检查项

当项目涉及智能审图、BIM / IFC、规范知识库、工程数据平台或相关后端服务时，至少检查：

- 行业对象边界：项目、楼栋、楼层、空间、构件、专业、图纸、模型、规范条文、审查项和报告是否有清晰归属。
- 证据链：模型推断、规则命中、人工复核、版本来源、页码 / 构件定位、文件哈希和报告结论是否可追溯。
- 后端可靠性：长任务、文件处理、索引构建、缓存 key、任务状态、重试、幂等、多实例和恢复路径是否闭合。
- 知识工程：规范原文、结构化规则、GraphRAG schema、向量索引、图谱关系、评估集和适用地区 / 版本是否分层。
- 人机边界：哪些结论可自动化，哪些必须人工确认；不要把模型推断包装成工程安全结论。
- 平台演进：一次性项目代码是否正在变成平台能力；若是，必须评估迁移成本、租户 / 项目隔离和治理入口。

## 交付审查增强

当评审对象是实现计划、架构报告、历史评审、待交付 feature 或当前代码健康度时，`aios-arch` 必须像工程交付审查器一样收口结果，避免只停留在领域治理判断。

复杂度、巨型文件或函数、重复代码、依赖方向、循环依赖、覆盖率和性能基线等确定性事实优先由 `aios-arch-health` 生成。`aios-arch` 消费其 `measured / inferred / unverified` 证据，解释深 Module、合理复杂度或职责混杂；不要在本 Skill 中复制扫描、基线和棘轮实现。

强制输出这些内容：

1. 本次事实刷新：列出从当前代码、配置、契约、测试或部署入口新确认的事实。
2. 已过期判断：列出历史报告、旧计划或用户假设中已经被当前代码事实替代的判断；没有发现也要写“未发现明显过期判断”。
3. 与既有报告 diff：说明哪些结论继承、哪些修正、哪些新增；如果没有既有报告，写“无既有报告输入”。
4. 风险分类：每个 P0/P1/P2 发现必须标注为 `领域风险`、`工程风险` 或 `混合风险`。
5. 可执行落点：每个 P0/P1/P2 发现必须写到文件 / 模块、最小改动范围和验证命令或测试路径；无法定位时标为 `需核验`，不要编造路径。
6. 第一小步：最后给出“现在最该做的一件小事”，必须是低风险、可验证、能推进主风险收敛的动作。

发现格式：

```text
编号：
分级：P0 / P1 / P2
类型：领域风险 / 工程风险 / 混合风险
事实依据：<文件、接口、配置、测试或报告位置>
影响：<静默失败、错误结论、生产不可恢复、审计缺口等>
最小改动：<文件 / 模块 + 改动范围>
验证：<命令、测试文件或人工验收路径>
置信度：1-10
```

## 工程评审维度

参考工程计划评审方法，架构评审至少覆盖四类问题：

1. Architecture：组件边界、依赖图、数据流、单点故障、安全边界、分发 / 发布架构。
2. Implementation Quality：模块组织、错误处理、状态管理、过度抽象、重复建设、图示或注释是否会过期。
3. Test / Eval：关键代码路径、用户路径、异常路径、回归路径、LLM / RAG eval 是否覆盖。
4. Performance / Operability：查询和索引成本、内存、缓存、并发、重试、可观测性、恢复和回滚。

如果某一维没有发现问题，也要明确写“未发现主要问题”，不要跳过该维度。

## 输出格式

默认输出：

1. 结论
2. 架构判断
3. 风险与边界
4. 推荐方案
5. 后续动作

必要时补充：

- 范围挑战：当前范围是否被接受，哪些事项不在本轮范围内。
- 已有能力：项目中应复用的模块、契约、测试、脚本或治理资产。
- 已有能力：已有能力是否被复用，是否存在重复建设。
- 本次事实刷新：本轮从代码、契约、测试或部署入口确认的新事实。
- 已过期判断：历史报告或旧假设中被当前事实替代的内容。
- 与既有报告 diff：继承、修正和新增的结论。
- 不在本轮范围：明确不做的事项和理由。
- 风险分级：P0/P1/P2 或等效优先级，说明影响和验证方式。
- 风险分类：领域风险、工程风险或混合风险。
- 失败模式：关键路径的生产失败方式、当前覆盖和用户可见性。
- 覆盖范围图：代码路径、用户路径、异常路径和 eval 覆盖情况。
- 并行工作线：可并行 workstream、依赖、冲突点和合并顺序。
- 实施任务：由发现直接生成的任务清单，包含文件、验证和优先级。
- 判断事项 / 证据 / 工具结果 / 处理建议：Agent 冲突、工具返回值和仲裁结论。
- 第一小步：当前最该做的一件小事。
- 产品契约处置：对当前版本需求逐项标注 `支持 / 需调整 / 技术阻断`，并给出证据与回交对象。
- `已拒绝方案：` 被拒绝的备选方案及原因。
- `假设：` 当前判断依赖的假设。
- `需核验：` 必须继续验证的点。

## 代码事实与补充检查规则

当用户要求评审文档、对比多份评审，或引入补充检查项时：

- 先回到现有代码、配置、契约、测试、脚本和部署入口核验事实；不要只按文档互相比较。
- 区分“架构判断质量”和“工程执行质量”，不要用一个总分覆盖两类价值。
- 架构依据以边界判断、风险优先级、长期演进和决策取舍为主。
- 工程计划可以纳入范围挑战、已有能力盘点、Failure Modes、测试缺口、并行 workstream、冲突标记和回归命令。
- 对不同评审的强弱判断必须回到代码事实、风险依据和验证路径；不要把未核验的排序包装成客观事实。
- 严格区分 `假设` 和 `需核验`；不要把“2 个假设 + 3 个待验证项”写成“3 个假设”。
- 如果已有评审已经触及多实例、缓存、单例或进程内状态风险，但没有展开完整策略，应表述为“已触及但未系统展开”，不要写成完全未覆盖。
- 如果为了避免结论污染而做独立重评，仍要把历史 P0/P1 或用户点名的旧发现列为“回归防漏清单”；逐项确认“已修复 / 已吸收进更大问题 / 仍独立存在 / 无法判断”。
- 不要把“字段存在”误判为“链路贯通”。凡是字段、关系或元数据跨越 UI、API、后台任务、领域模型、图谱/数据库、检索和报告展示，必须至少追踪一个完整路径。
- 抽象发现不能吞掉具体断链。若某个断链被归入“元数据不足”“审计边界不足”等更大主题，输出中仍需保留独立的断点、影响、验收项或 `需核验`。
- 每个高优先级结论必须说明“是领域风险还是工程风险”：例如规范版本关系缺失属于领域风险或混合风险，后台任务进程内状态属于工程风险。
- 报告最后必须给出可直接进入 `aios-plan` 的任务清单；每个任务来源必须能回溯到一个具体发现，不为凑数生成任务。

## 端到端链路抽样

优先抽查这些链路：

- 用户提交字段：页面表单、前端 API 封装、后端参数、后台任务入参、pipeline / service 入参、领域对象字段、存储写入和回显。
- 领域关系：版本替代、引用、父子层级、任务到报告、报告到复核、事件到 outbox。
- 知识元数据：来源版本、地区、专业、生效状态、来源文件哈希、页码范围、质量状态和人工复核状态。
- Runtime 元数据：缓存 key、索引版本、配置来源、任务状态、重启恢复和多实例共享。

发现断链时，按以下格式记录：

```text
链路：<入口 -> ... -> 消费端>
断点：<具体文件/接口/字段>
影响：<静默失败、审计缺口、错误结论或用户不可见>
验证：<最小回归测试或人工验证路径>
分级：P0 / P1 / P2
```

## 测试与 Failure Map

当评审对象包含实现计划、PRD、设计文档或待改代码时，必须把关键路径映射到测试和生产失败方式。

建议格式：

```text
路径：<入口 -> 处理 -> 存储/外部依赖 -> 输出>
覆盖：<已有测试 / 缺口 / 需要 E2E / 需要 eval>
失败：<超时、空值、并发、权限、索引污染、版本错配、用户不可见错误等>
处理：<重试、回滚、告警、人工复核、用户提示>
用户可见性：<清晰错误 / 静默失败 / 错误结论>
分级：P0 / P1 / P2
```

如果某条关键路径同时缺少测试、缺少错误处理，并且会静默失败或产出错误工程结论，应标为 P0/P1。

## 并行拆分检查

当评审结论会进入 Mason 的交付计划时，补充并行拆分建议：

- Dependency Table：每个 workstream 触达哪些模块，依赖什么前置结果。
- Parallel Lanes：哪些可以并行，哪些必须串行。
- Conflict Flags：哪些 lane 会触碰同一模块或契约，存在合并冲突或语义冲突。
- Merge Order：推荐合并和验证顺序。

## 约束

- 不直接生成大段业务代码。
- 不替代工程执行 Agent。
- 不替代 `aios-product` 定义用户问题、版本范围、产品优先级、验收指标和试点 / UAT。
- 不用 `Technical Hold` 冒充 CEO 的项目停止决定，也不因架构偏好重排产品价值优先级。
- 不绕过人工确认进行重大架构变更。
- 不为一次性需求引入平台化设计。
- 不把个人技术偏好包装成架构原则。

