# 生成后校验规则

## 版本和证据

- antd 必须是目标策略允许的最新 6.x。
- Sisyphus 必须是目标策略允许的最新 4.x。
- Sisyphus MCP 报告版本必须与目标版本一致。
- 每个 Sisyphus 组件必须有 API 与 demo 证据。
- 每个 antd fallback 必须有具体缺口和 fallbackReason。

## 组件边界

- 禁止用 antd 重写 Sisyphus 已覆盖能力。
- 禁止在 ProForm 中无证据地嵌套 Form.Item。
- 禁止用 antd Tabs 替代 ProTable 内置状态筛选。
- 禁止用 Modal/Drawer 替代 ProDrawerForm 已覆盖能力。
- 禁止 `@ts-nocheck`；精准类型逃逸必须有原因。

## 项目解耦

- 无导航需求时不得出现路由 import。
- 只有证据确认后才引入 `@umijs/max`、`react-router-dom` 或其他路由库。
- service 调用方式必须来自目标项目证据，不写固定 axios/request 模板。
- 权限和状态实现必须来自目标项目证据。
- 不修改未授权的全局布局、入口、依赖或 MCP 配置。

## 结构和代码

- 组件使用 `.tsx`，纯逻辑使用 `.ts`，样式使用项目确认的 LESS 约定。
- 所有 `.ts`、`.tsx` 运行时函数必须使用箭头函数；函数声明/表达式、对象或类方法、getter、setter 和 constructor 统一报 `function-syntax`。项目约定不得覆盖此硬规则，interface/type 方法签名不参与检查。
- 注释、字符串、正则和模板字符串文本中的函数字样不报错；模板表达式中的真实非箭头函数仍必须拦截。TypeScript 解析器不可用时明确失败，不得降级为字符串匹配或跳过检查。
- 目录、类型文件、导出方式和 import 顺序遵循最近项目规则及其引用的完整规范。
- 生成前必须按 `ProjectProfile.fileStructureAdapter` 确认职责与路径；项目规定 `config/`、`components/`、`services/`、`models/`、`assets/`、`utils/`、`hooks/` 时，不得生成同职责的根目录平铺文件。
- 项目规定 `propsType.ts` 时不得擅自生成 `type.ts` 或 `types.ts`；页面内子组件的独立目录、样式 colocate 和 barrel 导出以项目证据为准。
- 项目 request 已有全局错误拦截时，不得重复包裹请求 `try/catch`，也不得重复判断 `res.status === 200`。
- 禁止模板中的序号分隔注释。
- 禁止默认 placeholder、无用 import、空 catch 和静默失败。
- 仅创建需求需要的目录和文件。

## 验证命令

1. `validate-scaffold.mjs --profile <ProjectProfile JSON>`
2. 按 `references/review-guard.md` 创建独立只读子代理，并使用 `scripts/evaluate-review-gate.mjs` 判定通过、修复或阻断；最多 2 轮自动修复，每轮后重新执行第 1、2 步
3. 目标项目 typecheck
4. 目标项目 lint
5. 相关单元/集成测试
6. 有截图时进行页面视觉核对
7. GitNexus detect changes

任一检查未执行都必须在交付报告中标注“未验证”，不能省略。
