热点选题 · 关键词蒸馏成稿

SKILL内容创作
内容创作 未标注权限 许可证不明确
安装这个技能

文章内容创作 skill。两条选题入口、同一条成稿生产线:① 网络路线——搜索微博/知乎/小红书/抖音当下热榜,列 10 条热门话题供挑选,都不感兴趣时按用户指定的方向重搜 10 条;② 本地资料库路线——递归读取指定文件夹(含子文件夹)的文档,抽取并蒸馏关键词,按核心词(品牌/产品/行业)、扩展词(长尾/场景)、问题词、对比词、意图词五类去重归并,输出「关键词蒸馏表」与「关键词优先级排产表」(Excel + Markdown),并生成可直接发布的话题标题。选定话题后回溯到提炼它的原始资料或网络来源,按公众号/小红书/知乎/抖音图文规则写出可发布文章,为指定段落配图(本地素材或 AI 生成)并自动排版。当用户要写文章、写公众号/小红书/知乎稿、找热门话题、追热点写内容、从文档里提取关键词、做关键词蒸馏与排产、生成选题计划时使用。

一句话选型结论

按资料字段整理

热点选题 · 关键词蒸馏成稿是内容创作类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类内容创作 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_baa93ddc/zmx-keyword-distillation
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

内容创作
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_baa93ddc仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验2026-11-06上游最后核验时间 · 数据更新 2026-11-06
正文体量28.2 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写文章与脚本

按主题产出初稿与分镜脚本。

改稿与润色

把草稿改顺、统一语气。

多平台文案改写

同一内容按平台改成长短不同的版本。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在内容创作场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
热点选题 · 关键词蒸馏成稿当前 未标注权限 未标注 未标注 未标注 有
AI 视频生成 调用外部服务 GitHub 仓库 431.3 万 Codex、Claude、Cursor 有
视频帧 联网访问 ClawHub 市场 262.1 万 OpenClaw 有
Markdown 转换器 写入文件 ClawHub 市场 135.3 万 OpenClaw 有
哔哩哔哩全合一 接触敏感数据 ClawHub 市场 64.1 万 OpenClaw 有
Remotion video toolkit 命令行 浏览器控制 ClawHub 市场 63.9 万 OpenClaw 有

SKILL.md 全文

28.2 KB
模型实际读到的说明书原文,来自技能仓库

文章内容创作 · 热点与本地资料双选题

这是一个内容创作 skill:话题可以来自网络热榜,也可以来自本地资料库,但终点都是「一篇能直接发布的文章」。

  • 工作流 H(网络选题):热榜 → 10 条候选 → 选定 → 写作简报 → 成稿
  • 工作流 A(本地选题):资料 → 关键词蒸馏 → 排产表 → 话题标题 → 成稿
  • 工作流 B(成稿生产线):选话题 → 回溯资料 → 定平台 → 成稿 → 配图 → 排版

何时使用

  • 用户说「写篇文章」「写篇公众号 / 小红书 / 知乎」「帮我出个稿」
  • 用户说「找点热门话题」「最近有什么热点可以写」「追个热点」
  • 用户给一个文件夹或一批资料,说「提关键词」「找关键词」「关键词蒸馏」,随后要成稿
  • 用户要「关键词排产」「选题计划」「内容日历」「按优先级安排产出顺序」
  • 用户要把品牌资料 / 产品手册 / 客服问答 / 行业报告转成内容矩阵
  • 用户给出行业或品牌,要求「先做核心词,再补长尾和场景」
  • 用户从话题表里挑了一个话题,说「就写这个」「发公众号」「配个图」「排版好」

