Install
openclaw skills install @weikion/chat-to-content把对话转文章和贴图——把当前会话里用户与智能体的真实交互过程,整理成可直接发布的自媒体总结文章(.md)或竖版分享贴图(.png/.jpg)。当用户说"总结本次对话""总结会话""转成文章""生成贴图""生成分享卡片"时使用。要求会话已有可读取的历史对话记录,否则不启动并说明原因。
openclaw skills install @weikion/chat-to-content把一次真实的人机协作过程,沉淀成两种可发布的内容资产:
.md):吸睛标题 + 2-3 个备选、开篇引入、分小节正文、重点总结、结尾互动引导,口语化、有细节、有观点。.png / .jpg):竖版信息流比例,标题醒目、要点分层、金句与结论高亮,单张或系列卡片。核心约束:只用真实对话内容。不臆造数据、不虚构情节、不泄露隐私与敏感信息。
满足以下任一条件即启动本技能:
不启动的情形:
按顺序执行,任一步不通过就停止并如实说明,不要用编造内容凑一篇稿子。
第 1 步 · 上下文自查 回看当前会话:是否存在用户提问与智能体实质回复构成的多轮交互(不是一句寒暄、不是单轮工具调用)。
第 2 步 · 记录文件核验 运行抽取脚本,确认本地会话记录可读,并拿到真实素材:
python "<SKILL_DIR>/scripts/extract_session.py" --check
python "<SKILL_DIR>/scripts/extract_session.py" --out-dir "<输出目录>/_source"
<SKILL_DIR> = 本技能所在目录(含本文件的目录),不要写死成某个绝对路径。python3(Windows 上为 python);宿主若自带托管解释器,优先用托管版本,找不到就退回系统 python。--projects-root <目录> 或环境变量 WORKBUDDY_PROJECTS 指定。--check 输出 JSON:ok=true 才继续;ok=false 时把 reason 原话转述给用户并结束。--out-dir 会把对话抽取成 transcript.md(已过滤工具调用、思维链与系统注入内容),后续写作以它为准。上下文已被压缩时,这份文件是唯一可靠素材源。第 3 步 · 素材充足性判断
读完 transcript.md 后,若只有一个话题的一句话问答(有效内容 < 300 字),告知用户「这次对话内容偏薄,建议先聊深一点再总结,或确认是否仍要生成」,等用户确认再继续。
从用户指令中解析,缺省为「两者都要」:
| 用户说法 | 模式 |
|---|---|
| 「只要文章」「只出文章」「写篇稿子就行」 | article |
| 「只要贴图」「只出图」「生成分享卡片」 | cards |
| 「都要」「文章和贴图」「顺带出几张图」 | both(默认) |
阅读 _source/transcript.md。会话很长时按「用户提问 → 关键转折 → 结论」定位,不必逐字精读工具输出。
按 references/extraction.md 的五维框架整理:
产出内部骨架(不直接给用户看),每条都要能指回原对话。指不回去的内容一律删掉。
在会话工作区下创建:
<workspace>/outputs/<YYYY-MM-DD>_会话总结_<主题slug>/
├── _source/transcript.md # 素材(前置检查时已生成)
├── <YYYY-MM-DD>_<主题slug>_article.md
├── cards/card-01.png ...
└── cards.json # 贴图数据(可复现)
YYYY-MM-DD 格式。<主题slug>:3-5 个英文小写单词、连字符分隔,取自会话主题,如 workbuddy-skill-build、ai-video-workflow。不要用中文或空格。2026-10-26_会话总结_ai-video-workflow/2026-10-26_ai-video-workflow_article.mdarticle / both 时)按 references/article.md 的结构与语感写。要点:
cards / both 时)references/cards.md 设计卡片套系(默认 5 张:封面 → 核心问题 → 关键转折金句 → 经验清单 → 结论),内容写进 cards.json。python "<SKILL_DIR>/scripts/render_cards.py" --data "cards.json" --out-dir "<输出目录>/cards" --theme coral --scale 2
cards.json 重渲,不要交付半成品。1080x1440(默认,3:4);小红书/抖音信息流用 --size 1080x1920。present_files 展示全部产物(文章 + 卡片,文章排第一)。transcript.md 里找到出处;不确定的写成「当时的判断」而非「事实证明」。<项目路径>、某客户、<密钥> 这类占位。| 现象 | 原因 | 处理 |
|---|---|---|
--check 返回 ok=false,但明明聊了很多 | 工作区目录被移动,slug 对不上;或会话不在默认位置 | 先确认 --projects-root / WORKBUDDY_PROJECTS 指向正确;再用 --list 10 找最近会话,用 --session-file 指定 |
transcript.md 里混进大段工具输出 | 素材本身含长日志 | 写作时只取结论行,不要把日志搬进文章 |
| 卡片文字被裁切 | 单卡条目过多 | 拆成两张,或压缩每条描述字数 |
| 截图脚本失败 | 本机无 Edge/Chrome 且无 playwright;或浏览器装在非标准位置 | 先设 CHROME_PATH 指向浏览器可执行文件再试;仍失败则如实报告缺依赖,请用户装其一。不要用文生图模型顶替(文字会糊) |
| 输出文件名乱码 | 命名未用 slug | 严守 Step 3 命名规范 |
references/extraction.md — 五维提炼框架、脱敏规则、真实性校验清单references/article.md — 文章结构模板、标题公式、语感要点、示例段落references/cards.md — 贴图排版规范、卡片类型与字段、主题色板、套系设计scripts/extract_session.py — 会话记录定位与抽取(--check / --out-dir / --list)scripts/render_cards.py — 卡片 JSON → PNG/JPG 渲染(Edge/Chrome headless 或 playwright)assets/card_template.html — 卡片版式模板(CSS 变量控制主题,内置溢出自动缩放)