cursor的mdc规则官方定义方法

如何高效地为AI助手组织和管理项目上下文规则。

对于包含独立前端(frontend)和后端(backend)的 монорепо(monorepo)项目结构,最佳实践是采用一种 分层、分治 的策略来定义规则。

简单来说,您应该 同时在根目录和子目录中定义规则,但它们的职责不同:


1. 根目录规则 (/): 定义全局规范

在项目的根目录,您应该定义那些 贯穿整个项目、不分前后端的通用原则和规范。这些是项目级的高层共识。

适合放在根目录的规则示例:

  • 核心设计哲学: 如您已经定义的“第一性原理”、“DRY”、“KISS”等,这些是整个团队的行事准则。
  • 统一语言规范: 强制所有注释、日志、提交信息使用中文。
  • 版本控制流程: Git 的分支策略、Commit Message 格式规范 (feat:, fix:)。
  • 项目整体介绍: 对项目(如 Kodbox)的简要说明。

这样做的好处是:

  • 全局一致性: 确保所有开发者,无论在哪个子项目工作,都遵循同样的基础规范。
  • 避免重复: 无需在 frontend/backend/ 中重复定义相同的核心原则。

2. 子目录规则 (frontend/, backend/): 定义特定领域的规范

在各自的子目录中,您应该定义 针对该技术栈和领域的具体、详细的开发规范

backend/ 目录中的规则:

这里应该专注于后端开发的所有细节。

  • 技术栈规范: NestJS 的模块化标准、控制器和服务的分层职责。
  • 数据库规范: [[memory:318264]] MONGODB_URI 的使用、Schema 定义标准、Mongoose 的使用方法。
  • API 与文档: RESTful 设计风格、[[memory:318257]] Swagger 注解的强制要求。
  • 错误处理与日志: [[memory:318268]] 如何使用 LoggerService、如何抛出 HTTP 异常。

frontend/ 目录中的规则:

这里应该专注于前端开发的所有细节。

  • 技术栈规范: React (Hooks) 的使用、组件化思想、文件命名约定。
  • UI 库规范: [[memory:318272]] 优先使用 Ant Design 组件、如何进行二次确认 (Popconfirm)。
  • 状态管理: Zustand 的使用模式、Store作为单一数据源的原则。
  • API 服务层: 如何组织 services 文件、如何处理请求和响应。

这样做的好处是:

  • 高度相关性: 当AI在 frontend/ 目录下工作时,它会加载与React和Antd最相关的规则,而不会被后端的NestJS规范干扰。
  • 可维护性: 前后端规则解耦,当后端技术栈升级时,只需修改 backend/ 的规则文件,不会影响前端。
  • 精确性: 可以为每个端定义非常具体和深入的最佳实践。

总结

您可以将这种结构看作是一个继承关系:

目录位置 规则内容 作用范围
根目录 (/) 全局设计原则、语言规范、版本控制 整个项目
backend/ NestJS、MongoDB、Swagger、API具体实现等 仅后端代码
frontend/ React、Ant Design、状态管理、组件化等 仅前端代码

当AI在特定子目录(如 backend/src/modules/files)中执行任务时,它会优先加载该路径下最匹配的规则(backend/ 中的规则),同时也会了解并遵循根目录的全局规则。这种分层的方式能提供最精确、最有效的上下文指导。

标签

发表评论