Files
makemd/doc/项目规则.md
wurenzhi 136c2fa579 feat: 初始化项目结构并添加核心功能模块
- 新增文档模板和导航结构
- 实现服务器基础API路由和控制器
- 添加扩展插件配置和前端框架
- 引入多租户和权限管理模块
- 集成日志和数据库配置
- 添加核心业务模型和类型定义
2026-03-17 22:07:19 +08:00

3.9 KiB
Raw Blame History

代码与提交规范 (通用规则)

本文件包含适用于所有项目的通用编码规范


1. 基础规范

  • 使用 TypeScript;禁止 any必要场景以 TODO 标注并跟进)
  • 文件命名小写短横线TypeScript 类型与接口使用大驼峰
  • 分支命名feature/, fix/, docs/, chore/;提交信息以动词开头,中文或英文均可
  • 变更前必须通过构建与基础校验脚本npm run check
  • 注释要求:中文注释,紧贴代码语句,描述意图而非过程;禁止冗长段落

2. Lint 与格式化

  • ESLint:插件启用 ESLintReact+TS后端暂不强制 ESLint
  • 代码风格:统一缩进 2 空格UTF-8换行 LF末尾换行
  • 编辑器:建议在本地启用编辑器保存时格式化(遵循 .editorconfig

3. TypeScript 约束

  • Strict 模式extension/ tsconfigstrict 开启paths 使用 @/*
  • 类型安全server/ tsconfig保持严格类型避免 any 与隐式 any

4. API 约定

  • 响应结构:所有响应统一结构:{ success: boolean, data?: any, error?: string }
  • 错误处理错误码与信息需清晰、可定位4xx 为入参错误5xx 为服务异常
  • CORS:白名单通过环境变量 ALLOWED_ORIGINS 配置
  • 速率限制:通过 RATE_LIMIT_REQUESTS 与 RATE_LIMIT_WINDOW_MS 配置

5. 安全与保密

  • 密钥管理:严禁提交任何密钥或私密配置;环境变量由 .env 管理并忽略提交

6. 提交前校验

  • 严禁全量构建:为节省服务器/本机开销,日常开发流程中严禁运行 npm run build
  • 强制自我审计开发者AI必须在交付代码前通过 ReadGetDiagnostics 进行逻辑自查与类型校验
  • 逻辑自查标准:代码必须细致到“部署即运行”,业务链路必须闭环(如:新增字段必须在 API 响应中体现,且在 Service 中有对应处理)
  • 禁止跨 AI 审计:每个窗口仅负责自身代码的业务完整性,无需等待其他 AI 审计,直接交付

7. Todo 列表执行规范

  • 任务同步:必须通过 TodoWrite 工具同步任务进度;每次对话开始时应优先规划或更新任务列表
  • 任务管理:在任务列表中所有 pendingin_progress 的任务未处理完成或未记录明确阻塞原因前,严禁主动终止对话回合或将控制权交还给用户
  • 阻塞处理如果任务被阻塞BlockedAI 必须在 Todo 或看板中清晰列举出当前遇到的“自我问题”,并遵循 RCA 强制模板
    • [CATEGORY](Context Missing / Logic Conflict / API Hallucination / Env Issue)
    • [ROOT_CAUSE](具体原因,如:.env 缺少某 Key)
    • [MITIGATION](修复建议或 Fallback 路径,如:手动在 .env 补充该 Key 或使用模拟数据)
  • 流程闭环:必须遵循“规划 -> 执行 -> 验证 -> 归档”的完整闭环,单次执行应尽可能覆盖多个关联任务以提高效率
  • 任务描述:必须使用中文,并清晰定义“核心/架构/业务/UI”等模块属性

8. AI 可读性优先原则

  • 标准命名:禁止任何语义不明的缩写。变量名与函数名必须具备强描述性,以最大化 IDE 自动补全的预测准确度
  • JSDoc 驱动:在实现逻辑前,必须编写详尽的 JSDoc@param, @returns, @throws)。这不仅是文档,更是为 Autocomplete 提供精准的上下文先验知识
  • 小函数原则:单个函数逻辑控制在 30 行以内。函数越短Autocomplete 的补全信心指数越高,从而减少人工手动输入的 Dollar Usage 成本
  • 函数命名:必须表达业务意图(禁止缩写语义漂移),同类逻辑必须复用统一 Service

本文件为通用编码规范,项目特定规则请参考 project-specific-rules.md\n