Agent baton
Skill skycitywu/agent-baton
Lightweight multi-agent relay coding skill for Claude Code(轻量级多 Agent 接力 AI Coding 框架)。旨在提供一个不同 LLM/Agent 在如何协作完成复杂企业级开发项目,如何进行断点交接。核心是一套极简的BA → Arch → Dev → TechLead 之间传递上下文和进度文档的框架。
npx -y skills add skycitywu/agent-batonAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
多角色 AI 团队接力协作框架(BA / Arch / Dev / TechLead),通过 Markdown 文档在角色之间传递上下文,适用于需要结构化协作的中大型项目。当用户明确说"用 AgentBaton 初始化项目"/"启动 AgentBaton 框架",或提到任一角色名("BA 角色"/"Arch 角色"/"Dev 角色"/"TechLead 角色"/"TechLead Review"),或当前项目根目录已存在 `config/roles/` 或 `config/TEAM_GUIDE.md` 时,使用本 skill。不要用于:简单代码修改、bug 修复、单文件改动、代码探索、纯重构、与多角色协作无关的常规开发任务。
SKILL.md
7.7 KB, as published. Nobody here has run it
AgentBaton — 多角色 AI 接力协作框架
本 skill 把"BA → Arch → Dev → TechLead"的人机混合团队工作流封装为可触发的协作框架。核心机制:4 个角色通过 Markdown 文档接力,状态沉淀在项目内 config/ 和 docs/ 目录,跨会话/跨 Agent/跨模型可断点续接。
第一步:自检触发条件
在做任何动作之前,先判断当前到底属于哪种场景:
- 场景 A — 初始化新项目:用户明确说"用 AgentBaton 初始化新项目"或类似表述,且当前目录没有
config/roles/和config/TEAM_GUIDE.md。 - 场景 B — 初始化二期接入项目:用户明确说"用 AgentBaton 初始化二期接入项目",且当前目录没有
config/roles/。 - 场景 C — 已有 AgentBaton 项目中启动角色:当前目录已有
config/roles/和config/TEAM_GUIDE.md,用户提到任一角色名。 - 场景 D — 不适用:用户没明确说初始化、没有提到角色,且当前目录不是 AgentBaton 项目。立即停止本 skill,告知用户"当前不符合 AgentBaton 触发条件,将按普通方式回答",然后让对话回到主流程。
场景 A:初始化新项目(全新开发)
执行以下步骤:
-
拷贝模板到当前项目。Skill 模板位置:
${CLAUDE_PLUGIN_ROOT:-~/.claude/skills/agent-baton}/assets/templates/。要拷贝的内容:CLAUDE.md→ 项目根config/TEAM_GUIDE.md、config/PROJECT_STATUS.md、config/TECH_STATUS.md→config/config/roles/{BA,ARCH,DEV,TECHLEAD}.md→config/roles/docs/{INIT_REQ,PRD,ARCH,TASKS}.md→docs/docs/prototypes/.gitkeep→docs/prototypes/- 不拷贝
docs/phase1/(仅二期接入模式需要)
定位 skill 路径,再
cp各文件。注意find必须用-L才能跟随软链:# 优先用环境变量;否则按常见路径搜索;最后回退到 find -L SKILL_DIR="${CLAUDE_PLUGIN_ROOT:-}" [ -z "$SKILL_DIR" ] && [ -d ~/.claude/skills/agent-baton ] && SKILL_DIR=~/.claude/skills/agent-baton [ -z "$SKILL_DIR" ] && SKILL_DIR=$(find -L ~/.claude/skills ~/.claude/plugins -maxdepth 4 -name "agent-baton" 2>/dev/null | head -1) [ -z "$SKILL_DIR" ] && { echo "未找到 AgentBaton skill 安装目录"; exit 1; } mkdir -p config/roles docs/prototypes cp "$SKILL_DIR/assets/templates/CLAUDE.md" ./CLAUDE.md cp "$SKILL_DIR/assets/templates/config/"{TEAM_GUIDE,PROJECT_STATUS,TECH_STATUS}.md config/ cp "$SKILL_DIR/assets/templates/config/roles/"{BA,ARCH,DEV,TECHLEAD}.md config/roles/ cp "$SKILL_DIR/assets/templates/docs/"{INIT_REQ,PRD,ARCH,TASKS}.md docs/ touch docs/prototypes/.gitkeep -
写一份基础
.gitignore(若不存在):覆盖 macOS / IDE / 构建产物 / 密钥。 -
引导用户填写:告诉用户接下来要做的事:
- 编辑
CLAUDE.md:填写技术栈、开发规范、Git 团队配置("项目阶段"字段保持默认"全新开发") - 在项目目录执行
git init && git add -A && git commit -m "init: AgentBaton 项目初始化" - 让产品经理填写
docs/INIT_REQ.md
- 编辑
-
不要继续做需求分析、不要启动 BA 角色。初始化完成后停下来等用户。
场景 B:初始化二期接入项目
与场景 A 类似,但额外动作:
-
额外拷贝
assets/templates/docs/phase1/{INIT_REQ,CODEBASE}.md到docs/phase1/:mkdir -p docs/phase1 cp "$SKILL_DIR/assets/templates/docs/phase1/"{INIT_REQ,CODEBASE}.md docs/phase1/ -
修改新拷贝的
CLAUDE.md和config/PROJECT_STATUS.md(注意 macOS 与 Linux 的sed -i语法不同,下面是 macOS 版):sed -i '' 's/- \*\*当前模式\*\*:全新开发/- **当前模式**:二期接入/' CLAUDE.md sed -i '' 's|- \*\*基线文档\*\*:无|- **基线文档**:docs/phase1/|' CLAUDE.md sed -i '' 's/\*\*项目模式\*\*:全新开发/**项目模式**:二期接入/' config/PROJECT_STATUS.mdLinux 上把
sed -i ''替换为sed -i。 -
引导用户额外填写:
- 一期代码仓库路径(写入
CLAUDE.md的"一期代码仓库"字段) docs/phase1/INIT_REQ.md中的一期功能描述
- 一期代码仓库路径(写入
-
提示接下来要走"基线重建"流程:产品经理启动 BA 角色,告诉它"请重建一期基线 PRD"
场景 C:已有项目中启动角色
用户提到某个角色("BA 角色"/"Arch 角色"/"Dev 角色"/"TechLead 角色"/"TechLead Review")时:
- 加载该角色文件:读
config/roles/<ROLE>.md(项目根相对路径,因为模板已经拷贝过去了) - 按文件中"第一步:了解背景"开始执行:读
config/TEAM_GUIDE.md、config/PROJECT_STATUS.md、CLAUDE.md等 - 严格遵守角色的自主权边界(见
config/TEAM_GUIDE.md第 2.3 节)和"⏸️ 停下来"节点:每个角色在完成自己阶段的工作后必须停止,等待下一个角色或人工接手,不要跨角色自动推进
特殊触发词识别:
| 用户表述 | 加载文件 |
|---|---|
| "BA 角色"/"业务分析"/"启动 BA" | config/roles/BA.md |
| "Arch 角色"/"架构师"/"启动 Arch" | config/roles/ARCH.md |
| "Dev 角色"/"开发者"/"启动 Dev"/"开始编码" | config/roles/DEV.md |
| "TechLead 角色"/"技术负责人"/"TechLead Review"/"代码审查"(在 AgentBaton 项目中) | config/roles/TECHLEAD.md |
通用纪律(所有场景共享)
- 不要把 4 个角色合并执行:每个角色完成自己阶段就停,等用户手动启动下一个角色
- Git 策略:本 skill 借用当前用户的 git 账号做本地 commit,不主动 push。
push由用户手动执行 - 不要修改
docs/INIT_REQ.md的原始需求部分:迭代需求只在末尾"迭代需求"区域追加 - 二期接入项目的
docs/phase1/是只读基线:基线一旦由开发负责人校验通过即冻结,不再修改 - 如果用户在场景 C 下提的具体诉求与当前角色职责不符(例如让 Dev 做架构决策),按角色边界拒绝并建议切换到合适角色
协议主体
详细的协作流程、文档体系、阶段交接、二期接入逆向重建、迭代变更路径 A/B 等,在项目内的 config/TEAM_GUIDE.md 中。Skill 触发后第一件实事必须是读它(场景 A/B 拷贝完成后读项目内的,场景 C 直接读项目内的)。
各角色的详细指令(包含 Git 提交话术、交接 Checklist、停留点)在 config/roles/<ROLE>.md。
触发疑似边界情况
下列情形不要触发本 skill,让 Claude 按普通方式回应:
- 用户在非 AgentBaton 项目里说"写个 PRD 文档" → 这是普通文档写作,不是启动框架
- 用户在 AgentBaton 项目里说"帮我改 main.go 的一个 bug" → 这是常规 Dev 任务,按普通方式做就行
- 用户问"AgentBaton 是什么"/"这个框架怎么用" → 直接简要解释,不要进入初始化流程
- 用户提到"团队"/"协作"/"PRD"/"架构"/"Review" 这些词但没有上下文表明在用 AgentBaton → 不要触发