Claude Code / Hermes 编码代理工作流规范

> 适用范围:本规范用于本地项目中的 AI 编码代理协作,尤其适合 Claude Code、Hermes Agent、Codex/Gemini 辅助审查等组合。 > > 来源基础:整理自 Towards Data Science 文章《How to Write Robust Code with Claude Code》,并结合当前本地项目约束改写为可执行工作流。

1. 核心原则

编码代理的可靠性,不应主要依赖人工逐行审查,而应依赖一套可重复的工程流程:

1. 先规划,再实现。 2. 控制上下文,不让噪音淹没关键约束。 3. 把项目经验沉淀到仓库文档或 Hermes skill/wiki,而不是只留在聊天记录里。 4. 写代码代理和审查代理分离。 5. 所有完成声明必须有验证证据:测试、lint、diff、运行结果或人工确认点。

一句话版本:

> 让代理多做思考和复查,但让流程负责约束边界、验证结果和沉淀经验。

2. 角色分工

2.1 用户 / Owner

负责:

不需要做:

2.2 Hermes Agent

负责:

2.3 Claude Code / 编码代理

负责:

2.4 独立审查代理

负责:

建议组合:

3. 标准任务流程

3.1 小任务流程

适用:文档修正、小 bug、局部脚本调整、无生产副作用的小改动。

步骤:

1. 读取相关文件和项目约束。 2. 明确最小修改范围。 3. 直接修改。 4. 运行最小验证:单测、lint、脚本 smoke test 或 diff 检查。 5. 汇报:改了什么、怎么验证、还有什么风险。

完成标准:

3.2 中等任务流程

适用:新增功能、重构局部模块、影响多个文件但不直接操作生产资源。

步骤:

1. 写一个短 plan,包含目标、非目标、涉及文件、验证方式。 2. 用户确认或默认边界足够清楚后执行。 3. 分阶段修改,每阶段保持可回滚。 4. 运行相关测试和静态检查。 5. 按需触发独立代理 review。 6. 如触发 review,根据审查结果修正或说明不采纳原因。 7. 输出完成报告。

独立 review 触发条件:

完成标准:

3.3 高风险任务流程

适用:数据库、K8s、部署、权限、安全、账务、生产告警、外部 API 写入。

步骤:

1. 先输出操作计划,不直接执行。 2. 明确:目标、影响范围、回滚方案、验证方式、停止条件。 3. 等用户确认后再执行有副作用步骤。 4. 优先 dry-run、只读检查、备份、分批执行。 5. 执行后立即验证。 6. 记录变更证据和后续观察项。

硬规则:

4. Plan Mode 使用规范

4.1 什么时候必须先 plan

以下情况必须先 plan:

4.2 一个合格 plan 应包含

建议模板:

# Plan: <任务名>

## 目标
- ...

## 非目标
- ...

## 现状依据
- 已读取文件:...
- 已确认约束:...

## 修改步骤
1. ...
2. ...
3. ...

## 验证方式
- ...

## 风险与回滚
- 风险:...
- 回滚:...

## 需要用户确认的问题
- ...

4.3 Plan Mode 的关键要求

5. 上下文管理规范

5.1 上下文只放必要信息

优先放:

避免放:

5.2 大上下文的处理方式

如果上下文过大:

1. 先摘要成“任务相关事实”。 2. 把长期有效规则写入项目文档或 skill。 3. 把临时过程留在会话,不写入 memory。 4. 必要时新开干净审查上下文。

实用规则:

> 宁可给代理一份短而准确的约束清单,也不要给它一大堆未经筛选的历史材料。

6. 项目知识沉淀规范

6.1 分层原则

不同知识放在不同位置:

6.2 每次任务后的沉淀判断

任务完成后问三个问题:

1. 这个经验下次还会用吗? 2. 它是项目特有,还是跨项目通用? 3. 它一周后还有效吗?

推荐处理:

6.3 Bug 修复记录模板

## Bug: <简短标题>

### 现象
- ...

### 根因
- ...

### 修复
- ...

### 防复发规则
- ...

### 验证
- ...

7. 编码代理实现规范

7.1 实现前

代理必须先确认:

7.2 实现中

要求:

7.3 实现后

必须验证:

8. 独立 Code Review 规范

8.1 什么时候需要独立 review

建议触发条件:

8.2 审查提示词模板

你是独立代码审查代理。请只审查以下变更,不要修改文件。

审查目标:
1. 找出可能的 bug、边界遗漏、回归风险。
2. 检查是否违反项目约束。
3. 检查测试是否覆盖核心路径。
4. 区分必须修复、建议修复、可忽略问题。

项目约束:
- <粘贴关键 CLAUDE.md / AGENTS.md 约束>

变更范围:
- <文件列表或 diff>

输出格式:
- 结论:通过 / 需要修改
- 必须修复:...
- 建议修复:...
- 测试缺口:...
- 依据:...

8.3 审查结果处理

处理规则:

9. Pre-commit 与生产就绪检查

9.1 自动检查

每个项目应尽量具备:

Python 项目推荐:

pytest -q
ruff check .
ruff format --check .
ty check .  # 如果项目使用 ty

当前旧项目按项目文档为准,例如 excsql 使用:

cd ~/code/project/work/excsql
source .venv/bin/activate
pytest tests/ -v

9.2 代理生产就绪检查

提交前可让代理回答:

请检查当前变更是否 production ready。
重点看:
1. 是否有未处理异常或边界情况。
2. 是否有安全风险、密钥泄露、权限问题。
3. 是否有数据破坏或不可回滚风险。
4. 是否有测试缺口。
5. 是否违反项目 CLAUDE.md / AGENTS.md。
只输出问题,不要泛泛表扬。

10. 本地项目推荐落地方式

10.1 对 excsql

必须遵守:

建议流程:

1. 先写 plan 到 .hermes/plans/ 或项目 docs。 2. 用户确认边界。 3. 小步修改。 4. pytest tests/ -v。 5. 按触发条件决定是否做独立代理 review。 6. 再决定是否提交。

Plan 管理要求:

10.2 对 K8s / 运维监控项目

必须遵守:

建议验证:

10.3 对新 Python 项目

默认模板:

11. 完成报告模板

每次任务结束时,建议输出:

完成:<一句话结论>

改动:
- ...

验证:
- ...

风险/未做:
- ...

建议下一步:
- ...

如果验证失败:

未完成:<失败原因>

已完成:
- ...

失败证据:
- 命令:...
- 错误:...

建议下一步:
- ...

12. 推荐默认工作流

最终推荐采用下面这条默认链路:

需求输入
→ 读取项目约束和相关代码
→ Plan Mode / 写短计划
→ 用户确认高风险边界
→ 编码代理实现
→ 本地测试和静态检查
→ 独立代理 review
→ 修正问题
→ 输出验证证据
→ 判断是否沉淀项目知识或 skill

这条链路的目标不是让流程变复杂,而是避免最常见的 AI 编码失败:

13. 最小可执行版本

如果只想先落地最小版本,执行这 5 条即可:

1. 中等以上任务先写 plan。 2. 每次修改前读 CLAUDE.md / AGENTS.md。 3. 每次完成必须跑测试或说明替代验证。 4. 重要改动用另一个代理审查。 5. 修过的典型 bug 写进项目文档或 skill。

这已经能覆盖大多数 Claude Code / Hermes 协作中的可靠性问题。