- 对话中的"你"指当前执行任务的 agent;用户要求中出现"你"的句子,除疑问句与条件从句外,按"指令"理解。
- 对话中的"AI"是对所有 AI 工具的统称(语言模型、图像/语音识别等),不按工具区分;以"AI"为主语的条款同样约束当前 agent。
- 用户要求中以“设计”开头的指令,只提供设计方案,设计方案存在多个的,在最后总结比较表格,不提供代码实现,每个方案以精确到分钟的“YYYYMMDD HH:mm”+“-”+两位数字自增编号命名,不提交git commit(例如:“20240101 10:00-01”和“20240101 10:00-02”)。方案保存在会话中,采纳的方案记录到locallog.md。
- 用户要求中以“为何”开头的指令,请理解用户的需求,并与前文设计方案进行对比,给出建议。
- 用户要求“整理到开发记录”,添加本轮决策结论与简明原因到locallog.md中。
- 用户要求“检查文档”,根据locallog.md以及当前项目代码的实际功能以及实现,检查README.md、DESIGN.md、TECH.md、CHANGELOG.md、ROADMAP.md与代码是否相符(LICENSE.md与locallog.md不在被检查文档范围),给出实现建议。
- 用户要求“实施方案XXX”或“请按照XXXX实施方案”,请根据用户的需求,提供具体的实现方案,按照行为规范修改代码。
- 用户要求“制作调试工具”,请根据用户的需求,在playground目录下建立测试工具文件夹,制作调试工具、测试数据集等。
- 用户要求“设计服务接口”,请根据用户的需求,提供服务接口的接口文档,包括接口路径、请求方法、请求参数、响应参数、错误码等,用户确认后,写入TECH.md中;该次写入属于本轮生成的变更,随本轮代码变更一并提交至dev分支。
- 用户要求“准备发布新版”,代表本轮变更通过了用户的审查;执行流程:变更package.json版本号,清理代码内临时调试打印、临时注释、硬编码调试片段等开发脏内容,更新README.md、DESIGN.md、TECH.md、CHANGELOG.md、ROADMAP.md与本次变更相符,会话中列出修改点提供给用户。所有变更仅写入本地工作区,不commit,不得直接发布到github仓库。
- 用户要求“发布新版本”,代表本“准备发布新版”后的版本获得用户确认;先提交全部变更到dev分支,再将dev合并至main主分支,基于本次package.json版本号打对应的git tag,禁止直接提交main分支。
- 每次改动代码完成后,都必须回归测试,再创建对应的本地Git commit。除非用户指定,否则默认推送到github dev分支,commit message采用「类型: 变更摘要」格式;在对话中提供标记commit的版本号,以方便后续追踪和回滚。在对话中提供推荐测试方案,交付用户复核测试评审。未配置远端时只做本地 commit,并在对话中提示需要配置远端。
- 执行代码commit时,默认仅暂存本次生成的代码变更;工作区用户手动修改的文档,无需提交commit,留在工作区,仅随下一轮代码变更(用户确认后)提交至dev分支,或在「准备发布新版」阶段统一对齐,随发布流程入库。
- 生成测试数据,用于测试代码的功能和性能。
- 禁止直接向 main 分支提交代码,main 分支仅通过「发布新版本」流程完成更新。
- 直接回应,先给结论再给依据;不绕弯、不堆空话。
- 用户点名的技术栈、结构、格式与交付形态为硬约束,不得静默替换或降级;需偏离时先说明理由并征得同意。
- 非硬阻塞的问题按合理默认推进,不为小事反复发问;确实无法推进时才停下来提问。
- 全程使用用户所用语言;数据与结论可追溯,不编造事实。
- 对于用户的疑问,咨询,应该提出解决方案或答案,不进行代码修改。
- 实施代码生成规范:按「探查 → 约束 → 证据 → 执行 → 验证 → 交付」推进:
- 探查:动手前完整读取需求指定的全部输入;读不到先解决读取问题,不用印象代替。
- 约束:守住用户点名的范围,只改被点名的部分,保留未要求改动的内容。
- 证据:每个数字、结论来自输入、具体信源或可复现计算;否则标注为待补或估算。
- 执行:受阻时换通道(命令、目录、实现路径),不降级交付物。
- 验证:用「可能失败」的方式回读校验(运行测试、查看渲染、抽样重算),确认通过才算完成。
- 交付:写明产物名、路径与打开方式;宣布完成前确认输入已读全、约束未越界、事实可追溯、产物已验证。
- 文档类文件(README.md、DESIGN.md、TECH.md、CHANGELOG.md、ROADMAP.md、LICENSE.md)由用户自行在本地修改审查;这类文件的改动(含 AI 经用户确认后写入的改动)保留在工作区,随下一轮代码变更(用户确认后)一并由 AI 提交至dev分支,或在「准备发布新版」阶段统一对齐,随发布流程入库;提交口径见上文「行为规范」。
- locallog.md中记录开发过程的关键决策以及实现建议,包括用户需求、设计方案、实现建议、调试工具、服务接口等。属于本地决策讨论,不提交到github任何分支。
- package.json为项目版本号唯一真源数据所在文件,其他版本号都必须从package.json中获取,除“准备发布新版”外,不能直接修改package.json中的版本号。
- README.md为项目介绍文件,必须包含项目名称、版本号、作者、项目介绍、项目功能、项目依赖、项目使用方法、项目贡献者等信息。
- DESIGN.md为产品设计文档,包含用例、项目模块、项目用户视角下的功能描述等产品设计信息。
- TECH.md为项目技术文档,包含项目架构、模块设计、数据流、约束、选型决策、项目数据模型、接口设计、项目选型决策、项目约束等信息。
- CHANGELOG.md:按版本维护变更记录,记录版本号、变更时间、变更类型、变更内容,关联对应commit编号与git tag。
- ROADMAP.md:项目里程碑规划,包含目标、预计时间、里程碑状态(待开发 / 进行中 / 已完成)。
- LICENSE.md:许可证文本、版权声明、版权年份。
- test目录为项目测试目录,必须存放项目测试使用的脏数据示例数据,仅保存在本地,任何分支均不提交到git仓库。
- dev分支为项目开发分支,存放项目最新开发代码,日常开发不变更版本号,仅用于开发和测试。
- main主分支为项目发布分支,存放经过测试验收的稳定版本代码;每次通过发布流程合并dev到main,必须更新package.json中的版本号,并打对应版本号的git tag。
- research目录为项目调研目录,存放项目用到技术的备忘、代码片段、对标资料等。仅保存在本地,任何分支均不提交到git仓库。
- playground目录为项目测试类副本目录,包含脏数据、第三方对比、对标应用或对标代码等。仅保存在本地,任何分支均不提交到git仓库。