# Graph Module Rules

## 范围与职责

适用于 `src/host/graph/`。

提供「工作流图」的确定性契约与判定：图的形状与连接点语义、图的构造与只读查询、结构合法性校验与规范化、编排质量检查（问题清单）、组织元参数的归一化与规模护栏。

判断归属：该修改是否改变**图契约、图判定口径或图相关的约束**？若主要属于其他领域（运行推进、Agent 语义、Tool 协议、UI 展示、持久化），应放到对应模块。

## 子域边界

子域：图契约与结构校验、编排质量检查、组织元参数与规模护栏。

- 子域之间只通过明确的输入输出协作，不得互相承担对方职责；
- 结构校验判定「图是否合法」（形状、连接点、拓扑）；质量检查判定「图是否编排得当」（设计提醒），两者不得互相重新定义对方的结论；
- 元参数护栏只约束**代理**改图，不约束用户手工改图——是否启用由调用方按变更来源决定，本模块不做来源判定。

## 依赖边界

- 只允许依赖 shared 的形状与协议常量及 Node 内置能力；
- 本模块是判定提供方：调用方依赖本模块的判定，本模块不反向依赖调用方。

## 验证补充

- 问题 code 的注册表、级别与阻断/提示语义有测试锁定；
- 判定口径边界（什么算流程线、什么算参与流程）有测试锁定；
- 公共入口导出面未意外扩大。

## 核心原则

1. 图判定确定性优先，纯函数不含隐藏依赖。
2. 同一图概念只有一处本体，禁止双份维护。
3. 结构合法性、编排质量与规模约束各守其责。
4. 问题 code 与级别是契约，新增必须登记。
5. 判定口径变化必须显式记录。
