mirror of
https://github.com/tradecatlabs/vibe-coding-cn.git
synced 2026-08-05 07:07:44 +00:00
docs: skills - sync auto-tmux package
This commit is contained in:
@@ -55,6 +55,7 @@ skills/auto-tmux/
|
||||
├── script-cheatsheet.md
|
||||
├── swarm-state.md
|
||||
├── prompt-templates.md
|
||||
├── codex-pilot-mode.md
|
||||
├── ai-swarm-collaboration.md
|
||||
├── iteration-roadmap.md
|
||||
├── iteration-closeout.md
|
||||
@@ -88,8 +89,9 @@ skills/auto-tmux/
|
||||
- `scripts/incident-report.sh` 是事故复盘层,生成误发送、误广播和敏感信息风险模板。
|
||||
- `scripts/completion.bash` 是本地补全层,补全 `auto-tmux.sh` 与 `swarm-state.sh`。
|
||||
- `scripts/safety-check.sh` 是安全预检层,检查待发送 payload 的危险命令、敏感信息和大小。
|
||||
- `scripts/render-swarm-prompt.sh` 是提示词渲染层,生成 commander/worker/reviewer 协议文本。
|
||||
- `scripts/swarm-dispatch.sh` 是提示词下发层,默认写文件,显式 `--send` 后才发送到 pane。
|
||||
- `scripts/render-swarm-prompt.sh` 是提示词渲染层,生成 commander/worker/reviewer/codex-worker 协议文本。
|
||||
- `scripts/swarm-dispatch.sh` 是提示词下发层,默认写文件,显式 `--send` 后才发送到 pane;支持 Codex Pilot Mode 的单 worker 下发。
|
||||
- `references/codex-pilot-mode.md` 是显式激活协议,定义主 Codex 控制一个人类可旁观、持久化交互式 worker Codex pane 的提示词、边界和验收。
|
||||
- `scripts/validate-auto-tmux.sh` 是技能专属质量门禁,覆盖脚本、文档索引和 smoke test。
|
||||
- 技能文档可以引用软链接入口;更新上游内容必须通过 `tools/external/` 下的 submodule 指针完成。
|
||||
- 不在本目录直接修改 submodule 内容;如需改造,先 fork 上游并更新 submodule 来源。
|
||||
|
||||
@@ -13,6 +13,7 @@ description: "tmux 自动化操控:用 scripts/auto-tmux.sh 安全读取、发
|
||||
- 需要远程读取/复制某个 tmux pane 的最新输出(日志、提示、错误)。
|
||||
- 需要向指定 pane 发送按键/命令(确认 `y`、`Enter`、`Ctrl+C`、广播同一窗口)。
|
||||
- 需要批量巡检/接管多 AI 终端(蜂群协作、自动救援卡死任务)。
|
||||
- 用户显式要求进入 Codex Pilot Mode:让当前主 Codex 通过 tmux 控制一个持久化、交互式、对人类可见的 worker Codex pane。
|
||||
- 需要初始化 AI 多终端工作台、等待输出 pattern、录制 pane 日志或保存巡检证据。
|
||||
- 需要给 tmux 蜂群建立任务队列、状态日志、文件锁和结果报告。
|
||||
- 需要快速回忆 oh-my-tmux 快捷键、前缀或同步面板操作。
|
||||
@@ -162,6 +163,21 @@ skills/auto-tmux/scripts/auto-tmux.sh topology --session ai-hub
|
||||
skills/auto-tmux/scripts/auto-tmux.sh cleanup --session ai-hub --dry-run
|
||||
```
|
||||
|
||||
**Codex Pilot Mode(主 Codex 控制一个持久化交互式 worker Codex)**
|
||||
```bash
|
||||
# 只在用户显式输入 Codex Pilot Mode 激活提示词后使用;完整提示词见 references/codex-pilot-mode.md。
|
||||
tmux new-session -d -s codex-pilot -n worker 'codex'
|
||||
bash skills/auto-tmux/scripts/auto-tmux.sh topology --session codex-pilot
|
||||
bash skills/auto-tmux/scripts/auto-tmux.sh capture -t codex-pilot:worker.0 -n 120
|
||||
bash skills/auto-tmux/scripts/swarm-dispatch.sh \
|
||||
--role codex-worker \
|
||||
--target codex-pilot:worker.0 \
|
||||
--session codex-pilot \
|
||||
--task "进入持久 worker 待命状态,等待主 Codex 后续分派任务" \
|
||||
--send \
|
||||
--dry-run
|
||||
```
|
||||
|
||||
**启用 oh-my-tmux 配置(仓库内版本)**
|
||||
```bash
|
||||
repo_root="$(git rev-parse --show-toplevel)"
|
||||
@@ -226,10 +242,13 @@ skills/auto-tmux/scripts/swarm-dispatch.sh --role worker --target <session>:<win
|
||||
- MUST:在发送按键前用 `capture-pane` 复核目标上下文;按键操作必须带 `<session>:<window>.<pane>` 绝对定位。
|
||||
- MUST:遵循 oh-my-tmux 约定,不修改主配置文件;自定义写入 `~/.tmux.conf.local`。
|
||||
- MUST:批量操作前先 `list-windows`/`list-panes` 建立白名单,避免误控用户窗口。
|
||||
- MUST:Codex Pilot Mode 只能在用户显式激活后进入;默认只控制一个持久化 worker Codex pane,且该 pane 必须对人类可见。
|
||||
- MUST:Codex Pilot Mode 的 worker 必须是交互式 `codex`,禁止用无头 `codex exec` 替代。
|
||||
- MUST:SSH/远程场景默认只读,先用 `scripts/remote-readonly.sh` 采集证据;远程控制必须另行确认,不从只读脚本升级。
|
||||
- SHOULD:救援/确认前先 grep 关键词(如 `(y/n)`、`password`),只对匹配目标发送。
|
||||
- SHOULD:发送完整命令行时避免先发 `Escape`;先 `C-c` 中断、`C-u` 清行,再用 `send-keys -l` 逐字发送完整命令。
|
||||
- SHOULD:长 prompt、文件粘贴、跨 worker 分发前运行 `scripts/safety-check.sh`,批量发送先 `--dry-run`。
|
||||
- SHOULD:Codex Pilot Mode 中主 Codex 每次发送前先 `inspect/capture` worker pane,并把需求、上下文、边界、验收和验证命令整理成高质量提示词。
|
||||
- SHOULD:pane 处在 Codex UI 时,先发送 `/exit` 回到 shell 再执行命令。
|
||||
- SHOULD:长任务开启 `pipe-pane` 记录审计;广播完成后立即 `synchronize-panes off`。
|
||||
- SHOULD:多 worker 修改同一文件、目录或服务前,先用 `swarm-state.sh lock-acquire` 声明锁。
|
||||
@@ -293,6 +312,7 @@ skills/auto-tmux/scripts/swarm-dispatch.sh --role worker --target <session>:<win
|
||||
- `references/script-cheatsheet.md`: 观察、控制、协作、报告、审计和事故处理脚本速查
|
||||
- `references/swarm-state.md`: 蜂群状态、任务、锁和报告协议
|
||||
- `references/prompt-templates.md`: commander/worker/reviewer 提示词模板和下发方式
|
||||
- `references/codex-pilot-mode.md`: 主 Codex 控制一个持久化交互式 worker Codex 的激活提示词、边界和验收协议
|
||||
- `references/ai-swarm-collaboration.md`: tmux 蜂群协作历史文档、架构模式、协议、案例和风险限制
|
||||
- `references/iteration-roadmap.md`: 多轮迭代记录、能力层和后续候选方向
|
||||
- `references/iteration-closeout.md`: 50 轮迭代后的能力收尾、验证链路和维护边界
|
||||
@@ -321,7 +341,7 @@ skills/auto-tmux/scripts/swarm-dispatch.sh --role worker --target <session>:<win
|
||||
- `scripts/audit-package.sh`: 检查脚本、参考资料、SKILL 入口和 validator 的索引一致性
|
||||
- `scripts/completion.bash`: Bash completion,补全 `auto-tmux.sh` 与 `swarm-state.sh`
|
||||
- `scripts/safety-check.sh`: 发送/粘贴/分发前检查危险命令、敏感信息和过大 payload
|
||||
- `scripts/render-swarm-prompt.sh`: commander/worker/reviewer 提示词渲染脚本
|
||||
- `scripts/render-swarm-prompt.sh`: commander/worker/reviewer/codex-worker 提示词渲染脚本
|
||||
- `scripts/swarm-dispatch.sh`: 渲染并可选下发 commander/worker/reviewer 提示词
|
||||
- `scripts/auto-tmux-smoke-test.sh`: tmux 自动化脚本端到端自测
|
||||
- `scripts/validate-auto-tmux.sh`: auto-tmux 专属质量门禁
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
../../../tools/external/.tmux
|
||||
@@ -1 +0,0 @@
|
||||
../../../tools/external/tmux
|
||||
@@ -0,0 +1,121 @@
|
||||
# Codex Pilot Mode
|
||||
|
||||
Codex Pilot Mode 是一个显式触发的单 worker 协作模式:当前对话中的 Codex 作为主 Agent,通过 tmux 控制一个人类可旁观、持久化存在的交互式 Codex pane。
|
||||
|
||||
它不是默认模式;只有用户把下面的激活提示词输入给主 Codex 时才进入。
|
||||
|
||||
## Activation Prompt
|
||||
|
||||
```text
|
||||
进入 Codex Pilot Mode。
|
||||
|
||||
你现在是主 Codex,不是普通执行器。你的职责是像人类高级开发者一样,通过 auto-tmux 控制一个持久化、交互式、对人类可见的 worker Codex pane,并进入持续任务执行模式。
|
||||
|
||||
工作模式:
|
||||
1. 先读取当前仓库状态、相关 AGENTS.md、skills、治理文档、历史上下文和必要日志,建立模式上下文。
|
||||
2. 只控制一个 worker Codex pane。这个 pane 必须是 tmux 中运行的交互式 `codex` 实例,不允许用无头 `codex exec` 替代。
|
||||
3. 人类可以直接观看这个 worker pane,所以你必须保持操作可审计、可理解、可复盘。
|
||||
4. 你负责上下文治理、任务拆分、提示词优化、边界说明、风险控制、过程监督和最终验收。
|
||||
5. worker Codex 负责实际交互式执行,包括阅读文件、修改代码、运行测试、汇报结果。
|
||||
6. 每次向 worker pane 发送内容前,必须先 capture/inspect 目标 pane,确认当前状态和输入框可用。
|
||||
7. 进入模式时,先给 worker 发送持久化交互协议,让它待命并等待主 Codex 后续分派任务。
|
||||
8. 后续每次派发任务时,发送给 worker 的提示词必须包含:任务目标、范围边界、必读上下文、允许修改路径、禁止事项、验收标准、验证命令、汇报格式。
|
||||
9. worker 执行过程中,你要持续观察输出;如发现卡住、误解、越界、测试失败或上下文不足,及时追问、纠偏或补充提示词。
|
||||
10. 不把 worker 的口头完成当作事实;最终只基于 git diff、文件内容、测试输出、日志和可复核证据确认完成。
|
||||
11. 如果 tmux pane 不存在,先按 auto-tmux 安全流程创建一个可见 session/window/pane 并启动交互式 `codex`;如果已存在,优先复用该持久 pane。
|
||||
|
||||
禁止事项:
|
||||
- 禁止启动无头 `codex exec` 作为 worker。
|
||||
- 禁止同时控制多个 worker,除非我明确要求扩展为多 worker。
|
||||
- 禁止在未检查 pane 状态时盲发长提示词。
|
||||
- 禁止让 worker 修改无关文件或回滚人类/其他 agent 的改动。
|
||||
- 禁止用“看起来完成了”代替验证证据。
|
||||
|
||||
请先执行:
|
||||
1. 说明你将进入 Codex Pilot Mode。
|
||||
2. 使用 auto-tmux 盘点当前 tmux topology。
|
||||
3. 找到或创建一个持久化 worker Codex pane。
|
||||
4. 读取 worker pane 当前输出。
|
||||
5. 给 worker Codex 下发“持久化交互协议”,让它明确自己是被主 Codex 控制的交互式 worker,并进入待命状态。
|
||||
6. 发送前先展示简短发送摘要;确认没有危险命令后再下发。
|
||||
7. 下发完成后,汇报当前 worker pane、模式状态、后续我可以如何继续给你任务。
|
||||
```
|
||||
|
||||
## Main Agent Responsibilities
|
||||
|
||||
- 主 Agent 是 harness/control plane:worker 只能提出或执行被授权的任务,主 Agent 负责校验、授权、观察、纠偏、记录和最终验收。
|
||||
- 主 Agent 是 operator、prompt engineer、context curator、reviewer 和 acceptor。
|
||||
- 主 Agent 不应把自己降级为普通 shell 执行器;它可以执行必要检查,但核心模式是控制 worker Codex。
|
||||
- 主 Agent 必须先看现场:tmux topology、pane 输出、仓库状态、diff、测试、日志。
|
||||
- 主 Agent 负责把人类需求压缩成 worker 可执行 prompt,并在每次补充上下文时明确新增信息和下一步要求。
|
||||
- 主 Agent 进入模式后保持该 worker pane 为默认执行劳动力;后续用户给任务时,默认在该模式内治理上下文并派发给 worker。
|
||||
- 主 Agent 必须记录关键证据:发送内容、pane 输出、worker 结论、验证命令和最终 diff。
|
||||
- 主 Agent 必须为每次派发建立最小 runtime contract:范围、允许工具/命令、禁止动作、验收证据、预算/停止条件。
|
||||
- 主 Agent 不得让 worker 自我批准提交、推送、部署、删除、外部发送、权限修改或其他高风险动作。
|
||||
|
||||
## Worker Pane Requirements
|
||||
|
||||
- worker pane 必须运行交互式 `codex`。
|
||||
- worker pane 必须持久化,可被人类观看和接管。
|
||||
- worker pane 只接受主 Agent 分派的当前任务。
|
||||
- worker pane 不负责总体规划和最终验收。
|
||||
- worker pane 完成后必须汇报:已做事项、修改文件、验证结果、失败/风险、建议下一步。
|
||||
|
||||
## Harness Invariants
|
||||
|
||||
- 每次发送前必须 inspect/capture 目标 pane。
|
||||
- 每次 worker 输出都只是 observation,不是最终事实。
|
||||
- 每个任务必须有明确 done condition 和 stop condition。
|
||||
- worker 的所有声明必须能回指到 diff、命令输出、日志、文件内容或截图等证据。
|
||||
- 发现 worker 越界、卡住、误解、无验证宣称完成时,主 Agent 必须立即纠偏或暂停。
|
||||
- compaction / resume 后必须重新确认:当前目标、worker pane、已发送协议、active plan、approval state、修改文件和待验证项。
|
||||
|
||||
## Recommended Bootstrap Commands
|
||||
|
||||
先看拓扑:
|
||||
|
||||
```bash
|
||||
bash skills/auto-tmux/scripts/auto-tmux.sh topology
|
||||
```
|
||||
|
||||
创建单 worker session 示例:
|
||||
|
||||
```bash
|
||||
tmux new-session -d -s codex-pilot -n worker 'codex'
|
||||
bash skills/auto-tmux/scripts/auto-tmux.sh topology --session codex-pilot
|
||||
```
|
||||
|
||||
读取 worker pane:
|
||||
|
||||
```bash
|
||||
bash skills/auto-tmux/scripts/auto-tmux.sh capture -t codex-pilot:worker.0 -n 120
|
||||
```
|
||||
|
||||
给 worker 渲染持久化交互协议:
|
||||
|
||||
```bash
|
||||
bash skills/auto-tmux/scripts/render-swarm-prompt.sh codex-worker \
|
||||
--session codex-pilot \
|
||||
--target codex-pilot:worker.0 \
|
||||
--task "进入持久 worker 待命状态,等待主 Codex 后续分派任务"
|
||||
```
|
||||
|
||||
下发前 dry-run:
|
||||
|
||||
```bash
|
||||
bash skills/auto-tmux/scripts/swarm-dispatch.sh \
|
||||
--role codex-worker \
|
||||
--target codex-pilot:worker.0 \
|
||||
--session codex-pilot \
|
||||
--task "进入持久 worker 待命状态,等待主 Codex 后续分派任务" \
|
||||
--send \
|
||||
--dry-run
|
||||
```
|
||||
|
||||
## Acceptance
|
||||
|
||||
- 人类能看到 worker pane。
|
||||
- 主 Agent 每次发送前都先 inspect/capture。
|
||||
- worker Codex 在交互式 Codex UI 内执行任务。
|
||||
- 主 Agent 能基于输出继续追问、纠偏和验收。
|
||||
- 最终验收基于 diff、测试、日志和文件事实,而不是 worker 自评。
|
||||
@@ -1,25 +1,5 @@
|
||||
# Long Examples
|
||||
|
||||
## 用例 0:使用脚本入口完成巡检、发送和救援
|
||||
|
||||
```bash
|
||||
# 查看拓扑
|
||||
skills/auto-tmux/scripts/auto-tmux.sh topology --session ai-hub
|
||||
|
||||
target="$(tmux list-panes -t ai-hub:worker1 -F '#S:#I.#P' | head -n 1)"
|
||||
|
||||
# 读取 worker 输出
|
||||
skills/auto-tmux/scripts/auto-tmux.sh capture -t "$target" -n 100
|
||||
|
||||
# 发送测试命令
|
||||
skills/auto-tmux/scripts/auto-tmux.sh send -t "$target" --text "make test" --enter
|
||||
|
||||
# 对等待确认的 pane 执行救援
|
||||
skills/auto-tmux/scripts/auto-tmux.sh rescue -t "$target" --pattern "(y/n)" --reply y
|
||||
```
|
||||
|
||||
- 推荐优先使用脚本入口;下面的 Bash 片段保留为理解 tmux 原生命令的参考。
|
||||
|
||||
## 用例 1:巡检 + 自动救援脚本(bash)
|
||||
|
||||
```bash
|
||||
@@ -31,7 +11,7 @@ for w in $(tmux list-windows -a -F '#S:#I'); do
|
||||
panes=$(tmux list-panes -t "$w" -F '#S:#I.#P')
|
||||
for p in $panes; do
|
||||
log=$(tmux capture-pane -t "$p" -p -S -80)
|
||||
printf -- '--- [%s] ---\n%s\n' "$p" "$log"
|
||||
printf '--- [%s] ---\n%s\n' "$p" "$log"
|
||||
if echo "$log" | grep -qi "(y/n)"; then
|
||||
tmux send-keys -t "$p" "y" Enter
|
||||
echo "[action] sent y to $p"
|
||||
@@ -61,8 +41,7 @@ echo "audit pipes enabled under /tmp/*-ai-hub-*.log"
|
||||
> 目的:在需要更全面文档时,用仓库自带的 `Skill_Seekers-development` 自动抓取 gpakosz/.tmux 与 README,生成扩展参考文件,再手动筛选进 `references/`。
|
||||
|
||||
```bash
|
||||
repo_root="$(git rev-parse --show-toplevel)"
|
||||
cd "$repo_root/tools/external/Skill_Seekers-development"
|
||||
cd /home/lenovo/zip/vibe-coding-cn/libs/external/Skill_Seekers-development
|
||||
# 准备 Python 环境(如未安装)
|
||||
uv tool install skill-seekers # 或 pip install skill-seekers
|
||||
|
||||
|
||||
@@ -20,9 +20,8 @@
|
||||
tmux -V
|
||||
|
||||
# 2) 软链配置(不会覆盖已有 .tmux.conf.local,如需自定义请编辑该文件)
|
||||
repo_root="$(git rev-parse --show-toplevel)"
|
||||
ln -sfn "$repo_root/tools/external/.tmux/.tmux.conf" ~/.tmux.conf
|
||||
cp -n "$repo_root/tools/external/.tmux/.tmux.conf.local" ~/.tmux.conf.local
|
||||
ln -sfn /home/lenovo/zip/vibe-coding-cn/libs/external/.tmux/.tmux.conf ~/.tmux.conf
|
||||
cp -n /home/lenovo/zip/vibe-coding-cn/libs/external/.tmux/.tmux.conf.local ~/.tmux.conf.local
|
||||
|
||||
# 3) 启动会话并验证前缀
|
||||
tmux new -s demo -n shell
|
||||
|
||||
@@ -4,25 +4,13 @@
|
||||
|
||||
- `getting_started.md`:术语、最小安装、前缀说明
|
||||
- `api.md`:tmux/oh-my-tmux 常用命令、同步广播、安全写法
|
||||
- `automation.md`:`scripts/auto-tmux.sh` / `scripts/swarm-brief.sh` 子命令、安全模型与 AI 蜂群协作流程
|
||||
- `safety-policy.md`:发送、广播、清理、归档和敏感信息处理的安全策略
|
||||
- `session-safety.md`:本地 session、远程 SSH 和多 Agent 协作的分层安全边界
|
||||
- `jsonl-schema.md`:JSONL/manifest 机器可读输出字段约定
|
||||
- `report-pack-review.md`:report pack reviewer 最短验收路径
|
||||
- `reading-paths.md`:commander、worker、reviewer、operator 的角色化阅读路线
|
||||
- `incident-runbook.md`:误发送、误广播、远程采集失败和敏感信息风险处理流程
|
||||
- `script-cheatsheet.md`:观察、控制、协作、报告、审计和事故处理脚本速查
|
||||
- `swarm-state.md`:蜂群状态、任务、锁和报告协议
|
||||
- `prompt-templates.md`:commander/worker/reviewer 提示词模板和下发方式
|
||||
- `ai-swarm-collaboration.md`:tmux 蜂群协作完整说明、架构模式、协议、案例和风险限制
|
||||
- `iteration-roadmap.md`:多轮迭代记录、能力层和后续候选方向
|
||||
- `iteration-closeout.md`:50 轮迭代后的能力收尾、验证链路和维护边界
|
||||
- `codex-pilot-mode.md`:主 Codex 控制一个持久化交互式 worker Codex 的激活提示词和操作协议
|
||||
- `prompt-templates.md`:commander/worker/reviewer/codex-worker 提示词模板和下发方式
|
||||
- `examples.md`:蜂群巡检脚本、自动救援脚本、Skill Seeker 抓取示例
|
||||
- `troubleshooting.md`:常见报错与修复路径
|
||||
|
||||
## Notes
|
||||
|
||||
- 长文档、脚本细节放这里,`SKILL.md` 只保留可立即执行的片段。
|
||||
- 脚本入口统一为 `skills/auto-tmux/scripts/auto-tmux.sh`,原生命令作为兜底参考。
|
||||
- 配置来源:仓库内 `tools/external/.tmux`(gpakosz/oh-my-tmux)。
|
||||
- 大规模文档抓取/刷新可用 `tools/external/Skill_Seekers-development`,示例见 `examples.md`。
|
||||
- 配置来源:仓库内 `libs/external/.tmux`(gpakosz/oh-my-tmux)。
|
||||
- 大规模文档抓取/刷新可用 `libs/external/Skill_Seekers-development`,示例见 `examples.md`。
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Swarm Prompt Templates
|
||||
|
||||
`scripts/render-swarm-prompt.sh` 用于渲染 tmux 蜂群协作的 commander、worker 和 reviewer 提示词。它把常用协作协议固化成可复制模板,避免每次手写时遗漏边界、状态、锁和验收要求。
|
||||
`scripts/render-swarm-prompt.sh` 用于渲染 tmux 蜂群协作的 commander、worker、reviewer,以及单 worker Codex Pilot Mode 的 `codex-worker` 提示词。它把常用协作协议固化成可复制模板,避免每次手写时遗漏边界、状态、锁和验收要求。
|
||||
|
||||
## 子命令
|
||||
|
||||
@@ -9,11 +9,12 @@
|
||||
| commander | `render-swarm-prompt.sh commander` | 任务拆分、巡检、救援、验收 |
|
||||
| worker | `render-swarm-prompt.sh worker` | 执行单一子任务并回报证据 |
|
||||
| reviewer | `render-swarm-prompt.sh reviewer` | 独立审查 worker 产出 |
|
||||
| codex-worker | `render-swarm-prompt.sh codex-worker` | Codex Pilot Mode 中的持久化交互式 worker Codex |
|
||||
|
||||
## Commander Prompt
|
||||
|
||||
```bash
|
||||
skills/auto-tmux/scripts/render-swarm-prompt.sh commander \
|
||||
bash skills/auto-tmux/scripts/render-swarm-prompt.sh commander \
|
||||
--session ai-hub \
|
||||
--swarm-dir /tmp/ai_swarm \
|
||||
--task "重构 README 实验性方法入口"
|
||||
@@ -36,7 +37,7 @@ target="$(tmux list-panes -t ai-hub:worker1 -F '#S:#I.#P' | head -n 1)"
|
||||
渲染 worker 提示词:
|
||||
|
||||
```bash
|
||||
skills/auto-tmux/scripts/render-swarm-prompt.sh worker \
|
||||
bash skills/auto-tmux/scripts/render-swarm-prompt.sh worker \
|
||||
--session ai-hub \
|
||||
--target "$target" \
|
||||
--swarm-dir /tmp/ai_swarm \
|
||||
@@ -52,7 +53,7 @@ skills/auto-tmux/scripts/render-swarm-prompt.sh worker \
|
||||
## Reviewer Prompt
|
||||
|
||||
```bash
|
||||
skills/auto-tmux/scripts/render-swarm-prompt.sh reviewer \
|
||||
bash skills/auto-tmux/scripts/render-swarm-prompt.sh reviewer \
|
||||
--session ai-hub \
|
||||
--swarm-dir /tmp/ai_swarm \
|
||||
--task "审查本轮 auto-tmux 脚本和文档改动"
|
||||
@@ -64,12 +65,29 @@ skills/auto-tmux/scripts/render-swarm-prompt.sh reviewer \
|
||||
- 需要重点检查 correctness、越界修改、缺失测试、文档不同步。
|
||||
- 需要避免同一上下文自我确认。
|
||||
|
||||
## Codex Worker Prompt
|
||||
|
||||
`codex-worker` 用于单 worker 的 Codex Pilot Mode:主 Codex 控制一个持久化、交互式、对人类可见的 worker Codex pane。
|
||||
|
||||
```bash
|
||||
bash skills/auto-tmux/scripts/render-swarm-prompt.sh codex-worker \
|
||||
--session codex-pilot \
|
||||
--target codex-pilot:worker.0 \
|
||||
--task "进入持久 worker 待命状态,等待主 Codex 后续分派任务"
|
||||
```
|
||||
|
||||
适用场景:
|
||||
|
||||
- 你只想让主 Codex 控制一个可旁观的交互式子 Codex。
|
||||
- 需要主 Codex 做上下文治理、提示词工程、过程监督和最终验收。
|
||||
- 需要 worker Codex 保持在 tmux pane 中持久运行,而不是用无头 `codex exec`。
|
||||
|
||||
## 推荐下发方式
|
||||
|
||||
优先使用封装脚本渲染并预演:
|
||||
|
||||
```bash
|
||||
skills/auto-tmux/scripts/swarm-dispatch.sh \
|
||||
bash skills/auto-tmux/scripts/swarm-dispatch.sh \
|
||||
--role worker \
|
||||
--target "$target" \
|
||||
--task "运行 make test 并分析失败" \
|
||||
@@ -77,10 +95,22 @@ skills/auto-tmux/scripts/swarm-dispatch.sh \
|
||||
--dry-run
|
||||
```
|
||||
|
||||
Codex Pilot Mode 下发示例:
|
||||
|
||||
```bash
|
||||
bash skills/auto-tmux/scripts/swarm-dispatch.sh \
|
||||
--role codex-worker \
|
||||
--target codex-pilot:worker.0 \
|
||||
--session codex-pilot \
|
||||
--task "进入持久 worker 待命状态,等待主 Codex 后续分派任务" \
|
||||
--send \
|
||||
--dry-run
|
||||
```
|
||||
|
||||
渲染到临时文件:
|
||||
|
||||
```bash
|
||||
skills/auto-tmux/scripts/render-swarm-prompt.sh worker \
|
||||
bash skills/auto-tmux/scripts/render-swarm-prompt.sh worker \
|
||||
--target "$target" \
|
||||
--task "运行 make test 并分析失败" \
|
||||
> /tmp/worker-prompt.md
|
||||
@@ -89,7 +119,7 @@ skills/auto-tmux/scripts/render-swarm-prompt.sh worker \
|
||||
发送到 worker:
|
||||
|
||||
```bash
|
||||
skills/auto-tmux/scripts/auto-tmux.sh send \
|
||||
bash skills/auto-tmux/scripts/auto-tmux.sh send \
|
||||
-t "$target" \
|
||||
--text "$(cat /tmp/worker-prompt.md)" \
|
||||
--enter
|
||||
@@ -98,7 +128,7 @@ skills/auto-tmux/scripts/auto-tmux.sh send \
|
||||
长 prompt 可以用 tmux buffer 粘贴:
|
||||
|
||||
```bash
|
||||
skills/auto-tmux/scripts/auto-tmux.sh paste \
|
||||
bash skills/auto-tmux/scripts/auto-tmux.sh paste \
|
||||
-t "$target" \
|
||||
--file /tmp/worker-prompt.md \
|
||||
--enter \
|
||||
@@ -109,5 +139,6 @@ skills/auto-tmux/scripts/auto-tmux.sh paste \
|
||||
|
||||
- Prompt 只定义职责和边界,不替代测试、lint、diff、CI 等硬门禁。
|
||||
- commander、worker、reviewer 应使用不同 pane,避免角色混淆。
|
||||
- Codex Pilot Mode 默认只使用一个 `codex-worker` pane;不要扩展成多 worker,除非用户明确要求。
|
||||
- 长任务必须配合 `record`、`snapshot` 或 `swarm-brief.sh` 保留证据。
|
||||
- 多 worker 修改同一资源前必须配合 `swarm-state.sh lock-acquire`。
|
||||
|
||||
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
+39
-1
@@ -10,11 +10,13 @@ Usage:
|
||||
render-swarm-prompt.sh commander [--session NAME] [--swarm-dir DIR] [--task TEXT]
|
||||
render-swarm-prompt.sh worker --target TARGET [--session NAME] [--swarm-dir DIR] [--task TEXT]
|
||||
render-swarm-prompt.sh reviewer [--session NAME] [--swarm-dir DIR] [--task TEXT]
|
||||
render-swarm-prompt.sh codex-worker --target TARGET [--session NAME] [--task TEXT]
|
||||
|
||||
Examples:
|
||||
render-swarm-prompt.sh commander --session ai-hub --task "重构 README"
|
||||
render-swarm-prompt.sh worker --target ai-hub:2.1 --task "只检查链接"
|
||||
render-swarm-prompt.sh reviewer --session ai-hub
|
||||
render-swarm-prompt.sh codex-worker --target codex-pilot:worker.0 --task "进入持久 worker 待命状态"
|
||||
EOF
|
||||
}
|
||||
|
||||
@@ -29,7 +31,7 @@ shift || true
|
||||
session="ai-hub"
|
||||
swarm_dir="/tmp/ai_swarm"
|
||||
target=""
|
||||
task="未指定;请等待 commander 分配具体任务。"
|
||||
task="未指定;请等待主 Codex 分配具体任务。"
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
@@ -131,6 +133,42 @@ EOF
|
||||
- 不只做风格审查。
|
||||
- 不把 worker 自评当作事实。
|
||||
- 不在缺少证据时宣布通过。
|
||||
EOF
|
||||
;;
|
||||
codex-worker)
|
||||
[[ -n "$target" ]] || die "codex-worker role requires --target TARGET"
|
||||
cat <<EOF
|
||||
# Persistent Interactive Codex Worker Prompt
|
||||
|
||||
你是一个持久化、交互式、对人类可见的 worker Codex。你运行在 tmux pane:\`$target\`。
|
||||
|
||||
## 当前上下文
|
||||
|
||||
- session: \`$session\`
|
||||
- target pane: \`$target\`
|
||||
- 分配任务: $task
|
||||
|
||||
## 你的角色
|
||||
|
||||
你不是主 Agent。主 Codex 会像人类高级开发者一样通过 tmux 控制你、给你补充上下文、纠偏并验收结果。
|
||||
|
||||
## 工作要求
|
||||
|
||||
1. 只执行主 Codex 明确分派给你的当前任务。
|
||||
2. 开始前先复述任务目标、允许修改范围、禁止事项和验收标准。
|
||||
3. 如果上下文不足,先提问或请求主 Codex补充,不要猜测。
|
||||
4. 修改前先读取相关文件和现有模式,优先复用项目已有工具、脚本、helper 和成熟方案。
|
||||
5. 不修改无关文件,不回滚人类或其他 agent 的改动,不扩大任务范围。
|
||||
6. 每个阶段保留证据:读取了什么、改了什么、运行了什么验证、失败原因是什么。
|
||||
7. 完成后必须汇报:状态、修改文件、验证命令与结果、风险、剩余事项。
|
||||
8. 你的完成声明不是最终验收;最终验收由主 Codex 基于真实 diff、测试、日志和文件事实决定。
|
||||
|
||||
## 禁止
|
||||
|
||||
- 禁止自行切换到无头执行模式。
|
||||
- 禁止在没有证据时声称测试通过。
|
||||
- 禁止为了快而跳过边界、测试或用户指定门禁。
|
||||
- 禁止把长期不确定问题包装成已解决。
|
||||
EOF
|
||||
;;
|
||||
*)
|
||||
|
||||
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
+7
-5
@@ -13,11 +13,13 @@ Roles:
|
||||
commander
|
||||
worker
|
||||
reviewer
|
||||
codex-worker
|
||||
|
||||
Examples:
|
||||
swarm-dispatch.sh --role worker --target ai-hub:2.1 --task "只运行 make test" --out /tmp/worker.md
|
||||
swarm-dispatch.sh --role worker --target ai-hub:2.1 --task "只运行 make test" --send --dry-run
|
||||
swarm-dispatch.sh --role commander --target ai-hub:1.1 --task "拆分并推进 README 重构" --send
|
||||
swarm-dispatch.sh --role codex-worker --target codex-pilot:worker.0 --task "进入持久 worker 待命状态" --send --dry-run
|
||||
EOF
|
||||
}
|
||||
|
||||
@@ -34,7 +36,7 @@ role=""
|
||||
target=""
|
||||
session="ai-hub"
|
||||
swarm_dir="${AUTO_TMUX_SWARM_DIR:-/tmp/ai_swarm}"
|
||||
task="未指定;请等待 commander 分配具体任务。"
|
||||
task="未指定;请等待主 Codex 分配具体任务。"
|
||||
out_file=""
|
||||
send="0"
|
||||
dry_run="0"
|
||||
@@ -59,7 +61,7 @@ done
|
||||
|
||||
case "$role" in
|
||||
commander|reviewer) ;;
|
||||
worker) ;;
|
||||
worker|codex-worker) ;;
|
||||
*) die "unknown role: $role" ;;
|
||||
esac
|
||||
|
||||
@@ -69,11 +71,11 @@ if [[ -z "$prompt_file" ]]; then
|
||||
fi
|
||||
|
||||
render_args=("$role" --session "$session" --swarm-dir "$swarm_dir" --task "$task")
|
||||
if [[ "$role" == "worker" ]]; then
|
||||
if [[ "$role" == "worker" || "$role" == "codex-worker" ]]; then
|
||||
render_args+=(--target "$target")
|
||||
fi
|
||||
|
||||
"$render" "${render_args[@]}" > "$prompt_file"
|
||||
bash "$render" "${render_args[@]}" > "$prompt_file"
|
||||
printf 'prompt written: %s\n' "$prompt_file"
|
||||
|
||||
if [[ "$send" != "1" ]]; then
|
||||
@@ -86,4 +88,4 @@ if [[ "$dry_run" == "1" ]]; then
|
||||
send_args+=(--dry-run)
|
||||
fi
|
||||
|
||||
"$auto_tmux" send "${send_args[@]}"
|
||||
bash "$auto_tmux" send "${send_args[@]}"
|
||||
|
||||
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Reference in New Issue
Block a user