CLAUDE.MD 9.1 KB

长时运行代理规则

核心原则

  1. 三 Agent 架构
    • Initializer Agent:仅首次运行,初始化项目
    • Coding Agent:开发功能
    • Reviewer Agent:质量检查(对照功能表 + 浏览器验证)
  2. 外部持久化:所有进度必须写入文件,不依赖 AI 记忆
  3. 增量开发:每次会话只完成 1 个功能
  4. 状态流转:功能状态按流程逐步推进
  5. 自动执行:AI 必须自动执行所有命令,禁止让用户手动执行
  6. 失败处理:验证失败 → 修复 → 重新执行该环节
  7. 完整实现功能完成 = 后端 API + 前端页面,缺一不可
  8. 质量审查:Coding Agent 完成后 → Reviewer Agent 检查

状态流转(必须完整执行)

init → start → compiling → running → db-checking → backend-testing → frontend-testing → done
                                                                                    ↑
                                                                            【必须测试前端⚠️】
                                                                            禁止跳过!
状态 含义 工具
backend-testing 后端接口测试 curl
frontend-testing 前端页面测试 Playwright ⚠️

⚠️⚠️⚠️ 强制要求 ⚠️⚠️⚠️

  • 必须测试前端页面
  • 禁止跳过 frontend-testing 步骤
  • 禁止用 curl 代替 Playwright 测试前端
  • 功能完成 = 后端测试通过 + 前端测试通过

Initializer Agent 规则

职责(仅第一次运行)

  1. 生成 init.sh:安装依赖、初始化数据库、启动服务
  2. 生成 agent-progress.txt:进度日志
  3. 生成 feature_list.json:细粒度功能清单(JSON 格式)
  4. 初始化 Git:创建仓库并提交
  5. 自动执行初始化:启动服务并验证

禁止行为

  • ❌ 编写功能代码
  • ❌ 跳过任何工件生成
  • ❌ 使用占位符
  • ❌ 输出命令让用户手动执行

Coding Agent 规则

标准流程(按顺序执行)

步骤 1:读取状态

pwd
cat agent-progress.txt
cat feature_list.json
git log --oneline -20

步骤 2:选择功能

  • feature_list.json 选择最小 id 的未完成功能
  • 只做这一条

步骤 3:更新状态为 start

# 修改 feature_list.json: status: "start"
# 记录日志

步骤 4:开发功能

  • 编写代码

步骤 5:编译验证(状态 → compiling)

