This repository has been archived on 2026-08-07. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
kb-skills/dev-workflow/SKILL.md
T
starmen1265 630dc09062 feat(dev-workflow): 添加 Cross-Debate 和 Cross-Review 模式
- 更新 SKILL.md:完整的 Cross 模式流程文档
- 更新 dev_workflow.py:新增 record-debate、record-review 命令
- 新增 debate-template.md:Cross-Debate 模板
- 用户介入点:Phase 1 方案选择 + Phase 6 最终审核
- 六条铁律:Briefing 原则、安全约束等
- 禁止 auto-merge:防止流程错误
2026-03-09 12:16:08 +08:00

367 lines
10 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.
---
name: dev-workflow
description: "Spec-Driven 开发流程技能,支持 Cross-Debate 和 Cross-Review。当用户说'添加功能'、'开发XXX'时使用。"
---
# dev-workflow - Agent Engineering 开发流程
## 什么时候使用
当用户发送包含以下模式的消息时触发:
| 触发词 | 行为 |
|--------|------|
| `添加功能` + 描述 | 开始 Agent Engineering 开发流程 |
| `开发` + 描述 | 同上 |
| `实现` + 描述 | 同上 |
## 环境变量
| 变量名 | 用途 | 必需 |
|--------|------|------|
| `GITEA_TOKEN` | Gitea API Token(创建 PR) | 是 |
| `GITEA_URL` | Gitea 服务地址 | 否(默认 http://192.168.1.22:8418) |
| `GITEA_REPO` | 仓库路径 | 否(默认 starmen1265/kb-skills) |
## 工作流程(Cross 模式)
```
用户描述需求
↓
┌─────────────────────────────────────┐
│ Phase 1: Cross-Debate(方案辩论) │
│ - 3个 Agent 分别出方案 │
│ - 汇总辩论结果 │
│ - 用户选择/调整方案 │
│ - 生成统一 spec.md │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ Phase 2: 分支创建 │
│ - 创建 feature/* 分支 │
│ - 切换到功能分支 │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ Phase 3: 子代理开发 │
│ - 基于 spec 启动开发子代理 │
│ - 子代理执行开发任务 │
│ - 本地测试通过 │
│ - 提交代码到功能分支 │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ Phase 4: Cross-Review(交叉审核) │
│ - 3个 Agent 交叉审核代码 │
│ - 汇总问题列表 │
│ - 自动修复(或请求用户确认) │
│ - 多轮迭代直到通过 │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ Phase 5: 安全审计 │
│ - 搜索安全最佳实践 │
│ - 审计权限/注入/密钥等问题 │
│ - 修复安全漏洞 │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ Phase 6: 创建 PR │
│ - 调用 Gitea API 创建 PR │
│ - ⚠️ 禁止 auto-merge │
│ - 返回 PR 编号 │
└─────────────────────────────────────┘
↓
通知 pr-review-gate 最终审查
```
## 用户介入点
| 阶段 | 介入方式 | 说明 |
|------|---------|------|
| **Phase 1** | 方案选择 | Cross-Debate 后选择或调整方案 |
| **Phase 4** | 可选确认 | 有无法决定的问题时介入 |
| **Phase 6** | 最终审核 | 查看 PR,决定是否合并 |
---
## 执行步骤详解
### Phase 1: Cross-Debate(方案辩论)
#### Step 1.1: 启动多 Agent 辩论
使用 `sessions_spawn` 并行启动 3 个 Agent:
```
# Agent 1: Claude Code(偏保守,重视安全)
sessions_spawn(
task="为以下需求设计方案。你是保守派,重视安全性和稳定性。
需求:{{用户需求}}
输出:1) 技术方案 2) 潜在风险 3) 实现步骤",
agentId="claude-code",
runtime="acp"
)
# Agent 2: Codex(偏全面,考虑边界情况)
sessions_spawn(
task="为以下需求设计方案。你是全面派,考虑所有边界情况。
需求:{{用户需求}}
输出:1) 技术方案 2) 边界情况 3) 实现步骤",
agentId="codex",
runtime="acp"
)
# Agent 3: Gemini CLI(偏快速,先出方案再补细节)
sessions_spawn(
task="为以下需求设计方案。你是快速派,优先快速实现。
需求:{{用户需求}}
输出:1) 技术方案 2) MVP范围 3) 实现步骤",
agentId="gemini",
runtime="acp"
)
```
#### Step 1.2: 汇总辩论结果
收集三个方案后:
1. 提取共同点(通常是正确的方向)
2. 列出分歧点(需要用户决策)
3. 生成辩论汇总报告
#### Step 1.3: 用户选择方案
向用户展示:
```
## 🗳️ Cross-Debate 结果
### 共识点
- ✅ 使用 XX 技术栈
- ✅ 需要 YY 数据结构
### 分歧点
| Agent | 方案 | 理由 |
|-------|------|------|
| Claude Code | 方案A | 安全性更高 |
| Codex | 方案B | 考虑边界情况 |
| Gemini | 方案C | 实现更快 |
请选择方案(A/B/C)或提出调整:
```
#### Step 1.4: 生成 Spec
用户确认后,创建 `.planning/spec.md` 文件。
---
### Phase 2: 分支创建
```bash
python3 dev_workflow.py create-branch --spec .planning/spec.md
```
分支命名规则:
- `feature/<简短描述>` - 新功能
- `fix/<简短描述>` - Bug 修复
- `refactor/<简短描述>` - 重构
---
### Phase 3: 子代理开发
使用 `sessions_spawn` 启动开发子代理:
```
sessions_spawn(
task="""根据 spec 开发 {{功能名称}}
## Spec 文件
读取 .planning/spec.md
## 要求
1. 只写目标,不指定具体文件(自己探索)
2. 本地测试通过后再提交
3. 提交信息遵循 Conventional Commits
## 安全约束
- 不能 fail-open
- 并发请求不能超额
""",
cwd="~/work/kb-skills",
runtime="acp"
)
```
**Briefing 原则:**
- ✅ 写目标:Pro 用户改成月度字符预算
- ✅ 写约束:砍掉所有按次计费逻辑
- ❌ 不写文件:改 src/api/user.ts
---
### Phase 4: Cross-Review(交叉审核)
#### Step 4.1: 启动多 Agent 审核
```
# Agent 1: 纯代码审查
sessions_spawn(
task="审查当前分支的代码变更。纯看代码,不给参考文档。
检查:1) 逻辑错误 2) 边界情况 3) 代码风格",
agentId="claude-code",
runtime="acp"
)
# Agent 2: 带文档审查
sessions_spawn(
task="审查当前分支的代码变更。先搜索相关官方文档,再审代码。
检查:1) API使用正确性 2) 最佳实践 3) 文档一致性",
agentId="codex",
runtime="acp"
)
# Agent 3: 测试覆盖审查
sessions_spawn(
task="审查当前分支的测试覆盖。检查:
1) 单元测试覆盖 2) 边界情况测试 3) 集成测试",
agentId="gemini",
runtime="acp"
)
```
#### Step 4.2: 汇总问题并修复
```json
{
"critical": [
"外键顺序 bug:扣费逻辑先写子表再写父表"
],
"high": [
"RPC 权限暴露:任何登录用户都能直接调"
],
"medium": [
"Booster 购买没验证 payment_status"
]
}
```
自动修复或请求用户确认。
#### Step 4.3: 多轮迭代
如果发现问题:
1. 修复后重新触发 Cross-Review
2. 重复直到无 Critical/High 问题
---
### Phase 5: 安全审计
```
sessions_spawn(
task="""安全审计当前分支代码。
## 审计清单
1. 搜索 OWASP Top 10 相关最佳实践
2. 搜索平台(如 Stripe/Supabase)安全文档
3. 检查以下问题:
- SQL 注入
- 权限暴露(如 PostgreSQL 函数权限)
- 密钥泄露(检查日志、错误信息)
- fail-open 问题
- 并发竞态条件
## 输出
- Critical 漏洞(必须修复)
- High 风险(建议修复)
- 安全建议
""",
agentId="claude-code",
runtime="acp"
)
```
---
### Phase 6: 创建 PR
开发完成后:
```bash
python3 dev_workflow.py create-pr --branch feature/xxx --title "PR 标题"
```
**⚠️ 禁止 auto-merge**:必须等待用户最终审核。
PR 创建后告知用户:
```
✅ PR #xxx 已创建
**分支:** feature/xxx
**链接:** http://192.168.1.22:8418/starmen1265/kb-skills/pulls/xxx
**已完成:**
- ✅ Cross-Debate(3个Agent辩论)
- ✅ Cross-Review(3个Agent审核,X轮)
- ✅ 安全审计
**下一步:** 请审核 PR,确认无误后合并。
```
---
## CLI 命令
```bash
# 创建 spec(从 Cross-Debate 结果)
python3 dev_workflow.py create-spec --title "标题" --description "描述"
# 从 spec 创建分支
python3 dev_workflow.py create-branch --spec .planning/spec.md
# 创建 PR(禁止 auto-merge)
python3 dev_workflow.py create-pr --branch feature/xxx --title "PR标题"
# 查看当前状态
python3 dev_workflow.py status
# 记录 Cross-Debate 结果
python3 dev_workflow.py record-debate --file .planning/debate.md
# 记录 Cross-Review 结果
python3 dev_workflow.py record-review --round 1 --issues '[{"level":"critical","desc":"..."}]'
```
---
## 与其他技能的协作
| 技能 | 协作方式 |
|------|----------|
| **pr-review-gate** | PR 创建后触发最终审查 |
| **kb-workflow** | 可复用其目录结构 |
| **GSD** | 采用其 Spec-Driven 方法论 |
---
## 六条铁律
1. **Briefing 写目标,不写文件** - 你是 PM,Agent 是工程师
2. **Agent 共识需要人类验证** - 三个 AI 同意不代表正确
3. **本地完成所有工作再推远端** - 实现、测试、审核、修复全在本地
4. **安全约束要写进 Briefing** - "不能 fail-open"、"并发不能超额"
5. **密钥永远不过聊天** - 用环境变量文件,命令里用变量名
6. **Briefing 必须包含产品上下文** - 用户画像、产品定位、商业模式
---
## 注意事项
1. 确保 `GITEA_TOKEN` 已配置
2. 功能分支命名遵循规范
3. 提交信息遵循 Conventional Commits
4. 开发前先 pull 最新代码
5. **禁止 auto-merge** - 流程错误比代码 bug 更贵