Files
claude_dev a8ac23f699 docs: 更新 v0.4 最终状态 - 设计和基础设施完成
完成项目:
 文档: 设计、快速参考、示例工作流
 项目结构: 三个项目目录 + CLAUDE.md
 角色 Skills: architect-role, backend-dev, frontend-dev
 配置脚本: tmux, 启动, 消息队列, 测试
 环境验证: 18/18 测试通过

待用户操作:
- 启动 tmux 环境
- 在各 pane 启动 Claude Code
- 测试 SendMessage 协作
- (可选) 启动 ttyd Web 访问

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 22:38:02 +08:00

1097 lines
31 KiB
Markdown

# sanguo_moziplus_v3 设计文档 v0.4
**项目名称**: sanguo_moziplus_v3
**版本**: v0.4
**创建日期**: 2026-06-30
**状态**: Draft
**基于**: v0.3 + 三实例方案
---
## 1. 版本变更
| 版本 | 变更说明 | 日期 |
|------|---------|------|
| v0.1 | 初始设计 | 2026-06-29 |
| v0.2 | 基于 videotext 调研更新,集成 GLM-5.2、Web 访问 | 2026-06-29 |
| v0.3 | 移除 CCB,采用 Claude Code 内置多 Agent 能力 | 2026-06-30 |
| **v0.4** | **三实例方案:所有 Agent 共享 Superpowers skills** | **2026-06-30** |
### v0.4 核心变化
| 变更项 | v0.3 | v0.4 | 原因 |
|--------|------|------|------|
| **Agent 数量** | 1 个主 Agent | **3 个独立实例** | 清晰的角色隔离 |
| **实例类型** | Claude Code 主实例 | **3 个 Claude Code 实例** | 统一的技术栈 |
| **Skills 访问** | 主实例访问 | **所有实例共享 Superpowers** | 统一的能力库 |
| **角色定义** | 通过 Agent 类型 | **通过 CLAUDE.md** | 更清晰的角色隔离 |
| **协作方式** | Agent 工具调用 | **SendMessage 跨实例** | 更灵活的协作 |
---
## 2. 架构概述
### 2.1 系统架构图
```
┌─────────────────────────────────────────────────────────────────────┐
│ tmux sanguo_dev 会话 │
│ │
│ ┌───────────────────────────────────────────────────────────────┐ │
│ │ tmux pane #0: Claude (架构师/项目经理) │ │
│ │ 项目: ~/.claude/projects/sanguo-main │ │
│ │ 配置: sanguo-main/.claude/CLAUDE.md │ │
│ │ 职责: 需求分析、架构设计、任务拆分、审查、验收 │ │
│ │ 限制: 绝对不亲自编写代码 │ │
│ └───────────────────────────────────────────────────────────────┘ │
│ │
│ ┌───────────────────────────────────────────────────────────────┐ │
│ │ tmux pane #1: Codex (后端开发) │ │
│ │ 项目: ~/.claude/projects/sanguo-backend │ │
│ │ 配置: sanguo-backend/.claude/CLAUDE.md │ │
│ │ 职责: 服务端代码、API、数据库、Migration、测试 │ │
│ │ 限制: 只处理后端任务 │ │
│ └───────────────────────────────────────────────────────────────┘ │
│ │
│ ┌───────────────────────────────────────────────────────────────┐ │
│ │ tmux pane #2: Gemini (前端开发) │ │
│ │ 项目: ~/.claude/projects/sanguo-frontend │ │
│ │ 配置: sanguo-frontend/.claude/CLAUDE.md │ │
│ │ 职责: 前端组件、页面、样式、交互逻辑、审查 │ │
│ │ 限制: 只处理前端任务 │ │
│ └───────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ Superpowers Skills (共享) │
│ 路径: ~/.claude/skills/ │
│ 所有三个实例都可以访问 │
│ │
│ ┌───────────────────────────────────────────────────────────────┐ │
│ │ • CODE-REVIEW (代码审查专业知识) │ │
│ │ • test-engineer (测试专业知识) │ │
│ │ • copywriting-base (营销文案等47个技能) │ │
│ │ • debugger (调试技能) │ │
│ │ • ... (100+ 专业技能) │ │
│ └───────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ GLM-5.2 (统一后端) │
│ 端点: https://api.z.ai/api/anthropic │
│ 所有三个实例通过同一模型执行 │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ Web 访问层 (ttyd) │
│ 端口: 8088 │
│ 访问: http://YOUR_LAN_IP:8088 │
│ 共享 tmux sanguo_dev 会话 │
└─────────────────────────────────────────────────────────────────────┘
```
### 2.2 完整链路
```
用户输入需求
Claude (架构师) 接收
加载 planning skill 进行规划
SendMessage 指派任务:
→ backend: "实现后端 API"
→ frontend: "实现前端页面"
Codex (后端) 加载 backend-dev skill
Gemini (前端) 加载 frontend-dev skill
各自执行任务 (通过 GLM-5.2)
SendMessage 返回结果给架构师
Claude (架构师) 加载 CODE-REVIEW skill 审查
Git 提交
```
---
## 3. 三实例角色定义
### 3.1 Claude — 架构师/项目经理
**项目配置**:
- 项目路径: `~/.claude/projects/sanguo-main`
- CLAUDE.md: `sanguo-main/.claude/CLAUDE.md`
**角色定义**:
```markdown
# sanguo-main/.claude/CLAUDE.md
## 角色定义
你是架构师/项目经理,负责项目的整体规划和协调。
### 核心职责
- 需求分析和理解
- 架构设计和技术选型
- 任务拆分和优先级排序
- 代码审核和质量把关
- 最终验收和 Git 提交管理
### 严格限制
**绝对不亲自编写代码**。所有编码任务必须通过 SendMessage 指派给 backend 或 frontend agent。
### 工作流程
1. 接收用户需求
2. 加载 planning skill 进行规划
3. 拆分任务为后端和前端两部分
4. 通过 SendMessage 指派任务:
- SendMessage({ to: "backend", message: "..." })
- SendMessage({ to: "frontend", message: "..." })
5. 等待 agents 返回结果
6. 加载 CODE-REVIEW skill 审查代码
7. 整合结果并提交 Git
### 协作规范
- 使用 Superpowers skills 进行:
- 规划: planning skill
- 审查: CODE-REVIEW skill
- 调试: debugger skill
- 验收: test-engineer skill
- 向 backend/frontend 指派任务时,提供:
- 清晰的任务描述
- 技术要求和约束
- 预期输出格式
- 验收标准
### 决策框架 (Linus 三问)
1. 这是现实问题还是想象问题? → 拒绝过度设计
2. 这个问题真的需要解决吗? → 拒绝伪需求
3. 这个方案真的能解决问题吗? → 拒绝自嗨
```
**Superpowers 使用**:
- `planning` — 技术方案规划
- `CODE-REVIEW` — 代码审查
- `debugger` — 问题调试
- `test-engineer` — 测试策略
---
### 3.2 Codex — 后端开发
**项目配置**:
- 项目路径: `~/.claude/projects/sanguo-backend`
- CLAUDE.md: `sanguo-backend/.claude/CLAUDE.md`
**角色定义**:
```markdown
# sanguo-backend/.claude/CLAUDE.md
## 角色定义
你是后端开发专家,专注于服务器端代码实现。
### 核心职责
- 服务端代码实现 (Node.js/Python/Go 等)
- API 设计和实现 (REST/GraphQL/gRPC)
- 数据库设计和 Migration
- 单元测试和集成测试
- 性能优化和错误处理
### 严格限制
- 只处理后端任务
- 拒绝前端相关任务 (组件、页面、样式)
- 如果收到前端任务,明确拒绝并告知转给 frontend agent
### 工作流程
1. 从架构师接收任务 (通过 SendMessage)
2. 加载 backend-dev skill 进行分析
3. 设计实现方案
4. 编写代码
5. 编写测试
6. 自测验证
7. 返回结果给架构师 (通过 SendMessage)
### 技术标准
- 代码规范: 遵循项目约定的代码风格
- API 设计: RESTful 原则,清晰的错误码
- 数据库: 规范化设计,适当的索引
- 测试: 单元测试覆盖率 > 80%
- 文档: API 文档 (OpenAPI/Swagger)
### Superpowers 使用
- `CODE-REVIEW` — 自我审查代码
- `debugger` — 调试后端问题
- `test-engineer` — 编写测试
### 输出格式
完成任务后,通过 SendMessage 返回:
- 实现的文件列表
- API 端点说明
- 数据库变更 (如有)
- 测试结果
- 已知问题或限制
```
**backend-dev Skill**:
```markdown
## ~/.claude/skills/backend-dev/SKILL.md
你现在是后端开发专家。专注于服务器端代码实现。
### 核心原则
1. **API First**: 先设计 API,再实现逻辑
2. **测试驱动**: 先写测试,再写代码
3. **安全优先**: 输入验证、输出编码、权限检查
4. **性能意识**: 避免N+1查询、适当缓存、异步处理
### 实现流程
1. **理解需求**: 确认功能、约束、验收标准
2. **设计 API**: 端点、方法、参数、响应
3. **设计数据库**: 表结构、索引、关系
4. **实现逻辑**: 按照最佳实践编写代码
5. **编写测试**: 单元测试、集成测试
6. **自测验证**: 确保功能正常
### 拒绝任务
如果任务涉及:
- 前端组件
- 页面样式
- UI 交互
- 浏览器兼容性
明确拒绝并告知转给 frontend agent。
```
---
### 3.3 Gemini — 前端开发
**项目配置**:
- 项目路径: `~/.claude/projects/sanguo-frontend`
- CLAUDE.md: `sanguo-frontend/.claude/CLAUDE.md`
**角色定义**:
```markdown
# sanguo-frontend/.claude/CLAUDE.md
## 角色定义
你是前端开发专家,专注于用户界面实现。
### 核心职责
- 前端组件开发 (React/Vue/等)
- 页面布局和样式实现
- 用户交互逻辑
- 前端性能优化
- 浏览器兼容性处理
- 代码审查和安全审计
### 严格限制
- 只处理前端任务
- 拒绝后端相关任务 (API、数据库、服务器逻辑)
- 如果收到后端任务,明确拒绝并告知转给 backend agent
### 工作流程
1. 从架构师接收任务 (通过 SendMessage)
2. 加载 frontend-dev skill 进行分析
3. 设计组件结构
4. 实现页面和样式
5. 实现交互逻辑
6. 浏览器测试
7. 返回结果给架构师 (通过 SendMessage)
### 技术标准
- 组件化: 可复用的组件设计
- 响应式: 适配不同设备和屏幕
- 性能: 懒加载、代码分割、缓存优化
- 可访问性: ARIA 标准、键盘导航
- 兼容性: 支持主流浏览器
### Superpowers 使用
- `CODE-REVIEW` — 审查前端代码
- `ui-ux-pro-max` — UI/UX 设计指导
- `debugger` — 调试前端问题
### 输出格式
完成任务后,通过 SendMessage 返回:
- 实现的组件列表
- 页面预览或截图
- 交互说明
- 性能优化措施
- 兼容性问题 (如有)
```
**frontend-dev Skill**:
```markdown
## ~/.claude/skills/frontend-dev/SKILL.md
你现在是前端开发专家。专注于用户界面实现。
### 核心原则
1. **组件优先**: 可复用的组件设计
2. **移动优先**: 响应式设计,移动设备优先
3. **渐进增强**: 基础功能优先,逐步增强
4. **性能第一**: 懒加载、代码分割、资源优化
### 实现流程
1. **理解需求**: 确认功能、UI设计、交互要求
2. **组件设计**: 拆分为可复用的组件
3. **样式实现**: 响应式布局、动画效果
4. **交互实现**: 事件处理、状态管理
5. **测试验证**: 浏览器测试、性能测试
6. **优化改进**: 性能优化、兼容性处理
### 拒绝任务
如果任务涉及:
- API 端点实现
- 数据库设计
- 服务器逻辑
- 后端性能优化
明确拒绝并告知转给 backend agent。
```
---
## 4. Superpowers Skills 共享
### 4.1 共享机制
**所有三个实例共享同一套 Superpowers skills**:
```
~/.claude/skills/
├── CODE-REVIEW/ ← 三实例共享
├── test-engineer/ ← 三实例共享
├── copywriting-base/ ← 三实例共享
│ ├── skills/
│ │ ├── copywriting/ ← 三实例共享
│ │ ├── seo-audit/ ← 三实例共享
│ │ └── ... (47 skills)
├── debugger/ ← 三实例共享
├── ui-ux-pro-max/ ← 三实例共享
└── ... (100+ skills)
```
### 4.2 使用差异
**虽然共享同一套 skills,但使用方式因角色而异**:
| Skill | Claude (架构师) | Codex (后端) | Gemini (前端) |
|-------|----------------|-------------|---------------|
| **planning** | ✅ 主要使用 | ⚠️ 仅规划自己的实现 | ⚠️ 仅规划自己的实现 |
| **CODE-REVIEW** | ✅ 审查所有代码 | ✅ 自我审查 | ✅ 自我审查 + 审查前端 |
| **debugger** | ✅ 调试整体问题 | ✅ 调试后端问题 | ✅ 调试前端问题 |
| **test-engineer** | ✅ 设计测试策略 | ✅ 编写后端测试 | ✅ 编写前端测试 |
| **ui-ux-pro-max** | ❌ 不使用 | ❌ 不使用 | ✅ 主要使用 |
| **copywriting** | ❌ 不使用 | ❌ 不使用 | ⚠️ 仅文案相关 |
### 4.3 角色 Skills
**新增三个角色专属 skills**:
```
~/.claude/skills/
├── architect-role/ ← 架构师专属
├── backend-dev/ ← 后端开发专属
└── frontend-dev/ ← 前端开发专属
```
---
## 5. 协作流程
### 5.1 SendMessage 机制
**跨实例通信**:
```
Claude (架构师) Codex (后端)
│ │
│─── SendMessage ──────────────>│
│ to: "backend" │
│ message: "实现用户 API" │
│ │
│ │
│<──── SendMessage ─────────────│
│ to: "main" │
│ message: "后端完成,返回..." │
│ │
```
**验证需求**: 需要验证 Claude Code 的 SendMessage 是否支持跨实例通信。
### 5.2 典型工作流
**场景:实现用户认证系统**
```
1. 用户: "实现用户认证系统"
2. Claude (架构师) 接收
- 加载 planning skill
- 规划任务: JWT认证 + 登录页面
3. Claude 指派任务
- SendMessage({ to: "backend", message: "实现JWT认证API" })
- SendMessage({ to: "frontend", message: "实现登录注册页面" })
4. Codex (后端) 执行
- 加载 backend-dev skill
- 设计API: /auth/login, /auth/register
- 实现JWT逻辑
- 编写测试
- SendMessage({ to: "main", message: "后端完成" })
5. Gemini (前端) 执行
- 加载 frontend-dev skill
- 设计登录页面组件
- 实现表单验证
- 调用后端API
- SendMessage({ to: "main", message: "前端完成" })
6. Claude (架构师) 整合
- 加载 CODE-REVIEW skill
- 审查后端代码
- 审查前端代码
- 集成测试
- Git 提交
```
### 5.3 错误处理
**任务拒绝流程**:
```
Codex (后端) 收到前端任务
加载 backend-dev skill
识别为前端任务
SendMessage({ to: "main", message: "这不是后端任务,请转给 frontend" })
Claude (架构师) 重新指派
SendMessage({ to: "frontend", message: "原任务..." })
```
---
## 6. 实施步骤
### Phase 1: 环境准备
#### 1.1 配置 GLM-5.2
**创建 `~/.claude/settings.json`**:
```json
{
"env": {
"CLAUDE_CODE_AUTO_COMPACT_WINDOW": "1000000",
"ANTHROPIC_BASE_URL": "https://api.z.ai/api/anthropic",
"ANTHROPIC_API_KEY": "6903e83faf454106aa7529c9e18e2ea5.gYMSjWwk1XDN0U5h",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "glm-5.2[1m]",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-5.2[1m]"
}
}
```
#### 1.2 安装 ttyd
```bash
brew install ttyd
```
**配置 `~/.ttyd`**:
```
address = "0.0.0.0"
port = "8088"
permit-write = true
enable-basic-auth = false
```
---
### Phase 2: 创建项目结构
#### 2.1 创建三个项目目录
```bash
# 创建项目目录
mkdir -p ~/.claude/projects/sanguo-main/.claude
mkdir -p ~/.claude/projects/sanguo-backend/.claude
mkdir -p ~/.claude/projects/sanguo-frontend/.claude
```
#### 2.2 创建 CLAUDE.md 文件
**sanguo-main/.claude/CLAUDE.md**:
```markdown
# sanguo-main — 架构师/项目经理
[使用第 3.1 节的完整内容]
```
**sanguo-backend/.claude/CLAUDE.md**:
```markdown
# sanguo-backend — 后端开发
[使用第 3.2 节的完整内容]
```
**sanguo-frontend/.claude/CLAUDE.md**:
```markdown
# sanguo-frontend — 前端开发
[使用第 3.3 节的完整内容]
```
---
### Phase 3: 创建角色 Skills
#### 3.1 创建 architect-role skill
```bash
mkdir -p ~/.claude/skills/architect-role
```
**`~/.claude/skills/architect-role/SKILL.md`**:
```markdown
---
name: architect-role
description: 当你作为架构师/项目经理角色时使用。负责需求分析、架构设计、任务拆分、代码审查、最终验收。绝对不亲自编写代码。
---
# Architect Role
你现在是架构师/项目经理角色。
## 核心职责
- 需求分析和理解
- 架构设计和技术选型
- 任务拆分和优先级排序
- 代码审核和质量把关
- 最终验收和 Git 提交管理
## 严格限制
**绝对不亲自编写代码**
## 工作流程
1. 接收用户需求
2. 进行需求分析
3. 规划技术方案
4. 拆分任务
5. 指派给合适的 agent (backend/frontend)
6. 等待并整合结果
7. 审查和验收
8. 提交 Git
```
#### 3.2 创建 backend-dev skill
```bash
mkdir -p ~/.claude/skills/backend-dev
```
**`~/.claude/skills/backend-dev/SKILL.md`**:
```markdown
---
name: backend-dev
description: 后端开发专家。专注于服务器端代码、API、数据库、测试。只处理后端任务,拒绝前端任务。
---
# Backend Developer
你现在是后端开发专家。
## 核心职责
- 服务端代码实现
- API 设计和实现
- 数据库设计和 Migration
- 单元测试和集成测试
## 严格限制
- 只处理后端任务
- 拒绝前端相关任务
## 实现流程
1. 理解需求
2. 设计 API
3. 设计数据库
4. 实现代码
5. 编写测试
6. 自测验证
```
#### 3.3 创建 frontend-dev skill
```bash
mkdir -p ~/.claude/skills/frontend-dev
```
**`~/.claude/skills/frontend-dev/SKILL.md`**:
```markdown
---
name: frontend-dev
description: 前端开发专家。专注于组件、页面、样式、交互。只处理前端任务,拒绝后端任务。
---
# Frontend Developer
你现在是前端开发专家。
## 核心职责
- 前端组件开发
- 页面布局和样式
- 用户交互逻辑
- 浏览器兼容性
## 严格限制
- 只处理前端任务
- 拒绝后端相关任务
## 实现流程
1. 理解需求
2. 组件设计
3. 样式实现
4. 交互实现
5. 浏览器测试
```
---
### Phase 4: tmux 会话配置
#### 4.1 创建 tmux 配置
**创建 `~/.tmux-sanguo.conf`**:
```bash
# sanguo tmux 配置
new-session -d -s sanguo_dev -n "main"
# pane 0: main (架构师)
selectp -t 0
split-window -h -p 50
# pane 1: backend (后端开发)
selectp -t 1
split-window -v -p 50
# pane 2: frontend (前端开发)
selectp -t 2
# 回到 main pane
selectp -t 0
# 设置 pane 标题
select-pane -t 0 -T "Claude (架构师)"
select-pane -t 1 -T "Codex (后端)"
select-pane -t 2 -T "Gemini (前端)"
```
#### 4.2 启动 tmux 会话
```bash
# 加载配置启动 tmux
tmux new -f ~/.tmux-sanguo.conf
# 或手动创建
tmux new -s sanguo_dev
tmux split-window -h
tmux split-window -v
```
#### 4.3 在各 pane 中启动 Claude Code
**pane 0 (架构师)**:
```bash
cd ~/.claude/projects/sanguo-main
claude
# 设置为架构师角色
```
**pane 1 (后端)**:
```bash
cd ~/.claude/projects/sanguo-backend
claude
# 设置为后端开发角色
```
**pane 2 (前端)**:
```bash
cd ~/.claude/projects/sanguo-frontend
claude
# 设置为前端开发角色
```
---
### Phase 5: SendMessage 机制验证
#### 5.1 验证结果 (2026-06-30)
| 项目 | 结果 | 说明 |
|------|------|------|
| **跨会话能力** | ✅ 支持 | Claude Code v2.1.166+ 支持跨会话 SendMessage |
| **当前版本** | ✅ 2.1.187 | 已包含跨会话功能 |
| **安全限制** | ⚠️ 存在 | 有权限相关限制 |
**关键限制** (来源: changelog v2.1.166):
1. **权限限制**: 跨会话消息不携带用户权限
2. **工具调用**: 接收方拒绝中继的权限请求
3. **Auto 模块**: 自动模式会阻止跨会话消息
#### 5.2 对 v0.4 方案的影响
| 功能 | 原设计 | 实际情况 | 调整方案 |
|------|--------|----------|----------|
| **传递任务** | SendMessage 传递任务 | ✅ 可用 | 无需调整 |
| **执行工具** | 跨实例工具调用 | ❌ 受限 | 各实例自主执行 |
| **自动模式** | 自动指派/接收 | ❌ 受限 | 需手动确认 |
#### 5.3 实施建议
1. **保持设计**: SendMessage 可用于传递任务描述和结果
2. **自主执行**: 每个实例独立执行工具,不依赖跨实例调用
3. **文件辅助**: 大量代码传递使用共享文件系统
#### 5.4 工作流程调整
**原设计流程**:
```
架构师 SendMessage(任务) → 后端 执行工具 → 架构师
```
**实际可行流程**:
```
架构师 SendMessage(任务描述) → 后端 接收消息 → 后端 自主执行 → 后端 SendMessage(结果)
```
#### 5.5 备选方案 (保留)
如果遇到 SendMessage 问题,可以使用文件系统作为消息队列:
```bash
# 创建消息目录
mkdir -p ~/.claude/messages/sanguo
# 架构师发送任务
echo '{"to": "backend", "task": "...", "files": [...]}' > ~/.claude/messages/sanguo/backend_$(date +%s).json
# 后端监听并处理
fswatch ~/.claude/messages/sanguo/backend_*.json | xargs -I {} sh -c 'process_task {}'
```
---
### Phase 6: 启动 Web 访问
```bash
# 启动 ttyd 共享 tmux 会话
ttyd -p 8088 tmux attach -t sanguo_dev
# 访问: http://YOUR_LAN_IP:8088
```
---
## 7. 端口规划
| 服务 | 端口 | 说明 |
|------|------|------|
| **ttyd Web** | 8088 | tmux Web 访问 |
| **Claude Code** | 默认 | 由 Claude Code 管理 (每个实例) |
**已占用端口(避开)**: 3001, 6379, 18789, 19999
---
## 8. 配置文件汇总
### 8.1 配置文件位置
| 文件 | 路径 | 用途 |
|------|------|------|
| **settings.json** | `~/.claude/settings.json` | GLM-5.2 端点配置 |
| **ttyd 配置** | `~/.ttyd` | Web 访问配置 |
| **tmux 配置** | `~/.tmux-sanguo.conf` | tmux 会话配置 |
| **main CLAUDE.md** | `sanguo-main/.claude/CLAUDE.md` | 架构师角色定义 |
| **backend CLAUDE.md** | `sanguo-backend/.claude/CLAUDE.md` | 后端角色定义 |
| **frontend CLAUDE.md** | `sanguo-frontend/.claude/CLAUDE.md` | 前端角色定义 |
| **角色 Skills** | `~/.claude/skills/{architect-role,backend-dev,frontend-dev}/` | 角色专属技能 |
### 8.2 环境变量汇总
```bash
# GLM-5.2 (Anthropic 兼容)
export ANTHROPIC_BASE_URL="https://api.z.ai/api/anthropic"
export ANTHROPIC_API_KEY="你的智谱API_Key"
```
---
## 9. 技术栈
| 组件 | 技术/版本 | 说明 |
|------|----------|------|
| **Claude Code** | v2.1.39+ | 主控 CLI (三个实例) |
| **Superpowers** | Marketplace | 共享技能库 |
| **GLM-5.2** | 智谱 AI | 统一后端 |
| **ttyd** | v1.7.7 | Web 终端 |
| **tmux** | 系统包管理器 | 终端复用 (三 pane) |
---
## 10. 成本估算
| 组件 | 用量 | 单价 | 预估成本占比 |
|------|------|------|-------------|
| **Claude (架构师)** | 规划+审查+验收(中) | 低 | ~30% |
| **Codex (后端)** | 代码实现(高) | 低 | ~50% |
| **Gemini (前端)** | 页面实现(中) | 低 | ~20% |
**v0.4 成本优势**:
- 统一使用 GLM-5.2,成本最低
- 三个实例按需消耗 token
- 1M 上下文减少频繁请求
---
## 11. 检查清单
### 环境检查
- [ ] Claude Code 已安装
- [ ] tmux 已安装
- [ ] ttyd 已安装
### 配置验证
- [ ] `~/.claude/settings.json` 已配置 GLM-5.2 端点
- [ ] 智谱 API Key 已设置
- [ ] ttyd 配置 8088 端口
- [ ] tmux 配置文件已创建
### 项目创建
- [ ] sanguo-main 项目目录已创建
- [ ] sanguo-backend 项目目录已创建
- [ ] sanguo-frontend 项目目录已创建
- [ ] 三个 CLAUDE.md 文件已创建
### Skills 创建
- [ ] architect-role skill 已创建
- [ ] backend-dev skill 已创建
- [ ] frontend-dev skill 已创建
### 功能验证
- [ ] tmux 三 pane 会话正常启动
- [ ] 三个 Claude Code 实例正常启动
- [ ] SendMessage 跨实例通信正常
- [ ] 各实例能正确加载角色定义
- [ ] 各实例能访问 Superpowers skills
- [ ] ttyd web 访问正常
---
## 12. 故障排查
### 12.1 SendMessage 不工作
**问题**: 跨实例 SendMessage 无法传递消息
**解决**:
1. 验证 Claude Code SendMessage 能力
2. 使用文件系统作为备选消息队列
3. 实现简单的轮询机制
### 12.2 角色隔离不生效
**问题**: 实例没有按照 CLAUDE.md 定义的角色执行
**解决**:
1. 确认 CLAUDE.md 文件位置正确
2. 确认 Claude Code 加载了正确的 CLAUDE.md
3. 在启动 Claude Code 时明确指定角色
### 12.3 Skills 访问问题
**问题**: 某个实例无法访问 Superpowers skills
**解决**:
1. 确认 `~/.claude/skills/` 目录存在
2. 确认技能文件权限正确
3. 重新安装 Superpowers
---
## 13. 参考资料
- [GLM-5.2 - 智谱AI开放文档](https://docs.bigmodel.cn/cn/guide/models/text/glm-5.2)
- [ttyd GitHub](https://github.com/tsl0922/ttyd)
- [tmux 官方文档](https://github.com/tmux/tmux/wiki)
---
## 14. 实施状态
### 已完成 (2026-06-30 更新)
| 组件 | 状态 | 说明 |
|------|------|------|
| **ttyd** | ✅ 已安装 | v1.7.7 |
| **Claude Code** | ✅ v2.1.187 | 支持跨会话 SendMessage |
| **项目目录** | ✅ 已创建 | sanguo-main, sanguo-backend, sanguo-frontend |
| **CLAUDE.md 文件** | ✅ 已创建 | 三个角色定义文件 |
| **角色 Skills** | ✅ 已创建 | architect-role, backend-dev, frontend-dev |
| **SendMessage 验证** | ✅ 已验证 | 支持跨会话但有限制 |
| **tmux 配置** | ✅ 已创建 | ~/.tmux-sanguo.conf |
| **消息队列** | ✅ 已创建 | ~/.claude/messages/sanguo/message.sh |
| **启动脚本** | ✅ 已创建 | start-sanguo-env.sh |
| **快速参考** | ✅ 已创建 | docs/04-quick-reference.md |
### 待启动
| 组件 | 状态 | 说明 |
|------|------|------|
| **tmux 会话** | ⚠️ 待启动 | 运行 start-sanguo-env.sh |
| **Claude Code 实例** | ⚠️ 待启动 | 在各 pane 中启动 claude |
| **ttyd Web** | ⚠️ 待启动 | ttyd -p 8088 tmux attach |
### 验证结果
- [x] SendMessage 跨实例通信 — ✅ 支持 (有限制)
- [x] CLAUDE.md 角色隔离 — ✅ 已定义
- [x] Superpowers skills 共享 — ✅ 已确认可用
- [ ] 三实例协作流程 — ⚠️ 待实际测试
### 关键发现
**SendMessage 限制**:
- 跨会话消息不携带用户权限
- 接收方拒绝中继的权限请求
- Auto 模式会阻止跨会话消息
**应对方案**:
- 使用 SendMessage 传递任务描述和结果
- 每个实例独立执行工具
- 文件消息队列作为备选方案
### 创建的文件
```
~/.tmux-sanguo.conf # tmux 配置
~/.claude/messages/sanguo/message.sh # 消息队列脚本
~/.claude/messages/sanguo/start-sanguo-env.sh # 启动脚本
~/.claude/projects/sanguo-main/.claude/CLAUDE.md # 架构师角色
~/.claude/projects/sanguo-backend/.claude/CLAUDE.md # 后端角色
~/.claude/projects/sanguo-frontend/.claude/CLAUDE.md # 前端角色
~/.claude/skills/architect-role/SKILL.md # 架构师 skill
~/.claude/skills/backend-dev/SKILL.md # 后端 skill
~/.claude/skills/frontend-dev/SKILL.md # 前端 skill
docs/04-quick-reference.md # 快速参考
```
---
**文档版本**: v0.4
**最后更新**: 2026-06-30
**作者**: Claude Dev
**审核状态**: Draft
**实施状态**: ✅ 设计和基础设施完成 - 待启动测试
### 完成清单
#### 文档
- [x] 完整设计文档 (04-design-v0.4.md)
- [x] 快速参考 (04-quick-reference.md)
- [x] 示例工作流 (05-example-workflows.md)
#### 项目结构
- [x] sanguo-main 项目目录 + CLAUDE.md
- [x] sanguo-backend 项目目录 + CLAUDE.md
- [x] sanguo-frontend 项目目录 + CLAUDE.md
#### 角色 Skills
- [x] architect-role/SKILL.md
- [x] backend-dev/SKILL.md
- [x] frontend-dev/SKILL.md
#### 配置和脚本
- [x] ~/.tmux-sanguo.conf
- [x] start-sanguo-env.sh
- [x] message.sh
- [x] test-sanguo-env.sh
#### 验证
- [x] 环境测试: 18/18 通过
- [x] SendMessage 跨实例通信验证
### 启动步骤
```bash
# 1. 测试环境
~/.claude/messages/sanguo/test-sanguo-env.sh
# 2. 启动 tmux 环境
~/.claude/messages/sanguo/start-sanguo-env.sh
# 3. 在各 pane 中启动 Claude Code
# pane 0 (architect): cd ~/.claude/projects/sanguo-main && claude
# pane 1 (backend): cd ~/.claude/projects/sanguo-backend && claude
# pane 2 (frontend): cd ~/.claude/projects/sanguo-frontend && claude
# 4. (可选) 启动 Web 访问
ttyd -p 8088 tmux attach -t sanguo_dev
```
### Git 提交历史
```
5d85c08 docs: 添加示例工作流文档
0187809 docs: 完成 v0.4 基础设施实施
0829b34 docs: 更新 v0.4 设计 - SendMessage 验证结果和实施状态
eda9930 docs: 添加 v0.4 设计文档 - 三实例方案
```