blender-kiln
這是一款 Claude Code 插件,能透過 Blender 將文字簡報或照片轉化為可投入生產的 3D 資產:透過程式碼重建、使用 CC0 掃描檔案進行紋理製作、根據真實物體進行色彩校正、優化為 GLB/FBX。
AI 翻譯
Turn a WeChat group's day into a verifiable illustrated report (PNG/HTML/Markdown) — evidence-bound editorial, read-only, offline-runnable examples
翻譯準備中
技能PythonGitHub @kbwzy自行安裝營運者未確認
試用過了嗎? 點一下就好,不需要登入。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
安裝型專案無需部署網域也可驗證。個人儲存庫可透過 GitHub 登入驗證,組織儲存庫可使用上方的儲存庫驗證檔案。
製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗群聊 JSON ──prepare──▶ 素材 + 证据 ID
│
Agent 语义编辑
▼
editorial.json
│
validate --strict ──▶ render
│
PNG 长图 / HTML / Markdown
三件事分开做,各管一段:程序管事实(切片、清洗、统计、抽链接、校验引用),模型管表达(标题、关键原话、判断),模板管版式(模型只写 JSON,碰不到 HTML)。
机器摘要只会按时间罗列。日报要回答的是另外几个问题:
常见做法是把聊天丢给模型直接总结,结果每次格式不同、引用对不上、改口被截断。这里用证据绑定把模型约束住:每条事实都要挂一条真实消息的 ID,跨群或凭空捏造的 ID 会被校验器拒绝。同一份输入,渲染结果确定。
程序校验能保证结构、引用和密度;它不能保证观点真实。每份产物都显式标注 semantic_truth: not-verified,不冒充已验证。
[since, until),时区显式,定时任务用本地自然日而不是机器日期。layout_check.py 复查一遍。partial,不会写成功。examples/ 里有一份合成群聊,token 全是占位,不会碰你的微信:
SKILL="$PWD"
RUN=/tmp/wechat-daily-demo && rm -rf "$RUN"
python3 "$SKILL/scripts/daily_report.py" prepare "$SKILL/examples/group-messages.json" \
--chat "示例·独立开发者交流群" \
--since 2026-10-20T00:00:00+08:00 --until 2026-10-21T00:00:00+08:00 \
--timezone Asia/Shanghai --name-mode display --owner-alias "示例读者" --out "$RUN"
cp "$SKILL/examples/editorial.json" "$RUN/editorial.json"
python3 "$SKILL/scripts/daily_report.py" validate --strict --out "$RUN"
python3 "$SKILL/scripts/daily_report.py" render --out "$RUN" --png
跑出来的结果和本文最上方那张示例日报一致——同一份合成数据、同一条命令。
这是一个 Agent Skill,同时兼容 Claude Code 和 Codex。
把技能装在 ~/.agents/skills,再用符号链接派发给各个 Agent。 真实文件只有一份,Claude Code、Codex 或其他 Agent 都通过链接指向它——升级时只需要更新一处。
# 1. 克隆到 skills 根目录之外(或任意你放仓库的地方)
git clone https://github.com/kbwzy/wechat-group-daily-report.git
# 2. 真实安装位置
mkdir -p ~/.agents/skills
ln -s "$PWD/wechat-group-daily-report" ~/.agents/skills/wechat-group-daily-report
# 3. 按需派发给各个 Agent(用哪个接哪个)
mkdir -p ~/.claude/skills
ln -s ~/.agents/skills/wechat-group-daily-report ~/.claude/skills/wechat-group-daily-report
mkdir -p ~/.codex/skills
ln -s ~/.agents/skills/wechat-group-daily-report ~/.codex/skills/wechat-group-daily-report
如果你只用一个 Agent,也可以跳过第 3 步——多数 Agent 同样会直接扫描 ~/.agents/skills。
本技能需要 wechat-cli 和 wechat-intelligence-hub。它们不必和本技能放在同一个根目录:脚本会逐个依赖地在下面这些根目录里查找,找到即用,所以把它们装在 ~/.agents/skills、而本技能装在别处也没有问题。
$AGENTS_HOME/skills → $CLAUDE_HOME/skills → $CODEX_HOME/skills
~/.agents/skills → ~/.claude/skills → ~/.codex/skills
没有环境变量时按后一行。也可以用 hub_entry(hub.sh 路径)、reader(reader.sh 路径)、hub_home(Hub 项目目录)三项配置直接指定,绕过自动查找。
| 依赖 | 版本 | 用途 | 必需 |
|---|---|---|---|
| Python | 3.9+(3.13、3.14 实测可用) | 全部脚本;用到 zoneinfo | 是 |
| wechat-intelligence-hub | v0.9.2-preview.2 或更新 | 从本地微信库取数(chat-history、members、sql) | 实时取数时必需 |
| Playwright + Pillow + 本机 Chrome | pillow>=10.0、playwright>=1.40 | PNG 长图(430 CSS 像素、3 倍分段截图拼接) | 只影响 PNG |
| Claude Code CLI | 支持 --restricted 的版本 | run_daily.py 的无人值守编辑桥接 | 只影响定时模式 |
只依赖标准库的部分不需要额外安装:prepare、validate、render 的 Markdown/HTML 输出,以及全部 58 项测试。Pillow 与 Playwright 只在 render --png 时导入,缺了不影响其他步骤。
wechat-cli 与 wechat-intelligence-hub 不在 PyPI,pip install 装不到。它们是同一位作者(Rion Wu)维护的独立项目,需要单独安装:
git clone https://github.com/Rion-Wu-tech/wechat-intelligence-hub.git
cd wechat-intelligence-hub
./scripts/install.sh --with-sqlcipher --with-html
安装后会得到 wechat-cli 与 wechat-intelligence-hub 两个 Skill。查找顺序见上方同级依赖怎么找,也可以用配置项 hub_entry / reader 手动指定。
注意:装好 ≠ 能读。完整数据库模式还需要你已经获得本机微信数据库的访问材料(key)。没有时
doctor会失败,本 Skill 会如实报错并保留素材,不会退化成通知预览。接入请参考上游的 五步首次接入工作流。
python3 -m venv .venv && . .venv/bin/activate
python3 -m unittest discover -s tests # 58 项,无需任何第三方包
pip install -r requirements.txt # 仅想做 PNG 时才需要
| Python | 测试套件 | PNG | 说明 |
|---|---|---|---|
| 3.9 | ✅ 58/58 | 用 pillow>=10.0 | |
| 3.10 | ✅ 58/58 | 用 pillow>=10.0 | |
| 3.11 / 3.12 | ✅ CI 覆盖 | 用 pillow>=10.0 | 每次提交自动跑 |
| 3.13 | ✅ 58/58 | ✅ | |
| 3.14 | ✅ 58/58 | ✅ | Pillow 13 / Playwright 1.64 验证通过 |
3.9–3.13 由 CI 在每次提交时自动验证。
PNG 依赖不装也能用:render 会照常产出 Markdown 和 HTML,只在 status.json 里写 png: missing-dependency 并以退出码 2 返回。它不会静默跳过,也不会假装成功。
在 Agent 里直接说「把这个群昨天的聊天做成图文日报」。Skill 会:
wechat-cli 的 resolve-chat 确认唯一精确群名,不接受模糊匹配或同名多选。chat-history 拉窄范围消息,同时读群成员表拿群昵称。prepare 出素材,你(或 Agent)通读 material.md 写 editorial.json。validate --strict → render --png,交三个文件加覆盖说明。复制 assets/config.example.json 到技能目录之外(默认 ~/.wechat-intelligence-hub/group-daily.json)再填群名:
python3 "$SKILL/scripts/run_daily.py" --config ~/.wechat-intelligence-hub/group-daily.json
run_daily.py 会把「取数 → prepare → 调 Claude Code 写稿 → validate → render」串起来。编辑子进程只拿到 Read,Write 两个工具,跑在 restricted 模式,不给 Shell、浏览器和 MCP,也不会传 --dangerously-skip-permissions。详见 references/scheduling.md。
安全试跑——不碰微信、不调模型:
python3 "$SKILL/scripts/run_daily.py" --config "$CONFIG" \
--input examples/group-messages.json --date 2026-10-20 --prepare-only
| 字段 | 默认 | 说明 |
|---|---|---|
chat | — | 必填,精确群名;同名多群会直接失败 |
timezone | Asia/Shanghai | 窗口与显示都用它 |
window | yesterday | yesterday / today / rolling24 |
output_root | ~/Desktop/wechat_daily | 每轮在其下新建唯一目录 |
read_limit | 20000 | 达到上限会标注「不能视为全量」 |
png | true | 关掉就只出 Markdown/HTML |
name_mode | group-nick | 改成 display 用联系人备注/昵称 |
local_only | false | true 时拒绝启动云端编辑 |
signature | 空 | 页脚署名/联系方式,只从私有配置或 WECHAT_DAILY_SIGNATURE 读 |
不存任何凭据。
| 文件 | 说明 |
|---|---|
group_daily_report.png | 长图,430 CSS 像素 × 3 倍 |
group_daily_report.html | 单文件,无外部资源,CSP 限制为 default-src 'none',浅深色主题 |
group_daily_report.md | 同版式的 Markdown,带本机证据注释 |
quality_checks.json | 本轮版式合同结果 |
status.json / delivery.json | 机器可读状态;png_status 如实反映 PNG 是否真的生成 |
material.json / material.md | 素材与证据,只在本机 |
semantic_truth: not-verified。这不是腾讯或微信的官方项目。 未获得腾讯认可、赞助或维护,也与微信团队无关。WeChat、微信等名称是各自所有者的商标,此处仅作描述性说明。
使用前请确认你在做的是处理你自己有权访问的数据:
wechat-intelligence-hub 的只读接口。取得该访问权是你与上游项目之间的事,不在本仓库范围内。你需要自行确保使用方式符合所在地法律、所在群组的约定,以及微信的服务条款。作者不对因使用本工具产生的任何后果承担责任。本软件按 MIT 许可「按原样」提供,不作任何担保。
SKILL.md 入口:执行流程与边界
references/
workflow.md 取数、编辑、验收的完整流程
editorial.md 编辑准则与正反例
contracts.md 输入/输出合同、format_version=2 字段
scheduling.md 定时桥接、私有配置、失败恢复
scripts/
daily_report.py prepare / names / validate / render
run_daily.py 定时桥接(取数 → 编辑 → 校验 → 渲染)
group_nicknames.py 群昵称 protobuf 解析与映射
report_view.py 固定 HTML 版式
layout_check.py 渲染后的版式合同复查
examples/ 可离线跑通的合成示例
tests/ 58 项单元测试
evals/ 路由触发用例与语义配置
改版式或改校验规则前请先读 tests/——版式合同、证据引用、命名口径都有对应测试。
本 Skill 只负责单群日报,取数依赖 wechat-intelligence-hub 与 wechat-cli。跨群综合日报、私聊跟进、商机状态维护不在本仓库范围内。