1
0
Files
DiAL/openspec/specs/code-quality-gates/spec.md
lanyuanxiaoyao 3f477d1b57 feat: 完善全栈打包质量门禁
在业务开发前补齐 lint、format、verify 与生产运行时契约,确保开发联调和 executable 打包链路可重复验证。
2026-05-09 14:48:49 +08:00

2.6 KiB

Purpose

定义项目代码质量门禁、格式化检查、快速检查和完整验证命令的行为要求,确保开发者可以通过文档化命令稳定验证源码质量、基础测试和生产 executable 行为。

Requirements

Requirement: ESLint 代码质量门禁

项目 SHALL 提供 ESLint 代码质量门禁,用于审查 TypeScript、React 前端、脚本和测试代码中的质量问题。

Scenario: 运行 lint 检查

  • WHEN 开发者运行文档化的 lint 命令
  • THEN 系统 SHALL 使用 ESLint 检查项目源码、脚本和测试代码,并在发现违规时以非零状态退出

Scenario: 检查 React Hooks 规则

  • WHEN 前端 React 代码违反 Hooks 调用规则
  • THEN lint 命令 MUST 失败并报告对应违规

Scenario: 保护前后端边界

  • WHEN src/web 前端代码导入 src/server 后端运行时实现
  • THEN lint 命令 MUST 失败并报告前后端边界违规

Requirement: Prettier 代码格式门禁

项目 SHALL 提供 Prettier 格式化和格式检查命令,用于统一代码风格。

Scenario: 检查代码格式

  • WHEN 开发者运行文档化的格式检查命令
  • THEN 系统 SHALL 使用 Prettier 检查受管理文件,并在发现未格式化文件时以非零状态退出

Scenario: 自动格式化代码

  • WHEN 开发者运行文档化的格式化命令
  • THEN 系统 SHALL 使用 Prettier 重写受管理文件的格式

Scenario: 排除 OpenSpec 文档和生成产物

  • WHEN Prettier 格式化或格式检查运行
  • THEN 系统 MUST 排除 openspec/dist/.build/node_modules/bun.lock 和临时构建产物

Requirement: 快速检查命令

项目 SHALL 提供快速 check 命令,用于日常开发期间验证代码质量和基础行为。

Scenario: 运行快速检查

  • WHEN 开发者运行 bun run check
  • THEN 系统 SHALL 依次执行类型检查、lint、格式检查和单元测试

Scenario: 快速检查失败

  • WHEN check 中任一子检查失败
  • THEN check MUST 以非零状态退出且不静默忽略失败

Requirement: 完整验证命令

项目 SHALL 提供完整 verify 命令,用于提交前或发布前验证当前源码、测试和生产 executable 行为。

Scenario: 运行完整验证

  • WHEN 开发者运行 bun run verify
  • THEN 系统 SHALL 先运行 check,再运行生产构建和 executable smoke test

Scenario: 完整验证失败

  • WHEN verify 中任一阶段失败
  • THEN verify MUST 以非零状态退出且不能继续声明验证成功