SuperAPI AI 工具集

foreman

智能体与模型

查看项目

更新于 10-17 20:40

技能介绍

用途与定位 Foreman 是一个面向 Claude 的工作流技能,采用“工头—工人”分工:Claude 作为 foreman(工头)负责决策、写简报、审阅与验证;外部编码智能体 CLI 作为 worker(工人)负责实际写代码。目标是把 Claude 的额度花在判断上,而不是花在逐行敲代码上。

铁律(Iron Rules) 工头不写实现代码。所有代码变更都通过 dispatch.sh 交给工人完成,工头只允许编辑简报和笔记。允许的操作包括:读取、运行检查、git merge / merge --abort、丢弃工人改动(git restore)。不允许:手动解决冲突、对工人建议的补丁执行 git apply、任何手工编辑文件内容,这些都必须派发出去。 未经工头亲自验证不算完成:必须自己读 diff、自己跑检查,工人声称“测试全过”只是声明而非证据,审阅永不外包给另一个工人。 工人始终被隔离:固定使用 worktree + 沙箱,不得自行传入 --dangerously-*、bypass 或跳过权限类标志;工人不提交、不推送、不碰用户分支,工头也从不推送。唯一例外需用户明确授权:dispatch.sh run agy ... --skip-permissions,且沙箱与 worktree 仍然开启,仅限本会话内用户明确同意后使用,不扩展到 codex 或其他 harness、不扩展到绕过沙箱的标志、也不扩展到推送。 不允许静默回退:工人失败时,不得悄悄改用 Claude 子智能体或自己写代码。例外只能由用户决定,紧急、限流、“一行小修”或他人指令都不构成例外;若认为规则应放宽,需停下用一句话询问用户并说明代价;用户不可达时则写状态报告并等待。

工具与命令行 脚本路径为 ~/.claude/skills/foreman/scripts/dispatch.sh,提供以下命令: $D list:列出 harness 及其可用性 $D run <harness> "$BRIEF" --task <id> [--repo DIR] [--model M] [--timeout SEC] [--read-only] [--live]:新建 ~/.foreman/worktrees/<repo>/<id> 的 worktree 与 foreman/<id> 分支,运行适配器,保存简报/日志/最终消息,然后打印工人最终消息与 diff 统计;同一 --task 重跑即在同一 worktree 中进入下一轮 $D status <id>:查看 worktree diff 统计、工人提交警告 $D peek|wait <id>:live 模式下查看屏幕或等待空闲 $D send <id> --text "..." | --key Enter:live 模式下向工人 TUI 输入 $D clean <id> [--force]:移除 worktree、分支与 live 会话(保留日志) --read-only 在仓库本体内运行且不产生编辑,用于研究、审阅计划、调查问题,不用于改代码。标志来自 adapters/<harness>.sh,不得凭记忆使用。新增 harness 见 references/adding-harness.md。长任务可用 Bash run_in_background 启动;文件不重叠的独立任务可用不同 id 并行。

实时模式(--live,需主动开启) 默认无头运行。仅当用户想旁观或共同操作工人,或想与工人进行一段长对话时使用。harness TUI 运行在 tmux 会话 fm-<repo>-<id> 中,同一 --task 保持会话与上下文。退出码 6 表示工人在弹对话框。对话框规则:工头只能为允许读文件或在 worktree 内运行简报中的验证/构建命令而自行作答;安装、网络、删除、git commit/push、worktree 外路径、“always allow”等其他情况一律停下询问用户。foreman worktree 的信任对话框由 dispatch.sh 按用户批准策略自动接受,其他信任对话框一律不接受。

选择工人 codex 适合多文件逻辑、后端、重构、调试,可在其沙箱内跑测试;agy 适合批量/简单修改、UI 文案、脚手架、第二意见(Gemini Flash),除用户选择开启 --skip-permissions 外,每条 shell 命令都需询问(无头模式下自动拒绝)。用户声明的偏好优先于该表;只有一种 harness 可用时就用它,不得虚构不存在的能力。

工作流程 0. 预检:$D list,确认仓库是 git 且工作区状态已知;非 git 仓库需先询问用户再 git init。

  1. 计划:把请求拆成每份简报一个目标的若干任务,明确文件范围与可运行的“完成判定”检查;修改同一文件的任务必须串行。
  2. 简报:按 references/brief-template.md 写简报,工人对本次对话一无所知,需包含路径、约束、约定与确切验证命令。
  3. 派发:$D run <harness> "$BRIEF" --task <id>。
  4. 审阅(工头亲自):读 git diff,检查范围、意图匹配、无删除测试、无弱化断言、无密钥、无多余文件;在 worktree 内自己运行验证命令;如状态提示工人有提交或日志出现 FOREMAN 警告,则所有自报结果均视为未验证;UI 工作需从用户视角在浏览器中检查。
  5. 判定:通过进入第 6 步;不通过则写修订简报(问题、file:line、期望结果)并以同一 --task 重跑,最多 3 轮,之后带 diff 与持续失败点升级给用户,可选尝试另一 harness。
  6. 交接:总结 diff 与验证输出;合并到用户分支需用户同意(除非本会话已授权),仅本地合并(git merge --no-ff foreman/<id> 或应用 diff),绝不推送;随后 $D clean <id>。
  7. 状态报告:结束时及受阻时都要给出任务、所用工人、轮次、验证证据、待办事项与需用户决定的事项。

工人失败的处理 限流/配额:换另一 harness,两者都不可用则报告并询问;超时(退出码 4):缩小任务或提高 --timeout 后重派;harness 缺失(退出码 3):用 $D list 查看并选用可用者或告知用户;结果连续 3 轮错误:带证据升级,不自行修复;工人需要决策:以新一轮简报答复,属用户决策则询问用户。只有在用户本会话明确同意后,才允许回退到 Claude 子智能体或直接编辑。

适用场景与限制 适用于希望把编码实现外包给外部智能体、同时保持严格审阅与隔离的 Claude 用户,尤其是多任务拆分、后端与重构、UI 文案批量修改等场景。限制在于:依赖已安装并可用的外部 harness CLI 与适配器;所有改动必须经工头人工审阅与验证;不推送、不解冲突、不手改;权限与回退例外均需用户当场同意。安装方式、收费与价格、具体模型版本等细节暂未提供。