# Write Code

> 按 task 文件执行 TDD 红绿重构，逐任务推进

- Skill: `cnife/write-code` (Agent Skill)
- Install (CLI): `npx skillmds@latest add cnife/write-code`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cnife/write-code/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: cnife (https://skillmd.com/u/cnife)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cnife/write-code

---


# Write-Code — TDD 红绿重构

读取 `$CHANGE_DIR/tasks/` 下 task 文件，按依赖顺序逐 task 执行 TDD 红绿重构。

## 输入

- **任务来源**：`$CHANGE_DIR/tasks/` 下所有 task 文件，按并行分层和依赖顺序执行
- **上下文**：`$CHANGE_DIR/plan.md`

## TDD 红绿重构

逐 task 执行红→绿→重构循环：

### RED：写测试 → 失败

1. 读取当前 task 文件的「涉及文件」和「验证方式」
2. 为这个 task 编写集成测试——测试通过公共接口验证行为，不测实现细节
3. 运行测试 → 必须红（失败）
4. 如果不红，说明测试无效或功能已存在，检查测试是否正确

### GREEN：最小实现 → 通过

1. 写刚好够让测试通过的代码——不预测未来需求
2. 运行测试 → 必须绿（通过）
3. 如果失败，修复后重试，**最多 3 次**

### REFACTOR：重构 → 仍通过

1. 测试全部通过后，重构代码：
   - 消除重复
   - 深化模块（把复杂逻辑藏到简单接口后面）
   - 改进命名
2. 每次重构后重新跑测试，确认仍通过
3. **绝不在 RED 状态下重构**

### 状态更新

- 开始 task：frontmatter `status: 进行中`
- task 完成（测试通过 + 重构完成）：frontmatter `status: 完成`
- 进入下一个 task

## 验证规则

- 验证命令来自 task 文件的「验证方式」
- 每完成一个 task 立即验证
- 验证失败 3 次 → 停止，输出失败信息和手动修复指引

## change.md 追加

所有 task 完成后：

```markdown
---

# 变更 v{N}：编码完成

## 产出文件

- src/a.ts（修改）
- tests/a.test.ts（新建）

## 执行摘要

| task | 状态 |
|------|------|
| T01 | 完成 |
| T02 | 完成 |

## 变更文件清单

| 文件 | 对应任务 | 操作 |
|------|---------|------|
| src/a.ts | T01 | 修改 |
| tests/a.test.ts | T01 | 新建 |
```

## 停止条件

- tasks/ 目录不存在或为空 → 停止
- task 验证失败 3 次 → 停止，报告失败
- 所有 task 完成 → 更新 change.md，停止

