1. 开发周期管理 Skill
完整开发周期管理 Skill,从需求分析到部署上线的全流程自动化
Prompt
---
name: dev-cycle
description: 开发循环规范 - 模块化开发、代码检查、部署触发,只要接收到需求,必须按照这个流程执行
---
# 开发循环规范
> **核心原则**:一次一个模块,改完检查代码,触发词部署
## ⚠️ 强制执行规则(必须遵守)
### 1. 模块化开发
**开始修改前必须声明**:「本次修改属于 M[X] - [模块名称]」
每次只修改一个模块区域内的代码,不跨模块修改。
### 2. 本地 Build 检查
修改完成后执行本地 Build 检查错误:
| 修改内容 | 检查命令 |
| ------------- | ---------------------------------------------- |
| 前端 (M1-M12) | `cd frontend-nuxt && npm run build` |
| 后端 (M13) | `cd backend && go build -o buffett-api api.go` |
**说明**:
- 本地 Build 用于提前发现 TypeScript 错误、语法错误等
- 本地 Build 结果不影响发布(`prod.sh` 会在远程服务器重新 Build)
- Build 失败必须修复,避免发布后远程也失败
### 3. 部署触发词
当用户说以下词汇时,执行部署脚本:
| 用户说 | 执行命令 |
| ------------------------------------------------------------------ | -------------------- |
| 发布前端 / 部署前端 / 上线前端 | `./prod.sh frontend` |
| 发布后端 / 部署后端 / 上线后端 | `./prod.sh backend` |
| 发布 / 部署 / 上线 / 推上去 / 上生产 / 更新线上 / deploy / publish | `./prod.sh` |
**部署前提**:代码必须已 commit 并 push 到 main 分支(prod.sh 会从远程 git pull)
---
## 模块定义(13 个模块)
| 模块编号 | 模块名称 | 涉及文件范围 |
| -------- | ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| **M1** | 未登录首页(营销页或者官网) | `pages/index.vue`(未认证部分)、`components/marketing/` |
| **M2** | 登录后首页 | `pages/keeprule/index.vue`、笔记/交易组件 |
| **M3** | 规则模块 | `pages/rules.vue`、`pages/keeprule/rules.vue`、`components/principles/PrincipleCard.vue`、`components/principles/PrincipleGrid.vue` |
| **M4** | 原则详情 | `pages/principles/[slug].vue`、`components/principles/detail/` |
| **M5** | Chat AI | `components/chat/`、`components/layout/MobileAI.vue`、Chat 相关 API |
| **M6** | 投资大师 | `pages/master.vue`、`pages/keeprule/masters/`、`components/masters/` |
| **M7** | Wiki 知识库 | `pages/wiki/`、`pages/keeprule/wiki/` |
| **M8** | 用户中心/设置 | 用户信息、偏好设置相关页面和组件 |
| **M9** | 新手引导 | `components/onboarding/` 全部组件(WelcomeModal、Guide、EmptyState 等) |
| **M10** | 布局/导航 | `components/layout/Header.vue`、`components/layout/SidePanel.vue`、`components/auth/` |
| **M11** | 关于/帮助 | `components/common/AboutModal.vue`、帮助文档相关页面 |
| **M12** | SEO/Meta | 页面 `useHead()`、结构化数据、sitemap、robots |
| **M13** | 后端 API | `backend/internal/`(handler、logic、model) |
---
## 开发循环流程
┌─────────────────────────────────────────────────────────────────┐ │ 1. 用户需求 │ │ ↓ │ │ 2. 声明:「本次修改属于 M[X] - [模块名称]」 │ │ ↓ │ │ 3. 修改代码(仅限该模块范围,遵守 HALT 纪律) │ │ ↓ │ │ 4. 本地 Build 检查错误 │ │ ├── 有错误 → 修复 → 重新 Build │ │ └── 无错误 → 继续 │ │ ↓ │ │ 5. 完成门控自查(见下方清单) │ │ ├── 未通过 → 补齐遗漏 → 重新自查 │ │ └── 通过 → 继续 │ │ ↓ │ │ 6. 完成 / 用户说「发布」→ commit & push → 执行 ./prod.sh │ │ (远程服务器会重新 Build,本地 Build 只是提前检查) │ └─────────────────────────────────────────────────────────────────┘
### HALT 纪律(开发过程中强制遵守)
在开发过程中遇到以下情况,**必须立刻停下来告知用户,禁止自行猜测、绕过或假装解决**:
| 触发条件 | 正确做法 | 禁止做法 |
|---------|---------|---------|
| 找不到需要的文件或依赖 | 停下来说"我找不到 XX" | 猜一个路径继续写 |
| 需求有歧义,可以有多种理解 | 停下来问用户确认 | 自己挑一个理解往下做 |
| 改动可能影响其他模块但不确定范围 | 停下来说明风险 | 只改眼前的不管副作用 |
| 遇到报错且尝试后仍无法解决 | 停下来报告错误和已尝试的方法 | 删掉报错代码假装没事 |
| 发现已有代码存在 bug | 停下来告知用户 | 悄悄绕过或忽略 |
| 不确定某个实现方式是否符合项目规范 | 停下来确认 | 按自己理解随意实现 |
**核心原则**:宁可多问一句,也不要交付一个有隐患的结果。
### 完成门控(声称"做完了"之前必须自查)
在告诉用户"修改完成"之前,**必须逐条确认以下清单全部通过**:
- [ ] **需求完整性**:用户提出的每一条要求都有对应实现,没有遗漏
- [ ] **代码完整性**:所有修改的代码都写完了,没有半成品
- [ ] **无新增报错**:Build 检查通过(前端 `npm run build` / 后端 `go build`)
- [ ] **变更清单**:列出所有修改的文件及每个文件的改动摘要
- [ ] **无遗留 TODO**:代码中没有留下 `// TODO`、`// FIXME`、`// HACK` 等待后续处理的标记
- [ ] **无假完成**:不存在用注释占位、空函数、硬编码 mock 数据等"假完成"情况
**未通过门控时**:继续修复直到全部通过,或 HALT 告知用户哪条无法满足及原因。
---
## Build 检查清单
### 前端修改后(M1-M12)
- [ ] `npm run build` 无错误
- [ ] 无 TypeScript 编译错误
- [ ] 响应式布局考虑(移动端 < 768px)
- [ ] 多语言文本使用 `$t()` 包裹
- [ ] 路由使用 `localePath()` 生成
### 后端修改后(M13)
- [ ] `go build` 无错误
- [ ] API 遵循 `/api/v1/buffett/xxx` 前缀
- [ ] 数据库操作带 WHERE 条件
---
## 示例对话
**用户**:「未登录首页的 Hero 区域加一个动画效果」
**Claude**:
> 本次修改属于 **M1 - 未登录首页(营销页)**
>
> 修改文件:`components/marketing/LandingPage.vue`
>
> [执行修改...]
>
> 修改完成,执行 Build 检查...
>
> `npm run build` ✅ 无错误
---
**用户**:「好的,发布前端」
**Claude**:
> 先提交代码到 main 分支...
>
> [git add、commit、push]
>
> 执行部署命令:`./prod.sh frontend`
>
> [部署脚本会在远程服务器自动执行 npm install && npm run build]
---
## 注意事项
1. **跨模块需求**:如果用户需求涉及多个模块,先拆分任务,按顺序逐个模块处理
2. **本地 vs 远程 Build**:
- 本地 Build:提前检查错误,避免发布失败
- 远程 Build:`prod.sh` 会在服务器重新执行 `git pull` + Build
- 本地 Build 结果不会被发布,只是检查工具
3. **部署前提**:代码必须 commit 并 push 到 main 分支