auto: sync OpenClaw config 2026-08-27 11:17

This commit is contained in:
2026-08-27 11:17:10 +08:00
parent 0269b99815
commit 7a5ca9f1a7
94 changed files with 4497 additions and 2088 deletions
+92
View File
@@ -0,0 +1,92 @@
# 2026-08-27
## 6-7月周报缺失补全(eml 解析归档)
### 背景
用户发现 6-7 月周报记录缺失(2026 目录中 W23-W26 是占位/示例内容,W29-W31 部分旧格式)。用户从钉邮下载了周报邮件 eml 文件补全。
### 完成的工作
1. **定位 eml**:附件上传后自动落盘在 `/home/yangxuan/.openclaw/media/inbound/*.eml`,共 12 封(含 W23 那封)
2. **编写解析工具**
- `weekly-reports/parse_eml_to_md.py`:解码 multipart 邮件的 text/plain base64 正文 → 生成标准格式 `2026/2026-Www-周报.md`
- `weekly-reports/import_md_to_db.py`:读 Markdown → 全量重建 SQLite(主表+每日明细+问题),覆盖旧占位
3. **归档结果**:12 份周报全部生成并入库,归档文件与数据库一一对应(校验 ✅)
### 归档的周报(2026
- **6 月**W23(极简app) W24(库存缺陷修复) W25(主数据) W26(库存需求) W27(版本发布支撑)
- **7 月**W28(消息通知功能) W29(库存出库缺陷修复) W30(主数据页面) W31(G6 委外发料)
- **8 月**W32(G6 工程配置) W33(销售管理) W34(G6 销售采购)
### 关键经验 / 坑
- eml 列表项 `*` 与文字常被拆成**两行**,需整行归入当日明细
- 日期行有 `周一(2026-06-08`(带年)和 `周一(06-08`(不带年)两种,还有 📅 emoji 前缀
- 「存在问题」区:`无/暂无` 不算问题;`下周计划` 等小标题需退出问题区,但正文字段如「本周部分...」不能误判(正则要收紧)
- 项目名据内容自动判 G5/G6,标题随之动态
- 数据库有历史**孤儿问题记录**(report_id 无对应主表),需清理
- 旧格式 `2026-W29.md` 与标准 `2026-W29-周报.md` 重复,待用户确认是否清理
### 待办
- [x]`2026-W29.md` 去留(同 W29-周报 内容重复),已移入回收站
- [x] 清理 `media/inbound` 下已处理的 12 封周报 eml,已移入回收站
- [x] `eml-archive/` 目录:核实全部 50 份历史周报在 weekly-reports 均有副本(零缺失),属迁移后遗留冗余,已移入回收站
### 技能文档更新 & 归档链路盘点(10:44
- **更新 `skills/weekly-report/SKILL.md`**:补全第 5 步「自动归档」——说明 `send_to_drafts()` 默认 `archive=True`,存草稿箱后自动归档 Markdown 到 `weekly-reports/YYYY/YYYY-Www-周报.md`;但脚本本身**不写 SQLite**,入库需手动 `sync_reports_db.py` / `import_md_to_db.py`;命令行 `--no-archive` 可跳过;原「最后通知」改序号为 6
- **修正 TOOLS.md & MEMORY.md 不准确描述**:原写 `send_weekly_report.py` 会「同步元数据到 db」——实际脚本不写库,已改为如实说明
### 归档操作全景(已盘点)
1. **`send_weekly_report.py`**(生成周报时)→ `archive_report()` 只写 md,不入库
2. **`parse_eml_to_md.py` + `import_md_to_db.py`**(本次新加)→ eml→md→db 全链
3. **`sync_reports_db.py`** / `sync_reports_to_db.py`(备用)→ md→db 同步
4. **`migrate_legacy_reports.py`** → 旧 txt→md 迁移
5. **cron「周五周报发送检查」** → 只查草稿箱,不归档
- 结论:归档链路完整,但 **send_weekly_report.py 生成周报后不会自动入库数据库**,需手动 sync
### MySQL 周报数据中枢(方案 A)建立(10:45-10:55
- **背景**:用户备有本地 MySQL `resume` 库(简历业务库),问为何用 SQLite。确认方案 A:SQLite 做本地归档,MySQL 做统一数据中枢(月度/年度/OKR 取数)
- **在 resume 库建 3 张周报表**weekly_reports(主)、weekly_report_daily(明细)、weekly_report_problems(问题),外键 report_id 级联
- **撰写 `weekly-reports/migrate_to_mysql.py`**SQLite → MySQL 全量迁移(--dry-run 预览)
- **迁移 12 份核心周报**2026-W23~W34G5×9+G6×3),明细 60 条、问题 1 条,**SQLite↔MySQL 字节级一致(HEX 对比 0 不一致)**
- **send_weekly_report.py 加 MySQL 同步**:新增 `sync_to_mysql()`/`_parse_plain_for_db()``send_to_drafts()` 默认 sync_mysql=True,命令行 `--no-mysql` 跳过;已用测试数据验证写入正常后清理
- **文档更新**SKILL.md(自动归档章节加 MySQL 同步)、TOOLS.md(新增 MySQL 中枢小节)、MEMORY.md(新增方案 A 章节)
- **用户决策**:只迁高质量核心数据(39 份叙述式 txt 不迁);OKR 后续再处理
### OKR 1月绩效归档(11:00
- 用户提供 `研究院-维云智造G5-1月OKR-杨轩.xlsx`,要求解析归档 202601(方案 A:入库 MySQL resume
- 在 resume 库建 2 张 OKR 表:`okr_monthly_records`(主)+ `okr_objectives`(目标明细外键级联)
- 撰写 `okr/parse_okr_to_mysql.py`(读 Excel sheet → 写 MySQL--month/--dry-run
- **已归档 202601 杨轩**:6 项目标、月度评价 7.0、权重 0.15/0.2/0.15/0.1/0.2/0.2
- Excel 特点:一文件多 sheet202511/202512/202601/实施总监/Sheet1),实为 3 个月数据;用户只要 202601
- 文档:MEMORY.md、TOOLS.md 已更新
### OKR 8月新模板归档(11:01
- 用户提供 `研究院-产品开发部开发组-8月OKR-杨轩.xlsx`,提示“8月换了模版”
- **新模板差异**:单 sheet `OKR考核`(旧模板多 sheet);表头行5-6(旧行4);目标行8起跳过示例行7,5 项(旧 6 项行5-10);列位变(旧E/KR→新D/KR,旧F/完成→新E/完成,评分新在G);人员信息在 B3(旧B2);跨月周期“7月27日-8月27日”取考核期末→202608
- **扩展 parse_okr_to_mysql.py**:新增 detect_template()/parse_sheet_new()/parse_sheet_old(),自动识别新旧模板
- **已归档 202608 杨轩**5 项目标(权重 0.5/0.25/0.1/0.1/0.05,评分均7),月度评价字段上级未填→NULL(I13 的 1 是“月度工作补充”得分非月度评价,已修正不误取)
- 与 202601 并存于 okr_monthly_recordsid 1、2
- 文档:TOOLS.md、MEMORY.md 已更新
### OKR 2-7月批量归档(11:04
- 用户提供 `研究院-维云智造G5-7月OKR-杨轩.xlsx`(旧模板,含多个考核月 sheet),要求归档 2-7 月
- **扩展 parse_okr_to_mysql.py**:重构为 process_sheet() 批量模式,支持 `--month 202602-202607`(范围)、逗号分隔、单个月份
- **已归档 202602~202607**:每月 6 项目标、月度评价均 7.0
- 至此 MySQL 里 OKR 完整:202601~202608 共 8 个月、47 项目标
### 上半年自我诊断分析(11:06-11:08,仅对话未保存)
- 用户要求“先分析汇总上半年工作,防止年底才暴露问题”,输出自我诊断问题清单 + 工作重心分布,打印到对话、不保存
- **工作重心演进**:1-3月主数据/经销存/销售 → 4月库存爆发(app扫码入库28项) → 5月OpenAPI+大规模重构(740行→50行) → 6月库存预警/MRP/物料转换
- **要点发现**
- 🔴 目标3(质量bug)1-6月每月同一模板话术,无量化 → 质量无法证明
- 🔴 3-6月每月加班8次(2月5次),无产出关联说明
- 🟡 1-2月“未产生概要设计”,3月起才留方案文档
- 🟡 上半年大量字段/打印/导出等优化杂活,新功能占比偏低
- 🟡 6月密集历史技术债修复(MRP预留/汇率/空指针),存量债未系统性治理
- ✅ 亮点:架构重构能力、跨模块广度、复杂业务扎实
- **已给 4 条行动建议**:数字化记录质量/加班/缺陷、补量化证据、评估杂活分担、推动技术债整改清单
### 清理说明(回收站)
- 无系统 trash 命令,改用 mv 移到 `~/.local/share/Trash/files/`(可恢复)
- 移入对象:12 封周报 eml + `2026-W29.md` + `eml-archive/` 目录,共 14 个
- inbound 内其他非周报文件(账单/证明/PDF/PBS 文档等)保留未动
- 数据库 12 份周报完整,未受影响