software-architecture · git:20260903.931a322 · 2026-09-03 · sha256 0422c15f98fe1272

software-architecture git:20260903.931a322A

Immutable. This exact content is served forever at /api/v1/blob/0422c15f98fe1272.

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

# 软件架构

## 目标

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

## 执行协议

1. 确认本专业范围、任务所指产品与工作边界、授权改动、受影响消费者、验证边界和未知项。
2. 阅读 [专业能力准则](references/principles.md) 的能力索引,并完整读取本次实际命中的能力条目。
3. 阅读 [项目记忆](references/memory.md) 中本次命中的核心主题,依“项目记忆”章的定位规则唯一确认当前产品根目录与 `product-id` 后,再读取 `<当前产品根目录>/docs/product-studio/<product-id>/software-architecture.md` 中与本次工作相关的已有事实;项目记忆只作背景,当前代码、配置、契约与运行证据优先。
4. 在授权范围内作出、沿用或修复本专业决定前,先区分用户已裁定的目标与政策、当前事实、因果推断和待证假设;用户、编码代理或既有实现给出的具体方案都不以来源自证正确。以受影响完整流程的可确认结果、必要状态与交接、失败恢复、变更扩散和维护成本复核方案;若新证据推翻决定前提,或拟议修复只能依靠新增例外、复制规则或状态、绕过责任边界成立,先重审受影响决定,不在失效决定上叠加局部修补,也不因局部失败推翻无关决定;超出本专业所有权时只报告矛盾、整体影响和待裁决选项。随后依命中准则;对会改变跨模块行为或共享能力的工作,先沿真实入口、调用者、状态与副作用追踪至可确认结果,识别既有业务能力、稳定不变量、真实消费者和跨边界契约;再完成最小充分实现或审查,不规定其他专业能力的选择、先后或数量。
5. 运行与风险相称的验证并检查最终差异,记录证据能证明与不能证明的范围。
6. 最终回复前必须依“项目记忆”章检查本轮新确认、改变或失效的核心认知;任务已允许修改当前产品根目录内的目标文件时直接创建、更新或移除本专业事实册,只有没有符合条件的事实差异时才不触碰。

## 输出契约

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

## 完成条件

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

## 停止条件

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

## 权限与边界规则

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

## 参考资料

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

## 项目记忆

- 先唯一确认“当前产品根目录”:它是本次任务所指产品的工作边界,不要求存在 Git 仓库或 `.git`。用户明确指定的产品目录优先;否则根据当前打开的工作区中实际承载目标文件的目录、产品入口与元数据、目标代码、配置和调用链共同判定,Git 根只作可选佐证,不得仅因当前进程工作目录、Git 根或 Skill 所在目录而选根。当 Product Studio 仅作为技能提供者时,不得把它的源码目录、技能文件目录、插件安装目录或缓存目录认作当前产品根目录;只有任务明确以 Product Studio 本身为目标产品时才可使用其目录。无法唯一确认时不读取、创建或修改任何候选事实册。
- 再确认 `product-id`;它必须在当前产品根目录内唯一、稳定,且是非 `.` 或 `..`、不含 `/` 或 `\` 的安全单级目录名。事实册的唯一位置是 `<当前产品根目录>/docs/product-studio/<product-id>/software-architecture.md`。读取与写入必须使用以已确认根目录为基准的路径,不得把相对的 `docs/product-studio/<product-id>/software-architecture.md` 按进程当前目录或 Skill 所在目录解析;归属不唯一或名称不安全时不读取、猜测或创建事实册。
- 工作前读取 `references/memory.md` 中本次命中的核心主题,再读取 `<当前产品根目录>/docs/product-studio/<product-id>/software-architecture.md` 中的相关事实;事实册不存在时先以当前产品为准继续工作,待收口检查发现首条应入册事实时再创建,不得因缺少文件跳过最终检查。
- 项目记忆仅作上下文;与当前代码、配置、契约或已验证运行事实冲突时,以当前权威为准。
- 以本轮实际核验范围为取材边界,只写入已经由当前代码、配置、契约、调用链或验证证据确认,会持续影响后续判断且难从局部代码直接看清,并属于本专业所有权的项目核心认知;本轮未修改但经当前权威新确认、尚未入册的既有事实同样需要写入,事实候选不以 Git 差异为限;不复制源码、配置或可生成清单。
- 只读分析、审查或状态查询没有事实册写权限,除非用户明确要求维护记忆;凡任务已允许修改当前产品根目录内的目标文件,维护该根目录下的事实册属于同一写权限,除非用户明确排除。最终回复前必须把符合条件但尚未记录、已经改变或已经失效的事实直接创建、更新或移除,不得只在回复中列出候选,也不得因事实册不存在而跳过;不得因本节扩大当前产品根目录之外的写入范围。
- 事实册不存在且至少有一条应入册事实时,在当前产品根目录下一并创建 `docs/product-studio/<product-id>/` 与 `software-architecture.md`;没有事实时不创建空目录或空册。首行固定为 `# software-architecture 当前产品事实`;每项事实以可检索的稳定业务语义为二级标题,用现在时写清当前事实、成立条件与影响边界,并给出相对于当前产品根目录的权威核验入口和失效或重审条件。
- 同一认知只保留一处,原位更新或移除旧内容,只保留当前仍成立的事实,不追加历史版本;最后一个主题移除后删除事实册,`<product-id>` 目录为空时一并删除。
- 不记录秘密、用户数据、任务过程、文件改动清单、迁移进度、运行快照、当前版本、一次性结果或未经验证的推断。