公众号写手 · WeChat Writer
把零散事实、研究材料或现有草稿变成一套可交付的公众号文章包,而不只是写出一段 Markdown。
每次完整交付同时包含:经过事实约束的正文、题材适配的编辑模板、品牌化横版封面、独立的 4:3 横向正文首图、来源与发布元数据,以及一份可回读的验收报告。
Triggers
Activate when
- “按我的文风写一篇公众号文章,并配好封面和正文首图。”
- “把这些研究材料做成统一品牌的公众号长文。”
- “Create a branded WeChat article package from these notes.”
- “Turn this draft into a publish-ready WeChat article with a wide cover and a 4:3 body hero.”
- “把这篇现有 Markdown 做成完整的品牌化公众号版本。”
- “忠实转载这篇合作方文章,保留原文并加入我们的开场和收尾。”
Do not activate when
- 只要求改写一段文字或匹配个人语气,不需要公众号模板与视觉包;使用写作风格能力。
- 只要求读取、修改或核验公众号后台已有草稿;使用
lov-publish-wechat-article的 existing-draft 管线。 - 只要求把现成文件写入草稿箱或正式发布;使用公众号发布能力。
- 只要求生成一张孤立图片,且不需要文章级命题、品牌与双比例验收。
Product contract
- One article, one package. 正文、来源、封面、首图和验收记录位于同一文章目录。
- Facts before voice. 先建立事实账本,再套用文风;不得用第一人称补造经历、数字或判断变化。
- Objective before outline. 先明确创作条件、动机、传播目标与
desired_reader_change,再决定结构。用户给出的命题、开头、章节或草稿是重要约束和证据,不自动等于已经充分、正确的传播策略。 - One writing owner. 新写与改写必须调用
lov-writing-style;其内部调用唯一的反 AI / 作者性规则源lov-human-writing。本 Skill 只拥有公众号题材、结构、品牌和制品规则,不复制通用文风规则。 - Template is semantic. 固定的是信息顺序、证据门槛与品牌组件,不强迫所有题材使用同一组空洞标题。
- Heading roles stay separate. 文件名、平台标题、正文 H1、章节 H2/H3 与 TOC 标签是不同制品。章节标题负责划分读者的认知阶段并逐步引人进入,不负责压缩段落;TOC 只镜像最终章节结构,不反向决定正文。
- Brand comes from Profile. 发布主体、Logo、官网、色彩和禁用信息从共享 Profile 解析,不把用户私有路径写入公开文章或 Skill 源码。
- Two image roles are mandatory. 完整管线必须输出
2.35:1分享封面和独立的4:3横向正文首图;不得把分享封面成品直接当正文首图。 - Benchmark claims require benchmark evidence. 文章一旦给出排名、雷达图或量化优劣,就必须在结果之前公开测试对象、输入、完整 Prompt、执行环境、评价指标、评分规则、至少一个逐项算分示例和复现方法;分数不得先于方法出现。
- Publication identity wins. 公众号发布主体与母品牌分开;封面只使用发布主体官方白色横向 lockup,方形图标、母品牌 Logo 和橙色变体都不能替代。
- Generated is not accepted. 文件存在不等于完成;必须通过尺寸、引用、事实、品牌和移动阅读质量门。
- Publishing is separate. 默认止于本地可发布文章包;写入草稿箱或正式发布需要明确授权,并交给下游发布能力。
- Platform title is not body content. canonical Markdown 保留唯一 H1 作为标题真源;写入微信公众号时,标题进入平台标题字段,正文默认隐藏该 H1,避免首图前重复出现同名标题。
- References stay quiet. 正文中穿插的资料来源、补充链接和引申阅读默认使用低对比度的小字斜体资料注,不与章节标题、正文论点或主要行动入口争夺视觉层级。
- Repost source is frozen. 转载时来源正文是逐字冻结区;作者性优化只作用于发布方新增区块,且
copyrightMode固定为reprint。
User Profile
每次运行先读取 skill.yaml 声明的 user-profile/v1 上下文,按当前请求、项目事实、本 Skill records、共享 preferences、品牌和用户 Profile、安全默认值的顺序解析。
用户直接声明并希望长期沿用的模板、文风、品牌与封面比例,通过 scripts/profile_store.py record --confirm 写入 skills.lov-article-creator.records。公开品牌事实使用 brand.*;推断值、凭据和内部素材不得持久化。
Skill Kit Modules
完整执行前读取 kit.yaml 与所选模块:
$SKILL_DIR/skills/article-writing/SKILL.md— 事实账本、题材结构,以及对lov-writing-style的正文写作交接。$SKILL_DIR/skills/editorial-template/SKILL.md— 固定公众号模板、品牌组件和文章包元数据。$SKILL_DIR/skills/cover-package/SKILL.md— 艺术方向、横版封面、4:3 正文首图和确定性 Logo 合成。$SKILL_DIR/skills/quality-gate/SKILL.md— 内容、文风、品牌、图片和包结构验收。
模块是本 Kit 的硬依赖并随源代码分发。外部相邻 Skill 只通过明确文件交接,不是隐藏依赖。
Pipelines
| 管线 | 适用结果 | 模块 |
|---|---|---|
full |
从材料生成完整文章包 | writing → template → cover → quality |
rewrite |
把已有草稿重做为统一公众号版本 | writing → template → quality |
visual |
正文已定,只补双比例视觉包 | cover → quality |
brand |
给现有本地文章补齐结构、品牌、封面说明与双比例视觉 | template → cover → quality |
repost |
冻结来源正文,只新增发布方开场、来源标注、收尾与品牌区 | template → cover → repost audit → quality |
audit |
只检查现有文章包 | quality |
用户说“写公众号文章”且没有显式缩小范围时,默认使用 full。
Workflow (MANDATORY)
Step 0: Resolve the Kit and durable defaults
- 定位 Skill 根目录,检查
kit.yaml、所需模块、references、scripts 和 assets。 - 读取共享 Profile 与
skills.lov-article-creator.records。 - 分别解析母品牌和公众号发布主体,并读取发布主体官方白色横向 Logo、品牌网站、文风、横竖比例和输出目录;不得回退到母品牌、方形或橙色 Logo。
- 缺失的信息会改变用户可见成品时,只问一个聚焦问题;其余使用安全默认值继续。
Step 1: Build the truth ledger
完整读取输入文件、当前项目材料、图片和用户明确判断,内部区分:
- 可直接写入的事实、版本、数字、引用和链接;
- 可以使用第一人称的真实经历;
- 需要来源支撑的外部主张;
- 只帮助判断、不得公开的内部上下文;
- 会阻止可靠成稿的证据缺口。
把文章真正要纠正的旧说法或推动的判断压成一句命题。输入不足以支撑关键结论时,保留边界或请求最少事实,不编造完整故事。
完整读取 创作战略与标题系统,建立内部
strategy brief:当前可用条件、作者为何此刻要写、传播目标、目标读者起点、
desired_reader_change、期望读者动作、现有证据和证据缺口。公众号传播指标可以是
打开、读完、点赞、转发、留言或体验,但不得为了指标伪造冲突、关系或结果。
再判断本次交互属于哪一种工作形态:
- 只有命题或项目材料:自顶向下提出命题、读者变化与结构;
- 已给开头、章节或明确写法:把它们视为已接受约束,补足缺口,不静默改写;
- 语音转写、思绪或素材堆:自下而上提炼事实、动机与结构;
- 已有完整稿件:以最小改动迭代,先保留用户已校对部分,再修真正阻碍目标的段落;
- 混合输入:固定用户已经决定的层级,只对未决定部分使用相应方法。
用户提供的方案若与真实目标冲突,不得盲从,也不得擅自覆盖。先指出具体冲突、缺失 证据及其对传播目标的影响,再给一个可执行替代;只有这项选择会实质改变成品时才请 用户决定。
同时建立 reader contract:发布渠道、目标读者、读者打开文章时已知内容和成品边界。
公众号最终稿默认面对没有参加作者与 Agent 对话的公开读者。旧稿轮次、用户批评、
修改说明和任务过程属于内部上下文;除非它们本身是研究对象并在正文内完整建立,
不得进入文章命题或导语。
Step 2: Write for meaning
读取文章写作模块,并把 truth ledger、reader contract、题材和发布渠道交给 lov-writing-style。lov-writing-style 负责个人文风,并在内部调用 lov-human-writing 做作者性审计;不得绕过这条链路另写一套“去 AI 味”规则。
公众号专属结构继续执行:
- 开头 300 字内出现真实冲突、现场、结果或核心判断。
- 把标题与开头 300 字单独交给
zero-session-context冷读者;所有版本、人物、事件和 指代都必须在可见成品中有先行词。出现悬空的“前一版 / 上一稿 / 这次重写 / 按你 的要求”时直接重写,不能进入下一阶段。 - 正文按
desired_reader_change选择认知路径;定义、区分、证据、代价与行动只是 可用模块,不是固定顺序。 - 每个主要章节至少有一项事实、案例、数字、亲历或来源。
- 长句承担解释,短句负责落锤;保持移动端一句段与长段交替。
- 先完成事实与论证,再做个人文风适配;不复制口头禅,不制造虚假情绪。
- 先判断题材。研究、调研、对比测试、benchmark 或带排名/雷达图的文章使用论文式方法结构:
调研对象、测试方法、Prompt、评价指标、评分方法、评分示例、复现方法、测试结果、局限性、结论。这些标题以检索和复现为先,保持朴素,不强行改成悬念句或判断句。 - 研究评测类文章在
测试结果前必须让读者看见:被测版本或散列、统一输入、实际执行 Prompt、模型与关键参数、隔离条件、样本数与重复次数、盲评或随机化方式、指标定义和权重、逐项评分示例、可运行命令与原始产物索引。缺一项就只能写“探索性观察”,不能给确定排名。 - 先确定章节的认知阶段,再给 H2/H3 命名。并列问题使用正交概念,不把人物性别、 “案例一 / 案例二”或偶然先后当作本质;没有真实顺序时禁止用“先……再……”制造 流程。用户已明确给定章节名时默认保留,除非它与正文或传播目标明显冲突。
repost 管线不改写来源正文。完整读取 来源保真、转载增量 与 作者性边界,把来源放入唯一 data-repost-source="true" 冻结区;只把新增开场、来源标注、收尾和品牌微文案交给写作链路。
Step 3: Apply the editorial template
读取 $SKILL_DIR/references/article-template.md 与编辑模板模块,将正文装入固定语义结构:
- 标题与发布元数据;
4:3横向正文首图;- 导语;
- 正文与稳定的 H2/H3 层级;Lovpen 微信 HTML 可据此生成 TOC,canonical Markdown 默认不写死呈现型目录;
- 结论或“写在最后”;
- 有真实去向时加入代码、原文、博客或延伸阅读;
- 稳定品牌尾注;
- 结论之后、品牌尾注之前的封面说明:真实艺术作品写“本期封面”,生成式封面写可复制的“封面 Prompt”;
read_original_url、来源和发布字段。
用 scripts/build_article_package.py 建立目录和 manifest。不得为了填满模板创造不存在的链接、产品或作者经历。
现有文章使用 brand 管线时,额外读取 品牌化版本。publication、brand 与 products 必须分开;品牌尾注默认不枚举产品,只有与正文直接相关或用户明确要求时才加入。
Step 4: Produce the cover package
读取 $SKILL_DIR/references/cover-system.md、$SKILL_DIR/prompts/cover-art.md 与封面模块:
- 从文章命题提取一个主视觉隐喻,不使用机器人、代码 UI、霓虹、科技粒子或伪文字凑“AI 感”。
- 生成不含 Logo、标题、字母、数字和水印的艺术底图,分别为分享封面和正文首图保留安全区。
- 使用同一视觉语言分别构图分享封面和
4:3正文首图;不要复用已叠 Logo 的分享封面成品,也不要机械拉伸。 - 运行
scripts/compose_covers.py,使用发布主体官方白色横向 raster Logo 确定性合成并输出 PNG、JPG 与 manifest;脚本必须拒绝方形和非白色 Logo。 - 分享封面用于公众号消息列表;
4:3正文首图位于正文第一块、导语之前。
Step 5: Run the quality gate
读取 $SKILL_DIR/references/quality-gate.md,运行:
python3 "$SKILL_DIR/scripts/validate_article_package.py" \
--package ARTICLE_PACKAGE \
--json
同时做人工语义检查:事实与引语、作者位置、文风节奏、标题与摘要、延伸阅读、品牌主体、封面焦点、Logo 完整性和正文首图移动阅读效果。研究评测类文章还必须逐项核对实验输入、Prompt、环境、评分规则、原始结果与复现入口。audit 只报告;其他管线发现问题后直接修复并重跑。
转载包还必须运行:
python3 "$SKILL_DIR/scripts/audit_repost.py" \
--source-text SOURCE_TEXT \
--edition-html EDITION_HTML \
--source-account SOURCE_ACCOUNT \
--source-url SOURCE_URL \
--copyright-mode reprint
Step 6: Deliver the package
默认输出到当前工作区 output/articles/<slug>/:
article.md
article-manifest.json
sources.md
cover/
art-master.png
wechat-cover-wide.png
wechat-cover-wide.jpg
article-opening-4x3.png
article-opening-4x3.jpg
cover-manifest.json
quality-report.json
repost 管线另外输出来源快照、source-assets/、edition-manifest.json 和保真审计收据;远端 Lovpen HTML 与发布收据由 Publisher 生成。
报告事实支持范围、实际文件、使用的 Profile 来源和验证结果。未获授权时,不创建公众号草稿、不正式发布、不发送外部消息。
Dependencies
- Python 3.9+、PyYAML、Pillow。
- 完整封面需要宿主提供图像生成或合法素材输入;确定性合成本身不需要网络。
lov-writing-style是正文文风的唯一外部 owner;其作者性审计由lov-human-writing内置完成。- 发布和公众号后台编辑属于下游
lov-publish-wechat-article,不属于本 Skill 的默认交付。
References
- 文章模板
- 创作战略与标题系统
- 写作风格
- 品牌系统
- 封面系统
- 输出契约
- 质量门
- 品牌化版本
- 转载来源保真
- 转载编辑增量
- 转载发布交接
- 转载作者性边界
- Skill 组合