能力边界

  • 只读源文档,绝不修改、移动、删除用户文件。
  • 工作流 A 不联网取搜索量,热度用「语料词频 × 文档覆盖度」代理,结论中要说明这一点,不要编造百度指数/小红书笔记数。
  • 工作流 H 会联网抓热榜。热度、排名必须来自实际抓到的页面;抓不到具体数字就留空,绝不估算或套用「阅读量 1.2 亿」这种没看到原文的说法。
  • 网络来源必须带 URL。没有 URL 的来源标「未核验」,成稿里不得把它当作唯一依据。
  • 扫描版 PDF(无文本层)、旧版 .doc/.ppt/.xls 解析不出内容,遇到要如实报出文件名与原因,不要静默跳过。
  • 不做竞品数据抓取;对比词只从语料里识别,缺竞品时提示用户补充。
  • 成稿不编事实:价格、规格、占比、销量等数字只能来自 brief.json 的 facts,gaps 里的问点必须标「待确认」或回头问用户。
  • 配图不做虚假产品图:AI 只生成氛围图/场景图,实物包装必须用真实素材。

第 0 步 · 先问话题从哪来(每次调用都问)

动手前先问一句,不要默认走本地资料:

> 这次的话题,想从网络上抓热门,还是从你手上的资料里提取?

用 AskUserQuestion 给两个选项:

选项 说明
网络热门话题 我搜微博/知乎/小红书/抖音当下热榜,列 10 条给你挑
本地资料库 把你手上的文档跑一遍关键词蒸馏,按排产表出话题

路由:

用户回答 走哪条
网络热门话题 工作流 H(H1 → 用户挑选 → H3 → B3 起)
本地资料库 工作流 A → B1
说不清 / 「你看着办」 追问一句「有没有已经想写的方向?」有方向走 H2 定向搜;完全没方向才走 A

已经带着明确选题来的用户(「就写 XX」),不要多问这一层,直接进 B2/B3——第 0 步是给「不知道写什么」的人用的。

用户开口就点明路线的(「把这个文件夹做关键词蒸馏」「帮我追个热点」),也不重复问,说一句「按你选的本地/网络路线走」即可。只有没说清的时候,这一步必须问,不许默认。

运行环境

脚本:scripts/kw_pipeline.py(本 skill 目录下)。

子命令 作用
hot 归一化网络热榜条目:去重、排序、编号 H01–H10
webbrief 把网络调研证据整理成与 trace 同构的 brief.json
extract 递归解析文件夹 → corpus.json
mine 分词统计 + 句式挖掘 + 聚类 → candidates.json
peek 紧凑打印候选词(模型审阅用,避免整份 JSON 进上下文)
apply 把蒸馏判断合并回候选 → distilled.json
build 生成 xlsx 双表 + markdown 预览
topics 打印可选话题表(T01…),供用户挑选
trace 话题 → 原始资料:命中文件、可引用证据、硬事实、证据缺口 → brief.json
sections 文章切成 P01… 段落,标出建议配图位 → sections.json
imageplan 生成配图计划:锚点、图注、AI 提示词/本地图分配 → plan.json
media 按平台规格裁切压缩(3:4、1080 宽、体积控制)
render 按平台规则排版:公众号 HTML(内联样式)/小红书·知乎·抖音 md

候选词有两条来源:分词通道(词与名词短语,产出核心词/扩展词/意图词)和句式通道(整句疑问句与对比句,产出问题词/对比词)。后者不能省——分词在动词处断句,永远切不出「每日坚果孕妇能吃吗」,而这正是 AI 搜索最常引用的形态。

解释器:先试 python,用 python -c "import openpyxl" 验证;不可用则用
C:/Users/admin/.workbuddy/binaries/python/versions/3.13.12/python.exe。

依赖:openpyxl 必需;jieba、python-docx、pypdf、python-pptx 强烈建议(缺 jieba 会自动降级为字符 n-gram,词表噪音明显变多);Pillow 用于配图裁切(缺了会降级为原图复制,不裁切)。缺哪个装哪个:

<PY> -m pip install openpyxl jieba python-docx pypdf python-pptx pillow

工作流 H · 网络热门话题

三个关卡:抓榜 → 用户挑 → 接成稿。抓榜用 WebSearch,后面全靠脚本收敛。

H1 · 抓一轮热榜,列前 10 条

