7d6b82efd2
- ttyd 添加基本认证 (sanguo:sanguo2024) - 添加 -W 参数启用可写模式 - 更新安全配置说明 - 添加密码修改说明 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
7.5 KiB
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