Files
sanguo_moziplus_v3/docs/05-example-workflows.md
claude_dev 7d6b82efd2 docs: 更新 Web 访问配置 - 添加认证和可写模式
- ttyd 添加基本认证 (sanguo:sanguo2024)
- 添加 -W 参数启用可写模式
- 更新安全配置说明
- 添加密码修改说明

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 08:24:08 +08:00

7.5 KiB

sanguo_moziplus_v3 v0.4 示例工作流

本文档展示如何使用三实例环境完成典型开发任务。

工作流 1: 实现用户认证功能

场景

实现一个完整的用户认证系统,包括后端 API 和前端页面。

步骤

1. 架构师 (pane 0) 接收需求

用户: "实现用户认证功能"

2. 架构师分析和规划

架构师:
- 分析需求: 用户登录、注册、密码找回
- 规划技术方案:
  * 后端: JWT 认证、/auth/login、/auth/register、/auth/refresh
  * 前端: 登录页面、注册页面、表单验证
- 拆分任务

3. 架构师指派任务

// pane 0
SendMessage({
  to: "backend",
  summary: "实现用户认证 API",
  message: `
需要实现 JWT 认证系统:
1. POST /auth/login - 用户登录
2. POST /auth/register - 用户注册
3. POST /auth/refresh - 刷新 token
4. POST /auth/logout - 用户登出
5. 中间件: JWT 验证

技术要求:
- 使用 bcrypt 密码哈希
- JWT 有效期 1 小时
- 返回标准 HTTP 状态码
- 编写单元测试

验收标准:
- 所有端点正常工作
- 测试覆盖率 > 80%
- API 文档完整
  `
})

SendMessage({
  to: "frontend",
  summary: "实现认证页面",
  message: `
需要实现用户认证页面:
1. 登录页面
2. 注册页面
3. 表单验证
4. API 调用集成
5. 错误提示

技术要求:
- 使用 shadcn/ui 组件
- 响应式设计
- 表单验证
- Loading 状态

验收标准:
- UI 符合设计规范
- 表单验证完整
- 浏览器兼容性测试通过
  `
})

4. 后端 (pane 1) 执行

后端收到任务:
1. 加载 backend-dev skill
2. 设计 API 端点
3. 实现 JWT 逻辑
4. 编写测试
5. 自测验证
6. 返回结果
// pane 1 - 后端完成
SendMessage({
  to: "main",
  summary: "后端认证 API 完成",
  message: `
已完成用户认证 API:

文件:
- src/api/auth.ts (认证端点)
- src/middleware/auth.ts (JWT 中间件)
- src/utils/jwt.ts (JWT 工具)
- src/tests/auth.test.ts (测试)

端点:
✅ POST /auth/login - 登录成功返回 JWT
✅ POST /auth/register - 注册成功返回用户信息
✅ POST /auth/refresh - 刷新 token
✅ POST /auth/logout - 清除 token

测试结果: 12/12 通过

API 文档: docs/api-auth.md
  `
})

5. 前端 (pane 2) 执行

前端收到任务:
1. 加载 frontend-dev skill
2. 设计页面组件
3. 实现表单
4. 调用后端 API
5. 浏览器测试
6. 返回结果
// pane 2 - 前端完成
SendMessage({
  to: "main",
  summary: "前端认证页面完成",
  message: `
已完成认证页面:

文件:
- src/pages/LoginPage.tsx (登录页面)
- src/pages/RegisterPage.tsx (注册页面)
- src/components/AuthForm.tsx (表单组件)
- src/hooks/useAuth.ts (认证 Hook)

功能:
✅ 登录表单 (邮箱/密码)
✅ 注册表单 (邮箱/密码/确认)
✅ 表单验证
✅ API 调用
✅ 错误提示
✅ Loading 状态

浏览器测试: Chrome, Safari, Firefox 通过

预览: 截图已保存到 docs/screenshots/auth-pages.png
  `
})

6. 架构师审查和整合

// pane 0 - 架构师
// 加载 CODE-REVIEW skill 进行审查
// 加载 test-engineer skill 验证测试
// 整合前后端代码
// 提交 Git

工作流 2: 代码审查

场景

后端提交了一个 PR,架构师需要审查代码。

步骤

1. 架构师接收 PR

// pane 0
SendMessage({
  to: "backend",
  summary: "请提供 PR 信息",
  message: `
你提交的 PR #123 需要审查。

请提供:
1. 改动的文件列表
2. 实现的功能说明
3. 测试结果
4. 已知问题
  `
})