不带领域先抓一轮。至少搜 4 次,覆盖不同平台和不同问法,别只搜一次就凑数:

  • 微博热搜 今天/微博 热搜榜 <当前年月>
  • 知乎热榜 今天
  • 小红书 热门话题 <行业词>
  • 抖音 热点榜 今天
  • 垂类问法:<行业词> 最近 讨论 热搜(例:零食 坚果 送礼 最近 讨论)

把结果整理成 hot_raw.json(字段见 references/hot-topic-sources.md),每条必须写 2–4 个 terms——热榜标题是整句,后面检索资料时靠 terms 才能命中:

{"source": "微博热搜 / 知乎热榜 / 小红书 综合", "query": "零食 坚果 送礼 热搜",
 "items": [
   {"rank": 3, "title": "每日坚果到底是不是智商税", "platform": "知乎", "heat": "热榜第 3 位,回答 1200+",
    "angle": "拆配料表和单价", "terms": ["每日坚果", "智商税", "性价比"],
    "questions": "配料表怎么看;单价多少合理;和散装比贵在哪", "url": "https://www.zhihu.com/hot"}
 ]}
<PY> <SKILL>/scripts/kw_pipeline.py hot --in hot_raw.json --out "<工作目录>/.kw/hot.json"

脚本会去掉重复同题(「每日坚果是不是智商税」和「每日坚果到底是不是智商税」会合成一条)、按 rank 排序、编号 H01–H10,打印成表格。

把这张表贴给用户,问选哪条。贴表格,不要贴 JSON;AskUserQuestion 一次只放得下 4 个选项,所以用文本给 10 条 + 一句「回复编号就行」。

数量不足 10 条会告警,此时补搜一轮再跑,不要拿 6 条硬凑。

H2 · 用户都不感兴趣 → 问方向,再搜 10 条

不要重贴同一批。先问方向:

> 这批里没有合适的?那你更想写哪个方向?

给 4 个按业务推的选项(例:产品科普 / 选购避坑 / 价格与促销 / 行业观察 / 招商加盟),允许用户自己填。

拿到领域词后带领域重搜一轮(query 里同时放领域词和平台名,例如「咖啡 加盟 热搜」「控糖 零食 小红书 热门」),结果写成 hot_raw2.json:

<PY> <SKILL>/scripts/kw_pipeline.py hot --in hot_raw2.json --tag 咖啡 --out "<工作目录>/.kw/hot2.json"
  • --tag 只是过滤,不解决「搜不到」:提示 0 命中时说明这一轮没搜到该领域的榜,换 query 重搜,不要把上一轮的表当结果交差。
  • 最多重搜 3 轮。仍没有就直说「这个方向近一周没有明显热点」,给两条出路:转本地资料库(工作流 A),或直接按方向自拟一个话题走 trace --free。

H3 · 接成稿

选定 H03 后,先把这条热点相关的外部原文整理成 research.json(结构见 references/hot-topic-sources.md 第七节),再按「有没有本地资料」分两条:

有本地资料库(首选):热点 + 自有素材,观点有据、产品能落地

# 1) 先在本地资料里找证据
<PY> <SKILL>/scripts/kw_pipeline.py trace --seed "<工作目录>/.kw/hot.json" --pick H03 \
  --corpus "<工作目录>/.kw/corpus.json" --out "<工作目录>/.kw/H03.local.json"

# 2) 再把这一轮网络检索的原文并进来(证据缺口按两边一起判)
<PY> <SKILL>/scripts/kw_pipeline.py webbrief --research research.json \
  --merge "<工作目录>/.kw/H03.local.json" --out "<工作目录>/.kw/H03.brief.json"

--seed 会自动当作表外话题处理,用条目里的 terms 检索,questions 用来查证据缺口。只跑前一条命令也能用,但热点常涉及本地资料没有的外部数据(行业均价、政策、竞品动向),补上网络证据才不容易写空。

没有本地资料:只要网络证据

<PY> <SKILL>/scripts/kw_pipeline.py webbrief --research research.json \
  --out "<工作目录>/.kw/H03.brief.json"

