---
sync_policy: engine_only
---
# 架构约束工具（SoloForge 脚手架生成）

本项目已注入**架构适应度函数**（Architecture Fitness Function），用于在构建/CI 阶段自动拦截架构退化，与 SoloForge 的 gate 配合实现「代码可判定的硬约束」——减少 AI 生成代码时的架构偏差。

## 已注入的工具

### dependency-cruiser（JavaScript / TypeScript 项目）
- 配置文件：`.dependency-cruiser.config.js`（项目根）
- 运行：`npx depcruise --config .dependency-cruiser.config.js src`
- 内置规则：禁止循环依赖、禁止 Controller/页面层直接访问数据层、禁止通用层反向依赖业务层、检测死代码
- 退出码语义：0 = 无违规；非0 = 检测到违规

### ArchUnit（Java / Spring Boot 项目）
- 测试文件：`src/test/java/<包路径>/ArchitectureRulesTest.java`
- 前置依赖：需在 `pom.xml` / `build.gradle` 添加 `com.tngtech.archunit:archunit-junit5`
- 运行：`mvn test` / `gradle test`
- 内置规则：分层依赖方向（controller→service→persistence→entity）、禁止循环依赖、Controller 禁止依赖 Servlet API

## 与 SoloForge gate 的关系

SoloForge 的 verify/design gate 通过 `external_command` 执行器调用上述工具，按退出码判定检查是否通过：

- 工具检测到违规（退出码非0）→ gate `hard_fail`，阻断本次交付
- 工具通过（退出码 0）→ gate 放行

这样把「依赖方向、分层边界、行数、项目级存在性」等 SoloForge 无法用正则判定的检查，委托给成熟工具，而非自研解析器——这是行业最优解。

> 生成时间: {{date}}
