Files
openclaw-config/backups/tools-md-migration/resume-2c364ad1a9d513a2178c6c31129695d01c4f66a4608da29b1a8213cd47e9fd66.md
T

7.1 KiB
Raw Blame History

TOOLS.md - 本地环境笔记

技能定义工具怎么用;本文件记录你专属的环境配置(邮箱、脚本、路径等)。

周报邮件配置(IMAP 存草稿)

  • 协议IMAP over SSL
  • 服务器imap.mxhichina.com:993
  • 账号yangxuan@witsoft.cn
  • 密码:存于 /home/yangxuan/.openclaw/.env(键 WITSOFT_IMAP_PASSWORD
  • 草稿箱文件夹"&g0l6Pw-"IMAP 编码名)
  • 用途:周报脚本只把邮件存入草稿箱,不真正发送;用户需到钉钉邮箱草稿箱确认后手动发送

周报脚本

  • 路径/home/yangxuan/.openclaw/workspace-resume/send_weekly_report.py
  • 功能send_to_drafts(..., archive=True) 默认归档):
    • 存入钉邮草稿箱(用于发送)
    • 自动归档 Markdownweekly-reports/YYYY/YYYY-Www-周报.md(长期保存,archive_report() 完成)
    • 同步到 MySQL resume 库sync_to_mysql(),月度/年度总结数据源;--no-mysql 跳过)
    • 脚本本身不写 SQLite;如需 SQLite 入库,用 sync_reports_db.pyimport_md_to_db.py 手动同步
  • 函数send_to_drafts(plain_body, html_body, date_range, project="G5", archive=True)
  • 读取 .env:脚本自动从 .env 读取账号密码,接口函数入参无需传密码
  • 收件人:刘强 liuqiang@witsoft.cn(主送)
  • 抄送chenm@witsoft.cn, zengli@witsoft.cn, yuanq@witsoft.cn
  • 命令行用法
    python3 send_weekly_report.py \
      --project G5 \
      --plain "项目名称:..." \
      --html "<p>...</p>" \
      --date-range "2026-08-25 ~ 2026-08-29"
    

周报汇总工具

  • 路径/home/yangxuan/.openclaw/workspace-resume/weekly-reports/summarize_reports.py
  • 用途:从归档的周报中提取指定时间范围的工作内容,用于月度/年度考核
  • 用法
    cd weekly-reports
    
    # 按月汇总
    python3 summarize_reports.py --month 2026-07
    
    # 按年汇总
    python3 summarize_reports.py --year 2026
    
    # 自定义范围
    python3 summarize_reports.py --range 2026-07-01 2026-09-30
    
  • 输出:生成 summary_YYYYMMDD_HHMMSS.md 汇总报告

周报数据库(混合方案)

  • 数据库weekly-reports/weekly_reports.dbSQLite
  • 同步脚本weekly-reports/sync_reports_db.py
  • 用途:存储周报元数据,支持快速查询和统计
  • 用法
    cd weekly-reports
    
    # 同步所有周报
    python3 sync_reports_db.py --all
    
    # 查看统计信息
    python3 sync_reports_db.py --stats
    
    # SQL 查询
    sqlite3 weekly_reports.db "SELECT * FROM weekly_reports WHERE year = 2026;"
    
  • 表结构
    • weekly_reports - 周报元数据(年份、周数、项目、主要任务等)
    • weekly_report_daily - 每日工作明细
    • weekly_report_problems - 问题记录
  • 备份:数据库文件随工作空间一起备份,或导出为 SQL

