用途:当两个 Agent 在不同 worktree 并发运行时,默认的 ~/.agh/ 与默认守护进程端口会互相阻塞,且多个进程对同一 .git/index 提交会触发 '.git/index.lock' 错误。该技能为每个场景分配隔离的运行时环境,并打印需要 source 的环境变量。
主要能力:输入可选的 scenario-slug(kebab-case,用于命名 AGH_HOME 目录和 tmux socket,默认 agh-iso-<timestamp>);脚本会创建独立 AGH_HOME(TMPDIR 下或 worktree 内 Compozy/_worktrees/<slug>/.agh/),在 127.0.0.1 上挑选空闲 HTTP 端口与 UDS 端口或路径,并生成唯一 tmux socket 路径。
使用方式:运行 python3 .agents/skills/agh-worktree-isolation/scripts/allocate-isolation.py --slug "<scenario-slug>";shell 中用 eval "$(python3 ... --slug "<slug>")" 捕获 AGH_HOME、AGH_HTTP_PORT、AGH_UDS_PATH、TMUX_BRIDGE_SOCKET;Make/CI 可将变量作为覆盖传给守护进程启动命令。执行前应确认 AGH_HOME 非默认且可写、端口未被占用、tmux socket 未被其他进程持有。该技能先检测并发信号(并行 worktree、其他 agent 运行、并行 QA、位于 Compozy/_worktrees/<slug>/ 等),无信号时会询问是否跳过。内层技能(如 real-scenario-qa、qa-execution、make test-e2e-runtime)通过 shell 会话继承环境,无需重新分配;生产类本地 QA 建议优先使用 agh-qa-bootstrap。
限制:场景结束后 AGH_HOME 默认保留以供取证,仅当指定 --purge-after 才清理;worktree 内路径永不自动清理。无空闲端口时扩大范围重试,仍失败则报错退出;脚本不可执行时需 chmod +x 后重试。worktree 路径无写权限时回退到 TMPDIR 并记录警告。