auto-ai-coding/ReadMe.md

153 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# SDD + API-First 提示词指南 (Prompt Playbook)
本文档提供在“规范驱动 + 接口先行”开发生命周期中,人类与 AI 协作的标准化提示词模板。通过这些模板,可以确保即便使用不同的 AI 窗口或模型,也能产生一致的规范工件。
---
## 1. 文档生成阶段 (强模型/架构 AI)
此阶段目标是确立 SSOT。建议采用“单步确认”模式。
### 1.1 启动功能定界
**适用场景**:开始做新功能时。
**使用方法**:复制提示词,粘贴后直接在末尾输入你的需求。
```text
【工作模式】先写需求文档,再写代码。禁止直接写代码。
【必须遵守】项目根目录的 agents.md 和 docs/ 文件夹下的方法论文档
请分析我的需求,在 spec/<模块名>/ 文件夹下输出功能边界、外部接口清单、文档清单。输出完成后停止,等待我确认。
我的需求:
```
### 1.2 生成需求文档
**适用场景**:功能定界确认后。
**使用方法**:直接复制粘贴即可,无需修改。
```text
【必须遵守】项目根目录的 agents.md 和 docs/ 文件夹下的方法论文档
请生成 spec/<模块名>/requirements.md 需求文档,包含:用户故事、验收标准、接口映射表。
完成后停止,等待我确认。确认后请单独提交这个文档到 git提交信息使用文档中的第一个 AC 编号格式docs: init requirements [AC-XXX-01]
```
### 1.3 生成接口定义
**适用场景**:需求文档确认后。
**使用方法**:直接复制粘贴即可,无需修改。
```text
【必须遵守】项目根目录的 agents.md 和 docs/ 文件夹下的方法论文档
请生成 spec/<模块名>/openapi.provider.yaml 接口定义文件,要求与需求文档中的验收标准完全对齐。
完成后停止,等待我确认。确认后请单独提交这个文档到 git提交信息使用需求文档中的第一个 AC 编号格式docs: init openapi contract [AC-XXX-01]
```
---
## 2. 编码实现阶段 (弱模型/执行 AI)
此阶段目标是按图施工,严格遵守提交节奏。
### 2.0 项目初始化(仅主窗口执行一次)
**适用场景**:开始编码前,准备项目基础设施。
**使用方法**:直接复制粘贴即可,无需修改。
**重要提示**:此步骤仅由主窗口/管理员执行一次,其他窗口跳过此步骤。
```text
【必须读取】spec/<模块名>/ 下的规范文档requirements.md、openapi.provider.yaml、design.md、tasks.md
【初始化任务】
请按顺序执行以下初始化操作:
1. 检查并安装项目依赖(如 npm install、pip install 等)
2. 创建必要的目录结构(如 logs/、uploads/、temp/ 等)
3. 初始化数据库(执行迁移脚本,创建表结构)
4. 插入基础数据(如管理员账号、系统配置等)
5. 检查外部服务连接(如 Redis、消息队列、第三方 API
6. 生成配置文件(如 .env.local基于 .env.example
【硬规则】
- 仅执行基础设施初始化,不实现任何业务功能
- 初始化完成后提交一次,提交信息使用需求文档中的第一个 AC 编号格式chore: init project infrastructure [AC-XXX-01]
- 完成后输出"初始化完成",等待其他窗口开始并行开发
执行初始化。
```
### 2.1 生成并行开发提示词
**适用场景**:项目初始化完成后,准备多窗口并行开发。
**使用方法**:直接复制粘贴即可,无需修改。
```text
【必须读取】spec/ 下所有模块的 tasks.md 文件
请分析各模块的任务清单,为每个模块生成一个可直接使用的提示词,格式如下:
---
## 窗口 N<模块名>
```text
【必须读取】spec/<模块名>/ 下的规范文档requirements.md、openapi.provider.yaml、design.md、tasks.md
【可选】如果任务复杂≥5个子任务按 docs/session-handoff-protocol.md 创建进度文档
【硬规则】
1. 严格按 tasks.md 顺序执行任务
2. 仅修改自己负责的模块文件,禁止修改其他模块或项目基础设施
3. 禁止初始化项目(如创建数据库、修改全局配置),项目已由管理员初始化完成
4. 每完成一个任务:运行测试 -> 提交代码格式feat/fix: <描述> [AC-XXX-NN]
5. 代码注释必须包含对应的验收标准编号 [AC-XXX-NN]
6. 所有提交保留在本地,禁止 push 到远端
现在开始执行 <模块名> 的 Phase 1 任务。
```
---
生成完成后,用户可以直接复制每个窗口的提示词到对应的 AI 窗口执行。
```
### 2.2 契约与实现对齐 (L2 升级)
**适用场景**:实现接近完成,准备合并前。
```text
【契约对齐】将 openapi.provider.yaml 提升至 L2 并对齐代码。
任务:
1. 修改 info.x-contract-level 为 L2。
2. 检查代码实现,确保 DTO 校验 (Validation)、枚举、错误码与契约 100% 一致。
3. 若契约收紧 (如增加必填项),必须同步修改代码与测试。
4. 确保 Traceability 校验通过。
完成后执行 spec-only commit 和实现 commit。
```
---
## 3. 接续与收网阶段 (全流程)
### 3.1 启用会话接续协议 (Handoff)
**适用场景**:任务复杂 (子任务 >= 5) 或需要跨窗口接力。
```text
当前任务满足复杂度阈值,必须启用接续协议。
请按 docs/session-handoff-protocol.md在 docs/progress/ 下创建/更新 <module>-progress.md。
要求:详细记录 Next Action必须精确到 文件:行号。
```
### 3.2 PR 门禁自检 (收网前)
**适用场景**:推送远端并发起 PR 前。
```text
请进行收网前自检:
1. 确认所有 spec 文件已完成 spec-only commit。
2. 确认所有任务在 tasks.md 中已标为 ✅。
3. 确认 provider 等级为 L2。
4. 运行本地脚本:./scripts/check-traceability.sh 和 ./scripts/check-openapi-level.sh 确保 100% 通过。
自检无误后,创建功能分支推送到远端并发起 PR。
```
---
## 4. 故障排除 (Troubleshooting)
- **Actions 报错**: “检查日志,若是环境变量缺失或离线 checkout 问题,参考 docs/setup-gitea-actions-gate.md 修复。”
- **门禁失败**: “若是 AC ID 找不到,检查 requirements.md 是否同步更新。”