@topmindspace/topmind-writing-skills 0.8.43 → 0.8.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -0
- package/README.en.md +41 -21
- package/README.md +41 -21
- package/package.json +6 -2
- package/topmind-briefs/CHANGELOG.md +11 -0
- package/topmind-briefs/README.en.md +1 -1
- package/topmind-briefs/README.md +1 -1
- package/topmind-briefs/SKILL.md +20 -19
- package/topmind-briefs/examples/01-X/347/237/255/346/226/207-/347/274/226/350/276/221/345/231/250/345/217/221/345/270/203.txt +5 -5
- package/topmind-briefs/examples/02-X/347/237/255/346/226/207-/345/237/216/345/270/202/345/205/254/345/233/255.txt +1 -3
- package/topmind-briefs/examples/README.md +2 -2
- package/topmind-briefs/package.json +1 -1
- package/topmind-briefs/references/core-voice.md +140 -0
- package/topmind-briefs/references/de-ai-rules.md +66 -42
- package/topmind-briefs/references/emoji-system.md +1 -1
- package/topmind-briefs/references/examples.md +8 -10
- package/topmind-briefs/references/image-sourcing.md +11 -4
- package/topmind-briefs/references/platform-specs.md +11 -13
- package/topmind-briefs/references/revision-workflow.md +27 -19
- package/topmind-briefs/references/style-guide.md +1 -1
- package/topmind-briefs/references/writing-principles.md +40 -34
- package/topmind-briefs/references/x-delivery-contract.md +2 -2
- package/topmind-briefs/references/x-layout-patterns.md +7 -8
- package/topmind-briefs/references/x-post-format.md +10 -8
- package/topmind-briefs/scripts/count_words.py +88 -0
- package/topmind-briefs/scripts/de_ai_lint.py +447 -0
- package/topmind-briefs/scripts/lint_x_post.py +69 -181
- package/topmind-briefs/scripts/md2wechat.py +77 -19
- package/topmind-briefs/scripts/md2x-html.py +88 -7
- package/topmind-briefs/scripts/negative_tests.py +5 -1
- package/topmind-briefs/scripts/revise_check.py +194 -0
- package/topmind-cover/README.en.md +1 -1
- package/topmind-cover/README.md +1 -1
- package/topmind-cover/SKILL.md +5 -4
- package/topmind-cover/package.json +1 -1
- package/topmind-cover/references/core-voice.md +140 -0
- package/topmind-cover/scripts/de_ai_lint.py +447 -0
- package/topmind-format/README.en.md +1 -1
- package/topmind-format/README.md +1 -1
- package/topmind-format/SKILL.md +10 -10
- package/topmind-format/package.json +1 -1
- package/topmind-format/references/core-voice.md +140 -0
- package/topmind-format/references/de-ai-rules.md +66 -42
- package/topmind-format/references/emoji-system.md +1 -1
- package/topmind-format/references/x-delivery-contract.md +2 -2
- package/topmind-format/references/x-layout-patterns.md +7 -8
- package/topmind-format/references/x-post-format.md +10 -8
- package/topmind-format/scripts/de_ai_lint.py +447 -0
- package/topmind-format/scripts/lint_x_post.py +69 -181
- package/topmind-format/scripts/negative_tests.py +6 -5
- package/topmind-poster/README.en.md +1 -1
- package/topmind-poster/README.md +1 -1
- package/topmind-revise/CHANGELOG.md +13 -0
- package/topmind-revise/README.en.md +44 -0
- package/topmind-revise/README.md +55 -0
- package/topmind-revise/SKILL.md +126 -0
- package/topmind-revise/examples/01-/351/225/277/346/226/207-/346/224/271/345/211/215.md +13 -0
- package/topmind-revise/examples/01-/351/225/277/346/226/207-/346/224/271/345/220/216.md +11 -0
- package/topmind-revise/examples/02-/347/237/255/346/226/207-/346/224/271/345/211/215.txt +10 -0
- package/topmind-revise/examples/02-/347/237/255/346/226/207-/346/224/271/345/220/216.txt +8 -0
- package/topmind-revise/examples/README.md +16 -0
- package/topmind-revise/package.json +13 -0
- package/topmind-revise/references/core-voice.md +140 -0
- package/topmind-revise/references/de-ai-rules.md +104 -0
- package/topmind-revise/references/examples.md +77 -0
- package/topmind-revise/references/fact-check.md +42 -0
- package/topmind-revise/references/image-sourcing.md +46 -0
- package/topmind-revise/references/report-template.md +55 -0
- package/topmind-revise/references/revision-workflow.md +40 -0
- package/topmind-revise/scripts/audit-provenance.py +377 -0
- package/topmind-revise/scripts/audit_css.py +39 -0
- package/topmind-revise/scripts/audit_docs.py +80 -0
- package/topmind-revise/scripts/audit_skill.py +76 -0
- package/topmind-revise/scripts/audit_styles.py +54 -0
- package/topmind-revise/scripts/check_article.py +206 -0
- package/topmind-revise/scripts/count_words.py +88 -0
- package/topmind-revise/scripts/de_ai_lint.py +447 -0
- package/topmind-revise/scripts/lint_x_post.py +422 -0
- package/topmind-revise/scripts/negative_tests.py +169 -0
- package/topmind-revise/scripts/package_skill.py +196 -0
- package/topmind-revise/scripts/revise_check.py +194 -0
- package/topmind-viral-posts/README.en.md +1 -1
- package/topmind-viral-posts/README.md +1 -1
- package/topmind-viral-posts/SKILL.md +34 -14
- package/topmind-viral-posts/examples/04-/350/257/235/351/242/230/346/256/265/345/255/220-/346/225/264/347/220/206/344/273/223/345/272/223.txt +13 -0
- package/topmind-viral-posts/examples/README.md +3 -2
- package/topmind-viral-posts/package.json +1 -1
- package/topmind-viral-posts/references/core-voice.md +140 -0
- package/topmind-viral-posts/references/de-ai-rules.md +66 -42
- package/topmind-viral-posts/references/emoji-system.md +1 -1
- package/topmind-viral-posts/references/image-sourcing.md +11 -4
- package/topmind-viral-posts/references/patterns.md +23 -6
- package/topmind-viral-posts/references/revision-workflow.md +27 -19
- package/topmind-viral-posts/references/tags-and-topics.md +2 -2
- package/topmind-viral-posts/references/writing-principles.md +40 -34
- package/topmind-viral-posts/references/x-delivery-contract.md +2 -2
- package/topmind-viral-posts/references/x-layout-patterns.md +7 -8
- package/topmind-viral-posts/references/x-post-format.md +10 -8
- package/topmind-viral-posts/scripts/count_words.py +88 -0
- package/topmind-viral-posts/scripts/de_ai_lint.py +447 -0
- package/topmind-viral-posts/scripts/lint_x_post.py +69 -181
- package/topmind-viral-posts/scripts/negative_tests.py +1 -1
- package/topmind-viral-posts/scripts/revise_check.py +194 -0
- package/topmind-wechat-post/README.en.md +29 -17
- package/topmind-wechat-post/README.md +32 -20
- package/topmind-wechat-post/SKILL.md +84 -61
- package/topmind-wechat-post/package.json +1 -1
- package/topmind-wechat-post/references/case-notes.md +2 -3
- package/topmind-wechat-post/references/core-voice.md +140 -0
- package/topmind-wechat-post/references/de-ai-rules.md +66 -42
- package/topmind-wechat-post/references/element-spec.md +9 -6
- package/topmind-wechat-post/references/image-sourcing.md +11 -4
- package/topmind-wechat-post/references/known-pits.md +11 -3
- package/topmind-wechat-post/references/revision-workflow.md +27 -19
- package/topmind-wechat-post/references/typography-rules.md +13 -15
- package/topmind-wechat-post/references/workflow.md +33 -23
- package/topmind-wechat-post/references/writing-principles.md +40 -34
- package/topmind-wechat-post/references/writing-quality.md +2 -2
- package/topmind-wechat-post/references/x-delivery-contract.md +2 -2
- package/topmind-wechat-post/references/x-post-format.md +10 -8
- package/topmind-wechat-post/scripts/article_scaffold.py +95 -0
- package/topmind-wechat-post/scripts/audit-provenance.py +12 -1
- package/topmind-wechat-post/scripts/check_article.py +206 -0
- package/topmind-wechat-post/scripts/count_words.py +88 -0
- package/topmind-wechat-post/scripts/de_ai_lint.py +447 -0
- package/topmind-wechat-post/scripts/lint-wechat.py +12 -2
- package/topmind-wechat-post/scripts/lint_x_post.py +69 -181
- package/topmind-wechat-post/scripts/md2wechat.py +77 -19
- package/topmind-wechat-post/scripts/negative_tests.py +77 -4
- package/topmind-wechat-post/scripts/new-article.py +80 -9
- package/topmind-wechat-post/scripts/push-to-topstream.py +5 -4
- package/topmind-wechat-post/scripts/revise_check.py +194 -0
- package/topmind-wechat-post/scripts/scan_ai_flavor_builtin.py +3 -2
- package/topmind-wechat-post/scripts/sync-mapping.py +20 -12
- package/topmind-wechat-post/scripts/sync-status.py +19 -10
- package/topmind-wechat-post/scripts/wechat_paths.py +21 -0
- package/topmind-x-article/README.en.md +15 -11
- package/topmind-x-article/README.md +15 -10
- package/topmind-x-article/SKILL.md +75 -93
- package/topmind-x-article/package.json +1 -1
- package/topmind-x-article/references/core-voice.md +140 -0
- package/topmind-x-article/references/de-ai-rules.md +66 -42
- package/topmind-x-article/references/image-sourcing.md +11 -4
- package/topmind-x-article/references/publish-checklist.md +13 -9
- package/topmind-x-article/references/revision-workflow.md +27 -19
- package/topmind-x-article/references/writing-principles.md +40 -34
- package/topmind-x-article/references/x-delivery-contract.md +2 -2
- package/topmind-x-article/references/x-format.md +13 -12
- package/topmind-x-article/references/x-html-format.md +8 -5
- package/topmind-x-article/references/x-post-format.md +10 -8
- package/topmind-x-article/scripts/article_scaffold.py +95 -0
- package/topmind-x-article/scripts/audit-provenance.py +377 -0
- package/topmind-x-article/scripts/check_article.py +206 -0
- package/topmind-x-article/scripts/count_words.py +88 -0
- package/topmind-x-article/scripts/de_ai_lint.py +447 -0
- package/topmind-x-article/scripts/lint_x_post.py +69 -181
- package/topmind-x-article/scripts/md2x-html.py +88 -7
- package/topmind-x-article/scripts/md2x.py +26 -10
- package/topmind-x-article/scripts/negative_tests.py +52 -3
- package/topmind-x-article/scripts/revise_check.py +194 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,45 @@
|
|
|
1
|
+
## [0.8.45] - 2026-10-18
|
|
2
|
+
|
|
3
|
+
> 根包 0.8.44 → **0.8.45**(patch);技能版本:topmind-wechat-post 0.3.15 → 0.3.16、topmind-x-article 0.4.21 → 0.4.22、topmind-revise 0.1.0 → 0.1.1、topmind-briefs 0.2.23 → 0.2.24、topmind-cover 0.4.12 → 0.4.13、topmind-format 0.1.8 → 0.1.9、topmind-viral-posts 0.3.15 → 0.3.16(后四个只是随包共享副本更新);topmind-poster 0.1.6 不变。
|
|
4
|
+
|
|
5
|
+
### 新增(长文交付改造:单源 Markdown,HTML 按需)
|
|
6
|
+
|
|
7
|
+
- 长文改为一个文章文件夹 `<文章名>/`:唯一源稿 `<文章名>.md`(frontmatter 五项 title / date / status / tags / cover,H1 = title = 文件名)、`images/`(按出现顺序编号)、`cover/`、私有 `素材来源.md`、`raw/`、`out/`(派生产物,可随时重建)。默认只交付 Markdown,Obsidian 里直接能看;要 X 版或公众号版时再派生到 `out/`。
|
|
8
|
+
- 新增共享脚本 `article_scaffold.py`(建文章文件夹;文件名安全化、最长 80 字;已存在就报错,不覆盖)和 `check_article.py`(E 级:frontmatter 五项、标题一致、图片存在、编号顺序与出现顺序一致(后出现的图序号反而更小才报)、无 `![[ ]]` / callout / `:::`;W 级:没被引用的图、远程图片、编号不连续或带 11a 这类插入后缀、自制图标注 W18;有 E 退出码 1)。
|
|
9
|
+
- topmind-wechat-post / topmind-x-article 默认组合 topmind-revise:写完先由 revise 执行改稿与质量三关(嵌入模式,完整报告落 `out/改稿报告.md`),HTML / 纯文本只在用户要时生成。
|
|
10
|
+
|
|
11
|
+
### 变更
|
|
12
|
+
|
|
13
|
+
- `md2x-html.py`:源稿没有 `[图N]` 时直接按文档顺序读独占一行的 `![]()`(路径相对 md 所在目录,代码块内不动,远程图片跳过并告警),不再需要派生 `X长文.md`;图片下一行的「来源:」渲染成小号灰字图注;`--cover` 缺省读 frontmatter 的 `cover`;`--out` 缺省 `<文章文件夹>/out/X长文.html`;有 `[图N]` 却没给图片来源时直接报错。`--images-from` / `--images` 旧用法保留。
|
|
14
|
+
- `md2x.py`:列表默认 `plain`(「· 」「1)」,二级缩进两格),`--list-style emoji` 可选;`--out` 缺省 `out/X发布稿.txt`。
|
|
15
|
+
- `md2wechat.py`:二级标题有手写序号(「一、」「1.」)时原样保留,不再剥离、不再叠加自动编号,导读用「·」;新增 `--auto-number` 恢复旧行为;`--out-dir` 缺省 `<输入目录>/out`、`--slug` 缺省文件名、`--asset-root` 缺省输入目录;图片后的「来源:」行渲染成图注。
|
|
16
|
+
- wechat-post:`new-article.py` 默认建新结构,`--legacy --slug` 保留旧的 `YYYY-MM-DD-slug/公众号稿.md`;`sync-status.py` / `sync-mapping.py` / `push-to-topstream.py` 新旧结构都认,新结构只改 frontmatter 的 status、不改目录名,旧包的 `-released` 改名逻辑不变;`lint-wechat.py` 对新源稿里的 `:::` 报错(`公众号稿.md` 或 `--legacy` 只告警);`direction / source_file / target_file / word_count` 改为可选字段。
|
|
17
|
+
- `de_ai_lint.py` 的 W18:图片下一行写了「来源:自制,数据:…」也算标清楚;`audit-provenance.py` 的 `--draft` 可以直接给文章文件夹。
|
|
18
|
+
- 文档:wechat-post / x-article 的 SKILL.md、README 与 references(workflow、typography-rules、element-spec、known-pits、x-html-format、x-format、publish-checklist)换成新文件夹与按需派生;x-article 的「文本派生铁律」「HTML 占位符」「配图错位」三节合并为「派生规则」;`writing-principles.md` 第六节改为「单源、按需派生」。
|
|
19
|
+
- 旧交付包只读兼容,不自动迁移。
|
|
20
|
+
|
|
21
|
+
## [0.8.44] - 2026-10-18
|
|
22
|
+
|
|
23
|
+
> 根包 0.8.43 → **0.8.44**(patch);技能版本:新增 topmind-revise **0.1.0**;topmind-briefs 0.2.22 → 0.2.23、topmind-cover 0.4.11 → 0.4.12、topmind-format 0.1.7 → 0.1.8、topmind-viral-posts 0.3.14 → 0.3.15、topmind-wechat-post 0.3.14 → 0.3.15、topmind-x-article 0.4.20 → 0.4.21;topmind-poster 0.1.6 不变。
|
|
24
|
+
|
|
25
|
+
### 新增(规则层三层设计 + 改稿与质检技能)
|
|
26
|
+
|
|
27
|
+
- 新技能 **topmind-revise(改稿与质检)**:四种模式(只审不改 / 改稿 / 嵌入 / 快审),流程「事实 → 逻辑 → 删冗余 → 去 AI 味 → 核心经验对照 → 排版 → 保真审计 → 过度改稿检查」;每处改动对应规则编号或作者意见,没命中的段落不动。
|
|
28
|
+
- 新增共享规约 `core-voice.md`:V01–V33 场景规则(标题、开头、收尾、数字、引用、来源行、列表、emoji、回复、段子配方等)与文体速查表;briefs、viral-posts、format、wechat-post、x-article、cover、revise 随包自带。
|
|
29
|
+
- `de-ai-rules.md` 升级到 v2:改写边界补「何时不改」「有作者样本就跟样本」;Z01–Z38 加信号强弱与脚本列,新增单句收尾、格言式伪深度、和假想敌辩论、句式开头复读、小节过渡句、复述图片、「人名说:」、新闻式精确等条目;P03 对首行「?!」豁免;「怎么跑」改为 E 清零、W 有结论、H 只提示。
|
|
30
|
+
- 新增共享脚本 `de_ai_lint.py`:W 警告 + H 提示两级,`--genre long|short|duanzi|reply|title`、`--json`、`--no-hints`、`--strict`(H 不计入);新增 W19「人名说:」、W20 过渡句 / 不言自明的引导语、W21 复述图片,以及 H1–H12(语境词、短文「!!」一处、我认为、新闻式精确、对仗收句、来源行描述图、emoji 过密、无效信息、说教式反问标题、段落超过 3 句、短文话题标签超过 2 个、长文「人名说:」)。
|
|
31
|
+
- 新增共享脚本 `count_words.py`(统一字数口径)、`revise_check.py`(数字 / 引语 / 英文专名 / 确定性词保真比对 + 过度改稿比例 + 改稿报告骨架);`audit-provenance.py` 从 wechat-post 移到 `shared/`,分发给 wechat-post、x-article、revise。
|
|
32
|
+
- 仓库级规则回归 `scripts/test_lint_rules.py`(不应报 38 条、应报 W 26 条、应报 H 14 条),接入 `ci_skill_gates.sh`。
|
|
33
|
+
|
|
34
|
+
### 变更
|
|
35
|
+
|
|
36
|
+
- `lint_x_post.py` 的去 AI 味部分改为复用 `de_ai_lint.py`,原有错误 / 警告编号和参数不变;新增 `--genre`、`--no-hints`,汇总行增加「提示」数;`--fix --style` 默认改为纯文本列表(「·」「1)」),要 emoji 时加 `--style emoji`。
|
|
37
|
+
- 从 W 降为 H 的语境词:「一文读懂」「毫无疑问 / 不可否认」「归根结底」「真正的」「重磅 / 里程碑」「未来已来 / 拭目以待」「总结来说 / 总的来说」;「综上所述」「首先 / 其次 / 最后」「真正的 X 从来不是」等仍是 W。
|
|
38
|
+
- `writing-principles.md`:标题不反问、不说教(一.5);措辞偏好、吸引力清单、长文改稿按 core-voice 收紧(过去一句 + 图、未来用「预计 / 大概率」、按读者三档解释概念、段落 2–3 句);涉及国内厂商改为「不贬低、不站队、不传谣」。`revision-workflow.md` 重写为 revise 的完整流程(没装 revise 时手动走)。
|
|
39
|
+
- X 文本规约:列表默认「·」、行多用「1)」,emoji 只给短列表;短文事实讲完就停、不硬加收尾句;话题标签默认 2 个(运营段子 1–3 个);`image-sourcing.md` 补「来源:」行写法。
|
|
40
|
+
- briefs:首行一句话题陈述、示例去掉收尾句;viral-posts:互动钩子只限运营引流类,新增「段子配方」「回复与转发点评」两节和一个话题段子示例;format:H 提示不写进「建议改」,改写转 revise;cover:封面大字由文章标题提炼、主题词直给;wechat-post / x-article:质量三关可由 revise 执行,引语正文写「人名:中文意思」,媒体转述点名媒体,开头改为引用 core-voice V05;`scan_ai_flavor_builtin.py` 改为直接复用 `de_ai_lint.py`。
|
|
41
|
+
- evals 新增 revise 5 条(含 2 条负例)及 briefs / x-article / wechat-post 与 revise 的组合用例;现成稿子的润色、去 AI 味改稿改由 revise 承接。
|
|
42
|
+
|
|
1
43
|
## [0.8.43] - 2026-10-17
|
|
2
44
|
|
|
3
45
|
> 根包 0.8.42 → **0.8.43**(patch);技能版本:topmind-briefs 0.2.21 → 0.2.22、topmind-format 0.1.6 → 0.1.7、topmind-viral-posts 0.3.13 → 0.3.14、topmind-wechat-post 0.3.13 → 0.3.14、topmind-x-article 0.4.19 → 0.4.20。
|
package/README.en.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
[](https://github.com/topmindspace/topmind-writing-skills/actions/workflows/ci.yml)
|
|
10
10
|
[](LICENSE)
|
|
11
11
|
|
|
12
|
-
**TopMindSpace writing-skills collection** — WeChat articles, X long-form posts, short-form briefs, viral short posts, cover art, long-image rendering:
|
|
12
|
+
**TopMindSpace writing-skills collection** — WeChat articles, X long-form posts, short-form briefs, viral short posts, revision and quality checks, cover art, long-image rendering: seven skills, one repo.
|
|
13
13
|
|
|
14
14
|
<p align="center">
|
|
15
15
|
<img src="docs/assets/writing-cover.png" alt="topmind-writing-skills · writing skills collection" width="960" />
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
### topmind-wechat-post · WeChat article authoring
|
|
21
21
|
|
|
22
|
-
Full lifecycle for WeChat articles:
|
|
22
|
+
Full lifecycle for WeChat articles: single-source article folder (`<title>/<title>.md`), review & rewrite, three quality gates (run by topmind-revise by default: facts / logic / de-AI-flavor), WeChat inline typography on request (images must be embedded, output goes to `out/`), publish checklist and status sync. Hand-written heading numbers are kept as written; legacy `公众号稿.md` packages stay readable. Python stdlib only — zero dependencies.
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
25
|
npx @topmindspace/topmind-writing-skills install topmind-wechat-post
|
|
@@ -27,7 +27,7 @@ npx @topmindspace/topmind-writing-skills install topmind-wechat-post
|
|
|
27
27
|
|
|
28
28
|
### topmind-x-article · One-click X long-form publishing
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
Delivers one `<title>.md` by default (after topmind-revise); when you want to post on X, derives into `out/` on request: one-click-copy HTML (rich text; reads the source's `![]()` lines and embeds images in order, "来源:" lines become captions) / plain-text fallback (`md2x.py`: images → `[图N]`, tables → "item: value" lists, lists → "·" / "1)" with emoji optional, because plain-text X does not render Markdown lists) + cover art + publish checklist. Publishing is done by hand-pasting; fetch the text back for verification after posting.
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
33
|
npx @topmindspace/topmind-writing-skills install topmind-x-article
|
|
@@ -57,18 +57,26 @@ Paste existing text: **to duanzi** → one sentence per line with blank lines be
|
|
|
57
57
|
npx @topmindspace/topmind-writing-skills install topmind-format
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
+
### topmind-revise · Revision and quality check
|
|
61
|
+
|
|
62
|
+
Makes a draft shorter, more accurate and closer to the author's voice, and proves the facts survived. Four modes: audit (report only), revise (back up, then write back), embed (called by the WeChat / X long-form skills; returns only the final draft) and quick (titles, short posts, one-liners, replies). Pipeline: facts → logic → cut redundancy → de-AI → voice check → layout → fidelity check → over-edit check; `revise_check.py` diffs numbers, quotes, proper nouns and hedging words, and reports the share of clean paragraphs that were rewritten anyway.
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
npx @topmindspace/topmind-writing-skills install topmind-revise
|
|
66
|
+
```
|
|
67
|
+
|
|
60
68
|
### Shared X plain-text rules (all skills that output X text)
|
|
61
69
|
|
|
62
70
|
Single source in `shared/references/`, distributed to each skill's `references/` via the manifest:
|
|
63
71
|
|
|
64
72
|
| Doc | Covers |
|
|
65
73
|
|---|---|
|
|
66
|
-
| `x-delivery-contract.md` (must read) | Short-post workflow: sources → original post/images → content → layout; emoji optional for short posts (
|
|
74
|
+
| `x-delivery-contract.md` (must read) | Short-post workflow: sources → original post/images → content → layout; emoji optional for short posts (bullets default to 「·」, 「1)」 for longer lists, emoji only for short lists, 【headings】 for longer posts), none at all in duanzi; never `- ` / `1. `; the X short-post / duanzi body is one copy-ready plain-text block (hashtags last); **links (including sources), original images and generated images are sent separately**; X long-form and WeChat articles may keep in-text links |
|
|
67
75
|
| `x-post-format.md` | No Markdown, bullet sets, spacing, sources, skeletons, images, WeChat → X |
|
|
68
76
|
| `emoji-system.md` | The TopMind emoji system (short posts only, optional): 0–2 persona motifs (🐔 🐱 🌱) at start/end; 0–1 keyword-matched title emoji; one bullet set per post |
|
|
69
77
|
| `x-layout-patterns.md` | Layout patterns in our own words |
|
|
70
78
|
|
|
71
|
-
Checks: `lint_x_post.py` (E1–E9 Markdown leftovers; E10–E12 URLs / source lines / image notes in the body
|
|
79
|
+
Checks: `lint_x_post.py` reports three levels. **E errors** (E1–E9 Markdown leftovers; E10–E12 URLs / source lines / image notes in the body) must be zero. **W warnings** (W9 AI-sounding phrases, W10 first line too long, W12 notes / internal tags, W14 paragraph too long, W15 / W16 Chinese / English structural patterns, W17 punctuation tics, W18 self-made image without data source, W19 「name 说:」, W20 transition sentences, W21 retelling an image; W13 any emoji in a duanzi post with `--duanzi`) each need a decision. **H hints** (context words, news-style precision, parallel closing lines, emoji density, etc.) are advisory and never fail `--strict`. Pick the genre with `--genre long|short|duanzi|reply|title`; hide hints with `--no-hints`. The de-AI part shares one rule set with `de_ai_lint.py` (`de-ai-rules.md`).
|
|
72
80
|
|
|
73
81
|
### topmind-cover · Cover art generation
|
|
74
82
|
|
|
@@ -99,13 +107,21 @@ npx @topmindspace/topmind-writing-skills install topmind-poster
|
|
|
99
107
|
> Also do not install the old package's `^2` (2.0.0–2.1.1 deprecated).
|
|
100
108
|
|
|
101
109
|
|
|
102
|
-
## Shared writing workflow (since 0.8.
|
|
110
|
+
## Shared writing workflow (since 0.8.44: three layers)
|
|
111
|
+
|
|
112
|
+
The writing skills share one rule set (`shared/references/`, copied into each skill so standalone installs work):
|
|
113
|
+
|
|
114
|
+
| Layer | Files | Covers |
|
|
115
|
+
|---|---|---|
|
|
116
|
+
| Voice | `core-voice.md` | Scenario rules (V01–V33): titles, openings, endings, numbers, quotes, source lines, lists, emoji, replies, joke recipe |
|
|
117
|
+
| De-AI | `de-ai-rules.md` + `de_ai_lint.py` | Rewrite boundaries plus structural patterns (Z / E / P codes); the linter reports W (each needs a decision) and H (advisory) |
|
|
118
|
+
| Execution | `topmind-revise` | Runs `revision-workflow.md` end to end, with a fidelity check, an over-edit check and a revision report |
|
|
103
119
|
|
|
104
|
-
|
|
120
|
+
Also:
|
|
105
121
|
|
|
106
|
-
- **Originals first** (`image-sourcing.md`): find official / original-post / third-party images before writing and log sources in
|
|
107
|
-
- **De-AI pass is mandatory
|
|
108
|
-
- **Fixed revision order** (`revision-workflow.md`):
|
|
122
|
+
- **Originals first** (`image-sourcing.md`): find official / original-post / third-party images before writing and log sources in the private `素材来源.md` inside the article folder; self-made charts are a fallback and must be labeled 自制 with the data source.
|
|
123
|
+
- **De-AI pass is mandatory**: rewrite boundaries first (change wording, never facts or certainty); W warnings need a decision rather than a zero count; the regression set `scripts/test_lint_rules.py` keeps normal writing from being flagged. topmind-format reports hits without rewriting.
|
|
124
|
+
- **Fixed revision order** (`revision-workflow.md`): facts → logic → cut redundancy → de-AI → voice check → layout → fidelity check → over-edit check; back up first and report before/after word counts (`count_words.py`). `topmind-revise` runs it when installed.
|
|
109
125
|
|
|
110
126
|
## Original examples
|
|
111
127
|
|
|
@@ -116,6 +132,7 @@ Every skill ships sample outputs written by us (fictional or neutral topics; no
|
|
|
116
132
|
| topmind-viral-posts (one-liners) | [`topmind-viral-posts/examples/`](./topmind-viral-posts/examples/) |
|
|
117
133
|
| topmind-briefs (short posts) | [`topmind-briefs/examples/`](./topmind-briefs/examples/) |
|
|
118
134
|
| topmind-format (formatting) | [`topmind-format/examples/`](./topmind-format/examples/) |
|
|
135
|
+
| topmind-revise (revision) | [`topmind-revise/examples/`](./topmind-revise/examples/) |
|
|
119
136
|
| topmind-x-article (X long-form) | [`topmind-x-article/examples/`](./topmind-x-article/examples/) |
|
|
120
137
|
| topmind-wechat-post (WeChat) | [`topmind-wechat-post/examples/`](./topmind-wechat-post/examples/) |
|
|
121
138
|
| topmind-poster (posters) | [`topmind-poster/examples/`](./topmind-poster/examples/) |
|
|
@@ -128,15 +145,16 @@ Every skill ships sample outputs written by us (fictional or neutral topics; no
|
|
|
128
145
|
|
|
129
146
|
| Skill | Version | What it does |
|
|
130
147
|
|-------|---------|--------------|
|
|
131
|
-
| [`topmind-wechat-post`](./topmind-wechat-post/) | **0.3.
|
|
132
|
-
| [`topmind-x-article`](./topmind-x-article/) | **0.4.
|
|
133
|
-
| [`topmind-cover`](./topmind-cover/) | **0.4.
|
|
134
|
-
| [`topmind-briefs`](./topmind-briefs/) | **0.2.
|
|
135
|
-
| [`topmind-viral-posts`](./topmind-viral-posts/) | **0.3.
|
|
136
|
-
| [`topmind-format`](./topmind-format/) | **0.1.
|
|
148
|
+
| [`topmind-wechat-post`](./topmind-wechat-post/) | **0.3.16** | WeChat article lifecycle: single-source article folder, review, 3 quality gates (revise by default), inline typography on request & publish checklist |
|
|
149
|
+
| [`topmind-x-article`](./topmind-x-article/) | **0.4.22** | X long-form: single-source Markdown (revise by default) → on-request one-click-copy HTML (images/prompt copy, click-to-zoom images) / plain-text fallback + cover + checklist |
|
|
150
|
+
| [`topmind-cover`](./topmind-cover/) | **0.4.13** | Cover art for X / WeChat (X master 1500×600 / 5:2): striking, theme-focused; 22-style cover style library + 16:9 X short-post cover scene + 24 title treatments + 7-layer scene recipe + 55 example images (22 styles × 2 sizes + 11 variant samples) + 1 style overview |
|
|
151
|
+
| [`topmind-briefs`](./topmind-briefs/) | **0.2.24** | Short-form briefs (WeChat + X): one topic, one chart; data rankings / paper explainers / product alerts / mechanism explainers; sources → images → content → layout; one copy-ready plain-text X block (no HTML by default, emoji optional, no AI tone), links / images sent separately; asks before generating any image |
|
|
152
|
+
| [`topmind-viral-posts`](./topmind-viral-posts/) | **0.3.16** | X viral short posts: 18 template types + combinations, duanzi layout (blank lines, no emoji, plain bullet lines), one copy-ready plain-text block per post with hashtags last, links / images sent separately, classification tags listed separately; asks before generating an image |
|
|
153
|
+
| [`topmind-format`](./topmind-format/) | **0.1.9** | X plain-text formatter: to duanzi (blank lines, no emoji) / to short post (paragraphing + sensible lists, emoji optional); layout only, words unchanged, with a fidelity check; one copy-ready plain-text body, links / images sent separately |
|
|
154
|
+
| [`topmind-revise`](./topmind-revise/) | **0.1.1** | Revision and quality check: edit, tighten, de-AI, three quality gates and fidelity audit; four modes (audit / revise / embed / quick); every change maps to a rule code, with an over-edit guard; the long-form skills use it by default |
|
|
137
155
|
| [`topmind-poster`](./topmind-poster/) | **0.1.6** | HTML+CSS → high-res long image / poster / infographic PNG: headless Chrome 2× screenshot + auto-trim; "one image per section" batch workflow (generator + renderer) |
|
|
138
156
|
|
|
139
|
-
Installer [`@topmindspace/topmind-writing-skills`](https://www.npmjs.com/package/@topmindspace/topmind-writing-skills) is **0.8.
|
|
157
|
+
Installer [`@topmindspace/topmind-writing-skills`](https://www.npmjs.com/package/@topmindspace/topmind-writing-skills) is **0.8.45** (whole-repo same-tag releases).
|
|
140
158
|
|
|
141
159
|
### Which skill, and how they combine
|
|
142
160
|
|
|
@@ -144,12 +162,13 @@ Installer [`@topmindspace/topmind-writing-skills`](https://www.npmjs.com/package
|
|
|
144
162
|
|---|---|---|
|
|
145
163
|
| A data-driven brief (numbers, rankings, launches) | `topmind-briefs` | → `topmind-format` for layout; no original image → `topmind-cover` 16:9 |
|
|
146
164
|
| Engagement jokes, follower posts | `topmind-viral-posts` | → `topmind-format` to re-lay duanzi; pair with a briefs version for the same event |
|
|
147
|
-
| Existing text, layout only | `topmind-format` | words unchanged; rewriting →
|
|
148
|
-
|
|
|
149
|
-
|
|
|
165
|
+
| Existing text, layout only | `topmind-format` | words unchanged; rewriting → `topmind-revise` |
|
|
166
|
+
| Edit, tighten, de-AI, quality check | `topmind-revise` | standalone, or called by x-article / wechat-post after drafting |
|
|
167
|
+
| Thousands-of-words X article | `topmind-x-article` | + `topmind-revise` + `topmind-cover` (5:2); shorter than a post → briefs |
|
|
168
|
+
| WeChat long-form & layout | `topmind-wechat-post` | + `topmind-revise` + `topmind-cover`; 300–800-char briefs → briefs |
|
|
150
169
|
| Long images, posters, infographics | `topmind-poster` | copy written first by briefs / wechat-post |
|
|
151
170
|
|
|
152
|
-
> SKILL.md frontmatter uses only Agent Skills spec keys at the top level (`name` / `description` / `license` / `metadata`); version, `action_category`, `triggers` and other custom keys live under `metadata` as strings, so `skills-ref validate` passes. Shared scripts and `writing-principles.md` have a single source in `shared/`; skill folders keep byte-identical copies (CI checks with `node scripts/sync_shared.js --check`). The npm package ships only `overview.png` from the cover examples; the per-style samples stay on GitHub / in the Release zip.
|
|
171
|
+
> SKILL.md frontmatter uses only Agent Skills spec keys at the top level (`name` / `description` / `license` / `metadata`); version, `action_category`, `triggers` and other custom keys live under `metadata` as strings, so `skills-ref validate` passes. Shared scripts and references (`core-voice.md`, `de-ai-rules.md`, `writing-principles.md` and more) have a single source in `shared/`; skill folders keep byte-identical copies (CI checks with `node scripts/sync_shared.js --check`). The npm package ships only `overview.png` from the cover examples; the per-style samples stay on GitHub / in the Release zip.
|
|
153
172
|
|
|
154
173
|
## Install
|
|
155
174
|
|
|
@@ -181,6 +200,7 @@ topmind-writing-skills/
|
|
|
181
200
|
├─ topmind-briefs/ # skill (SKILL.md + assets + references + scripts)
|
|
182
201
|
├─ topmind-viral-posts/ # skill (X viral short posts, duanzi layout)
|
|
183
202
|
├─ topmind-format/ # skill (X plain-text formatter: duanzi / short post)
|
|
203
|
+
├─ topmind-revise/ # skill (revision and quality check)
|
|
184
204
|
├─ topmind-poster/ # skill (HTML → high-res long image / section images)
|
|
185
205
|
├─ topmind-cover/ # skill
|
|
186
206
|
├─ topmind-wechat-post/ # skill
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
[](https://github.com/topmindspace/topmind-writing-skills/actions/workflows/ci.yml)
|
|
8
8
|
[](LICENSE)
|
|
9
9
|
|
|
10
|
-
**TopMindSpace 写作技能合集** —— 公众号文章、X
|
|
10
|
+
**TopMindSpace 写作技能合集** —— 公众号文章、X 长文、干货短文、引流段子、改稿与质检、封面配图、长图出图:七个技能,一个仓库。
|
|
11
11
|
|
|
12
12
|
<p align="center">
|
|
13
13
|
<img src="docs/assets/writing-cover.png" alt="topmind-writing-skills · 写作技能合集" width="960" />
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
### topmind-wechat-post · 公众号创作
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
公众号文章全生命周期:单源文章文件夹(`<文章名>/<文章名>.md`)、审校改写、质量三关(默认组合 topmind-revise:事实 / 逻辑 / 去 AI 味)、按需出微信内联排版(图片必内嵌,产物进 `out/`)、发布清单与状态同步。手写小标题序号原样保留;旧 `公众号稿.md` 交付包只读兼容。脚本纯 Python 标准库,零依赖。
|
|
21
21
|
|
|
22
22
|
```bash
|
|
23
23
|
npx @topmindspace/topmind-writing-skills install topmind-wechat-post
|
|
@@ -25,7 +25,7 @@ npx @topmindspace/topmind-writing-skills install topmind-wechat-post
|
|
|
25
25
|
|
|
26
26
|
### topmind-x-article · X 长文一键发布
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
默认交付一份 `<文章名>.md`(先过 topmind-revise);要发 X 时再按需派生到 `out/`:一键复制 HTML(富文本,直接读源稿的 `![]()` 按顺序内嵌配图,「来源:」行成图注)/ 纯文本兜底(`md2x.py`:图片→`[图N]`、表格→"项:值"列表、列表→「·」「1)」,emoji 可选,因为 X 纯文本不渲染 Markdown 列表)+ 封面图 + 发布清单。发布走人工粘贴,发布后抓回核对。
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
31
|
npx @topmindspace/topmind-writing-skills install topmind-x-article
|
|
@@ -57,18 +57,26 @@ npx @topmindspace/topmind-writing-skills install topmind-viral-posts
|
|
|
57
57
|
npx @topmindspace/topmind-writing-skills install topmind-format
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
+
### topmind-revise · 改稿与质检
|
|
61
|
+
|
|
62
|
+
把一篇稿子改得更短、更准、更像作者本人,并且能证明没改坏事实。四种模式:只审不改(出改稿报告)、改稿(先备份再写回)、嵌入(公众号 / X 长文写完默认调用,只回终稿)、快审(标题、短文、段子、回复)。流程:事实 → 逻辑 → 删冗余 → 去 AI 味 → 核心经验对照 → 排版 → 保真审计 → 过度改稿检查;`revise_check.py` 比对数字、引语、专名和确定性词,并统计「没命中却被改写」的段落占比。
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
npx @topmindspace/topmind-writing-skills install topmind-revise
|
|
66
|
+
```
|
|
67
|
+
|
|
60
68
|
### X 文本统一规约(所有产出 X 纯文本的技能共用)
|
|
61
69
|
|
|
62
70
|
共享文档在 `shared/references/`,经 manifest 分发到各技能 `references/`:
|
|
63
71
|
|
|
64
72
|
| 文档 | 管什么 |
|
|
65
73
|
|---|---|
|
|
66
|
-
| `x-delivery-contract.md`(必读必守) | 短文工作流:信源 → 原帖原图 → 内容 → 排版;短文 emoji
|
|
74
|
+
| `x-delivery-contract.md`(必读必守) | 短文工作流:信源 → 原帖原图 → 内容 → 排版;短文 emoji 不强制(分点默认「·」,行多用「1)」,短列表才用 emoji,较长短文用【小标题】),段子完全不用 emoji,都禁用 `- ` `1. `;X 短文 / 段子的正文是一段可直接复制的纯文本(话题标签在末行),**链接(含来源)、原图、配图另发**;X 长文与公众号长文可保留文内链接 |
|
|
67
75
|
| `x-post-format.md` | 不用 Markdown、列表符号、留白、来源、骨架、配图、公众号稿→X 稿 |
|
|
68
76
|
| `emoji-system.md` | TopMind emoji 体系唯一出处(只用于短文体,且不强制):人设点缀 🐔 🐱 🌱 0–2 个只放首尾;标题 emoji 0–1 个对上关键词;列表符号一帖一套 |
|
|
69
77
|
| `x-layout-patterns.md` | 我们总结的版式规律(首行给结论、列表引导语、【小标题】分节等) |
|
|
70
78
|
|
|
71
|
-
检查:`lint_x_post.py
|
|
79
|
+
检查:`lint_x_post.py` 分三级——**E 错误**(E1–E9 Markdown 残留;E10–E12 正文有 URL / 来源行 / 配图说明)必须清零;**W 警告**(W9 AI 套话、W10 首行太长、W12 混入说明 / 内部标签、W14 单段过长、W15 / W16 中英文结构套话、W17 标点腔、W18 自制图没标数据来源、W19「人名说:」、W20 过渡句、W21 复述图片;`--duanzi` 时 W13 段子里出现 emoji)每条要有结论;**H 提示**(语境词、新闻式精确、对仗收句、emoji 过密等)只供判断,不计入 `--strict`。`--genre long|short|duanzi|reply|title` 选文体,`--no-hints` 关掉提示。去 AI 味部分和 `de_ai_lint.py` 是同一份规则(`de-ai-rules.md`)。
|
|
72
80
|
|
|
73
81
|
### topmind-cover · 封面配图生成
|
|
74
82
|
|
|
@@ -99,13 +107,21 @@ npx @topmindspace/topmind-writing-skills install topmind-poster
|
|
|
99
107
|
> 也不要安装旧包的 `^2`(2.0.0–2.1.1 已弃用)。
|
|
100
108
|
|
|
101
109
|
|
|
102
|
-
## 共用写作流程(0.8.
|
|
110
|
+
## 共用写作流程(0.8.44 起:三层设计)
|
|
111
|
+
|
|
112
|
+
写作技能共用一套规则(`shared/references/`,各技能自带副本,单独安装也能用):
|
|
113
|
+
|
|
114
|
+
| 层 | 文件 | 管什么 |
|
|
115
|
+
|---|---|---|
|
|
116
|
+
| 核心经验 | `core-voice.md` | 场景规则(V01–V33):标题、开头、收尾、数字、引用、来源行、列表、emoji、回复、段子配方…… |
|
|
117
|
+
| 去 AI 味 | `de-ai-rules.md` + `de_ai_lint.py` | 改写边界 + 结构模式(Z / E / P 编号);脚本分 W 警告(每条要有结论)和 H 提示(只供判断) |
|
|
118
|
+
| 执行 | `topmind-revise` | 按 `revision-workflow.md` 跑完改稿流程、保真审计和过度改稿检查,出改稿报告 |
|
|
103
119
|
|
|
104
|
-
|
|
120
|
+
另外:
|
|
105
121
|
|
|
106
|
-
- **原图优先**(`image-sourcing.md`):写字之前先找官方 / 原帖 /
|
|
107
|
-
- **去 AI
|
|
108
|
-
- **固定改稿流程**(`revision-workflow.md
|
|
122
|
+
- **原图优先**(`image-sourcing.md`):写字之前先找官方 / 原帖 / 第三方原图,来源记进文章文件夹里的私有 `素材来源.md`;自制图只作兜底,标「自制」和数据来源。
|
|
123
|
+
- **去 AI 味必过**:先守改写边界(只改表达,不改事实和确定性);W 警告不要求清零,要求每条有结论;规则回归测试 `scripts/test_lint_rules.py` 守住「不应报」的正常写法。topmind-format 只报告命中、不改字。
|
|
124
|
+
- **固定改稿流程**(`revision-workflow.md`):事实 → 逻辑 → 删冗余 → 去 AI 味 → 核心经验对照 → 排版 → 保真审计 → 过度改稿检查;每轮先备份,报改前 / 改后字数(`count_words.py`)。装了 `topmind-revise` 就由它执行。
|
|
109
125
|
|
|
110
126
|
## 原创示例
|
|
111
127
|
|
|
@@ -116,6 +132,7 @@ briefs、viral-posts、x-article、wechat-post 共用三份规约(`shared/refe
|
|
|
116
132
|
| topmind-viral-posts(段子) | [`topmind-viral-posts/examples/`](./topmind-viral-posts/examples/) |
|
|
117
133
|
| topmind-briefs(短文) | [`topmind-briefs/examples/`](./topmind-briefs/examples/) |
|
|
118
134
|
| topmind-format(排版) | [`topmind-format/examples/`](./topmind-format/examples/) |
|
|
135
|
+
| topmind-revise(改稿) | [`topmind-revise/examples/`](./topmind-revise/examples/) |
|
|
119
136
|
| topmind-x-article(X 长文) | [`topmind-x-article/examples/`](./topmind-x-article/examples/) |
|
|
120
137
|
| topmind-wechat-post(公众号) | [`topmind-wechat-post/examples/`](./topmind-wechat-post/examples/) |
|
|
121
138
|
| topmind-poster(长图海报) | [`topmind-poster/examples/`](./topmind-poster/examples/) |
|
|
@@ -128,15 +145,16 @@ briefs、viral-posts、x-article、wechat-post 共用三份规约(`shared/refe
|
|
|
128
145
|
|
|
129
146
|
| 技能 | 版本 | 做什么 |
|
|
130
147
|
|------|------|--------|
|
|
131
|
-
| [`topmind-wechat-post`](./topmind-wechat-post/) | **0.3.
|
|
132
|
-
| [`topmind-x-article`](./topmind-x-article/) | **0.4.
|
|
133
|
-
| [`topmind-cover`](./topmind-cover/) | **0.4.
|
|
134
|
-
| [`topmind-briefs`](./topmind-briefs/) | **0.2.
|
|
135
|
-
| [`topmind-viral-posts`](./topmind-viral-posts/) | **0.3.
|
|
136
|
-
| [`topmind-format`](./topmind-format/) | **0.1.
|
|
148
|
+
| [`topmind-wechat-post`](./topmind-wechat-post/) | **0.3.16** | 公众号文章全生命周期:单源文章文件夹、审校改写、质量三关(默认组合 revise)、按需出微信内联排版与发布清单 |
|
|
149
|
+
| [`topmind-x-article`](./topmind-x-article/) | **0.4.22** | X 长文:单源 Markdown(默认组合 revise)→ 按需出一键复制 HTML(含配图/提示词复制、图片点击放大)/ 纯文本兜底 + 封面图 + 发布清单 |
|
|
150
|
+
| [`topmind-cover`](./topmind-cover/) | **0.4.13** | 文章封面配图(X / 公众号共用,X 主尺寸 1500×600 / 5:2):震撼醒目主题突出;22 种封面风格库 + X 短文 16:9 封面场景 + 24 种标题花式 + 七层场景配方 + 55 张示例图(22 种风格 × 2 尺寸 + 11 张变体样张) + 1 张风格总览图 |
|
|
151
|
+
| [`topmind-briefs`](./topmind-briefs/) | **0.2.24** | 干货短文(公众号 + X 双平台):一件事讲透,数据榜单/论文解读/新品速递;信源 → 原图 → 内容 → 排版;X 版交付一段可复制纯文本(默认不出 HTML,emoji 可选,去 AI 味),链接 / 原图 / 配图另发,无原图先询问配图 |
|
|
152
|
+
| [`topmind-viral-posts`](./topmind-viral-posts/) | **0.3.16** | X 引流段子/爆款短篇:18 大类型模板 + 组合玩法,段子体(行间空行,零 emoji,分点不加符号)、每条一段可复制纯文本、话题标签在末行,链接 / 原图另发、分类标签另列;无原图先询问再走 topmind-cover |
|
|
153
|
+
| [`topmind-format`](./topmind-format/) | **0.1.9** | X 纯文本格式化:转段子(行间空行,零 emoji)/ 格式化成短文(分段 + 合理列表,emoji 可选),只动排版不改字,带原文保真校验;交付一段可复制纯文本,链接 / 原图另发 |
|
|
154
|
+
| [`topmind-revise`](./topmind-revise/) | **0.1.1** | 改稿与质检:改稿、精简、去 AI 味、质量三关与保真审计;四种模式(只审不改 / 改稿 / 嵌入 / 快审),每处改动对应规则编号,防过度改稿;长文技能默认组合 |
|
|
137
155
|
| [`topmind-poster`](./topmind-poster/) | **0.1.6** | HTML+CSS → 高清长图 / 海报 / 信息图 PNG:无头 Chrome 2× 截图 + 自动裁白;「一段一图」分段图批量出图(生成器 + 渲染器) |
|
|
138
156
|
|
|
139
|
-
安装器 [`@topmindspace/topmind-writing-skills`](https://www.npmjs.com/package/@topmindspace/topmind-writing-skills) 为 **0.8.
|
|
157
|
+
安装器 [`@topmindspace/topmind-writing-skills`](https://www.npmjs.com/package/@topmindspace/topmind-writing-skills) 为 **0.8.45**(整仓同 tag 发版)。
|
|
140
158
|
|
|
141
159
|
### 怎么选、怎么组合
|
|
142
160
|
|
|
@@ -144,14 +162,15 @@ briefs、viral-posts、x-article、wechat-post 共用三份规约(`shared/refe
|
|
|
144
162
|
|---|---|---|
|
|
145
163
|
| 一件事的干货短文(数据、榜单、发布) | `topmind-briefs` | → `topmind-format` 统一排版;没有原图 → 先问,同意后 `topmind-cover` 出 16:9 首图 |
|
|
146
164
|
| 引流段子、涨粉帖、互关帖 | `topmind-viral-posts` | → `topmind-format` 重排段子体;同一事件可配一条 briefs 干货版 |
|
|
147
|
-
| 现成文字只要排版(转段子 / 格式化) | `topmind-format` |
|
|
148
|
-
|
|
|
149
|
-
|
|
|
165
|
+
| 现成文字只要排版(转段子 / 格式化) | `topmind-format` | 只动排版不改字;要改写内容转 `topmind-revise` |
|
|
166
|
+
| 改稿、精简、去 AI 味、质检 | `topmind-revise` | 单独用;或被 x-article / wechat-post 写完长文时调用 |
|
|
167
|
+
| 数千字 X 长文 | `topmind-x-article` | + `topmind-revise`(改稿质检)+ `topmind-cover`(5:2 封面);短于一帖的内容走 briefs |
|
|
168
|
+
| 公众号长文与排版 | `topmind-wechat-post` | + `topmind-revise`(质量三关)+ `topmind-cover`;300–800 字短文走 briefs |
|
|
150
169
|
| 长图、海报、信息图 PNG | `topmind-poster` | 文案先由 briefs / wechat-post 写好 |
|
|
151
170
|
|
|
152
171
|
> SKILL.md frontmatter 顶层只用 Agent Skills 规范字段(`name` / `description` / `license` / `metadata`),版本、`action_category`、`triggers` 等自定义字段放在 `metadata` 下(字符串值),能通过官方校验器 `skills-ref validate`。
|
|
153
172
|
>
|
|
154
|
-
> 共享脚本与共享文档(`writing-principles.md`、X
|
|
173
|
+
> 共享脚本与共享文档(`core-voice.md`、`de-ai-rules.md`、`writing-principles.md`、X 文本规约四件套等)的唯一真源在 `shared/`,各技能目录保留逐字节副本(单独安装也能用);改共享文件只改 `shared/`,再跑 `npm run sync:shared`,CI 用 `--check` 校验。
|
|
155
174
|
>
|
|
156
175
|
> npm 包不含 cover 的单风格样张(`assets/examples/<style>*.png`),只保留 `overview.png`;完整样张见 GitHub 仓库或 Release zip。
|
|
157
176
|
|
|
@@ -185,6 +204,7 @@ topmind-writing-skills/
|
|
|
185
204
|
├─ topmind-briefs/ # 技能(SKILL.md + assets + references + scripts)
|
|
186
205
|
├─ topmind-viral-posts/ # 技能(X 引流段子/爆款短篇,段子体)
|
|
187
206
|
├─ topmind-format/ # 技能(X 纯文本格式化:转段子 / 格式化成短文)
|
|
207
|
+
├─ topmind-revise/ # 技能(改稿与质检)
|
|
188
208
|
├─ topmind-poster/ # 技能(HTML → 高清长图 / 分段图)
|
|
189
209
|
├─ topmind-cover/ # 技能
|
|
190
210
|
├─ topmind-wechat-post/ # 技能
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@topmindspace/topmind-writing-skills",
|
|
3
|
-
"version": "0.8.
|
|
4
|
-
"description": "TopMindSpace 写作技能合集 — 通过 npm / npx 安装技能(公众号长文、X 长文、干货短文、X
|
|
3
|
+
"version": "0.8.45",
|
|
4
|
+
"description": "TopMindSpace 写作技能合集 — 通过 npm / npx 安装技能(公众号长文、X 长文、干货短文、X 引流短帖、改稿与质检、封面图、长图海报)。只出稿与发布包,不代发。",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "TopMindspace",
|
|
7
7
|
"repository": {
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"x-twitter",
|
|
21
21
|
"briefs",
|
|
22
22
|
"viral-posts",
|
|
23
|
+
"revise",
|
|
23
24
|
"cover",
|
|
24
25
|
"poster"
|
|
25
26
|
],
|
|
@@ -37,6 +38,7 @@
|
|
|
37
38
|
"topmind-cover",
|
|
38
39
|
"topmind-format",
|
|
39
40
|
"topmind-poster",
|
|
41
|
+
"topmind-revise",
|
|
40
42
|
"topmind-viral-posts",
|
|
41
43
|
"topmind-wechat-post",
|
|
42
44
|
"topmind-x-article",
|
|
@@ -46,6 +48,7 @@
|
|
|
46
48
|
"!topmind-cover/dist/",
|
|
47
49
|
"!topmind-format/dist/",
|
|
48
50
|
"!topmind-poster/dist/",
|
|
51
|
+
"!topmind-revise/dist/",
|
|
49
52
|
"!topmind-viral-posts/dist/",
|
|
50
53
|
"!topmind-wechat-post/dist/",
|
|
51
54
|
"!topmind-x-article/dist/",
|
|
@@ -53,6 +56,7 @@
|
|
|
53
56
|
"!topmind-cover/package-lock.json",
|
|
54
57
|
"!topmind-format/package-lock.json",
|
|
55
58
|
"!topmind-poster/package-lock.json",
|
|
59
|
+
"!topmind-revise/package-lock.json",
|
|
56
60
|
"!topmind-viral-posts/package-lock.json",
|
|
57
61
|
"!topmind-wechat-post/package-lock.json",
|
|
58
62
|
"!topmind-x-article/package-lock.json"
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.24 (2026-10-18)
|
|
4
|
+
|
|
5
|
+
- 随包共享脚本更新:`md2x-html.py` 能直接读源稿的 `![]()` 按顺序嵌图、「来源:」行渲染成图注、`--out` 缺省 `out/X长文.html`(原有 `--images-from` 用法不变);`md2wechat.py` 默认保留手写小标题序号(`--auto-number` 恢复旧行为),`--out-dir` / `--slug` 有缺省值
|
|
6
|
+
- `de_ai_lint.py` 的 W18:图片下一行写了「来源:自制,数据:…」也算标清楚
|
|
7
|
+
|
|
8
|
+
## 0.2.23 (2026-10-18)
|
|
9
|
+
|
|
10
|
+
- 写法规则改为引用共享的 `core-voice.md`:首行一句话题陈述、事实讲完就停(去掉收尾句)、列表默认「·」、话题标签默认 2 个;引语正文写「人名:中文意思」;未完全确认的热点首行用一次「?!」,不写泛泛的「据报道」
|
|
11
|
+
- lint 分 W 警告 / H 提示两级:W 每条要有结论,H 只供判断;公众号版改跑 `de_ai_lint.py`
|
|
12
|
+
- 用户要改稿时转 `topmind-revise`,没装就按随包 `revision-workflow.md` 手动走
|
|
13
|
+
|
|
3
14
|
## 0.2.22 (2026-10-17)
|
|
4
15
|
|
|
5
16
|
- 去 AI 味改为必过步骤(`de-ai-rules.md`,lint 新增 W15–W18 与 `--md`);写字前先找原图(`image-sourcing.md`);改稿按固定四步(`revision-workflow.md`)
|
|
@@ -7,7 +7,7 @@ A brief is not a long-form article — **no HTML by default**: the workflow is v
|
|
|
7
7
|
The X version is one copy-ready plain-text block (emoji optional); **links (including sources), original images and any generated images are sent separately**, never mixed into the body.
|
|
8
8
|
The WeChat version is ~300–800 Chinese characters of Markdown. With no original image it asks before generating one.
|
|
9
9
|
|
|
10
|
-
- Version: **v0.2.
|
|
10
|
+
- Version: **v0.2.24** (ships with `@topmindspace/topmind-writing-skills@0.8.45`)
|
|
11
11
|
|
|
12
12
|
## Install
|
|
13
13
|
|
package/topmind-briefs/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
X 版交付一段可直接复制的纯文本(emoji 可选),**链接(含来源)、原图、配图另发**,不和正文混在一起;公众号版约 300–800 字 Markdown。
|
|
8
8
|
没有原图时先问要不要配图(`topmind-cover`);链接那一条写明来源名称、发布时间与 URL。
|
|
9
9
|
|
|
10
|
-
- 版本:**v0.2.
|
|
10
|
+
- 版本:**v0.2.24**(随 `@topmindspace/topmind-writing-skills@0.8.45` 发布)
|
|
11
11
|
|
|
12
12
|
## 安装
|
|
13
13
|
|
package/topmind-briefs/SKILL.md
CHANGED
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: topmind-briefs
|
|
3
|
-
description: "干货短文:一件事讲透,X + 公众号双平台。短文不是长文——默认不出 HTML:工作流按「核实一手信源 → 找原帖原图 → 写内容 → 排版」;X
|
|
3
|
+
description: "干货短文:一件事讲透,X + 公众号双平台。短文不是长文——默认不出 HTML:工作流按「核实一手信源 → 找原帖原图 → 写内容 → 排版」;X 版交付一段可直接复制的纯文本(首行一句话题陈述、合理分段与列表、去 AI 味、emoji 可选且只用 TopMind 体系、末行默认 2 个话题标签),链接(含来源)、原图(1–2 张)、配图另发,绝不混进正文;公众号版是 300–800 字 Markdown;没有原图时主动询问是否配图,不擅自生图。尊重原始信息、原图、原文。只交付不代发。Use when 写短文、公众号短文、X 短文、发快讯、简讯、速报、数据榜单、榜单速报、论文解读、新品速递、来篇短的、短平快、brief;信息密度型(数据、榜单、发布)走本技能。Do NOT use for 把现成文字格式化、转段子、排版(→ topmind-format)、X 长文与发 X 文章(→ topmind-x-article)、公众号长文与公众号排版 HTML(→ topmind-wechat-post)、引流互动型短帖、段子、涨粉帖、互关帖、爆款短篇(→ topmind-viral-posts)、单独出长图/海报/信息图 PNG(→ topmind-poster)、封面与头图(→ topmind-cover)、单独改稿、去 AI 味与质检(→ topmind-revise)、把稿子发出去(→ topmind-x,须用户确认)。"
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
|
-
version: "0.2.
|
|
6
|
+
version: "0.2.24"
|
|
7
7
|
action_category: "write"
|
|
8
8
|
triggers: "写短文, 公众号短文, X 短文, 发快讯, 快讯, 简讯, 速报, 干货短文, 论文解读, 数据榜单, 榜单速报, 新品速递, brief, 来篇短的, 短平快, 发个快讯"
|
|
9
9
|
author: "TopMindSpace"
|
|
10
10
|
homepage: "https://github.com/topmindspace/topmind-writing-skills#readme"
|
|
11
|
-
updated: "2026-10-
|
|
11
|
+
updated: "2026-10-18"
|
|
12
12
|
---
|
|
13
13
|
|
|
14
14
|
# topmind-briefs · 干货短文(X + 公众号)
|
|
15
15
|
|
|
16
16
|
一件事,一段话,讲完就停。短文不是长文:**默认不出 HTML、不做排版包**,交付的是可以直接复制粘贴的文字。
|
|
17
17
|
|
|
18
|
-
> **必读必守**:[references/x-delivery-contract.md](references/x-delivery-contract.md)——X 正文是一段可直接复制的纯文本,**不含 URL
|
|
18
|
+
> **必读必守**:[references/x-delivery-contract.md](references/x-delivery-contract.md)——X 正文是一段可直接复制的纯文本,**不含 URL 和来源行**;链接一条、图片一条另发。分点默认「·」,行多用「1)」,短列表才用 emoji,禁用 `- ` `1. `;emoji 不强制。
|
|
19
|
+
> **写法规则**:[references/core-voice.md](references/core-voice.md) 的短文条目(V01 V05 V08–V13 V16 V20–V22 V24–V28 V32);去 AI 味按 [references/de-ai-rules.md](references/de-ai-rules.md)。
|
|
19
20
|
|
|
20
21
|
- 跟 `topmind-viral-posts` 的区别:那是引流互动型段子(第一人称、钩子、涨粉);这是**信息密度型干货短文**(数据、榜单、论文、新品,第三方客观口吻)。
|
|
21
22
|
- 跟 `topmind-x-article` / `topmind-wechat-post` 的区别:那两个是长文(数千字、多节多图、HTML 发布包);本技能 X 版是一条纯文本短文(约 1000 字内),公众号版 300–800 字。
|
|
@@ -28,20 +29,21 @@ metadata:
|
|
|
28
29
|
- 公众号长文、公众号排版 HTML → `topmind-wechat-post`
|
|
29
30
|
- 引流互动型短帖(第一人称、段子、钩子、涨粉、互关)→ `topmind-viral-posts`
|
|
30
31
|
- 单独出长图、海报、信息图 PNG → `topmind-poster`;只要封面、头图 → `topmind-cover`
|
|
32
|
+
- 单独改一篇现成稿子、去 AI 味、质检 → `topmind-revise`
|
|
31
33
|
- 把稿子发到 X → `topmind-x`(发帖连接器,须用户确认后才发)
|
|
32
34
|
|
|
33
35
|
## 语言铁律
|
|
34
36
|
|
|
35
37
|
- **默认中文**:标题、正文、配图说明一律用中文,不需要用户每次声明。
|
|
36
38
|
- **英文是例外**:只有用户**明确说**「写英文」时才用英文。消息里夹英文词、给英文素材、引用英文原文,都不算要求写英文。
|
|
37
|
-
-
|
|
39
|
+
- 官方产品名、论文标题保留英文;引语正文写「人名:中文意思」,英文原文记进素材来源,不在正文里原文加括注(core-voice V13)。
|
|
38
40
|
|
|
39
41
|
## 尊重原始信息(铁律)
|
|
40
42
|
|
|
41
43
|
1. **原始信息**:事实、数字、时间以一手来源为准(官方公告、更新日志、论文、原帖、财报);二手报道至少找 2 个独立来源交叉确认,无法核实的承重事实删掉。
|
|
42
44
|
2. **原文**:引用原话时逐字照录并加「」,写明出处;不把转述写成引语,不改原文数字的单位和口径。
|
|
43
45
|
3. **原图**:配图用官方截图 > 官方基准图 > 第三方榜单实拍 > 论文原图,保留原图不裁掉关键信息,不用 AI 图冒充原图。
|
|
44
|
-
4.
|
|
46
|
+
4. **口径标注**:厂商数字标「(厂商口径)」;有一手信源但还没完全确认的热点,短文直陈并在首行用一次「?!」,不写泛泛的「据报道」,纯传闻不写(core-voice V22);自己的判断写成「预计」「大概率」「现在看起来…」,与事实分开写,不用「我认为」。
|
|
45
47
|
5. **不洗稿**:观点可以撞,表达必须原创;不照搬聚合站或别人帖子的行文。
|
|
46
48
|
|
|
47
49
|
## 工作流
|
|
@@ -51,23 +53,23 @@ metadata:
|
|
|
51
53
|
1. **核实信源**:一篇只讲一件事(一个数据、一个榜单变化、一篇论文的核心结论、一个新品的关键参数)。先找一手来源(官方公告、更新日志、论文、仓库、当事人原帖);厂商数字标「官方称 / 厂商口径」,传言标「据传 / 未证实」。记下每条的**来源名称、发布时间(时区)、URL**——这些另发给用户,不进正文。
|
|
52
54
|
2. **找原帖、原图**(写字之前,按 [references/image-sourcing.md](references/image-sourcing.md)):原帖链接、官方图 / 截图 1–2 张,来源记进交付说明;自制图只作兜底,标「自制」和数据来源。
|
|
53
55
|
3. **写内容**:
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
- **去 AI 味(必过)**:按 [references/de-ai-rules.md](references/de-ai-rules.md) 逐条过(先守改写边界:只改表达,不改事实和确定性),再对照 [references/writing-principles.md](references/writing-principles.md) 第五点五节「吸引力清单」;
|
|
56
|
+
- 首行一句简单的话题陈述:「是什么 + 最关键的事实」,约 30 字内,只看首行也拿到信息;不用设问钩子,真里程碑把「第一」放句首(core-voice V05、V20);
|
|
57
|
+
- 具体数字和场景,说人话,事实讲完就停,不硬加收尾句(V10);对比给出对象和定语,不写「约 / 左右」,不用千分位(V12);
|
|
58
|
+
- **去 AI 味(必过)**:按 [references/de-ai-rules.md](references/de-ai-rules.md) 逐条过(先守改写边界:只改表达,不改事实和确定性),再对照 [references/core-voice.md](references/core-voice.md) 短文条目和 [references/writing-principles.md](references/writing-principles.md) 第五点五节「吸引力清单」;
|
|
57
59
|
- 出处在正文里只用文字点到(「官方称」「据论文」),不贴 URL、不写来源行。
|
|
58
60
|
4. **排版**(目标:方便阅读),按 [references/platform-specs.md](references/platform-specs.md)、[references/x-post-format.md](references/x-post-format.md)、[references/x-layout-patterns.md](references/x-layout-patterns.md):
|
|
59
61
|
- 一段 1–3 行,段间空一行;3–7 条并列信息才用列表,前一行写「xx:」引导语,2 条就写成两句;
|
|
60
|
-
-
|
|
62
|
+
- 分点默认「·」,行多或有顺序用「1)」,短列表(3–4 条)才用 emoji(🔹 / 1️⃣ / ✅❌),较长短文用【小标题】分节;禁用 `- ` `* ` `1. `(V25);
|
|
61
63
|
- emoji **不强制**;要用就只用 TopMind 体系([references/emoji-system.md](references/emoji-system.md)):标题 emoji 0–1 个且对上关键词,人设点缀 0–2 个只放首尾,严肃资讯不放;
|
|
62
64
|
- 中英混排:英文专名保留原文,中英之间加半角空格;
|
|
63
|
-
-
|
|
65
|
+
- 最后一行默认 2 个话题标签(宽泛词 + 主题词,V27);不用 Markdown(X 不渲染)。
|
|
64
66
|
4. **写公众号版**(用户要双平台时):300–800 字 Markdown,内容与 X 版一致,只允许排版差异;不写前言导读。
|
|
65
67
|
5. **配图**:原图优先,交付 1–2 张(官方图、原帖配图 / 原帖截图、基准图、榜单实拍),每张写一句图注说明它证明什么;给可直接打开的图片地址,能下载就下载到交付目录。**没有可用原图时,必须主动问用户「要不要配图?可以用 topmind-cover 出一张 16:9 封面」**,用户说要再调用 `topmind-cover` 的「X 短文封面」(16:9,1200×675);不擅自生图。
|
|
66
68
|
6. **自检**:
|
|
67
69
|
- 每个数字都能在另发的链接里找到出处;图和文字说的是同一件事;推测已标注;
|
|
68
|
-
- `python3 scripts/lint_x_post.py X短文.txt
|
|
70
|
+
- `python3 scripts/lint_x_post.py X短文.txt`:E 错误清零(Markdown 残留,以及 E10 正文有 URL、E11 有来源行、E12 有配图说明);W 警告每条要有结论(改掉,或在说明里写保留理由);H 提示只供判断,不要求改;公众号版跑 `python3 scripts/de_ai_lint.py 公众号短文.md`;
|
|
69
71
|
- 需要统一排版时可跑 `python3 scripts/format_text.py X短文.txt --mode short --out X短文.txt`(只动排版不改字;正文里的链接、来源行会被拿出来另列)。
|
|
70
|
-
-
|
|
72
|
+
- 用户要求改稿时,转 `topmind-revise`(`mode=revise genre=short`);没装时按 [references/revision-workflow.md](references/revision-workflow.md) 手动走:备份 → 事实 → 逻辑 → 删冗余 → 去 AI 味 → 核心经验对照 → 排版 → 保真审计,报改前 / 改后字数(`python3 scripts/count_words.py`)。
|
|
71
73
|
7. **交付**(只交付,不发布):见下节「交付格式」;落盘时 `X短文.txt` 只放正文,链接 / 图片 / 说明写进 `交付说明.md`。
|
|
72
74
|
|
|
73
75
|
## 交付格式
|
|
@@ -97,19 +99,17 @@ SWE-bench 榜单换了第一:领先只有 1.3 分
|
|
|
97
99
|
2)模型 B:76.9%
|
|
98
100
|
3)模型 C:74.5%
|
|
99
101
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
#SWEbench #AI编程
|
|
102
|
+
#AI #SWEbench
|
|
103
103
|
```
|
|
104
104
|
|
|
105
105
|
链接(另发):`ToyBench 官方榜单|2026-10-13(UTC)|https://example.com/toybench`
|
|
106
106
|
图片(另发):`[图1] 榜单截图 — 前三名分数;来源:官方榜单`
|
|
107
107
|
|
|
108
|
-
|
|
108
|
+
(示例中的模型名与分数为虚构演示;事实讲完就停,不加收尾句。更多示例见 [references/examples.md](references/examples.md)。)
|
|
109
109
|
|
|
110
110
|
## 话题标签
|
|
111
111
|
|
|
112
|
-
X
|
|
112
|
+
X 版末尾默认给 2 个话题标签(属正文,是正文最后一行;备选标签写在说明里):一个宽泛词(如 #AI)+ 一个主题词(榜单名、产品通用名或领域词);
|
|
113
113
|
不堆砌,不蹭无关热点,不用诱导互动或敏感标签;中文帖用中文话题,英文帖用英文驼峰。公众号稿不加话题标签。细则见 `references/platform-specs.md`。
|
|
114
114
|
|
|
115
115
|
## 内容类型(四种)
|
|
@@ -119,13 +119,14 @@ X 版末尾给 0–2 个话题标签(属正文,是正文最后一行;备
|
|
|
119
119
|
| 数据榜单型 | 基准评测、成本对比 | 判断句开头 → 基准一句 → 最扎眼数字 → 核心图(解决率 / 成本) |
|
|
120
120
|
| 榜单速报型 | 排行榜更新、排名变动 | 排名 + 分数 → 性价比 → 细分展开 → 纵向对比 → 榜单实拍 |
|
|
121
121
|
| 论文解读型 | 新论文、新方法 | 判断句开头 → 核心方法一句 + 3 条要点 → 论文原图(另发) |
|
|
122
|
-
| 机制讲解型 | 技术原理、流程拆解 | 痛点一句 → 1)2)3
|
|
122
|
+
| 机制讲解型 | 技术原理、流程拆解 | 痛点一句 → 1)2)3)分步 → 流程图(另发) |
|
|
123
123
|
|
|
124
124
|
## 和其他技能怎么配合
|
|
125
125
|
|
|
126
126
|
| 场景 | 组合 |
|
|
127
127
|
|---|---|
|
|
128
128
|
| 写完再统一排版 | 本技能 → `topmind-format` 短文体(只排版不改字) |
|
|
129
|
+
| 用户要改稿、过一遍质检 | 本技能 → `topmind-revise`(`mode=revise genre=short`) |
|
|
129
130
|
| 没有原图、用户同意配图 | 本技能 → `topmind-cover`「X 短文封面」 |
|
|
130
131
|
| 内容太多、写成长文 | 转 `topmind-x-article`(X 长文)或 `topmind-wechat-post`(公众号长文) |
|
|
131
132
|
| 要一张数据长图 | 本技能出文案 → `topmind-poster` 出图 |
|