mirror of
https://github.com/tanweai/pua.git
synced 2026-09-19 02:19:52 +08:00
1be1c478b6
PUA v3.1 之前覆盖 agent 生命周期的前 4 阶段(Define → Spawn → Monitor → Accept),缺后 3 阶段(Release → Cleanup → Orphan handling),导致验收通过的 agent 堆在上下文、worktree 变孤儿、tmux pane 常驻、后台 agent 永久吃 token。 v3.2 补齐会计层:SubagentStop hook + 3 个新 slash 命令 + teardown 协议文档。 Why (Netflix Keeper Test): 职业球队里打完比赛的球员必须下场,继续站场上只会 拖垮全队节奏。agent 也一样。 What: - NEW hooks/subagent-teardown.sh — SubagentStop 会计,写 teardown.jsonl + 从 active-agents.json 移除(单行 compact jsonl) - NEW commands/team-status.md — 列在场阵容(活跃 agent / PID / TTL / age) - NEW commands/reap-orphans.md — 扫 stale agent(mtime > 30min)批量回收 - NEW commands/teardown-all.md — 级联释放 P10 → P9 → P8 → P7 全员下场 - NEW skills/pua/references/teardown-protocol.md — 生命周期 7 阶段协议 + 6 条 Release 规则 + Cleanup checklist + Orphan 三层防御 Bugfix: - hooks/pua-loop-hook.sh: 新增 Gate 0(SubagentStop isolation),state file 路径改为绝对路径 $HOME/.claude/pua/loop-active.md(SESSION_ID 在 setup 时不可用,固定名)+ legacy fallback - scripts/setup-pua-loop.sh: ABS + legacy 双写 state - hooks/hooks.json: 注册 SubagentStop → subagent-teardown.sh - commands/on.md: 修复 feedback_frequency=0 tombstone 不恢复的不对称 bug - commands/cancel-pua-loop.md + team-status.md: 移除不支持的 Read(~/...) tilde 权限语法 E2E 验证 (10/10 全绿): T1 hooks.json syntax | T2 teardown jsonl compact | T3 active-agents 选择性清除 T4 setup 双写 MD5 identical | T5 Gate 0 真拦截 SubagentStop T6 主会话 Stop 注入 decision:block valid JSON | T7 Gate 0 对带 transcript 的 sub 仍拦截 | T8 无 tilde | T9 feedback_frequency 恢复 | T10 SubagentStop 注册
1.5 KiB
1.5 KiB
description
| description |
|---|
| PUA 关闭默认模式 — 关闭自动加载、停止 loop、级联释放所有 agent。/pua:off。Triggers on: '/pua:off', 'pua off', '关闭pua', 'disable pua', 'always off', '下班', '收工'. |
关闭 PUA 默认模式(v3 级联语义):
步骤
-
写入配置(确保
~/.pua/目录存在):- 将
{"always_on": false, "feedback_frequency": 0}写入~/.pua/config.json
- 将
-
停止活跃 loop(若有):
find "$HOME/.claude/pua/" -name "loop-*.md" -delete 2>/dev/null rm -f .claude/pua-loop.local.md 2>/dev/null -
清理活跃 agent 记录:
rm -f "$HOME/.claude/pua/active-agents.json" 2>/dev/null -
记录事件:
mkdir -p "$HOME/.claude/pua" echo "{\"event\":\"pua_off\",\"ts\":\"$(date -u +%FT%TZ)\"}" \ >> "$HOME/.claude/pua/teardown.jsonl" -
提示主会话:若 TaskList 里还有未完成任务且归属 PUA agent,列给用户,由用户决定是否
TaskStop。
输出确认
[PUA OFF] PUA 默认模式和反馈收集已关闭。Loop state 已清理,孤儿 agent 已释放。需要时手动 /pua:pua 触发。
设计语义
/pua:off 不只是"关开关",而是"下班"——和 /pua:on 对应的是加载配置;和"停运行"对应的是本命令自带的级联清理。
如果你只想关配置不动 state,直接编辑 ~/.pua/config.json。
如果你想更激进地清 worktree 等资源,用 /pua:teardown-all。