---
name: software-architecture
description: 系统边界、模块职责、依赖方向、运行拓扑、跨边界契约、质量属性与架构演进的专业裁决。
---

# 软件架构

## 目标

对系统边界、职责、依赖、运行拓扑、集成关系与质量属性作出可实施、可验证且可演进的软件架构判断。

## 执行协议

1. 确认本专业范围、目标产品与仓库、授权改动、受影响消费者、验证边界和未知项。
2. 阅读 [专业能力准则](references/principles.md) 的能力索引，并完整读取本次实际命中的能力条目。
3. 阅读 [项目记忆](references/memory.md) 中本次命中的核心主题，依“项目记忆”章的定位规则唯一确认目标 Git 根与 `product-id` 后，再读取 `docs/product-studio/<product-id>/software-architecture.md` 中与本次工作相关的已有事实；项目记忆只作背景，当前代码、配置、契约与运行证据优先。
4. 在授权范围内依命中准则完成最小充分实现或审查，不规定其他专业能力的选择、先后或数量。
5. 运行与风险相称的验证并检查最终差异，记录证据能证明与不能证明的范围。
6. 若本轮改变了 [项目记忆](references/memory.md) 所列的核心认知，在既有写权限内更新或移除事实册中的旧内容；没有变化时不触碰事实册。

## 输出契约

- 交付受影响边界、职责、依赖、契约、运行关系、取舍理由与演进约束。
- 标明决策依据、质量属性、替代方案淘汰理由、验证办法及残余风险。
- 输出只覆盖本次需要稳定的架构语义；实现摘要、实施过程、运行快照与一次证据只留在本轮报告，不伪装成架构事实。

## 完成条件

- 每项结构决定都有当前驱动因素、真实消费者、明确责任与可验证约束。
- 依赖方向、故障边界、数据与控制流之间不存在未解释矛盾。
- 实现能够在不猜测关键系统边界的前提下继续，未覆盖风险已明确，相关项目记忆与当前权威一致。

## 停止条件

- 关键产品约束、外部契约、部署现实或质量目标缺失，并会导致不可兼容的结构选择。
- 系统范围、责任主体或授权边界无法唯一确认。
- 继续需要未获授权的基础设施、生产环境、外部集成或不可逆操作。

## 权限与边界规则

- 只在用户授权的仓库、系统与外部资源范围内读取或修改。
- 软件架构拥有跨模块结构语义，不替代产品、具体工程、数据库、安全、质量或发布专业的局部判断。
- 不把理想蓝图、过渡计划、迁移进度、实现摘要、推断拓扑或运行快照写成当前事实。

## 参考资料

- 作出专业判断时按需读取 [软件架构专业准则](references/principles.md)。
- 读取或维护项目核心认知时读取 [软件架构项目记忆](references/memory.md)。

## 项目记忆

- 先根据用户范围、产品入口与元数据、相关项目根、目标代码和调用链唯一确认目标 Git 根与 `product-id`；`product-id` 必须在仓库内唯一、稳定，且是非 `.` 或 `..`、不含 `/` 或 `\` 的安全单级目录名。归属不唯一或名称不安全时不猜测或创建事实册。
- 工作前读取 `references/memory.md` 中本次命中的核心主题，再读取 `docs/product-studio/<product-id>/software-architecture.md` 中的相关事实；事实册不存在时以当前仓库为准，不以缺少记忆阻断工作。
- 项目记忆仅作上下文；与当前代码、配置、契约或已验证运行事实冲突时，以当前权威为准。
- 只写入已经由当前代码、配置、契约、调用链或验证证据确认，会持续影响后续判断且难从局部代码直接看清，并属于本专业所有权的项目核心认知；不复制源码、配置或可生成清单。
- 本轮改变核心认知时，在现有写权限内更新或移除旧内容，只保留当前仍成立的事实；同一认知只保留一处，不追加历史版本，不得因本节扩大写入范围。
- 不记录秘密、用户数据、任务过程、文件改动清单、迁移进度、运行快照、当前版本、一次性结果或未经验证的推断。
