7.0 KiB
7.0 KiB
workbuddy 批量任务清单 — 2026-06-14 睡前启动
生成日期: 2026-06-14 生成人: Claude 启动条件:
- 用户在 Gitea 创
workbuddy-claudeuser account - 用户创
workbuddy-claude的 access token(权限repository+issue+user) - 用户把 token 配到
.workbuddy/config.json的gitea.token字段 - workbuddy 客户端启动时读这份 memory → 按顺序接任务
▶▶▶ 任务清单(5 项,按优先级)起
W-1. P1-1 优化: named volume → host bind mount
任务编号: #25
阻塞原因: 当前 docker-compose.yml 用 named volume backend-uploads,容器重建不丢但 docker-compose down -v 会全丢
目标: 改成 host bind mount 到 NAS /volume1/docker/wecom-it-desk/uploads
修复:
- 编辑
docker-compose.yml:volumes: backend-uploads: driver: local driver_opts: type: none o: bind device: /volume1/docker/wecom-it-desk/uploads scripts/deploy.sh部署时建 host 目录:sudo mkdir -p /volume1/docker/wecom-it-desk/uploads sudo chown -R 1000:1000 /volume1/docker/wecom-it-desk/uploads- 加 deploy 文档警示"别用
docker-compose down -v"
验收:
- 容器重建后上传文件不丢
df -h /volume1/docker/wecom-it-desk/uploads体积能涨
评审员: Claude
W-2. P0 二次评审 5 遗留修完
任务编号: #18 遗留
关联: docs/评审报告/workbuddy-2026-06-14-P0安全.md 11.x 节(5 项遗留)
5 项遗留:
- 浏览器 WS API 不支持 header —— 用
Sec-WebSocket-Protocol: bearer.<token>方案 - nginx access_log 没关 ——
location /ws/ { access_log off; }已修,验证部署版也有 - 类型 bug ——
ws.py某处类型断言错误 - 降级放行 ——
agents.py缺 password 时,existing_agent.password_hash已存在 → 必须 verify password,不能放行 - 缺依赖 ——
requirements.txt缺bcrypt/pyotp(已加,验证)
修复: 逐项对照评审报告修复,每项单独 commit
验收:
- 全部 5 项 commit 推 Gitea
- 评审员 Claude 二次评审通过
- 风险跟踪表 第九节 / 第十节 状态从 🟡 改 ✅
评审员: Claude
W-3. pytest 基础配置 + 跑 pre-commit-check.sh
任务编号: README 已知问题 #2
关联: scripts/pre-commit-check.sh(本次新增,C-1 任务)
修复:
backend/pytest.ini(或pyproject.toml[tool.pytest.ini_options]):[pytest] testpaths = tests python_files = test_*.py addopts = -v --tb=shortbackend/tests/conftest.py:- 异步 client fixture
- 测试 DB(用 sqlite:///:memory:)
- mock WECOM 凭据
backend/tests/test_agents.py:- 鉴权测试(mock_login 关闭 / 开启)
- password_hash 验证
backend/tests/test_messages.py:- 5 个端点鉴权测试(P0-2~6)
backend/tests/test_ws.py:- WS token 鉴权(Authorization header / subprotocol / query 三种)
scripts/pre-commit-check.sh加进scripts/deploy.sh流程(可选)
验收:
cd backend && pytest跑过- CI 跑预检脚本
- 评审员 Claude 看测试覆盖度
评审员: Claude
W-4. Dify API 集成预研(POC)
任务编号: 阶段 3 启动前置(关联 docs/路线图/阶段2-3-任务.md §3.3)
关联: docs/现有系统交接文档内容.txt + docs/ExternalSystemAdapter设计文档.md
预研目标:
- 查 Dify 工作流 API 文档(看是否需要新 app,还是共用)
- POC 三个端点:
POST /v1/chat-messages流式对话POST /v1/workflows/run工作流触发POST /v1/datasets/{id}/retrieve知识库检索
- 在
backend/app/services/dify_client.py写 Dify 客户端 backend/app/api/ai_wingman.py三个端点接 Dify 客户端- 写
docs/集成验证/Dify_POC_报告.md
验收:
- 三个端点跑通(返回 Dify 响应)
- 文档含 API 限流 / 错误降级 / 配额申请
- 评审员 Claude 看方案可行性
评审员: Claude
W-5. nginx 配置审计(全局 access_log 检查)
任务编号: 新增(M-2 风险项 衍生)
关联: docs/风险跟踪表.md 第十二节 M-2
审计目标:
- 扫描所有
nginx.conf/deploy-server/nginx.conf/*/nginx.conf - 找敏感路径(WS / token / OAuth callback)是否都
access_log off - 找未配 access_log off 但应配的路径
- 写
docs/审计报告/nginx_access_log_审计.md
修复: 缺的补 access_log off;
验收:
- 审计报告列出所有敏感路径的 access_log 状态
- 缺的已补 commit
- 评审员 Claude 抽查 3 处
评审员: Claude
▼▼▼ 任务清单止
🔄 工作流(workbuddy 启动后)
- 读这份 memory → 看 5 任务
- 按 W-1 → W-2 → W-3 → W-4 → W-5 顺序(W-3 W-4 W-5 可并行)
- 每完成一项:
- 提交 commit(走
scripts/pre-commit-check.sh) - 推 Gitea 远端
feature/xxx分支 - 通知 Claude 评审
- Claude 评审通过 → 用户合并 PR
- 提交 commit(走
- 状态同步:
docs/风险跟踪表.md更新状态.workbuddy/memory/{日期}-{主题}.md留评审记录
⚠️ 关键约束(读 README + CONTRIBUTING.md)
- 鉴权: 新增/修改端点必须有
Depends(get_current_agent)或_get_current_employee - 依赖: 新增第三方 import 必须同步
requirements.txt/package.json - alembic: model schema 变化必须生成迁移脚本
- 配置: nginx / docker / conf 改动 plan 写完必须做完
- 评审报告: 每次推送生成
docs/评审报告/workbuddy-{日期}-{主题}.md - 5 项遗留: 上一轮评审遗留未修完,不许推新功能
🔗 关联文档
- 评审主报告:
docs/评审报告/ - 风险跟踪表:
docs/风险跟踪表.md第九/十/十一/十二节 - 路线图 2-3 阶段:
docs/路线图/阶段2-3-任务.md - 推送预检脚本:
scripts/pre-commit-check.sh - 推送流程:
CONTRIBUTING.md§PR 流程
🆘 阻塞上报
workbuddy 启动后,任何一项阻塞超过 30 分钟未推进 → 上报用户:
- token 问题 → 找用户
- 凭据不全 → 找用户给 WECOM_SECRET / Dify API key
- 测试失败定位 → 找 Claude
- 评审反复打回 3 次 → 升级用户
🛏️ 用户睡前最后做的事
- Gitea Web → 站点管理 → 用户 → 创建新用户:
- 用户名:
workbuddy-claude - 邮箱: (用户填)
- 密码: (临时,首次登录改)
- 权限: 普通用户(非管理员)
- 用户名:
- 用 simon token 创 workbuddy-claude 的 access token:
- 登录 workbuddy-claude 账号 → 头像 → 设置 → 应用 → 创建
- 令牌名:
claude-push - 权限:
repository(读/写) +issue(读/写) +user(读)
- 把 workbuddy-claude token 粘给 Claude:
- Claude 写进
.workbuddy/config.json的gitea.token字段 - 同时配 Gitea Web 的 deploy key(ssh,可选)
- Claude 写进
- (可选)改
docs/风险跟踪表.md第十二节 §12.4 待办 #5 →block_admin_merge改true
完成上述 3 步 → workbuddy 客户端启动 → 自动接 5 任务