# Claude Code Modes for code-worker

## 目标

将本机 Claude Code 包装成可复用的 provider 模式，并统一由 `lighthouse` 这个专用 coding 用户执行。

---

## 当前策略

### 默认 provider
- `anyrouter`
  - 兼容性规则：默认强制追加 `--model opus`

### 备选 provider
- `volc`

### 受限 provider
- `openrouter`
  - 只有在用户明确同意后才能使用

---

## 执行用户

Claude Code 不再由 root 直接执行，而是统一由：
- `lighthouse`

原因：
- root 下 Claude Code 的权限模式容易受限
- 普通用户执行更符合 Claude Code 的安全预期
- 便于后续做更清晰的目录授权与隔离

---

## 默认工作目录

Claude Code 默认不在 `/root/.openclaw/workspace` 中执行。

默认工作目录为：
- `/home/lighthouse/coding-work`

原因：
- 避免普通用户在 `/root/...` 目录下触发 `.claude` / `.mcp.json` 等权限问题
- 保持 coding 用户的工作目录与主 agent 工作区隔离
- 更适合后续 clone repo、建 worktree、运行复杂编码任务

---

## anyrouter 兼容性说明

经验证：
- `anyrouter + --model claude-opus-4-6` 会触发 403
- `anyrouter + --model opus` 可以正常返回结果

因此当前脚本对 `anyrouter` 默认追加：
```bash
--model opus
```

这样可以恢复默认 provider 的可用性。

---

## 调用入口

统一入口脚本：
- `scripts/claude-code-mode`

### 用默认模式（anyrouter）
```bash
scripts/claude-code-mode "Your task"
```

### 显式指定模式
```bash
scripts/claude-code-mode anyrouter "Your task"
scripts/claude-code-mode volc "Your task"
```

### 受限模式
```bash
scripts/claude-code-mode openrouter "Your task"
```

如果未获得明确授权，脚本会拒绝执行 `openrouter`。

---

## 与 code-worker 的关系

### 普通小任务
普通 `code-worker` 仍可直接使用：
- `read`
- `write`
- `edit`
- `exec`

### 复杂代码任务
复杂代码任务可使用 Claude Code provider 模式：
- `code-worker + anyrouter`
- `code-worker + volc`
- `code-worker + openrouter`（需显式授权）

即：
- `code-worker` 负责任务边界与输出协议
- `scripts/claude-code-mode` 负责 provider 选择与用户切换
- `lighthouse` 负责实际运行 Claude Code

---

## 当前建议使用方式

### 默认
优先直接使用默认模式：
```bash
scripts/claude-code-mode "Implement X"
```

### 当默认失败时
显式改用：
```bash
scripts/claude-code-mode volc "Implement X"
```

### 仅在用户明确批准时
才允许：
```bash
scripts/claude-code-mode openrouter "Implement X"
```

---

## 后续可扩展方向

未来可考虑：
- 自动检测默认 provider 失败后再切换到 `volc`
- 记录 provider 成功率、响应速度、失败原因
- 对不同 provider 绑定不同任务类型

但当前阶段建议保持规则简单透明。
