Repository navigation
Releases
v1.1.0 — 品牌化 + CI + 3.9/3.10 修复
品牌化、CI 与两个真实缺陷修复。
新增
CI — .github/workflows/test.yml,Python 3.9–3.13 五版本矩阵:
- 58 项测试套件
- 3.9 语法兼容检查
- 离线流水线烟测(prepare → validate --strict → render)
- PNG 降级契约:在裸 venv 里断言退出码 2、Markdown/HTML 存在、PNG 不存在、
png_status=missing-dependency
品牌 — README、SKILL.md 与报告页脚统一为「微信个人情报助手」。
合规与使用前提 — 明确非腾讯官方项目;不含解密/注入/Hook/取钥代码;数据只留本机。每条都先核实代码再写入。
README — 居中首屏、五枚徽章、示例图前置并注明可复现、快速开始移到安装之前。
修复
安装路径 — ~/.agents/skills 现在是规范安装位置,再用符号链接派发给各 Agent。新增 AGENTS_HOME 支持,依赖改为逐项跨根目录解析,所以 wechat-cli 在 ~/.claude/skills、wechat-intelligence-hub 在 ~/.codex/skills 也能各自找到。
Python 3.9 / 3.10 崩溃 — datetime.fromisoformat 只从 3.11 起接受尾部 Z(且只认大写)。bounds() 直接调用它,导致 --since 2026-10-23T00:00:00Z 在这两个版本上抛 ValueError。新增 _parse_iso() 归一化 Z/z。
这是 v1.0.0 的实质缺陷:README 声称支持 3.9+,但那两个版本上传 UTC 边界会崩。CI 第一次运行就抓到了。
Markdown 区段标记 — 从 [meta]/:::stats/:::rank 方言换成 HTML 注释 <!-- group-report:* -->,在任何 Markdown 阅读器中不可见。HTML 与 PNG 输出不变。
验证
| Python | 结果 |
|---|---|
| 3.9.25 | 58/58 |
| 3.10.19 | 58/58 |
| 3.11 / 3.12 | CI 通过 |
| 3.13.9 | 58/58 |
| 3.14 | 58/58,PNG 生成成功 |
升级
cd wechat-group-daily-report && git pull
# 符号链接安装无需重装,代码直接生效如果你之前直接链接到了 ~/.codex/skills,建议改成规范布局:
ln -sfn "$PWD" ~/.agents/skills/wechat-group-daily-report
ln -sfn ~/.agents/skills/wechat-group-daily-report ~/.claude/skills/wechat-group-daily-report
ln -sfn ~/.agents/skills/wechat-group-daily-report ~/.codex/skills/wechat-group-daily-reportv1.0.0 — 单群图文日报
首个公开版本。把一个微信群、一天或一段明确时间窗的聊天,编辑成可核查的图文日报:PNG 长图 + HTML + Markdown。
它做什么
机器摘要只会按时间罗列。日报要回答的是另外几个问题:今天真正值得读的主线是什么?谁提了问题、谁给了反例、后来有没有改口?哪条讨论能长成选题?哪些事其实在找你?
程序管事实,模型管表达:
- 程序:切窗口、清洗 XML 引用、统计发言、抽取链接、校验证据引用与版式。同一份输入渲染结果确定。
- 模型:写结论式标题、挑关键原话、给一段有判断的总结,只写
editorial.json,不碰 HTML。
关键约束
| 约束 | 实现 |
|---|---|
| 证据绑定 | 事实/选题/提醒/链接都须引用同一群的真实证据 ID,跨群或编造的 ID 被拒 |
| 时间窗 | 半开 [since, until),显式时区;定时用本地自然日而非机器日期 |
| 命名 | 默认群昵称(解析 chat_room.ext_buffer);同名多人如实报告,不猜 |
| 版式 | 模型只写 JSON;layout_check.py 复核渲染结果 |
| PNG | 缺 Playwright/Pillow/Chrome 时降级为 Markdown/HTML,png_status=missing-dependency,退出码 2 |
| 只读 | 不发送、不回复、不取密钥、不改调度、不改微信 |
安装
git clone https://github.com/kbwzy/wechat-group-daily-report.git
ln -s "$PWD/wechat-group-daily-report" ~/.claude/skills/wechat-group-daily-report实时取数需要另一个独立项目 wechat-intelligence-hub(AGPL-3.0-only,本仓库不包含其代码,仅经子进程调用)。
离线试跑
examples/ 带一份合成群聊,无需微信环境即可跑通全流程:
python3 -m unittest discover -s tests # 55 项,仅需标准库
python3 scripts/daily_report.py prepare examples/group-messages.json \
--chat "示例·独立开发者交流群" --since 2026-10-20T00:00:00+08:00 \
--until 2026-10-21T00:00:00+08:00 --name-mode display \
--owner-alias "示例读者" --out /tmp/demo
cp examples/editorial.json /tmp/demo/editorial.json
python3 scripts/daily_report.py validate --strict --out /tmp/demo
python3 scripts/daily_report.py render --out /tmp/demo --png实测环境
- Python 3.13、3.14:55/55 通过,PNG 生成成功
- Python 3.9–3.12:语法兼容,未逐版本实测
- 代码零第三方依赖;PNG 栈见
requirements.txt
已知边界
- 只覆盖本机已同步的记录。附件未读、外链正文未读、采集上限、覆盖缺口都会写进报告,不用「没读到」冒充「没有」。
- 格式校验通过 ≠ 事实已验证。每份产物都标
semantic_truth: not-verified。 - 不做跨群综合日报、私聊跟进、商机状态维护。
许可证
MIT。上游依赖 wechat-intelligence-hub 为 AGPL-3.0-only,两者是独立项目。