安全扫描
OpenClaw
安全
medium confidence技能代码与说明与其既定目的(协调隔离 git worktrees 以进行并行智能体编码冲刺)一致;未请求无关凭据或外部安装,但在重要仓库运行前需注意操作风险。
评估建议
该技能似乎确实如其所述(创建隔离 git worktrees、为每个任务生成智能体包并协调合并),但在重要仓库使用前请采取以下预防措施:
- 运行前请查看完整、未截断的 scripts/swarm.js 文件。清单中提供的副本被截断;任何隐藏代码都可能改变风险状况。
- 首次运行时加 --dry-run 或 --plan-only,先查看计划中的 worktrees 与分组,不触碰磁盘或分支。在生成 swarm-packages.json 后再启动智能体。
- 仅在本地克隆或可丢弃环境运行(不要直接在正式检出上运行)。优先使用沙箱或 CI 工作区,并确保有备份/干净分支可恢复。
- 验证并清理任务输入。脚本使用 task.id 与仓库路径构造分支名与文件路径;恶意或畸形 task id 可能导致意外分支名或文件路径。未经验证不要接受不可信来源的任务。
- 注意清理回退:当 git 移除失败时,脚本会尝试 rm -rf worktree 路径。勿以 root 身份运行,并在允许清理前确认计算出的 worktree 路径安全。
- 谨慎授予智能体/网络权限:生成多个子智能体将增加可访问仓...详细分析 ▾
✓ 用途与能力
名称/描述说明了使用 git worktrees 的并行多智能体冲刺;所含脚本执行 git worktree、创建分支、生成智能体包并指示生成子智能体。无需无关凭据、二进制文件或外部服务——与所述目的相符。
⚠ 指令范围
SKILL.md 与脚本指示创建/移除 worktrees、由子智能体提交并写入冲刺日志。这是预期行为,但脚本会执行 shell/git 命令(git worktree add/remove、git branch -D、git worktree prune)并在手动清理失败时回退到 rm -rf。Task ID 与 repoPath 用于构造分支名与文件系统路径:若使用不可信任务输入,可能导致意外的文件系统操作或破坏性 rm -rf 行为。此外,生成多个子智能体扩大了爆炸半径(许多智能体可访问仓库内容及任何网络出口)。
✓ 安装机制
无安装规范(仅指令型技能,附带脚本)。注册表元数据不会下载或安装任何内容——安装风险最低。
✓ 凭证需求
技能未声明所需环境变量或凭据。脚本运行 git 与 shell 命令,并将 repoPath 默认为当前工作目录;技能本身不请求密钥访问。然而,根据您的智能体平台配置,按说明生成的子智能体可能拥有环境或网络访问权限——这是操作层面的问题,而非与技能声明需求不一致。
✓ 持久化与权限
always:false 且未尝试修改其他技能或系统级智能体设置。技能写入 swarm-packages.json 与冲刺日志,并创建/删除 git worktrees 与分支——这些对协调工具而言是预期行为,且范围限定在仓库/worktree 区域。
⚠ scripts/swarm.js:38
检测到 shell 命令执行(child_process)。
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv1.0.12026/4/7
改进描述:解释 worktree 隔离与冲突规划,优于简单并行智能体
● 可疑
安装命令
点击复制官方npx clawhub@latest install swarm-sprint
镜像加速npx clawhub@latest install swarm-sprint --registry https://cn.longxiaskill.com
技能文档
使用 git worktree 隔离的并行多智能体编码冲刺。
何时使用
- 2 个以上任务触及代码库的不同部分 → 使用 swarm
- 1 个任务 → 直接完成,无需 swarm
- 2 个以上任务全部触及 schema/auth → 自动串行化(swarm 会处理)
触发短语: “Run a swarm sprint”、“Parallel sprint on [repo]”、“Use swarm for these tasks”
黄金法则 —— 永远先规划
在生成任何 agent 之前,先运行冲突分析器:
node /scripts/swarm.js --repo --tasks tasks.json --plan-only
阅读输出:
✓ No conflicts→ 所有任务并行执行⚠ HIGH conflict→ 冲突任务被自动分组串行化LOW conflict→ 并行执行,合并时留意
永远不要跳过这一步。 两个 agent 修改同一文件 = 合并冲突 = 白干。
工作流
1. 编写 tasks.json
[
{
"id": "short-unique-id",
"description": "Exactly what to build — be specific",
"role": "coder",
"successCriteria": ["Specific outcome", "TypeScript compiles clean"]
}
]
2. 运行冲突分析(强制)
node /scripts/swarm.js --repo --tasks tasks.json --plan-only
3. 创建工作树
node /scripts/swarm.js --repo --tasks tasks.json
为每个任务创建隔离的 git worktree + branch,并生成 swarm-packages.json。
4. 生成子 agent
读取 swarm-packages.json。对每个 package,生成子 agent:
- 工作目录 =
worktreePath - 任务提示 =
instructions字段 - 指令:只能在此目录内操作
- 指令:完成后执行
git add -A && git commit
5. 审查每个 agent 的输出
git diff main..swarm/
6. 合并通过的工作
git merge swarm/
逐个合并,每次合并后确认 TypeScript 无错误。
7. 清理(必须,无例外)
node /scripts/swarm.js --repo --cleanup swarm-packages.json
删除所有 worktree 与分支。务必执行。
Agent 角色
| 角色 | 行为描述 |
|---|---|
coder | 实现任务,不做无关重构,完成后运行 tsc。 |
reviewer | 以怀疑态度审查 diff,标记 bug、类型错误、缺失错误处理。 |
tester | 按现有模式编写测试。 |
高冲突区域(自动串行化)
schema.prisma、migration SQL- Auth/session middleware
- Main router 或 index 注册
- 共享 config/env 文件
规则
- 规划步骤必须执行
- 冲刺结束后必须删除 worktree
- 禁止从 worktree 直接 push —— 由 coordinator 处理 git
- reviewer 角色应使用更便宜的模型(Haiku);coder 使用 Sonnet
- 最多 5 个并行 agent
- 冲刺日志写入
memory/swarm-log.md
试运行
node /scripts/swarm.js --repo --tasks tasks.json --dry-run