research.json 要求:每条 sources 至少 2 段原文(各 ≥10 字)+ URL;facts 只放带数字的句子。短句、无 URL、无原文的来源会被跳过或标「未核验」,并在输出里点名——这是脚本在替你守住「不编事实」,不要为了好看去补 URL。

两条路都产出同构的 brief.json,之后接 B3 · 问平台和篇幅,与本地路线完全一致。

热点的额外要求(写稿时执行):

  • 标题沿用热榜原话的问法(「到底是不是智商税」),别改成四平八稳的百科标题——用户就是照那句话搜的
  • 热点有保鲜期,brief.json 里 meta.generated_at 超过 3 天就别再发,重新抓一轮
  • 不要硬贴品牌。热点与产品无关时,正文可以不提产品,只在结尾给一句相关建议

工作流 A · 关键词蒸馏与排产

A0 · 确认输入

必须明确三件事,缺一件就问(一次问完,别挤牙膏):

  1. 源文件夹绝对路径。
  2. 业务身份:语料是自有品牌、竞品资料,还是纯行业材料?——决定哪些词算「品牌词」。
  3. 输出位置:默认放在源文件夹的同级,<源目录名>_关键词报告.xlsx。

路径不明确时先 ls/Glob 看目录内容再问,不要空手追问。

中间产物统一放 <输出目录>/.kw/,不要污染源目录。

A1 · 抽取文本

<PY> <SKILL>/scripts/kw_pipeline.py extract --src "<源目录>" --out "<工作目录>/.kw/corpus.json"

读返回值:
- 解析成功文件数 / 总文件数。成功率 < 60% 就停下来,把跳过清单和原因报给用户,让其补齐或另存格式,不要带着残缺语料往下跑。
- 总字符数 < 5000 说明语料太薄,关键词表会是噪声,直接告知用户。

A2 · 挖候选词

先加白名单再跑,避免品牌名被切碎:

&lt;PY&gt; &lt;SKILL&gt;/scripts/kw_pipeline.py mine \
  --corpus &quot;&lt;工作目录&gt;/.kw/corpus.json&quot; \
  --out &quot;&lt;工作目录&gt;/.kw/candidates.json&quot; \
  --extra-words &lt;品牌词&gt; &lt;产品词&gt; &lt;竞品词&gt;

参数:--min-freq(默认 2,语料小时设 1)、--top(默认 400)、--dup-ratio(默认 0.86)。

跑完 peek --stats 看类型分布与簇数,超过 200 个簇时以 --top 150 重跑,只蒸馏头部(长尾边际价值递减,且人工判断质量会滑坡)。

A3 · 蒸馏(核心步骤,禁止跳过)

先读 references/keyword-taxonomy.md,它是分类与去重的唯一判据。

分批审阅候选,每批 60–80 条:

&lt;PY&gt; &lt;SKILL&gt;/scripts/kw_pipeline.py peek --candidates &quot;&lt;工作目录&gt;/.kw/candidates.json&quot; --limit 80 --offset 0
&lt;PY&gt; &lt;SKILL&gt;/scripts/kw_pipeline.py peek --candidates &quot;&lt;工作目录&gt;/.kw/candidates.json&quot; --limit 80 --offset 80

逐条判断,写成 decisions.json。只写判断,不要抄词频/得分/变体——那些由 apply 从 candidates 自动回填,手抄必错。id 和 keyword 二选一定位:知道 id 就写 id,只记得词面就写 keyword(apply 会连变体一起匹配;匹配不到的按人工补充处理,频次记 0)。

