---
trigger: always_on
---

# 架构边界规则

## 目标

约束 Codex 在目标项目中遵守目录所有权、依赖边界和既有分层架构，避免把逻辑放错层、改错文件或私自引入依赖。

## 强制规则

1. 只在当前任务声明的 `owned_paths` 内写文件；命中 `forbidden_paths` 时不得写入。
2. 未经任务 `allowed_dependencies` 明确批准，不得新增或升级依赖，也不得修改 `package.json`、lockfile、workspace 清单或构建配置。
3. 不得绕过项目既有 `service / domain / repository / adapter / controller / route` 边界；如果需要跨层访问，必须先在架构约束 truth source 中有明确说明。
4. 不得把领域逻辑、权限判断、状态机或事务一致性逻辑直接放入 UI、路由、控制器、脚本入口或测试替身，除非任务 `architecture_constraints` 明确允许。
5. 不得为了局部实现方便而复制既有抽象、重复封装相同依赖，或在多个模块各写一份同类规则。
6. 如果修改会触碰共享模块、公共契约、依赖配置、脚本入口或代码生成边界，先在影响面分析中显式说明，再执行改动。
7. 未经当前任务、DEV-PLAN 或架构约束 truth source 明确允许，不得修改公共 API、package API、OpenAPI / GraphQL / protobuf schema、CLI help、路由契约或文件格式。

## 需要显式阻塞的情况

- 当前改动超出 `owned_paths`
- 当前改动命中 `forbidden_paths`
- 需要新增依赖但 `allowed_dependencies` 为空
- 需要越过 service/domain/repository 边界才能完成任务
- 需要修改公共 API / package API / schema / 路由契约 / 文件格式，但任务或架构约束没有明确允许
- 发现既有架构约束与当前实现方向冲突

## 交付前检查

- 是否只修改了 `owned_paths`
- 是否避免了 `forbidden_paths`
- 是否没有未批准的依赖变更
- 是否没有破坏既有分层边界
- 是否没有引入重复抽象或复制逻辑
- 是否没有未批准的公共契约变更
