# ShowenV2 开发流程规范

> CEO 操作上下文的唯一权威来源是 `CLAUDE.md`。本文件定义详细工作流程。

## 核心原则
**方案先行，记录完整，审核通过才执行。**

---

## 标准工作流程

### 1. 方案阶段
- CEO 在 PROGRESS.md 或 TEAM_CHAT.md 中写明任务方案
- 方案内容: 目标、涉及文件、技术方案、验收标准
- git commit 方案文档

### 2. 派发阶段
- CEO 或 PM 通过 `kilo run -m openai/gpt-5.4 --auto --dir <dir>` 派发
- **任务消息必须包含**:
  - 角色身份
  - **开工前必读文件**：souls/<name>.md + .showen/COMPANY_RULES.md + .showen/TEAM_CHAT.md
  - 具体要求和上下文文件列表
  - **交付要求**：必须贴 cargo check/test 输出；修完检查同类问题；更新 soul 文件
  - 验收标准
- 更新 PROGRESS.md 记录谁在做什么

### 3. 审核阶段
- 成员交付后**先检查验证证据**:
  - [ ] 交付中是否附带 cargo check/test 输出？**无输出 → 直接打回，不看代码**
  - [ ] cargo check 零 warning？
  - [ ] cargo test 全部通过？
- 证据合格后再审核代码:
  - [ ] 逻辑与需求一致？
  - [ ] 代码风格一致？
  - [ ] 没有安全问题？
  - [ ] 是否主动检查了同类问题？（能动性加分项）
- 合格: git commit + 绩效记录 + 灵魂文件更新
- 不合格: 按失败升级协议处理（见下方）

### 3.5 失败处理流程（新增）
- 审核不合格时，按成员累计失败次数执行对应等级：

```
第 1 次不合格 → 正常打回，说明问题
第 2 次 (L1)  → 打回 + 要求切换本质不同的方案
第 3 次 (L2)  → 打回 + 要求搜索+源码+3假设 → PM 上报 CEO
第 4 次 (L3)  → CEO 介入，要求 7 项检查清单
第 5 次 (L4)  → 换人，任务移交
```

- 失败计数记录在 `.showen/RECOVERY.md` 团队压力状态表中
- 详细规则见 `.showen/COMPANY_RULES.md` 失败升级协议

### 4. 记录阶段
- 每次 git commit 前更新 PROGRESS.md
- 重大决策写入"关键决策记录"
- 成员经验写入 souls/<name>.md
- 沟通记录写入 TEAM_CHAT.md

---

## 文件职责

| 文件 | 用途 |
|------|------|
| CLAUDE.md | **CEO 唯一必读**：身份/规则/团队/状态/kilo模板 |
| PROGRESS.md | 里程碑摘要、最近变更 |
| TEAM.md | 团队成员档案、制度、绩效详情 |
| TEAM_CHAT.md | 团队异步沟通、任务讨论 |
| souls/<name>.md | 成员灵魂：经验/性格/技能 |
| WORKFLOW.md | 本文件，开发流程规范 |

---

## CEO 操作模板

### 派发任务

> kilo 派发模板的权威版本见 `CLAUDE.md`。以下为快速参考：

```bash
kilo run -m openai/gpt-5.4 --auto \
  --dir /home/showen/Showen/ShowenV2 \
  "你是<角色名>。开工前必读：souls/<name>.md + .showen/COMPANY_RULES.md + .showen/TEAM_CHAT.md。
  任务：<具体说明>。交付要求：贴 cargo check/test 输出 + 检查同类问题 + 更新 soul 文件。
  验收标准：<具体标准>"
```

### 审核提交
```bash
# 1. 检查改动
git diff --stat
# 2. 验证编译
export PATH="/home/showen/.rustup/toolchains/stable-aarch64-unknown-linux-gnu/bin:$PATH"
cargo check
# 3. 审核代码（CEO 读文件）
# 4. 提交
git add <files> && git commit -m "<msg>"
# 5. 更新进度
```

---

> 具体任务方案见 `.showen/` 目录下的任务分解文档（如 `DEVICE_PLUGIN_TASKS.md`）。
