SuperAPI AI 工具集

work

编程与开发

查看项目

更新于 10-16 07:46

技能介绍

用途

/work 是一个针对当前任务的声明式技能:为这项任务单独创建一个 git worktree,并在其中完成工作。它只作用于用户此刻启动的这项任务,并不是一条“所有工作都必须在 worktree 中进行”的长期规则。

调用形式为 /work,可选附带 slug 或描述,例如 /work [slug]。

主要能力

  • 读取仓库既有约定,并据此创建 worktree 与分支。
  • 创建 worktree 后进入该目录,在其中执行用户请求的任务。
  • 若已存在匹配的 worktree 或分支,则复用,不重复创建。
  • 遵循仓库对 node_modules、.venv、符号链接等内容的处理方式。
  • 在交接时告知用户 worktree 路径以及如何运行。
  • 完成后可提交、推送分支,并向默认分支发起 PR/MR。
  • 可主动提出清理分支已合并的 worktree。

使用方式

技能会先查看仓库当前的做法并照做,主要参考以下命令:

git worktree list # sibling dirs + branches git branch -a --sort=-committerdate | head -20 # branch prefix/slug pattern git remote show origin | sed -n 's/.*HEAD branch: //p' # default branch

需要确定的约定包括:

  • 分支前缀:沿用占主导的前缀(例如 <initials>/<slug>);若没有明显约定则询问。
  • worktree 目录:沿用同级目录的命名与位置(常见为与主检出相邻的 <repo>-<short>);短后缀与完整分支名不同也可以。
  • 基础分支:默认为当前默认分支,除非用户指定其他分支。
  • slug:来自 /work 的参数,否则取自任务描述。

创建命令示例:

repo="$(git rev-parse --show-toplevel)" parent="$(dirname "$repo")" default="$(git -C "$repo" remote show origin | sed -n 's/.*HEAD branch: //p')" git -C "$repo" fetch origin "$default" git -C "$repo" worktree add -b <prefix>/<slug> "$parent/$(basename "$repo")-<short>" "origin/$default" cd "$parent/$(basename "$repo")-<short>"

创建后在该 worktree 中执行任务,绝不在主检出目录中执行,也不在其他代理的 worktree 中执行。

适用场景

  • 用户通过 /work 启动一项新任务,希望使用独立 worktree 隔离进行。
  • 多个 worker 或子代理并行工作时,每个 worker 和子代理各自拥有独立的 hermes-agent worktree,worktree 路径写在其指令中。
  • 修复使用 bb/* 分支;验证、类型检查和测试使用基于 origin/main 的 detached worktree。
  • 每个 worktree 各自运行 npm ci。

限制与注意事项

  • 绝不在 worktree 中使用 git stash:refs/stash 由该仓库的所有 worktree 共享,并行代理可能 pop 到你的条目,或你 pop 到他们的条目。若需针对基础分支测试,可将文件另存(git show HEAD:<path> > …)或使用一次性 worktree。
  • 绝不在 ~/Developer/hermes-agent 中编辑、安装、构建、类型检查或测试;在那里运行 tsc -b 会在源码旁生成 .js 文件。
  • 优先直接执行聚焦的修复;不要将常规的同级路径审计或清理委派出去;子代理仅保留给能明显节省时间的大型独立工作。
  • 当仓库支持时,JavaScript 包命令和安装示例默认使用 pnpm;若仓库已有不同的包管理器/lockfile 约定,则遵循该约定,不要引入第二个 lockfile。
  • UI 相关使用 ui-only + ui-system;测试使用仓库自身所用的方式。
  • 若是在审查已有 PR 而非开展新工作,则使用 pr-triage。

暂未提供的信息

关于该技能的收费、价格、支持平台、具体效果等事实,资料中暂未提供。