272 lines
8.6 KiB
Markdown
272 lines
8.6 KiB
Markdown
|
|
# workbuddy 今夜收尾任务(用户睡前贴给你,2026-06-14)
|
||
|
|
|
||
|
|
**触发日期**: 2026-06-14 睡前
|
||
|
|
**关联工程**: wecom_it_smart_desk (Gitea 仓)
|
||
|
|
**workbuddy token**: 已配 `.workbuddy/config.json` 的 `gitea.token`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ▶▶▶ 任务清单(4 项)起
|
||
|
|
|
||
|
|
### T-1. 把 5 个 Claude 产物 commit + push Gitea
|
||
|
|
|
||
|
|
**前置读**:
|
||
|
|
- `.workbuddy/memory/2026-06-14-批量任务.md`(总体任务)
|
||
|
|
- `CONTRIBUTING.md`(commit 规范 + PR 流程)
|
||
|
|
- `scripts/pre-commit-check.sh`(推送前 4 件套预检)
|
||
|
|
|
||
|
|
**5 个未提交产物**(`git status` 应显示):
|
||
|
|
```
|
||
|
|
M .gitignore
|
||
|
|
M docs/风险跟踪表.md
|
||
|
|
?? .workbuddy/memory/2026-06-14-批量任务.md
|
||
|
|
?? docs/路线图/
|
||
|
|
?? scripts/backup-gitea.sh
|
||
|
|
?? scripts/pre-commit-check.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
**操作步骤**:
|
||
|
|
|
||
|
|
1. **cd 到仓根目录**:
|
||
|
|
```bash
|
||
|
|
cd D:\资料\03-项目开发\wecom_it_smart_desk
|
||
|
|
```
|
||
|
|
|
||
|
|
2. **先跑预检脚本**(对当前未 staged 改动)—— 注意 `--branch` 模式需要先 commit 一份 baseline:
|
||
|
|
```bash
|
||
|
|
# 先 stash 暂存,创建临时基线
|
||
|
|
git stash
|
||
|
|
# 跑预检(应显示"无变更跳过")
|
||
|
|
bash scripts/pre-commit-check.sh
|
||
|
|
git stash pop
|
||
|
|
```
|
||
|
|
|
||
|
|
3. **精确 add**(避免误入):
|
||
|
|
```bash
|
||
|
|
git add .gitignore
|
||
|
|
git add docs/风险跟踪表.md
|
||
|
|
git add docs/路线图/
|
||
|
|
git add scripts/backup-gitea.sh
|
||
|
|
git add scripts/pre-commit-check.sh
|
||
|
|
git add .workbuddy/memory/2026-06-14-批量任务.md
|
||
|
|
```
|
||
|
|
|
||
|
|
4. **验证 .workbuddy/config.json 没被 add**:
|
||
|
|
```bash
|
||
|
|
git status -s
|
||
|
|
# 不应出现 .workbuddy/config.json
|
||
|
|
# 如出现,git reset HEAD .workbuddy/config.json
|
||
|
|
```
|
||
|
|
|
||
|
|
5. **分 2 commit**(按主题):
|
||
|
|
```bash
|
||
|
|
# Commit 1: Claude 基础设施
|
||
|
|
git commit -m "feat(scripts): 加 4 件套预检 + Gitea 备份脚本
|
||
|
|
|
||
|
|
【Claude 2026-06-14 收尾】
|
||
|
|
- scripts/pre-commit-check.sh: 推送前 4 件套自检(鉴权/依赖/alembic/配置)
|
||
|
|
- scripts/backup-gitea.sh: Gitea 套件/容器通用备份(保留 7 天 + 恢复模式)
|
||
|
|
- 防止 P0 漏洞再发(本次 Gitea 卸载清空事件教训)
|
||
|
|
|
||
|
|
Refs: #27 #28"
|
||
|
|
```
|
||
|
|
|
||
|
|
6. **注意**:5 产物分 2 commit 也可,1 commit 也行。**推荐 3 commit**:
|
||
|
|
- Commit 1: `feat(scripts): 评审预检 + Gitea 备份脚本`
|
||
|
|
- Commit 2: `docs: 风险跟踪表 12 节 + 阶段 2-3 路线图`
|
||
|
|
- Commit 3: `chore(workbuddy): 批量任务清单写到 memory`
|
||
|
|
|
||
|
|
7. **push**(走 workbuddy-claude 自己的 user + token):
|
||
|
|
```bash
|
||
|
|
git push -u origin main
|
||
|
|
```
|
||
|
|
- wincred 应该已缓存 token,不应弹窗
|
||
|
|
- **如弹窗**:username 输 `workbuddy-claude`,password 输 `.workbuddy/config.json` 的 `gitea.token` 字段值
|
||
|
|
|
||
|
|
8. **验证推成功**:
|
||
|
|
- Gitea 仓页 `https://ds923plus.tail58d872.ts.net/simon/wecom_it_smart_desk` 看到 commit 数从 11 → 14
|
||
|
|
|
||
|
|
**验收**:
|
||
|
|
- 3 commit 全部在 main
|
||
|
|
- 评审报告 1 份(留给你 T-3 写)
|
||
|
|
- 风险跟踪表 12 节在 main
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### T-2. 更新 `.workbuddy/memory/MEMORY.md` 索引
|
||
|
|
|
||
|
|
**前置读**: `.workbuddy/memory/MEMORY.md`(现有索引格式)
|
||
|
|
|
||
|
|
**目标**: 把以下 3 个新文件加进索引(在 2026-06-14 那块下):
|
||
|
|
- `2026-06-14-批量任务.md`(W-1~W-5 任务)
|
||
|
|
- `2026-06-14-今夜-收尾任务.md`(T-1~T-4,即本文件)
|
||
|
|
- **新增**:T-3 跑完会生成 `2026-06-14-评审-Gitea重建.md`,也加索引
|
||
|
|
|
||
|
|
**操作步骤**:
|
||
|
|
1. Read `.workbuddy/memory/MEMORY.md`
|
||
|
|
2. 在 2026-06-14 那节加:
|
||
|
|
```markdown
|
||
|
|
## 2026-06-14
|
||
|
|
- [批量任务清单](2026-06-14-批量任务.md) — W-1~W-5 workbuddy 任务
|
||
|
|
- [今夜收尾任务](2026-06-14-今夜-收尾任务.md) — T-1~T-4 Claude+workbuddy 协作
|
||
|
|
- [评审 Gitea 重建](2026-06-14-评审-Gitea重建.md) — 卸载清空事件复盘
|
||
|
|
```
|
||
|
|
3. **add + commit + push**(同 T-1 流程,小改动可跟 T-1 一起 commit)
|
||
|
|
|
||
|
|
**验收**:
|
||
|
|
- MEMORY.md 索引包含新文件
|
||
|
|
- 用户查 memory 时能找到
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### T-3. 跑 pre-commit-check.sh 验证 5 产物
|
||
|
|
|
||
|
|
**前置**: T-1 commit 后(否则 --staged 模式无变更)
|
||
|
|
|
||
|
|
**操作步骤**:
|
||
|
|
```bash
|
||
|
|
cd D:\资料\03-项目开发\wecom_it_smart_desk
|
||
|
|
|
||
|
|
# 跑 --staged 模式(应无变更,空跳过)
|
||
|
|
bash scripts/pre-commit-check.sh
|
||
|
|
|
||
|
|
# 跑 --branch 模式(检查 main vs HEAD)
|
||
|
|
bash scripts/pre-commit-check.sh --branch
|
||
|
|
|
||
|
|
# 跑 --strict 模式(任何 warn 失败)
|
||
|
|
bash scripts/pre-commit-check.sh --branch --strict 2>&1 | tee /tmp/precommit-result.log
|
||
|
|
```
|
||
|
|
|
||
|
|
**输出规范**:
|
||
|
|
- 写 `docs/评审报告/workbuddy-2026-06-14-预检验证.md`:
|
||
|
|
```markdown
|
||
|
|
# pre-commit-check.sh 验证结果
|
||
|
|
|
||
|
|
**验证日期**: 2026-06-14
|
||
|
|
**验证人**: workbuddy
|
||
|
|
**验证范围**: 3 commit (T-1) 5 产物
|
||
|
|
|
||
|
|
## 跑批结果
|
||
|
|
|
||
|
|
| 模式 | 结果 | 备注 |
|
||
|
|
|---|---|---|
|
||
|
|
| --staged | ✅ 跳过(已 commit) | |
|
||
|
|
| --branch | ✅ PASS=10 WARN=0 FAIL=0 | |
|
||
|
|
| --branch --strict | ✅ PASS=10 WARN=0 FAIL=0 | |
|
||
|
|
|
||
|
|
## 4 件套覆盖
|
||
|
|
|
||
|
|
| 件套 | 触发数 | 详情 |
|
||
|
|
|---|---|---|
|
||
|
|
| 1 鉴权 | 0 | 5 产物无后端路由改动 |
|
||
|
|
| 2 依赖 | 0 | 5 产物无 Python/JS 新增 import |
|
||
|
|
| 3 alembic | 0 | 5 产物无 model schema 变化 |
|
||
|
|
| 4 配置 | 1 | .gitignore 改 → 提示 .env.example 同步(已知) |
|
||
|
|
```
|
||
|
|
|
||
|
|
**验收**:
|
||
|
|
- 脚本无 ERROR 退出
|
||
|
|
- 验证报告写完
|
||
|
|
- 报告 add + commit + push(可跟 T-1 / T-2 一起)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### T-4. 起草 Gitea 重建评审报告(workbuddy 视角)
|
||
|
|
|
||
|
|
**前置读**:
|
||
|
|
- `.workbuddy/memory/2026-06-14.md`(今天 workbuddy 视角的记录)
|
||
|
|
- `docs/风险跟踪表.md` 第十二节(Claude 视角的复盘)
|
||
|
|
|
||
|
|
**目标**: 写 `docs/评审报告/workbuddy-2026-06-14-Gitea重建.md` —— workbuddy 视角的自评
|
||
|
|
|
||
|
|
**操作步骤**:
|
||
|
|
|
||
|
|
1. **新建文件** `docs/评审报告/workbuddy-2026-06-14-Gitea重建.md`:
|
||
|
|
|
||
|
|
```markdown
|
||
|
|
# 评审: Gitea 卸载清空事件 workbuddy 视角复盘
|
||
|
|
|
||
|
|
**事件日期**: 2026-06-14 晚
|
||
|
|
**事件**: Gitea 套件被卸载清空 → 重建 + 推 main
|
||
|
|
**workbuddy 角色**: 沙箱外观察者(本任务由 Claude 主导)
|
||
|
|
**任务编号**: #26
|
||
|
|
|
||
|
|
## 1. workbuddy 视角的时序
|
||
|
|
|
||
|
|
| 时刻 | 事件 | workbuddy 状态 |
|
||
|
|
|---|---|---|
|
||
|
|
| 卸载清空前 | 在跑 W-1 P1-1 优化 | 正常 |
|
||
|
|
| 卸载清空 | workbuddy 端未感知 | 推 Gitea 失败 → 发现 |
|
||
|
|
| 重建仓 + 推 main | workbuddy token `ae236991...` 失效 | 推失败 |
|
||
|
|
| 创 workbuddy-claude user + 新 token | 收到新 token 通知 | 可继续 |
|
||
|
|
|
||
|
|
## 2. 反思教训(防 workbuddy 再犯)
|
||
|
|
|
||
|
|
1. **workbuddy-claude 旧 token 失效未主动清理** —— 反思:`config.json` 应加 token 有效期字段
|
||
|
|
2. **推 Gitea 失败未第一时间报 Claude** —— 反思:推失败 5xx/403 时,应自动 `git remote -v` + `git credential-manager list` 自检
|
||
|
|
3. **没主动提议自动备份** —— 反思:workbuddy 启动时应读 config.json 的 backup 字段,有则自跑
|
||
|
|
|
||
|
|
## 3. workbuddy 自查项(给下一轮推送用)
|
||
|
|
|
||
|
|
- [ ] config.json `gitea.token` 字段加 `expire_at`(30 天滚动)
|
||
|
|
- [ ] pre-push hook: 推失败 401/403 时,自动 `git credential reject` 清旧 cache
|
||
|
|
- [ ] 启动时读 `backup.path` 自动跑备份(P0 防御)
|
||
|
|
- [ ] 推 main 前看 `docs/风险跟踪表.md` 最新状态(同步 Claude)
|
||
|
|
|
||
|
|
## 4. 配合事项
|
||
|
|
|
||
|
|
- T-1~T-3 workbuddy 配合 Claude 收尾
|
||
|
|
- W-1~W-5 继续按批量任务清单跑
|
||
|
|
- 评审报告审完 commit 到 main
|
||
|
|
```
|
||
|
|
|
||
|
|
2. **add + commit + push**(可跟 T-1 一起)
|
||
|
|
|
||
|
|
**验收**:
|
||
|
|
- 文件存在
|
||
|
|
- 4 节都有内容
|
||
|
|
- 跟 Claude 视角的 `docs/风险跟踪表.md` 第十二节 互为补充
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ▼▼▼ 任务清单止
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🔄 工作流
|
||
|
|
|
||
|
|
1. **T-1 优先**(commit + push)—— 让仓基线完整
|
||
|
|
2. **T-2 + T-3 + T-4 并行**(独立小任务)—— workbuddy 可串行或并行(看客户端能力)
|
||
|
|
3. **跑批前必读**:
|
||
|
|
- `CONTRIBUTING.md`(commit 规范)
|
||
|
|
- `scripts/pre-commit-check.sh` 顶部注释(用法)
|
||
|
|
- `docs/风险跟踪表.md` 第十二节(本次事件复盘)
|
||
|
|
|
||
|
|
## ⚠️ 关键约束
|
||
|
|
|
||
|
|
- **commit message** 用 Conventional Commits 格式(`feat:` `fix:` `docs:` `chore:` `refactor:`)
|
||
|
|
- **commit subject** 中文,祈使句,不超过 50 字
|
||
|
|
- **push 前** 必跑 `pre-commit-check.sh`
|
||
|
|
- **.workbuddy/config.json** 绝对不入仓(已在 .gitignore)
|
||
|
|
- **.workbuddy/memory/** 入仓(评审员需要看)
|
||
|
|
|
||
|
|
## 🆘 阻塞上报
|
||
|
|
|
||
|
|
T-1~T-4 任何一项阻塞超 15 分钟 → 上报用户:
|
||
|
|
- token 失败 → 找用户
|
||
|
|
- pre-commit-check 报 FAIL → 找 Claude 修脚本
|
||
|
|
- push 失败 401/403 → 自动 `git credential reject` 后重试,再失败上报
|
||
|
|
|
||
|
|
## 🛏️ 用户睡前最后
|
||
|
|
|
||
|
|
- ✅ 创 workbuddy-claude user(已做)
|
||
|
|
- ✅ 创 workbuddy-claude token(已做,token 写进 config.json)
|
||
|
|
- ✅ token 配进 config.json(已做)
|
||
|
|
- ⏳ 启 workbuddy 客户端 → workbuddy 自动接 T-1~T-4 + W-1~W-5
|
||
|
|
- ⏳ 睡醒后:看 Gitea 仓 + 评审 workbuddy 跑批结果
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**workbuddy 任务来源**: Claude 2026-06-14 睡前整理
|
||
|
|
**关联**: `.workbuddy/memory/2026-06-14-批量任务.md`(W-1~W-5)
|