1. 自动生成项目规则 .windsurfrules
通过项目描述文档中用到的技术栈和Globalrules中的规则,让AI助手自动生成项目规则文档.windsurfrules
2. 自动生成 .ai 文件夹及其内容
为了进一步规范项目管理,AI助手可以在项目根目录下生成一个 .ai 文件夹,其中包含以下三个关键文件:
2.1 project-plan.md 项目规划文档
-
作用:
项目规划文档是项目管理的核心,它定义了项目的目标、里程碑、任务分配和资源需求。 -
生成方式:
-
AI助手根据项目的描述文档,自动生成初始的项目规划文档。
-
大概内容:
## 项目概述 ## 技术栈 ## 实施计划 ###阶段一: ###阶段二: ###阶段三: ## 项目里程碑: ## 注意事项
-
2.2 project-progress.md 项目进度文档
-
作用:
项目进度文档用于记录项目的当前状态、已完成的任务和未完成的任务,实时了解项目进展。 -
生成方式:
- AI助手定期扫描项目文档和代码库,提取关键指标(如任务完成率、代码提交量、测试覆盖率等),并生成项目进度文档。
2.3 work-log.md AI助手工作日志
-
作用:
AI助手工作日志记录了AI助手在项目中的操作内容、遇到的问题以及下一步的工作计划,用来了解AI助手的工作状态。 -
生成方式:
-
AI助手在每次执行任务时,自动记录操作日志(如生成文件、修改配置、提取信息等)。
-
例如:
# AI助手工作日志 ## 2023-10-25 14:30 - 操作:生成 `.windsurfrules` 文件 - 结果:成功生成文件,路径:`/project/.windsurfrules` ## 2023-10-25 15:00 - 操作:生成项目规划文件 - 结果:成功生成文件,路径:`/project/.ai/project-plan.md`
-
3. 触发机制
- 初始化:使用
/init进行项目文档初始化 - 更新:当项目说明文档有更新时,使用
/update来更新项目规划文档、.windsurfrules、项目进度文档和工作日志文档
GlobalRules具体规则
# AI开发规则
## 通信规则
* 对话中始终用中文回应。
* 避免使用高语境解释或间接表达(如"这里可以做这个"),应提供具体代码或解决方案。
* 立即呈现问题答案,详细解释后续补充。
* 无需用自己的话复述用户问题。
* 当基于推测或预测回答时(无明确信息来源),需明确声明。
* 提出多种解决方案,并清晰说明优缺点。
* 积极考虑新技术和方法。
* 若存在信息来源,需在回答末尾统一标注引用。
* 简要说明修改的底层逻辑。
# 代码生成
* 除非特别说明,交付物始终用中文编写注释和文档。
* 通过反复验证确保生成代码可执行。
* 修改代码时,仅展示变更部分的前后几行,避免冗余重复。
* 按需拆分为多个代码块。
* 优先使用简单且非冗余的实现方式。
* 仅针对测试时,允许冗余描述(即使违反DRY原则)。
# 安全注意事项
* 始终遵循安全最佳实践。
* 将API密钥和机密信息存储为环境变量。
* 彻底验证用户输入。
* 针对常见漏洞实施防御措施。
* 合理配置身份验证和授权机制。
# 项目文档管理
* **项目说明文件**:项目根目录下的 [project.md](cci:7://file:///Users/jie/Projects.localized/tdaft-supermarket/backend/project.md:0:0-0:0) 是项目说明文件,由开发者编写。
* **AI文档目录**:AI助手需要在项目根目录下创建 `.ai` 文件夹,用于存放AI生成的项目文档。
* **规划文档**:AI助手根据 [project.md](cci:7://file:///Users/jie/Projects.localized/tdaft-supermarket/backend/project.md:0:0-0:0) 在 `.ai` 文件夹中创建详细的项目规划文档,包含每个步骤的实施计划。
* **进度文档**:AI助手在 `.ai` 文件夹中维护项目进度文档,记录已实现的功能、遇到的问题及解决方案。
* **工作日志**:每次会话结束时,AI助手在 `.ai` 文件夹中更新工作日志,记录本次会话的工作内容。
* **会话开始检查**:每次会话开始时,AI助手应查看进度文档,了解项目当前进度和下一步计划。
* **Windsurf规则文件**:AI助手需要根据 [project.md](cci:7://file:///Users/jie/Projects.localized/tdaft-supermarket/backend/project.md:0:0-0:0) 和全局规则,在项目根目录下生成 [.windsurfrules](cci:7://file:///Users/jie/Projects.localized/tdaft-supermarket/backend/.windsurfrules:0:0-0:0) 文件,该文件包含项目特定的开发规则和指导方针。
# 开发流程
## 功能开发步骤
1. 制定最小可行产品(MVP)规格
2. 根据规格选择并安装开发语言和框架
3. 按开发语言和框架模板组织目录结构
4. 列出实现MVP所需的文件清单
5. 编写符合规格的测试用例
6. 遵循 RED(失败)- GREEN(通过)- REFACTORING(重构)原则逐步实现
## 缺陷修复步骤
1. 通过测试定位问题根源
2. 若测试无法定位问题,则全面检查实现逻辑
3. 分析修复可能影响的范围
4. 修复问题
5. 运行测试套件
6. 测试失败返回步骤4,成功则确认修复完成
# 开发标准
## 后端代码标准 (Node.js/JavaScript)
* **文件**
* 常规文件:kebab-case (api-utils.js)
* 测试文件:*.test.js/*.spec.js
* **命名**
* 函数/变量:camelCase
* 常量:UPPER_SNAKE_CASE
* 类:PascalCase
* **代码格式化**
* 基础:2空格缩进,80字符限制,模板字面量
* 风格:尾部逗号,同行大括号,箭头函数
* 结构:属性解构,环境变量
### 内容规范
* 永不删除未编辑的文件内容
* 避免将未更改内容总结为"[rest of file remains the same]"
* 任何内容删除前需确认
* 聚焦更新和新增而非删除
### 错误处理
* **错误类型**
* 自定义带消息的类层次结构
* 开发环境堆栈跟踪,备用UI,监控
* 用户友好提示,会话状态
* 标准化格式,重试逻辑,网络处理
* **日志**
* 带请求ID的结构化格式
* 正确严重级别
* 上下文不含敏感数据
## API
* **REST**:规范,HTTP方法,状态码,版本控制,数据结构
* **验证**:正确错误处理,输入验证,JSON:API规范
* **SQL**
* 核心:自文档化,别名,索引,命名,预处理语句
* 数据:类型,约束,分区,并发访问
* 操作:WAL模式,备份,ORM设置,事务
* 安全:预防注入,访问控制,连接池
* 性能:EXPLAIN ANALYZE,监控,优化
## 安全
* **输入**:数据消毒,类型验证,正确转义,安全上传
* **认证**:JWT处理,安全会话,令牌刷新,RBAC
* **防护**:CSP头,预防XSS/CSRF,API安全,遵循OWASP
## 文档
* **JSDoc**:接口,用法示例,副作用
* **项目**:README,设置指南,故障排除,决策变更日志
## 构建与部署
* **构建**:lint检查,测试,包优化
* **部署**:语义版本,蓝绿策略,回滚,健康监测
## 仓库管理
* **分支结构**
* main:生产发布
* develop:活跃开发
* 按类型使用feature/release/hotfix分支
* **分支命名**:feature/*, bugfix/*, hotfix/*, release/*, chore/*
* **提交规范**:`<类型>[范围]: 描述`(<60字符)
* 类型:feat, fix, docs, style, refactor, test, chore
* **Pull Request**
* 模板:变更内容、测试项、重大变更、部署说明
* 审查:代码风格、覆盖率、性能、可访问性、安全性
* 合并条件:CI通过、冲突解决、文档更新、测试通过
## 监控与分析
* **核心指标**
* 错误率
* API响应时间
* 资源使用率
* **用户数据**
* 交互行为
* 转化率
* 功能使用率
## Markdown标准
* **行规则**
* 文件末尾单空行
* 禁止连续空行/尾部空格
* 元素间适当间距
* **标题**
* ATX 风格(# 后加空格)
* 禁用表情符号,正确嵌套,空行分隔
* **列表/代码**
* 2空格缩进,正确标记符
* 指定语言的分隔代码块
* 正确链接语法 [文本](https://url/)
* **格式**
* 表格:表头对齐,宽度统一
# 快捷指令
* `/plan` : 明确详细制定工作计划并确认无歧义,达成共识后执行
* `/debug` : 定位缺陷根源。列出5-7个潜在原因并缩小至1-2个,通过日志验证假设
* `/review` : 从质量/效率/安全/可维护性维度审查代码,提供具体改进建议
* `/refactor`: 在不改变功能的前提下提出重构建议,提升可读性和可维护性
* `/optimize`: 从性能优化角度分析代码,提出具体改进方案
* `/test` : 推荐测试策略并提供具体测试代码
* `/doc` : 协助编写代码文档,清晰说明函数目的/参数/返回值等
* `/arch` : 提出架构设计或改进方案
* `/cmt` : 添加规范注释/文档,遵循现有代码格式说明代码意图
* `/mvp` : 构建最小可行产品
* `/init` : 在项目根目录创建 .ai 文件夹及初始文档结构,根据项目说明文件和全局规则,生成项目特定的 .windsurfrules 文件。根据项目说明文件生成或更新详细的项目规划文档。
* `/update`:检查project.md更新的内容,根据更新的内容修改项目规划文档以及.windsurfrules文件和项目进度文档、工作日志文档。
* `/progress` : 查看当前项目进度文档,了解已完成工作和待办事项
* `/log_work` : 记录本次会话的工作内容,更新工作日志
* `/next_step` : 根据项目规划和进度,提供下一步工作建议
* `/create_ai_dir` : 在项目根目录创建 .ai 文件夹及初始文档结构
* `/create_rules` : 根据项目说明文件和全局规则,生成或更新项目特定的 .windsurfrules 文件
* `/help` : 显示快捷指令说明,不展示其他内容SyntaxError: Unexpected end of input SyntaxError: Unexpected token ’>>>’