# [ERR-20260430-004] 迁 act_runner 到新机时漏装 claude CLI → ai-review job 红

## 现象

把 act_runner 从 Gitea 主机迁到新 4c16G VM 后，PR #195 跑 CI：
- 6 个 quality-gates 全过 ✅
- ai-review 失败 ❌

log 关键行：
```
::group::Run command -v claude && claude --version
❌  Failure - Main Verify claude CLI is available
exit status 1
```

## 根因

ai-review.yml 第 55 行写了：
```yaml
- name: Verify claude CLI is available
  run: command -v claude && claude --version
```
新 runner（dedicated-runner-1）从零装的，没拷贝老 runner 已有的 claude CLI + auth。issue #169 描述里提了"5. 装 claude CLI"，迁的时候漏看了。

## 修法

```bash
# 1. 装 binary（新 runner 上）
sudo npm install -g @anthropic-ai/claude-code

# 2. 用户交互式登录（关键：必须以跑 act_runner 的用户登录）
ssh -t ubuntu@<runner-host> 'claude'   # -t 给真实 tty，否则进不了 OAuth 流程
# 走 OAuth → auth 落到 ~/.claude/.credentials.json

# 3. 验证 act_runner 进程能读到
sudo -u ubuntu -H bash -c 'claude -p "reply with just OK"'
# 应输出 OK
```

## 复用建议

**搬 runner 主机时的完整依赖清单**（一次性不要漏）：
- Node 20（NodeSource）
- jq / git / curl / ca-certificates
- act_runner 二进制（注意版本兼容）
- **claude CLI + auth**（`@anthropic-ai/claude-code` npm 全局）
- 任何被 workflow `command -v X` 校验的 CLI

**核对方法**：迁完后 `grep -RhE "command -v |which " .gitea/workflows/` 列一遍 workflow 期望的工具。

## 上下文

- PR #195（infra/runner-migrate-off-gitea-host）
- 关联 issue #169（act_runner 迁出 Gitea 主机）
- 关联 .learnings/2026-04-29-ai-review-enablement.md（claude CLI auth 用户对齐的细节）