# 根据项目类型执行编译
python -m py_compile backend/*.py  # Python
npm run build  # Node.js/TS
mvn compile  # Java
  • 成功 → 更新状态为 running
  • 失败 → 修复 → 重新编译

步骤 6:运行验证(状态 → running)

# 重启服务
./init.sh
sleep 10

# 验证服务可用
curl -f http://localhost:{backend_port}/health
curl -f http://localhost:{frontend_port}
  • 成功 → 更新状态为 db-checking
  • 失败 → 修复 → 重新运行

步骤 7:数据库验证(状态 → db-checking)

python backend/db_check.py
  • 成功 → 更新状态为 backend-testing
  • 失败 → 修复 → 重新验证

步骤 8:后端接口测试(状态 → backend-testing)

# 按照 backend_test_steps 逐项测试
# 必须包含增删改查(CRUD)
  • 成功 → 更新状态为 frontend-testing
  • 失败 → 修复 → 重新测试

后端测试要求

  • 必须包含增删改查(Create/Read/Update/Delete)
  • 使用 curl 测试 API 接口
  • 开发阶段 auth_enabled: false,跳过 token 验证

⚠️⚠️⚠️ 重要:必须继续执行步骤 9 ⚠️⚠️⚠️

后端测试通过后,必须继续执行步骤 9(前端测试) 禁止在步骤 8 完成后直接标记 done 功能完成 = 后端测试通过 + 前端测试通过

⚠️ 步骤 9:前端页面测试(状态 → frontend-testing)⚠️

【必须测试前端,禁止跳过此步骤】

# 使用 Playwright 进行浏览器自动化测试
npx playwright test
  • 成功 → 更新状态为 done
  • 失败 → 修复 → 重新测试

前端测试要求

  • 必须使用 Playwright 或 Playwright cli
  • ❌ 禁止使用 curl 测试前端(curl 只能测后端)

步骤 10:功能完成(状态 → done)

# 修改 feature_list.json: status: "done", passes: true
# 更新日志
# Git 提交

⚠️⚠️⚠️ 重要:功能完成必须满足以下条件 ⚠️⚠️⚠️

  • ✅ 后端 API 已实现(通过 backend_test_steps 验证)
  • ✅ 前端页面已实现(通过 frontend_test_steps 验证)
  • ✅ 功能完整可用(不是半成品)
  • ❌ 不能只实现后端就标记 done
  • ❌ 不能只标记状态不写代码

⚠️ 禁止行为(违反则任务失败)⚠️

  • 只实现后端 API,不实现前端页面⚠️⚠️⚠️
  • 只标记状态为 done,不实际编写代码⚠️⚠️⚠️
  • 跳过前端开发步骤(只做 backend_test_steps,不做 frontend_test_steps)⚠️
  • 跳过前端测试步骤(只测后端就标记 done)⚠️
  • 用 curl 测试前端页面(curl 只能测后端)
  • ❌ 每次做多个功能
  • ❌ 跳过状态直接 done
  • ❌ 不编译就测试
  • ❌ 不运行就测试
  • ❌ 不验证数据库连接
  • ❌ 删除/修改 backend_test_steps
  • ❌ 删除/修改 frontend_test_steps
  • ❌ backend_test_steps 不包含增删改查
  • ❌ 输出命令让用户手动执行

⚠️⚠️⚠️ 核心违规 ⚠️⚠️⚠️

  • 只实现 API 不算完成 = 必须同时有后端 + 前端代码
  • 跳过前端开发/测试 = 任务失败
  • 只标记状态不写代码 = 任务失败

工件规范

feature_list.json

{
  "project_name": "项目名称",
  "base_config": {
    "backend_port": "{根据实际项目配置}",
    "frontend_port": "{根据实际项目配置}",
    "db_host": "localhost",
    "db_port": 3306,
    "auth_enabled": false
  },
  "features": [
    {
      "id": 1,
      "description": "功能描述",
      "backend_test_steps": [
        "1. curl POST /api/chats - 验证创建(增)",
        "2. curl GET /api/chats - 验证查询(查)",
        "3. curl PUT /api/chats/{id} - 验证更新(改)",
        "4. curl DELETE /api/chats/{id} - 验证删除(删)"
      ],
      "frontend_test_steps": [
        "1. 在前端页面创建分类输入框",
        "2. 点击新增按钮",
        "3. 验证分类显示在列表中",
        "4. 点击分类筛选按钮",
        "5. 验证列表按分类筛选"
      ],
      "status": "init",
      "passes": false
    }
  ]
}

⚠️ 重要:功能完成条件 ⚠️

  • 功能完成 = 后端 API 实现 + 前端页面实现
  • 缺一不可:只有后端不算完成,只有前端也不算完成
  • frontend_test_steps 必须包含具体的前端操作(如:点击按钮、输入文本、验证显示)

agent-progress.txt

  • 格式:纯文本
  • 要求:每次会话追加记录,保留所有历史

init.sh

  • 格式:Bash 脚本
  • 要求:一键启动项目、安装依赖、启动服务、运行测试

Git

  • 提交频率:每次功能完成后

权限验证配置

  • auth_enabled: false:开发阶段,跳过登录验证 token
  • auth_enabled: true:生产阶段,开启登录验证 token

建议:开发阶段关闭 auth_enabled,等核心功能完成后再开启


Reviewer Agent 规则

职责

在 Coding Agent 完成后进行质量检查:

  1. 对照 feature_list.json 验证功能是否实现
  2. 检查后端代码逻辑是否正确
  3. 用 Playwright 浏览器验证前端效果
  4. 发现问题反馈给 Coding Agent 修复

工作流程

步骤 1:读取功能清单

cat feature_list.json

步骤 2:检查后端代码

# 检查 API 是否实现
ls backend/
cat backend/api/*.py

步骤 3:检查前端代码

# 检查页面是否存在
ls frontend/src/views/
cat frontend/src/views/*.vue

步骤 4:浏览器验证(必须执行)

# 用 Playwright 验证前端效果
npx playwright test --reporter=line

验证:

  • ✅ 页面能正常打开
  • ✅ 按钮能点击
  • ✅ 功能能正常使用
  • ✅ 数据显示正确

步骤 5:生成审查报告

cat > feature-review-report.md << 'EOF'
# 功能审查报告

## 功能 X 审查结果

| 检查项 | 状态 | 说明 |
|--------|------|------|
| 后端代码 | ✅/❌ | |
| 前端代码 | ✅/❌ | |
| 浏览器验证 | ✅/❌ | |

### 问题列表
1. [问题描述]

### 结论
- ✅ 通过 → 功能可以标记为完成
- ❌ 不通过 → 返回 Coding Agent 修复
EOF

审查标准

问题类型 严重程度 处理方式
功能完全没实现 🔴 严重 返回重做
部分功能缺失 🟡 中等 返回补充
UI 样式问题 🟢 轻微 可忽略

核心原则

Reviewer Agent 是质量把关者

发现问题必须反馈,不能视而不见

浏览器验证是必须的