{
  &quot;title&quot;: &quot;&lt;品牌/主题&gt; 关键词蒸馏与内容排产报告&quot;,
  &quot;decisions&quot;: [
    {
      &quot;id&quot;: &quot;C0001&quot;, &quot;keep&quot;: true, &quot;keyword&quot;: &quot;每日坚果&quot;,
      &quot;type&quot;: &quot;核心词&quot;, &quot;subtype&quot;: &quot;产品词&quot;, &quot;priority&quot;: &quot;核心&quot;, &quot;intent&quot;: &quot;中&quot;,
      &quot;reason&quot;: &quot;主推产品词,跨 12 篇文档出现 128 次&quot;,
      &quot;topic&quot;: &quot;每日坚果是什么?配料、营养与选购全景&quot;,
      &quot;format&quot;: &quot;产品全景页&quot;, &quot;platform&quot;: &quot;官网 blog / 知乎&quot;,
      &quot;length&quot;: &quot;2000–3000 字&quot;,
      &quot;questions&quot;: &quot;配料构成;每日建议摄入量;如何辨别添加糖&quot;
    },
    { &quot;id&quot;: &quot;C0032&quot;, &quot;keep&quot;: false, &quot;keyword&quot;: &quot;每日坚果旗舰&quot;,
      &quot;merged_into&quot;: &quot;每日坚果&quot;, &quot;reason&quot;: &quot;包含归并:频次仅为长词 4%&quot; }
  ],
  &quot;extra&quot;: [
    { &quot;keyword&quot;: &quot;竞品名&quot;, &quot;type&quot;: &quot;核心词&quot;, &quot;subtype&quot;: &quot;品牌词&quot;, &quot;priority&quot;: &quot;中&quot;,
      &quot;intent&quot;: &quot;低&quot;, &quot;reason&quot;: &quot;语料提及但未成簇&quot;, &quot;topic&quot;: &quot;A vs B:5 个维度实测对比&quot; }
  ]
}

decisions 每个字段的含义、以及话题标题的骨架模板,见 references/table-schema.md。

蒸馏必须满足的四条硬要求:

  1. 去重彻底:同义/近义/包含关系的写法合成一个词簇,其余进变体,绝不各占一行排产位。被合并的每一条都要在 decisions 里留 keep:false + merged_into + reason,最终产出「合并剔除记录」表供复核——静默丢弃等于没做。
  2. 分类互斥:一个词只归一类。冲突时按 意图词 &gt; 对比词 &gt; 问题词 &gt; 扩展词 &gt; 核心词 取先。核心业务主词即便含交易意图,仍归核心词并在 subtype 注明。
  3. 优先级比例:核心 5–12 个且必须 ≥3 个;「高」不超过总数 35%;「中」不超过 40%。比例失衡说明门槛错了,回头调 --min-freq 重跑,不要硬凑。
  4. 每词都要话题:topic 必须是可直接发布的标题(18–26 字、含数字或明确信息承诺),不能是关键词复读。

写完执行:

&lt;PY&gt; &lt;SKILL&gt;/scripts/kw_pipeline.py apply \
  --candidates &quot;&lt;工作目录&gt;/.kw/candidates.json&quot; \
  --decisions &quot;&lt;工作目录&gt;/.kw/decisions.json&quot; \
  --out &quot;&lt;工作目录&gt;/.kw/distilled.json&quot;

返回值里「未表态候选」若 > 0,说明有候选没被审到——要么补判断,要么明确告诉用户「已按 top N 截断,剩余 M 个低频词未纳入」。

A4 · 出表

&lt;PY&gt; &lt;SKILL&gt;/scripts/kw_pipeline.py build \
  --distilled &quot;&lt;工作目录&gt;/.kw/distilled.json&quot; \
  --out &quot;&lt;输出目录&gt;/&lt;名称&gt;_关键词报告.xlsx&quot; \
  --md &quot;&lt;输出目录&gt;/&lt;名称&gt;_关键词报告.md&quot; \
  --corpus &quot;&lt;工作目录&gt;/.kw/corpus.json&quot;

生成的 xlsx 含四个工作表:概览(首屏)、关键词蒸馏表、优先级排产表、合并剔除记录。

排产表按 波次 W1→W4 排列,波次内再按 核心 &gt; 高 &gt; 中 &gt; 低、同优先级按得分降序,序号即生产顺序:

波次 内容
W1 核心打底 全部核心词,每词 1 篇主文
W2 问题抢占 问题词(AI 搜索命中率最高)
W3 对比意图 对比词 + 意图词
W4 长尾补齐 场景词 + 中低频长尾

