# Am Worker

> worker 会话用的一组动作 —— 注册角色、查自己在干什么、声明将要改的文件（即上锁）、交付产出、撞锁后交接。共用工作目录下改代码前必须先声明文件，否则会覆盖别人的改动。

- Skill: `wjg-ares/am-worker` (Agent Skill)
- Install (CLI): `npx skillmds@latest add wjg-ares/am-worker`
- Raw SKILL.md: https://api.skillmd.com/api/skills/wjg-ares/am-worker/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Wjg-Ares (https://skillmd.com/u/wjg-ares)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/wjg-ares/am-worker

---


# /am-worker — worker 侧动作

`P` 代表 `python "${CLAUDE_PLUGIN_ROOT}/scripts/pool.py"`。

| 场景 | 命令 |
|---|---|
| 刚开窗口 / 重启后 | `P register worker-1`（2、3 同理） |
| 忘了自己是谁、在干什么 | `P whoami` |
| **动代码之前** | `P declare <文件路径...>`（可反复追加） |
| 声明时想说清改哪块 | `P declare <文件> --scope "CollectTask.Save 方法"` |
| 交付 | `P deliver <任务ID> --changed "..." --impact "..." --risk "无" --confirm "无" --content-file <产出文件>` |
| 撞锁了，先判真假 | `P arbitrate <文件> --scope "你要改的方法"` |
| 撞锁、协商后判定是假冲突 | 由**持有者**执行 `P handoff <文件> --to worker-N` |

`$ARGUMENTS` 是子命令时（如 `/am-worker register worker-2`）直接把它拼到 `P` 后面执行。

**`$ARGUMENTS` 为空时执行 `P whoami`**，把输出原样给用户 —— 它会列出哪些编号还空着、
建议敲哪条命令。**不要替用户挑编号、不要直接注册**，让他自己定。

**每条命令的输出都写好了下一步，照做即可。**

## 撞锁了怎么办

`declare` 失败或 hook 拦下你时，输出里会给出**持有者的会话名** —— 那就是地址，
直接发跨会话消息过去：说明你要改哪个方法、为什么。

发消息之前可以先 `P arbitrate <文件> --scope "你要改的方法"` ——
判得出来就直接照它说的做，判不出来它会原样退回下面这套，不会卡你。

- 真冲突 → 等对方交付并通过审批，锁自动释放
- 假冲突（改的是同一文件的不同 region）→ 请对方 `handoff` 给你
- 谈不拢 → 报主 agent 仲裁；还定不了 → 主 agent 问用户

## 三条硬规矩

1. **不许构建、不许 git 写**（`dotnet build/run/test`、`git commit/checkout/stash`…）。
   hook 会拦。这些报给主 agent 执行。
2. **交付只发五行摘要 + 交付 ID 给主 agent，不要把完整产出贴过去**。
   `deliver` 的输出里已经把该发的那段整理好了，照抄。
3. **用户说满意之前不要 `/clear`**。追问的上下文只在你这里，清了就没了。
   审批通过后主 agent 会通知你，那时才清。