周报归档目录

  • 位置/home/yangxuan/.openclaw/workspace-resume/weekly-reports/
  • 结构
    • 2025-XX/ - 2025 年历史周报(旧格式 .txt)
    • 2026/ - 2026 年起周报(新格式 .md,按周归档)
    • README.md - 归档说明
    • 使用指南.md - 详细教程
    • 快速参考.md - 快速参考卡片
    • 混合方案指南.md - 混合方案说明
  • 命名格式YYYY-Www-周报.md(如 2026-W31-周报.md

MySQL 周报数据中枢(2026-08-27 建立)

方案 ASQLite 做本地归档,MySQL resume 库做统一数据中枢(供月度/年度总结、OKR 分析)。

  • MySQL 连接127.0.0.1:3306,用户 root,库 resume,密码存 .envMYSQL_PWD
  • 三张周报表(在 resume 库):
    • weekly_reports — 主表(year、week_number、project、start_date/end_date、main_task、has_problems
    • weekly_report_daily — 每日明细(report_id、day_of_week、work_date、work_items
    • weekly_report_problems — 问题记录(report_id、problem_description、status
  • 写入入口
    • send_to_drafts() 默认同步(sync_to_mysql),--no-mysql 跳过
    • 迁移补写:weekly-reports/migrate_to_mysql.pySQLite → MySQL 全量,--dry-run 预览)
  • 月度/年度总结查询示例
    -- 月度
    SELECT * FROM resume.weekly_reports WHERE start_date BETWEEN '2026-07-01' AND '2026-07-31';
    -- 年度
    SELECT week_number, main_task FROM resume.weekly_reports WHERE year=2026 ORDER BY week_number;
    
  • 注意:周报表在业务库 resume 中,勿与简历业务表(resumes、company_* 等)混用;二者用途不同

周报邮件 eml 解析归档工具(2026-08-27 添加)

用于从下载的钉邮周报 eml 文件批量补全归档缺失周报。

  • eml 所在目录/home/yangxuan/.openclaw/media/inbound/(附件上传后自动落盘)
  • 解析脚本weekly-reports/parse_eml_to_md.py —— 读取 inbound 下所有 .eml,解码 base64 正文,生成标准格式 2026/2026-Www-周报.md
  • 入库脚本weekly-reports/import_md_to_db.py —— 读生成的 Markdown 重建 SQLite 数据(主表+每日明细+问题),自动覆盖旧占位记录
  • 用法
    cd weekly-reports
    python3 parse_eml_to_md.py   # eml → Markdown
    python3 import_md_to_db.py   # Markdown → SQLite
    
  • 解析逻辑要点
    • 邮件为 multipart,取 text/plain 部分 base64 解码
    • 日期行支持 周一(2026-06-08/周一(06-08/带 📅 emoji 前缀
    • 列表项 * 与文字可能被拆两行,已处理
    • 问题区仅在「存在问题」标题后提取,无/暂无 不算问题;下周计划 等小标题退出问题区
    • 项目名据内容自动判 G5/G6
  • 注意:脚本会全量重建 2026 年数据库,覆盖旧占位记录,别在有未归档数据时误跑

OKR 绩效归档工具(2026-08-27 添加)

用于将研究院-维云智造 OKR 绩效 Excel(杨轩)解析归档到 MySQL resume 库。

  • 脚本okr/parse_okr_to_mysql.py
  • Excel 位置/home/yangxuan/.openclaw/media/inbound/*OKR*.xlsx(或命令行 --file 指定路径)
  • 用法
    cd okr
    python3 parse_okr_to_mysql.py --month 202601          # 归档指定月
    python3 parse_okr_to_mysql.py --file <xlsx> --dry-run  # 指定文件+预览不写入
    
  • MySQL resume 库):okr_monthly_records(主)+ okr_objectives(目标明细)
  • 支持新旧两种模板(自动识别):
    • 旧模板(202601 等):多 sheet,每个 sheet 一个考核月;表头行4,目标行5起 6 项,月度评价在 J12/B12
    • 新模板(8月起):单 sheet OKR考核;表头行5-6,目标行8起(跳过行7示例)5 项,B序号/C任务/D关键结果/E完成/G评分/I权重/J得分;人员信息在 B3;跨月周期取考核期末(如 7月27日-8月27日→202608);月度评价字段上级可能未填(NULL)
  • Excel 结构(旧模板):一个文件多 sheet202511/202512/202601/...),每个 sheet 一个考核月## 技能

技能

  • 周报技能skills/weekly-report-g5/SKILL.md