用 present_files 交付 xlsx,并在回复里贴 markdown 的表格节选(蒸馏表前 10 行 + 排产表前 10 行足够),不要把整张表贴满屏。

A5 · 交付前自检

逐条确认,不过就回去改:

  • [ ] 核心词 ≥3 个,且都是真实的品牌/产品/行业词,不是文档里的通用词
  • [ ] 没有任何两行是同一个意思(抽查变体列,若两行的变体互相包含 → 合并失败)
  • [ ] 「高」占比 ≤35%,「中」≤40%
  • [ ] 问题词全部是疑问句式,不是陈述句;数量不少于问题类语料的 8 成
  • [ ] 对比词都识别出了 ≥2 个可比对象
  • [ ] 每条 reason 非空且说清了保留逻辑
  • [ ] 每条 topic 都是能直接发的标题,含数字或明确信息承诺
  • [ ] 排产表 W1 的每一行都是核心词,且核心词全部进了 W1
  • [ ] 「合并剔除记录」非空(有去重就有记录)

工作流 B · 话题到成稿

七个关卡,每一关都要停下来等用户回答,不要一次问完所有问题,也不要替用户做决定。前四关是选择,后三关是执行。

从工作流 H 进来的,话题已经定了,跳过 B1,直接从 B2(有本地资料)或 B3(无本地资料、已用 webbrief)继续。

B1 · 让用户选话题

&lt;PY&gt; &lt;SKILL&gt;/scripts/kw_pipeline.py topics --distilled &quot;&lt;工作目录&gt;/.kw/distilled.json&quot; \
  --out &quot;&lt;工作目录&gt;/.kw/topics.json&quot;

不要一次把整张话题表贴满屏。按波次给:先贴 W1 核心词(5–8 条),说明「后面还有 W2 问题词 N 条、W3 意图对比 N 条」,问用户要写哪个。用 AskUserQuestion 给 3–4 个候选更省事,选项写「关键词 + 话题标题」,让用户能看懂要写的是什么。

用户也可能自带话题。两种都要接:

  • 用户选的是表内话题 → 直接进 B2,用 T 编号定位最准。
  • 用户自带话题 → 先判断是否等价于表内某条(同义、包含关系)。等价就用表内那条;不等价就按用户的话走 B2 的自由话题模式,并且说明这个词不在排产表里,问要不要顺手补进表。

B2 · 回溯这个话题用到的资料

&lt;PY&gt; &lt;SKILL&gt;/scripts/kw_pipeline.py trace \
  --distilled &quot;&lt;工作目录&gt;/.kw/distilled.json&quot; \
  --corpus &quot;&lt;工作目录&gt;/.kw/corpus.json&quot; \
  --topic &quot;T03&quot; \
  --out &quot;&lt;工作目录&gt;/.kw/T03.brief.json&quot;

--topic 接受 T 编号、话题标题、关键词三种写法。匹配不上会列出最接近的 5 条并退出,此时把候选贴给用户确认,不要自己猜。

跑完读输出(不要整份 brief.json 进上下文,只在需要时读 sources[].evidence 的具体段落):

  1. 命中资料几篇——0 篇说明这个话题在语料里没根基,必须告诉用户「资料里没有这个话题的内容,需要补充资料或换个话题」。
  2. gaps 证据缺口——这些问点不能编。要在写之前告诉用户「以下 3 个点在资料里没找到答案,我会标待确认 / 你补充一下」。
  3. facts——所有数字的唯一来源。

自由话题模式:用户给的话题不在表里,或根本没有跑过排产表时,加 --free 跳过匹配,用 --terms 给检索词、--questions 给必须回答的问点:

&lt;PY&gt; &lt;SKILL&gt;/scripts/kw_pipeline.py trace --free \
  --corpus &quot;&lt;工作目录&gt;/.kw/corpus.json&quot; \
  --topic &quot;坚果礼盒送人怎么选&quot; --terms 坚果礼盒 送礼 长辈 \
  --questions &quot;预算怎么分档;包装体面度;送长辈的忌讳&quot; \
  --out &quot;&lt;工作目录&gt;/.kw/送礼.brief.json&quot;