2. 后端返回信息

// pane 1
SendMessage({
  to: "main",
  summary: "PR #123 信息",
  message: `
改动的文件:
- src/api/users.ts (新增用户查询 API)
- src/tests/users.test.ts (新增测试)

实现功能:
- GET /api/users/:id - 获取用户信息
- 支持查询参数过滤

测试结果: 8/8 通过

已知问题: 无
  `
})

3. 架构师审查

架构师:
1. 加载 CODE-REVIEW skill
2. 审查代码质量
3. 检查测试覆盖
4. 验证 API 设计
5. 提供反馈

工作流 3: Bug 修复

场景

前端发现了一个 bug,需要定位和修复。

步骤

1. 前端报告问题

// pane 2
SendMessage({
  to: "main",
  summary: "报告 bug",
  message: `
发现登录页面 bug:

现象: 登录成功后页面没有跳转

重现步骤:
1. 输入正确的邮箱和密码
2. 点击登录按钮
3. Loading 显示
4. Loading 消失后仍在登录页

环境: Chrome 126, macOS

日志显示 API 调用成功,但 redirect 没有执行
  `
})

2. 架构师分析

架构师:
1. 分析问题描述
2. 确定是前端问题
3. 指派前端修复
// pane 0
SendMessage({
  to: "frontend",
  summary: "修复登录跳转 bug",
  message: `
Bug: 登录成功后页面没有跳转

日志显示 API 调用成功,检查:
1. useAuth Hook 的逻辑
2. 跳转代码是否执行
3. react-router 配置

优先级: 高
  `
})

3. 前端修复

// pane 2
SendMessage({
  to: "main",
  summary: "Bug 已修复",
  message: `
问题原因: useAuth Hook 中 redirect 逻辑在 useEffect 之外

修复方案:
- 将 redirect 逻辑移到 useEffect 中
- 添加 loading 状态检查

测试: 登录成功后正确跳转到首页

文件: src/hooks/useAuth.ts
  `
})

工作流 4: 性能优化

场景

后端 API 响应慢,需要优化。

步骤

1. 架构师分析性能问题

架构师:
1. 分析性能数据
2. 确定瓶颈
3. 规划优化方案

2. 架构师指派优化任务

// pane 0
SendMessage({
  to: "backend",
  summary: "优化用户查询 API",
  message: `
性能问题: GET /api/users 响应时间 2.5秒

目标: 优化到 < 500ms

分析:
- 数据库查询慢 (N+1 问题)
- 缺少索引

优化方案:
1. 添加数据库索引
2. 优化查询逻辑 (使用 JOIN)
3. 添加缓存层 (Redis)

请先实现索引和查询优化,缓存后续再做。
  `
})

3. 后端实施优化

// pane 1
SendMessage({
  to: "main",
  summary: "优化完成",
  message: `
优化措施:
1. 添加 email 索引
2. 优化查询: 使用 JOIN 替代 N+1
3. 添加查询缓存

结果:
- 优化前: 2.5s
- 优化后: 180ms ✅

文件:
- migrations/add_indexes.sql
- src/api/users.ts (优化查询)
- src/cache/userCache.ts (缓存层)
  `
})

SendMessage 最佳实践

发送消息格式

SendMessage({
  to: "<main|backend|frontend>",
  summary: "<简短摘要 5-10 词>",
  message: `<详细描述,包括:
- 任务/问题说明
- 技术要求
- 验收标准
- 其他上下文`
})

接收消息处理

1. 读取消息内容
2. 理解任务要求
3. 加载相应的 skill
4. 执行任务
5. 返回结果

错误处理

如果收到不相关的任务:

SendMessage({
  to: "main",
  summary: "拒绝任务",
  message: "这不是 [后端/前端] 任务,请转给 [frontend/backend] agent"
})

常用命令

tmux 操作

# 切换 pane
Ctrl+B 0/1/2

# 在 pane 间循环
Ctrl+B o

# 分离会话
Ctrl+B d

# 重新附加
tmux attach-session -t sanguo_dev

启动 Claude Code

# 在各 pane 中
cd ~/.claude/projects/sanguo-<role>
claude

Web 访问

# 启动 Web 终端 (带认证+可写)
ttyd -c sanguo:sanguo2024 -W -p 8088 tmux attach -t sanguo_dev

# 访问 (会提示输入用户名密码)
http://YOUR_LAN_IP:8088

相关文档