2.1 KiB
2.1 KiB
模块依赖规则
权威合同:
docs/系统架构/新版设计/总体架构.md;机械门禁:tests/架构/test_模块依赖.py+make 检查。
- 业务只经公共接口:跨模块调用只走目标模块
接口.py暴露的用例及其所需类型;禁止导入其他模块的存储.py、模型.py内部符号,也不得经__all__公开存储类。绝对/相对导入和别名遵循相同边界,业务模块不反向依赖编排或接入。 - 共享基础零反向依赖:
src/muse/共享/、配置.py、资源加载.py禁止导入业务模块。启动.py是组合入口,可以选择并绑定具体实现,但不承载业务规则。 - 元数据不写业务值:S04 元数据只描述、校验和投影结构;业务实例值由拥有它的业务模块写入。
- 技能支持自包含:
.agent/skills/支持项目无关的自包含操作说明与配套辅助工具/脚本;禁止向系统sys.path注入,禁止反向导入或依赖业务单体内部实现(src/muse/)。 - 接入与编排不操作私表:HTTP/CLI/主会话及编排禁止手写 SQL 或使用数据库游标;由所属模块的公开用例调用内部存储,不将 SQL 搬入新的跨模块捷径。
- 宿主不裁决正式内容:模型宿主(Pi/直接调用)只产候选与证据;作者确认与正式提交不在宿主层发生。
- 薄入口:
python -m muse与 CLI 分发入口只做参数解析与转交,不创建连接或写业务逻辑。具名适配器可管理已装配连接的事务范围以调用 S04 等事务参与者;连接凭据、用途和构造仍由基础设施统一处理,禁止手写 SQL。
违反任一条:先修依赖方向,再继续;不以"临时导入"放行。