B3 · 问平台和篇幅

只问一次,给清楚选项:

  • 发哪里:公众号 / 小红书 / 知乎 / 抖音图文 / 官网长文(可多选)
  • 篇幅:跟着平台默认走(公众号 1500–2500、小红书 600–900、知乎 2000+),除非用户另有要求

平台的硬规则见 references/platform-specs.md。用户选多个平台时,一篇主稿写完再改写成各平台版本——不要为每个平台单独写一遍,会前后矛盾。

B4 · 写初稿

按 references/content-playbook.md 选骨架(distilled.json 里每个词都有 format),用 brief.json 的 evidence 和 facts 组织内容,questions 字段里的问点逐条回答。

写成 markdown,放在 &lt;工作目录&gt;/draft.md,带 frontmatter:

---
title: 每日坚果是什么?配料、热量与选购全景
digest: 一袋 25g 里到底装了什么?从配料表到热量账,一次讲清。
---

正文……

写完先给用户看正文,不要直接排版。用户会改观点、改语气、删段落——排版完再改,锚点和字体全要重做。

B5 · 问是否需要段落配图

初稿确认后问一句:「要不要给段落配图?」用户说不要就跳到 B7。

要的话先切段,把可配图的位置摆给用户:

&lt;PY&gt; &lt;SKILL&gt;/scripts/kw_pipeline.py sections --article &quot;&lt;工作目录&gt;/draft.md&quot; \
  --out &quot;&lt;工作目录&gt;/sections.json&quot;

输出里 ★ 是建议位。给用户看的是「段落编号 + 开头十几个字 + 为什么建议配图」,让用户挑,不要默认全配。用户说「你看着办」时,按 content-playbook.md 第四节的标准自己挑 3–5 段,并把选择理由说清楚。

B6 · 问配图来源,然后配图

选定段落后问:「用你自己的图片,还是 AI 生成?」两者都要先出计划:

# AI 生成
&lt;PY&gt; &lt;SKILL&gt;/scripts/kw_pipeline.py imageplan --sections sections.json \
  --picks P04,P07,P10 --mode ai --brief brief.json --platform xhs --out plan.json

# 本地素材
&lt;PY&gt; &lt;SKILL&gt;/scripts/kw_pipeline.py imageplan --sections sections.json \
  --picks P04,P07 --mode local --images &quot;&lt;素材目录&gt;&quot; --platform wechat --out plan.json
  • AI 生成:逐条读 plan.json 里的 prompt,用生图工具一张一张生成,存到同一个目录,再 media --plan plan.json --fill-dir &lt;目录&gt; 按序补位。
  • 本地素材:用 ViewImage 逐张确认内容和段落对得上再用,不要只看文件名。素材不够就明确告诉用户缺几张。
&lt;PY&gt; &lt;SKILL&gt;/scripts/kw_pipeline.py media --plan plan.json --out out/&lt;平台&gt; --platform wechat

B7 · 按平台排版并交付

&lt;PY&gt; &lt;SKILL&gt;/scripts/kw_pipeline.py render --article draft.md --platform 公众号 \
  --plan out/wechat/plan.json --out &quot;out/wechat/&lt;名称&gt;_公众号版.html&quot;

多个平台就每个平台各跑一次 media + render(media 会在各自目录写平台专用的 plan.json,互不覆盖)。

render 的规则体检要看完:标题超长、正文字数越界、标签缺失都是必须处理的问题,把结论如实报给用户,不要只报「已生成」。

最后用 present_files 交付:HTML 会直接预览,md 作为文件给出。

回复用户的格式

工作流 H(热门话题)

  1. 说明抓了哪几个平台的榜、什么时候抓的、共多少条。
  2. 表格:编号、话题、平台、热度、可写角度(10 条)。
  3. 一句「回复编号就行,也可以说要换方向」。
  4. 用户选定后:这条热点对应哪些资料、证据缺口在哪,再问平台。

