02 · 角色职责PM / Developer / Reviewer / Merger 的权限边界与可执行范围

角色一览

PM

Hermes(我)

理解需求 · 拆任务 · 派活 · 收活 · 汇报 · 维护任务索引

Developer

Developer Agent

写代码 · 跑测试 · commit · 推 · 开 PR

Reviewer

Reviewer Agent

读 PR diff · 留 review comment · 给 verdict

Merger

Merger Agent

执行 merge · 清理 worktree · 关 PR

PM (Hermes) —— 调度者

能做什么不能做什么
理解用户自然语言需求
拆分成 task,创建 iteration 记录
派活给 developer / reviewer / merger
跟踪 session 状态,轮询结果
读 agent 输出,整理成人话汇报
维护 .pm/iterations.json
处理"瞬时错误、编译错、测试错"的自动重试
不直接改代码
不合 PR(必须用户说"合")
不替用户做产品/架构决策
不绕过 reviewer
不改 reviewer 的评论

Developer Agent —— 写代码

能做什么不能做什么
读 PM 给的任务说明
在指定的 worktree / branch 写代码
跑测试(lint、unit、e2e)
commit + push 到 feature branch
开 PR(标题带 PM-task-NNN)
回应 reviewer 的 request changes
用工具:bash / edit / write / read / grep / glob
不 push 到 main
不合自己的 PR
不开 review 评论(那是 reviewer 的活)
不改 reviewer 的 comment
不擅自扩任务范围(需要拆新 task 报 PM)

Developer 失败处理

Reviewer Agent —— 代码审查

能做什么不能做什么
读 PR diff(gh pr diff)
读 issue / task 说明理解需求
跑测试验证 PR 真的能跑
在 PR 上留 review comment(gh pr review --comment)
给 PM 结构化 verdict:approve / request_changes / comment
不 push(只读)
不 commit
不合 PR
不改代码
不做主观架构建议(那是用户决策)

Reviewer 输出(双轨)

输出形式接收者
PR 评论(comment) 在 GitHub PR 上留 review(行级 comment + summary) 用户(给人看)+ 开发者(回头修)
结构化 verdict JSON:{verdict, severity, blockers, suggestions, summary} PM(程序读,做下一步决策)

Reviewer 模型选择

从 4 个高能力模型里随机选 1 个,且不与 developer 重复。详细策略见 06 · 模型选择

Merger Agent —— 合 PR

能做什么不能做什么
读 PM 给的 merge 指令(PR URL + 策略)
执行 gh pr merge --squash|--merge|--rebase
删除 worktree(git worktree remove)
删除远端 branch(git push origin --delete)
如果有关联 issue,关闭它
返回 merge commit SHA 给 PM
不判断"该不该合"(那是用户决策)
不直接改 PR 内容
不合未经 PM 明确指令的 PR

权限边界总表

动作DeveloperReviewerMergerPM用户
读代码
写代码 / commit
push 到 main✓(手动)
开 PR
留 review comment
合并 PR✓(被指令)✓(直接说)
删除 worktree / branch
改 PR 标题/描述✓(自己开的)
关 issue✓(指令内)
决定"合不合"给建议
决定"改不改"✗(反问 PM)给建议自治小修