Wechat news publisher
当用户希望基于指定主题与时间,一次完成新闻检索、公众号源件生成、固定版式 HTML、参考图约束的模型封面图与指定目录落地时使用。From its SKILL.md
npx -y skills add yumih1129/skills-repo --skill wechat-news-publisherAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
11.2 KB, ~4.1k tokens by cl100k_base, as published. Nobody here has run it
Skill: 一键式公众号新闻发布
本地资源与权威顺序
SKILL.mdfrontmatter:只定义技能标识与触发描述。SKILL.md正文:定义边界、流程、门禁、失败处理与交付要求;冲突时以正文为准。references/output-contract.md:定义固定产物、目录和单向依赖。references/html-style-spec.md:定义唯一允许的 HTML 版式。references/cover-style-spec.md:定义唯一允许的封面构图、色彩与参考图约束。references/enterprise-quality-gates.md:定义最终门禁。assets/cover-layout-reference.png:封面唯一版式参考图。scripts/render-wechat-news-html.js:唯一合法 HTML 渲染脚本。scripts/verify-wechat-news-publisher.js:唯一合法本地验证脚本。_meta.json:只提供注册元数据,不补充执行规则。- 未列入以上顺序的文件不参与执行判定。
核心用途
输入 topic、time_input、need_cover、need_export、output_dir,固定产出:
source.mdfinal.htmlscover.png
约束:
source.md是唯一源件。final.html只由source.md正文生成。scover.png只由source.md与assets/cover-layout-reference.png驱动生成。
何时使用
适用:
- 按主题和时间直接生成公众号新闻稿并落地。
- 需要固定 HTML 版式。
- 需要封面与参考图保持同构。
不适用:
- 只要新闻列表,不要发布产物。
- 只要最终 HTML,不要源件与封面图。
- 只要自由风格海报、插画或自定义封面。
- 需要多轮审稿、多主题并行或多套版式。
输入契约
topic:必填。time_input:默认近期。need_cover:默认false。need_export:默认false。output_dir:仅在need_export=true时必填。
只在以下情况追问,且只追问一次:
topic不清楚。- 需要落地但没有
output_dir。 - 用户给出的保留/删除要求互相冲突。
执行不变量
新闻简报是唯一事实基准;成稿、HTML、封面图都只能基于它生成。新闻简报固定先扩面形成候选集,再筛成最终入稿集;不得把候选集原样堆入成稿。source.mdfrontmatter 只允许title、summary、cover_prompt。- frontmatter 之后的 Markdown 正文是唯一
正文基准。 final.html只能由正文基准生成,不得读取 frontmatter。assets/cover-layout-reference.png是封面唯一参考图与唯一版式锚点;文字提示只允许补强,不允许替代。- 封面图主链路固定为模型生成;不得把
qlmanage、Chromium 截图、SVG 栅格化或其他宿主特定实现声明为主交付链路。 - 未经用户明确允许,不得增删改
新闻简报中的事实、数字、时间、引用、来源、链接和结论。 - 未经用户明确允许,不得新增解释性判断、趋势推演、修辞性补充或背景性扩写。
- 落地时只能直接写入用户给定目录,不得额外创建子目录。
执行流程
Step 1:输入归一
- 解析
topic、time_input、need_cover、need_export、output_dir,并将time_input换算为绝对检索时间窗。 - 用户未给时间时固定使用最近 30 天。
Step 2:新闻检索
- 发现当前环境可用的新闻或网页搜索能力。
- 按
topic + time_input + 新闻构建 query。 - 执行扩面检索、过滤、去重、分类、排序,生成
新闻简报。 - 默认先形成
12-20条候选,再筛成8-12条最终入稿;用户指定数量时按用户要求处理。 - 默认按四字分类收束:
国内要闻、民生服务、科技产业、国际局势、市场动态。 - 当请求为“今日热点 / 今日要闻 / 热点新闻”类宽主题时,优先覆盖上述 5 类中的至少 4 类;明显不适配的类别允许留空,但不得伪造补位。
- 无搜索能力、结果为空或字段不完整时,必须显式失败。
新闻简报 每条至少保留:
标题来源发布时间摘要正文链接
Step 3:源件生成
基于 新闻简报 生成 source.md:
- frontmatter:
titlesummarycover_prompt
- Markdown 正文:
# 标题- 摘要导语
- 固定结论块
- 分类结构
- 新闻正文
- 原始链接索引
规则:
title不超过 64 字。summary不超过 120 字。cover_prompt必填。- 正文首个
# 标题必须与 frontmattertitle完全一致。 - 正文首段必须与 frontmatter
summary完全一致。 - 正文分类标题优先使用四字标签;除非主题天然不适配,否则不改成随意长标题。
- 固定结论块只允许
1-2句,直接归纳当日主线,不展开分析。 - 每条新闻正文默认压缩为
2-3句客观事实,只保留事件、动作、直接影响。 - 正文必须简约、集中,不得把单条新闻扩写成评论、专栏或背景长文。
- frontmatter 只承载元数据,不替正文补内容。
- 未经用户允许,不得静默删除已纳入条目。
Step 4:HTML 生成
- 最终 HTML 固定采用
references/html-style-spec.md。 - 只能使用
scripts/render-wechat-news-html.js。 - HTML 只能根据
正文基准生成。 - HTML 阶段不得改写正文事实、结构或结论。
- 用户要求其他 HTML 风格时,保持固定版式,不切换。
Step 5:封面图生成
仅当 need_cover=true 时执行。
- 必须读取
assets/cover-layout-reference.png作为唯一参考图与唯一版式锚点。 - 必须使用当前环境的模型生图能力生成
scover.png。 - 提示词输入固定来自
title、summary、cover_prompt与正文中提炼出的5-6个热点卡片。 - 目标不是像素复制,而是与参考图保持同构:左侧大标题区、顶部深色识别条、右侧
5-6张热点卡片、暖米白棕金配色、至少1张深色锚点卡片。 - 左侧标题区应在参考图安全区内略向左收,和顶部识别条、导语区形成更稳定的左对齐线。
- 日期只作时间锚点,字号较“热点新闻速览”类主标题缩小约
10%,不得压过主标题。 - 右侧必须保持固定卡片矩阵家族;卡片尺寸与排序可在参考图版式家族内自适应,不得自由流式排版,也不得机械写死为等宽等高
3x2。 - 文字提示只负责补强日期、主标题、卡片短标题和主题气质;核心规则固定为:
封面必须以参考图为唯一版式锚点,模型只允许替换主题内容,不允许替换整体构图。 - 首轮结果若出现错字、信息缺失或版式明显漂移,可最多补
2次重试。 - 当前环境没有可用图像生成能力时,封面图链路失败。
Step 6:文件落地
仅当 need_export=true 时执行。标准路径固定为:
{output_dir}/source.md{output_dir}/final.html{output_dir}/scover.png
规则:
- 直接写入用户指定目录。
- 不额外创建子目录。
- 未请求封面图时,不生成
scover.png。 - 任一写入失败都必须显式报错。
用户交互规则
- 信息足够时直接执行,不先给多版方案。
- 用户要求其他 HTML 风格或封面风格时,直接说明本技能只支持固定版式。
- 用户要求落地时,不得改写文件名或目录结构。
- 用户要求“更像某某风格”但未要求放弃当前技能时,只保留内容要求,不接受版式变体。
- 用户要求只要某个产物时,可少交付,但不得改变已交付产物格式。
- 用户要求导出最终文件时,不得手写
final.html或scover.png。
输出契约
以 references/output-contract.md 为准。
未要求落地时,直接返回:
source.md完整内容final.html完整内容- 若
need_cover=true且环境可生图,返回封面图结果
要求落地时,只返回:
- 实际写入的
source.md路径 - 实际写入的
final.html路径 - 若适用,实际写入的
scover.png路径 - 验证结论与失败项
质量门禁
必须同时满足:
事实一致:source.md与新闻简报不冲突,不漏条目。正文独立、HTML 单源、元数据隔离:正文可独立成立,final.html只来自正文,且不读取title、summary、cover_prompt。参考图收束、版式一致、宿主解耦:封面图必须使用assets/cover-layout-reference.png并保持同构,不把宿主特定栅格化工具声明为主交付链路。路径准确、结果可验收、企业门禁:落地路径准确、结果可核验,并以references/enterprise-quality-gates.md为最终门禁。
失败处理
- 搜索能力不可用:停止并说明无法完成实时新闻检索。
- 检索结果为空:返回未找到结果,不伪造源件与 HTML。
新闻简报字段不完整:丢弃异常条目;有效条目不足时显式说明。- 标题或摘要无法在长度限制内保持主旨:提示用户收窄主题或确认压缩。
- HTML 生成失败:保留
source.md,显式报告原因。 - 缺少
assets/cover-layout-reference.png:封面图链路失败。 - 当前环境无图像生成能力:封面图链路失败。
- 封面图多次重试后仍明显偏离参考图:保留
source.md与final.html,显式报告失败。 - 用户给定目录不可写:停止落地并报告具体路径错误。
- 用户坚持要求自定义封面风格:判定为超出本技能边界。
- 脚本验证失败:不得声称链路可用。
验证与回归
修改后至少走查以下场景:
生成人工智能最近一周的公众号新闻稿,带封面图,保存到 outputs/ai/生成中东局势昨日的公众号新闻稿,不要封面图,只返回结果生成苹果 WWDC 相关新闻 HTML,保存到 outputs/apple/生成茅台股价新闻稿按极简黑金风格生成今天热点新闻封面和 HTML- 运行
scripts/verify-wechat-news-publisher.js
验收点:
- 场景 1:能产出
source.md、final.html、scover.png。 - 场景 2:不落地,且不生成封面图。
- 场景 3:HTML 只来自正文,不吃元数据。
- 场景 4:若主题实为行情/股价数据请求,能识别为边界场景并停止误触发。
- 场景 5:仍保持参考图同构,不因风格请求漂移;文字提示只能补强,不得替代参考图版式锚点。
- 场景 6:本地脚本验证通过,且人工对照
assets/cover-layout-reference.png可确认封面版式一致。
维护原则
- 保持六条主轴稳定:
新闻简报事实基准、正文 HTML 单源、固定目录、固定 HTML 版式、固定封面参考图、固定输出文件名。 - 新增规则只能补强闭环,不得重新引入多主题、多版式、多轮审稿或技能外依赖。
- 封面链路变更时,必须同步复核
SKILL.md、references/cover-style-spec.md、references/output-contract.md、references/enterprise-quality-gates.md、assets/cover-layout-reference.png与验证脚本。
What ships with it: 9 files
2156.9 KB alongside SKILL.md, 3 of them executable
assets/
- cover-layout-reference.png2110.2 KB
references/
- cover-style-spec.md3.5 KB
- enterprise-quality-gates.md2.3 KB
- html-style-spec.md2.9 KB
- output-contract.md1.9 KB
scripts/
- legacy-render-wechat-news-cover.jsruns12.8 KB
- render-wechat-news-html.jsruns14.8 KB
- verify-wechat-news-publisher.jsruns7.8 KB
- _meta.json661 B