工作流 A(关键词)

  1. 一句话结论:扫了多少文件、蒸出多少词、分了几类。
  2. 蒸馏结果:markdown 表格,按类型分组,每组列代表词 + 优先级。
  3. 排产计划:W1–W4 各自的篇数与首批话题标题(3–5 条样例)。
  4. 需要用户决策的点:语料缺口(如「没有竞品资料,对比词只有 2 条」)、被跳过的文件。
  5. 交付文件路径。

工作流 B(成稿)

  1. 这个话题命中了哪几篇资料(文件名 + 命中次数),让用户知道文章的数据从哪来。
  2. 证据缺口:哪些问点资料里没有,打算怎么处理。
  3. 正文(或正文文件),标题与字数。
  4. 配图清单:段落编号 → 图注 → 来源(本地/AI)。
  5. 排版体检结论 + 各平台交付文件路径。

常见故障

现象 处理
品牌名被切成「三只」「松鼠」 用 --extra-words 加白名单重跑 mine
候选里混入目录项、页眉页脚 在 decisions 里 keep:false,原因写「噪声剔除」,不要只丢不说
词表里全是单字/碎片 jieba 没装上,装了重跑;或提高 --min-freq
一个问题词/对比词都没有 语料里没有问句形态。先 peek --type 问题词 确认,再让用户补 FAQ/客服记录类文档
apply 报「没有任何 keep=true 的词」 decisions 全被标成 keep:false;检查 keep 是否写成了字符串 &quot;false&quot;(脚本会自动纠正并告警)
排产表铺满「高」 优先级门槛太低,回 A3 按比例重新分配
「未表态候选」数量很大 正常,说明只蒸馏了头部。交付时明确告知截断的尾部数量
xlsx 打不开 检查输出路径是否被 Excel 占用,换文件名重试
trace 报「没能确定是哪个话题」 用 T 编号或完整标题重试;或把用户原话拆成几个关键词用 --terms 传入
trace 命中 0 篇 话题超出语料范围。要么让用户补资料,要么改写成语料覆盖得到的角度
trace 命中一堆不相关文档 拆句实词里混进了高频词;用 --terms 显式指定检索词,脚本会自动丢掉覆盖率 >60% 的实词
配图错位到别的段落 一定是 draft.md 在 sections 之后改过。重跑 sections 和 imageplan,锚点不会自动跟随改稿
media 提示「已放大,可能发虚」 原图太小。换图,不要硬放大;实物图更不能用 AI 补
公众号 HTML 粘贴后没图 base64 被编辑器过滤。用 --no-embed 重排,再从 assets/ 手动上传图片
小红书正文超 1000 字 不是排版的错,是稿子长了。回 B4 删减,不要靠截断
热榜总是凑不满 10 条 只搜了一个平台。补搜微博/知乎/小红书/抖音 + 垂类问法,再跑一次 hot
热榜里全是明星八卦、与业务无关 换垂类 query(行业词 + 品类词 + 最近),并给每条加 tag,用 --tag 过滤
hot 提示「0 条命中,已回退显示全部」 这一轮没搜到该领域,换 query 重搜;不要拿回退结果当领域答案
trace --seed 命中 0 篇 条目没写 terms,整句标题当检索词了。回 hot_raw.json 补 2–4 个检索词再跑
webbrief 说「来源没有可用原文」 只记了结论没记原文。回到搜索页把原句摘下来(≥10 字),或换更权威的来源
webbrief 标了「未核验」 来源没 URL。补 URL;补不到就在成稿里降级为「有说法称」,不当硬数据
热点文章发布时热度已过 brief.json 的 meta.generated_at 超过 3 天要重抓,别拿旧榜当新热点

常见问题

5 问
答案由本站依据条目字段整理
热点选题 · 关键词蒸馏成稿怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_baa93ddc/zmx-keyword-distillation。安装方式为未标注。装完刷新技能列表或重开客户端。

热点选题 · 关键词蒸馏成稿支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

热点选题 · 关键词蒸馏成稿权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

热点选题 · 关键词蒸馏成稿收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

热点选题 · 关键词蒸馏成稿用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 2026-11-06。