@topmindspace/topmind-writing-skills 0.8.33 → 0.8.35

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.
Files changed (60) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/README.en.md +21 -10
  3. package/README.md +24 -13
  4. package/package.json +1 -1
  5. package/topmind-briefs/CHANGELOG.md +9 -0
  6. package/topmind-briefs/README.en.md +1 -1
  7. package/topmind-briefs/README.md +1 -1
  8. package/topmind-briefs/SKILL.md +13 -48
  9. package/topmind-briefs/package.json +1 -1
  10. package/topmind-briefs/references/emoji-system.md +18 -20
  11. package/topmind-briefs/references/examples.md +51 -122
  12. package/topmind-briefs/references/platform-specs.md +11 -17
  13. package/topmind-briefs/references/style-guide.md +1 -20
  14. package/topmind-briefs/references/x-delivery-contract.md +125 -0
  15. package/topmind-briefs/references/x-layout-patterns.md +3 -2
  16. package/topmind-briefs/references/x-post-format.md +54 -134
  17. package/topmind-briefs/scripts/format_text.py +45 -19
  18. package/topmind-briefs/scripts/lint_x_post.py +28 -5
  19. package/topmind-cover/README.en.md +1 -1
  20. package/topmind-cover/README.md +1 -1
  21. package/topmind-format/README.en.md +4 -4
  22. package/topmind-format/README.md +5 -5
  23. package/topmind-format/SKILL.md +27 -15
  24. package/topmind-format/package.json +1 -1
  25. package/topmind-format/references/emoji-system.md +18 -20
  26. package/topmind-format/references/x-delivery-contract.md +125 -0
  27. package/topmind-format/references/x-layout-patterns.md +3 -2
  28. package/topmind-format/references/x-post-format.md +54 -134
  29. package/topmind-format/scripts/format_text.py +45 -19
  30. package/topmind-format/scripts/lint_x_post.py +28 -5
  31. package/topmind-format/scripts/negative_tests.py +23 -2
  32. package/topmind-poster/README.en.md +1 -1
  33. package/topmind-poster/README.md +1 -1
  34. package/topmind-viral-posts/README.en.md +3 -3
  35. package/topmind-viral-posts/README.md +5 -5
  36. package/topmind-viral-posts/SKILL.md +39 -57
  37. package/topmind-viral-posts/package.json +1 -1
  38. package/topmind-viral-posts/references/emoji-system.md +18 -20
  39. package/topmind-viral-posts/references/patterns.md +44 -43
  40. package/topmind-viral-posts/references/tags-and-topics.md +21 -21
  41. package/topmind-viral-posts/references/x-delivery-contract.md +125 -0
  42. package/topmind-viral-posts/references/x-layout-patterns.md +3 -2
  43. package/topmind-viral-posts/references/x-post-format.md +54 -134
  44. package/topmind-viral-posts/scripts/format_text.py +45 -19
  45. package/topmind-viral-posts/scripts/lint_x_post.py +28 -5
  46. package/topmind-wechat-post/README.en.md +1 -1
  47. package/topmind-wechat-post/README.md +1 -1
  48. package/topmind-wechat-post/SKILL.md +2 -1
  49. package/topmind-wechat-post/package.json +1 -1
  50. package/topmind-wechat-post/references/x-delivery-contract.md +125 -0
  51. package/topmind-wechat-post/references/x-post-format.md +54 -134
  52. package/topmind-wechat-post/scripts/lint_x_post.py +28 -5
  53. package/topmind-x-article/README.en.md +1 -1
  54. package/topmind-x-article/README.md +1 -1
  55. package/topmind-x-article/SKILL.md +3 -3
  56. package/topmind-x-article/package.json +1 -1
  57. package/topmind-x-article/references/x-delivery-contract.md +125 -0
  58. package/topmind-x-article/references/x-post-format.md +54 -134
  59. package/topmind-x-article/scripts/lint_x_post.py +28 -5
  60. package/topmind-wechat-post/references/design.md +0 -50
package/CHANGELOG.md CHANGED
@@ -1,3 +1,46 @@
1
+ ## [0.8.35] - 2026-10-14
2
+
3
+ > 根包 0.8.34 → **0.8.35**(patch);技能版本:topmind-briefs 0.2.17 → 0.2.18、topmind-format 0.1.2 → 0.1.3、topmind-viral-posts 0.3.9 → 0.3.10、
4
+ > topmind-wechat-post 0.3.9 → 0.3.10、topmind-x-article 0.4.15 → 0.4.16;topmind-cover、topmind-poster 不变。
5
+
6
+ ### 变更(更正 0.8.34:短文用 emoji,段子不用)
7
+
8
+ - **段子体完全不用 emoji**:不加人设点缀(🐔 🐱 🌱)、情绪表情和 emoji 列表符号;分点一条一行、靠行间空行区分,不加任何符号。
9
+ - **短文体分点必须用 emoji 列表符号**,按 `emoji-system.md`(该体系只适用于短文体,段子配额全为 0)。
10
+ - **`format_text.py --mode duanzi`**:去掉原文 emoji 与列表符号(Markdown 列表、🔹 等)后输出纯文字条目;不再接受 `--open` / `--close` / `--title-emoji`(报错退出 2)。
11
+ - **`lint_x_post.py --duanzi`**:新增 W13,段子里出现任何 emoji(含点缀和列表符号)时警告。
12
+ - 同步修正:`x-delivery-contract.md`(第一节改为短文 / 段子对照表,正反例更新)、`x-post-format.md`、`x-layout-patterns.md`、viral-posts SKILL / `patterns.md` / `tags-and-topics.md` 示例去 emoji、format SKILL 与示例、各 README。
13
+ - 评测 63 → 66 条(新增段子零 emoji、段子拒绝点缀、短文 emoji 列表);format 负向测试改为验证段子去 emoji、拒绝 `--open`、lint W13。
14
+
15
+ ## [0.8.34] - 2026-10-14
16
+
17
+ > 根包 0.8.33 → **0.8.34**(patch);技能版本:topmind-briefs 0.2.16 → 0.2.17、topmind-format 0.1.1 → 0.1.2、topmind-viral-posts 0.3.8 → 0.3.9、
18
+ > topmind-wechat-post 0.3.8 → 0.3.9、topmind-x-article 0.4.14 → 0.4.15;topmind-cover、topmind-poster 不变。
19
+
20
+ ### 新增
21
+
22
+ - **X 文本交付规约** `references/x-delivery-contract.md`(共享,分发到 briefs、format、viral-posts、wechat-post、x-article;各 SKILL.md 开头「必读必守」引用):
23
+ - 列表:段子和短文都可以分点,分点必须用 emoji 列表符号,禁用 `- ` `* ` `1. `;段子体条目一条一行、行间空行。
24
+ - 交付分离:正文单独一个可直接复制的 `text` 块,只放可发布内容(标题、正文、emoji 列表、`来源:名称 URL` 行、末行话题标签);信源清单、原图 / 配图建议、内部分类与备选标签、说明各自块外另列;多条帖子每条一块;落盘文件同理。附聊天交付正例 2 个、反例 1 个。
25
+ - **`lint_x_post.py` W12**:正文里混入「信源:」「配图:」「说明:」「标签:」「【帖 N】」等非发布内容时警告。
26
+
27
+ ### 变更
28
+
29
+ - **`format_text.py` 段子体支持列表**:`--mode duanzi` 把 Markdown 列表改成 emoji 列表符号,条目行间空行;`--split` 不拆列表条目。
30
+ - **lint 列表判定**:只隔空行的列表项算同一个列表(段子体列表也查同层混用);帖子首行的标题 emoji 不再算列表项。
31
+ - 去掉「段子体不用列表符号」等矛盾措辞(`x-post-format.md`、`emoji-system.md`、format SKILL、viral-posts `patterns.md`)。
32
+ - **viral-posts**:Output Contract 与示例改为每条正文单独成块,信源 / 原图 / 内部标签另列;`tags-and-topics.md` 的「标签项」改为块外「内部标签」。
33
+ - **briefs**:交付格式按规约重写;`examples.md` 4 个示例改为中文、去掉正文里的 `[图]` 占位、补来源行;`platform-specs.md`、`style-guide.md` 的重复列表规则改为引用规约。
34
+ - **x-article / wechat-post**:引用规约;x-article 交付物不用 `--list-style keep`。
35
+ - 评测:更新 5 条、新增 4 条(段子分点、多条分块、format 段子列表、briefs 分块交付),共 63 条;format 负向测试补段子列表与 W12 用例。
36
+
37
+ ### 清理
38
+
39
+ - `x-post-format.md` 重写精简(174 → 93 行):删除与规约重复的「交付三块」、与 `emoji-system.md` 重复的 emoji 规则、与 `x-layout-patterns.md` 重复的「版式节奏」长段和重复示例。
40
+ - briefs SKILL.md 删除与工作流重复的「配图铁律」节。
41
+ - 删除 `topmind-wechat-post/references/design.md`(无引用;描述的桌面端对拍测试不在本仓库,已过时)。
42
+ - README 中英文新增「X 文本统一规约」表,替换旧的 emoji 体系单行说明;版本号与能力描述同步。
43
+
1
44
  ## [0.8.33] - 2026-10-14
2
45
 
3
46
  > 根包 0.8.32 → **0.8.33**(patch);技能版本:topmind-briefs 0.2.15 → 0.2.16、topmind-format 0.1.0 → 0.1.1、topmind-viral-posts 0.3.7 → 0.3.8、
package/README.en.md CHANGED
@@ -43,21 +43,32 @@ npx @topmindspace/topmind-writing-skills install topmind-briefs
43
43
 
44
44
  ### topmind-viral-posts · X viral short posts
45
45
 
46
- 18 post types plus hook × body × closer combinations, summarised from common high-engagement writing patterns in the Chinese X community (all examples are original): **duanzi layout** (one sentence per line, a blank line between lines), conversational tone, an engagement hook; original images first, optional generated image via `topmind-cover`. Every post carries **1–3 hashtags plus classification tags** (type / purpose / platform / tone). X drafts never use Markdown lists; bullets are emoji.
46
+ 18 post types plus hook × body × closer combinations, summarised from common high-engagement writing patterns in the Chinese X community (all examples are original): **duanzi layout** (one sentence per line, a blank line between lines), conversational tone, an engagement hook; original images first; asks before generating one via `topmind-cover`. Hashtags (1–3) are part of the post body; classification tags (type / purpose / platform / tone) are listed separately. Duanzi posts use no emoji at all — no persona motif, no reaction emoji, no bullet symbols; bullets are plain lines separated by blank lines. Each post is delivered in its own copyable block.
47
47
 
48
48
  ```bash
49
49
  npx @topmindspace/topmind-writing-skills install topmind-viral-posts
50
50
  ```
51
51
 
52
- ### topmind-format · X plain-text formatter (new)
52
+ ### topmind-format · X plain-text formatter
53
53
 
54
- Paste existing text: **to duanzi** → one sentence per line with blank lines between; **to short post** → paragraphing, emoji bullets, a keyword-matched title emoji and the chicken/cat/plant persona motif (🐔 🐱 🌱 🌸) at the start or end. Layout only — words never change; `format_text.py` enforces fidelity.
54
+ Paste existing text: **to duanzi** → one sentence per line with blank lines between, all emoji and bullet symbols removed; **to short post** → paragraphing, emoji bullets, a keyword-matched title emoji and the chicken/cat/plant persona motif (🐔 🐱 🌱 🌸) at the start or end. Layout only — words never change; `format_text.py` enforces fidelity.
55
55
 
56
56
  ```bash
57
57
  npx @topmindspace/topmind-writing-skills install topmind-format
58
58
  ```
59
59
 
60
- > **TopMind emoji system** (`emoji-system.md`, shared by briefs / viral-posts / format): 0–2 persona motifs at start/end only; 0–1 title emoji that must match the keyword; one bullet set per post; ≤3 decorative emoji in total.
60
+ ### Shared X plain-text rules (all skills that output X text)
61
+
62
+ Single source in `shared/references/`, distributed to each skill's `references/` via the manifest:
63
+
64
+ | Doc | Covers |
65
+ |---|---|
66
+ | `x-delivery-contract.md` (must read) | Short posts must use emoji bullets; duanzi posts use no emoji at all (plain bullet lines); never `- ` / `1. `; the post body is one copy-ready block (including the source line and hashtags); sources, original images, image suggestions, internal tags and notes are listed separately; one block per post |
67
+ | `x-post-format.md` | No Markdown, bullet sets, spacing, sources, skeletons, images, WeChat → X |
68
+ | `emoji-system.md` | The TopMind emoji system (short posts only): 0–2 persona motifs (🐔 🐱 🌱) at start/end; 0–1 keyword-matched title emoji; one bullet set per post |
69
+ | `x-layout-patterns.md` | Layout patterns distilled from reference posts |
70
+
71
+ Checks: `lint_x_post.py` (E1–E9 Markdown leftovers; W12 notes / sources / image lines / internal tags inside the post body; W13 any emoji in a duanzi post with `--duanzi`).
61
72
 
62
73
  ### topmind-cover · Cover art generation
63
74
 
@@ -91,15 +102,15 @@ npx @topmindspace/topmind-writing-skills install topmind-poster
91
102
 
92
103
  | Skill | Version | What it does |
93
104
  |-------|---------|--------------|
94
- | [`topmind-wechat-post`](./topmind-wechat-post/) | **0.3.8** | WeChat article lifecycle: package, review, 3 quality gates, inline typography & publish checklist |
95
- | [`topmind-x-article`](./topmind-x-article/) | **0.4.14** | X long-form one-click publish: Markdown → one-click-copy HTML (images/prompt copy, click-to-zoom images) / plain-text fallback + cover + checklist |
105
+ | [`topmind-wechat-post`](./topmind-wechat-post/) | **0.3.10** | WeChat article lifecycle: package, review, 3 quality gates, inline typography & publish checklist |
106
+ | [`topmind-x-article`](./topmind-x-article/) | **0.4.16** | X long-form one-click publish: Markdown → one-click-copy HTML (images/prompt copy, click-to-zoom images) / plain-text fallback + cover + checklist |
96
107
  | [`topmind-cover`](./topmind-cover/) | **0.4.8** | 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 + 12 title treatments + 55 example images (22 styles × 2 sizes + 11 variant samples) + 1 style overview |
97
- | [`topmind-briefs`](./topmind-briefs/) | **0.2.16** | Short-form briefs (WeChat + X): one topic, one chart; data rankings / paper explainers / product alerts / mechanism explainers; one plain-text X block (no HTML by default) with emoji bullets, source links and hashtag suggestions; fixed 3-part delivery (copyable plain text / source links / 1–2 original images); asks before generating any image when no original exists |
98
- | [`topmind-viral-posts`](./topmind-viral-posts/) | **0.3.8** | X viral short posts: 18 template types + combinations, duanzi layout (blank line between lines), hashtags + classification tags, source links for factual posts; original images first; asks before generating a 16:9 image via topmind-cover |
99
- | [`topmind-format`](./topmind-format/) | **0.1.1** | X plain-text formatter: to duanzi (blank lines) / to short post (paragraphing + emoji system); layout only, words unchanged, with a fidelity check; 3-part delivery |
108
+ | [`topmind-briefs`](./topmind-briefs/) | **0.2.18** | Short-form briefs (WeChat + X): one topic, one chart; data rankings / paper explainers / product alerts / mechanism explainers; one plain-text X block (no HTML by default) with emoji bullets, source links and hashtag suggestions; post body in its own copy-ready block, sources and 1–2 original images listed separately; asks before generating any image |
109
+ | [`topmind-viral-posts`](./topmind-viral-posts/) | **0.3.10** | X viral short posts: 18 template types + combinations, duanzi layout (blank lines, no emoji, plain bullet lines), one copy-ready block per post, hashtags in the body and classification tags listed separately; asks before generating an image |
110
+ | [`topmind-format`](./topmind-format/) | **0.1.3** | X plain-text formatter: to duanzi (blank lines, no emoji) / to short post (paragraphing + emoji system); layout only, words unchanged, with a fidelity check; body delivered as its own block |
100
111
  | [`topmind-poster`](./topmind-poster/) | **0.1.5** | HTML+CSS → high-res long image / poster / infographic PNG: headless Chrome 2× screenshot + auto-trim; "one image per section" batch workflow (generator + renderer) |
101
112
 
102
- Installer [`@topmindspace/topmind-writing-skills`](https://www.npmjs.com/package/@topmindspace/topmind-writing-skills) is **0.8.33** (whole-repo same-tag releases).
113
+ Installer [`@topmindspace/topmind-writing-skills`](https://www.npmjs.com/package/@topmindspace/topmind-writing-skills) is **0.8.35** (whole-repo same-tag releases).
103
114
 
104
115
  ### Which skill, and how they combine
105
116
 
package/README.md CHANGED
@@ -33,7 +33,7 @@ npx @topmindspace/topmind-writing-skills install topmind-x-article
33
33
 
34
34
  ### topmind-briefs · 干货短文
35
35
 
36
- 公众号 + X 双平台干货短文:一件事讲透(数据榜单 / 论文解读 / 新品速递 / 机制讲解)。短文不是长文,**默认不出 HTML**:X 版是一段可直接复制的纯文本(分段换行、克制的 emoji、来源链接、0–2 个话题标签),公众号版约 300–800 字 Markdown。尊重原始信息、原图、原文;交付固定三块:可复制纯文本正文、原帖 / 信源地址(含发布时间)、1–2 张原图,没有原图时主动询问是否配图(可选 topmind-cover),不擅自生图。只起草不代发。
36
+ 公众号 + X 双平台干货短文:一件事讲透(数据榜单 / 论文解读 / 新品速递 / 机制讲解)。短文不是长文,**默认不出 HTML**:X 版是一段可直接复制的纯文本(分段换行、克制的 emoji、来源链接、0–2 个话题标签),公众号版约 300–800 字 Markdown。尊重原始信息、原图、原文;按 X 交付规约交付:正文单独一块可直接复制,信源(含发布时间)、1–2 张原图、说明各自另列;没有原图时主动询问是否配图(可选 topmind-cover),不擅自生图。只起草不代发。
37
37
 
38
38
  ```bash
39
39
  npx @topmindspace/topmind-writing-skills install topmind-briefs
@@ -41,7 +41,7 @@ npx @topmindspace/topmind-writing-skills install topmind-briefs
41
41
 
42
42
  ### topmind-viral-posts · X 引流段子/爆款短篇
43
43
 
44
- 基于对 X 中文区常见高互动写法的归纳,提供 18 类型模板 + 钩子×主体×收尾组合玩法(示例均为自编),默认**段子体**(一句一行、行与行之间空一行)、口语化、带互动钩子,配图原图优先(官方 / 第三方 / 自己的后台截图),没有原图时先问是否配图、同意后走 topmind-cover 出图,并附**话题标签(1–3 个 hashtag)与内部分类标签**;X 稿不用 Markdown 列表,分点用 emoji 项目符号。
44
+ 基于对 X 中文区常见高互动写法的归纳,提供 18 类型模板 + 钩子×主体×收尾组合玩法(示例均为自编),默认**段子体**(一句一行、行与行之间空一行)、口语化、带互动钩子,配图原图优先(官方 / 第三方 / 自己的后台截图),没有原图时先问是否配图、同意后走 topmind-cover 出图,话题标签(1–3 个)在正文末行,内部分类标签另列;段子**完全不用 emoji**,分点不加符号、一条一行靠行间空行区分;每条正文单独一块。
45
45
 
46
46
  ```bash
47
47
  npx @topmindspace/topmind-writing-skills install topmind-viral-posts
@@ -49,15 +49,26 @@ npx @topmindspace/topmind-writing-skills install topmind-viral-posts
49
49
 
50
50
  > 18 类型:干货忠告 / 互关求粉 / 自嘲幽默 / 互动提问 / 打卡日常 / 新人报到 / **热点资讯**(基于真实检索,配官方原图可多图)/ 暴论 / 数据晒单 / 真诚交友 / 吐槽共鸣 / 干货技巧 / 经验忠告 / 执行清单 / **冷知识揭秘** / **差额冲刺** / **反差对照** / **自问自答**。
51
51
 
52
- ### topmind-format · X 纯文本格式化(新)
52
+ ### topmind-format · X 纯文本格式化
53
53
 
54
- 用户贴一段现成文字:**转段子** → 每句一行、行间空一行;**格式化成短文** → 合理分段换行、列表改 emoji、标题 emoji 对应关键词、开头结尾加鸡/猫/植物人设点缀(🐔 🐱 🌱 🌸)。只动排版不改字,`format_text.py` 自带原文保真校验。
54
+ 用户贴一段现成文字:**转段子** → 每句一行、行间空一行,去掉所有 emoji 与列表符号;**格式化成短文** → 合理分段换行、列表改 emoji、标题 emoji 对应关键词、开头结尾加鸡/猫/植物人设点缀(🐔 🐱 🌱 🌸)。只动排版不改字,`format_text.py` 自带原文保真校验。
55
55
 
56
56
  ```bash
57
57
  npx @topmindspace/topmind-writing-skills install topmind-format
58
58
  ```
59
59
 
60
- > **TopMind emoji 体系**(`emoji-system.md`,briefs / viral-posts / format 共用):人设点缀 0–2 个只放首尾;标题 emoji 0–1 个、必须对上关键词;列表符号一帖一套;点缀类合计 ≤3。
60
+ ### X 文本统一规约(所有产出 X 纯文本的技能共用)
61
+
62
+ 共享文档在 `shared/references/`,经 manifest 分发到各技能 `references/`:
63
+
64
+ | 文档 | 管什么 |
65
+ |---|---|
66
+ | `x-delivery-contract.md`(必读必守) | 短文分点必须用 emoji 列表符号,段子完全不用 emoji(分点不加符号),都禁用 `- ` `1. `;正文单独一个可直接复制的块(含来源行与话题标签),信源、原图、配图建议、内部标签、说明各自另列;多条帖子每条一块 |
67
+ | `x-post-format.md` | 不用 Markdown、列表符号、留白、来源、骨架、配图、公众号稿→X 稿 |
68
+ | `emoji-system.md` | TopMind emoji 体系唯一出处(只用于短文体):人设点缀 🐔 🐱 🌱 0–2 个只放首尾;标题 emoji 0–1 个对上关键词;列表符号一帖一套 |
69
+ | `x-layout-patterns.md` | 参考帖拆出的版式规律(首行给结论、列表引导语、【小标题】分节等) |
70
+
71
+ 检查:`lint_x_post.py`(E1–E9 Markdown 残留;W12 正文混入信源 / 配图 / 说明 / 内部标签;`--duanzi` 时 W13 段子里出现 emoji)。
61
72
 
62
73
  ### topmind-cover · 封面配图生成
63
74
 
@@ -91,21 +102,21 @@ npx @topmindspace/topmind-writing-skills install topmind-poster
91
102
 
92
103
  | 技能 | 版本 | 做什么 |
93
104
  |------|------|--------|
94
- | [`topmind-wechat-post`](./topmind-wechat-post/) | **0.3.8** | 公众号文章全生命周期:交付包、审校改写、质量三关、微信内联排版与发布清单 |
95
- | [`topmind-x-article`](./topmind-x-article/) | **0.4.14** | X 长文一键发布:Markdown 原稿 → 一键复制 HTML(含配图/提示词复制、图片点击放大)/ 纯文本兜底 + 封面图 + 发布清单 |
105
+ | [`topmind-wechat-post`](./topmind-wechat-post/) | **0.3.10** | 公众号文章全生命周期:交付包、审校改写、质量三关、微信内联排版与发布清单 |
106
+ | [`topmind-x-article`](./topmind-x-article/) | **0.4.16** | X 长文一键发布:Markdown 原稿 → 一键复制 HTML(含配图/提示词复制、图片点击放大)/ 纯文本兜底 + 封面图 + 发布清单 |
96
107
  | [`topmind-cover`](./topmind-cover/) | **0.4.8** | 文章封面配图(X / 公众号共用,X 主尺寸 1500×600 / 5:2):震撼醒目主题突出;22 种封面风格库 + X 短文 16:9 封面场景 + 12 种标题花式 + 55 张示例图(22 种风格 × 2 尺寸 + 11 张变体样张) + 1 张风格总览图 |
97
- | [`topmind-briefs`](./topmind-briefs/) | **0.2.16** | 干货短文(公众号 + X 双平台):一件事讲透,数据榜单/论文解读/新品速递;X 版一段纯文本(默认不出 HTML)+ emoji 列表 + 来源链接 + 话题标签建议;交付三块(纯文本 / 信源 / 1–2 张原图),无原图先询问配图 |
98
- | [`topmind-viral-posts`](./topmind-viral-posts/) | **0.3.8** | X 引流段子/爆款短篇:18 大类型模板 + 组合玩法,段子体(行间空行)、事实类带来源链接、带话题标签与分类标签;配图原图优先,无原图先询问再走 topmind-cover 出 16:9 图 |
99
- | [`topmind-format`](./topmind-format/) | **0.1.1** | X 纯文本格式化:转段子(行间空行)/ 格式化成短文(分段 + emoji 体系),只动排版不改字,带原文保真校验;交付三块,无原图先询问配图 |
108
+ | [`topmind-briefs`](./topmind-briefs/) | **0.2.18** | 干货短文(公众号 + X 双平台):一件事讲透,数据榜单/论文解读/新品速递;X 版一段纯文本(默认不出 HTML)+ emoji 列表 + 来源链接 + 话题标签建议;正文单独成块,信源 / 原图另列,无原图先询问配图 |
109
+ | [`topmind-viral-posts`](./topmind-viral-posts/) | **0.3.10** | X 引流段子/爆款短篇:18 大类型模板 + 组合玩法,段子体(行间空行,零 emoji,分点不加符号)、每条正文单独成块、话题标签在正文、分类标签另列;无原图先询问再走 topmind-cover |
110
+ | [`topmind-format`](./topmind-format/) | **0.1.3** | X 纯文本格式化:转段子(行间空行,零 emoji)/ 格式化成短文(分段 + emoji 体系),只动排版不改字,带原文保真校验;正文单独成块 |
100
111
  | [`topmind-poster`](./topmind-poster/) | **0.1.5** | HTML+CSS → 高清长图 / 海报 / 信息图 PNG:无头 Chrome 2× 截图 + 自动裁白;「一段一图」分段图批量出图(生成器 + 渲染器) |
101
112
 
102
- 安装器 [`@topmindspace/topmind-writing-skills`](https://www.npmjs.com/package/@topmindspace/topmind-writing-skills) 为 **0.8.33**(整仓同 tag 发版)。
113
+ 安装器 [`@topmindspace/topmind-writing-skills`](https://www.npmjs.com/package/@topmindspace/topmind-writing-skills) 为 **0.8.35**(整仓同 tag 发版)。
103
114
 
104
115
  ### 怎么选、怎么组合
105
116
 
106
117
  | 你要做的事 | 用哪个 | 常见组合 |
107
118
  |---|---|---|
108
- | 一件事的干货短文(数据、榜单、发布) | `topmind-briefs` | → `topmind-format` 统一排版;没有原图 → `topmind-cover` 出 16:9 首图 |
119
+ | 一件事的干货短文(数据、榜单、发布) | `topmind-briefs` | → `topmind-format` 统一排版;没有原图 → 先问,同意后 `topmind-cover` 出 16:9 首图 |
109
120
  | 引流段子、涨粉帖、互关帖 | `topmind-viral-posts` | → `topmind-format` 重排段子体;同一事件可配一条 briefs 干货版 |
110
121
  | 现成文字只要排版(转段子 / 格式化) | `topmind-format` | 只动排版不改字;要改写内容再转 briefs / viral-posts |
111
122
  | 数千字 X 长文 | `topmind-x-article` | + `topmind-cover`(5:2 封面);短于一帖的内容走 briefs |
@@ -114,7 +125,7 @@ npx @topmindspace/topmind-writing-skills install topmind-poster
114
125
 
115
126
  > SKILL.md frontmatter 顶层只用 Agent Skills 规范字段(`name` / `description` / `license` / `metadata`),版本、`action_category`、`triggers` 等自定义字段放在 `metadata` 下(字符串值),能通过官方校验器 `skills-ref validate`。
116
127
  >
117
- > 共享脚本与 `writing-principles.md` 的唯一真源在 `shared/`,各技能目录保留逐字节副本(单独安装也能用);改共享文件只改 `shared/`,再跑 `npm run sync:shared`,CI 用 `--check` 校验。
128
+ > 共享脚本与共享文档(`writing-principles.md`、X 文本规约四件套)的唯一真源在 `shared/`,各技能目录保留逐字节副本(单独安装也能用);改共享文件只改 `shared/`,再跑 `npm run sync:shared`,CI 用 `--check` 校验。
118
129
  >
119
130
  > npm 包不含 cover 的单风格样张(`assets/examples/<style>*.png`),只保留 `overview.png`;完整样张见 GitHub 仓库或 Release zip。
120
131
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topmindspace/topmind-writing-skills",
3
- "version": "0.8.33",
3
+ "version": "0.8.35",
4
4
  "description": "TopMindSpace 写作技能合集 — 通过 npm / npx 安装技能(公众号长文、X 长文、干货短文、X 引流短帖、封面图、长图海报)。只出稿与发布包,不代发。",
5
5
  "license": "MIT",
6
6
  "author": "TopMindspace",
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.18 (2026-10-14)
4
+
5
+ - 更正:共享规约改为「短文分点用 emoji 列表符号、段子完全不用 emoji」;`emoji-system.md` 标明只适用于短文体;`lint_x_post.py` 新增 `--duanzi`(W13)
6
+
7
+ ## 0.2.17 (2026-10-14)
8
+
9
+ - 特性支持:接入共享 X 交付规约 `x-delivery-contract.md`(必读必守)——X 正文单独成块,信源 / 原图 / 说明另列;分点必须用 emoji 列表符号
10
+ - 优化:`examples.md` 改为中文示例并去掉正文里的图片占位;`platform-specs.md`、`style-guide.md` 去重;删除重复的「配图铁律」节
11
+
3
12
  ## 0.2.16 (2026-10-14)
4
13
 
5
14
  - 特性支持:交付固定三块(可复制纯文本正文 / 原帖与信源地址 / 1–2 张原图)并附正例模板;没有原图时主动询问是否配图,不擅自生图
@@ -8,7 +8,7 @@ A brief is not a long-form article — **no HTML by default**: the X version is
8
8
  Original facts, images and quotes come first; a cover is optional when no original image exists. Every delivery lists
9
9
  each source's name, publish time and link.
10
10
 
11
- - Version: **v0.2.16** (ships with `@topmindspace/topmind-writing-skills@0.8.33`)
11
+ - Version: **v0.2.18** (ships with `@topmindspace/topmind-writing-skills@0.8.35`)
12
12
 
13
13
  ## Install
14
14
 
@@ -6,7 +6,7 @@
6
6
  X 版是一段可直接复制的纯文本(分段换行 + 克制的 emoji + 来源链接),公众号版约 300–800 字 Markdown。
7
7
  尊重原始信息、原图、原文;配图原图优先,没有原图时封面可选(`topmind-cover`);交付时写明信息来源、发布时间与来源链接。
8
8
 
9
- - 版本:**v0.2.16**(随 `@topmindspace/topmind-writing-skills@0.8.33` 发布)
9
+ - 版本:**v0.2.18**(随 `@topmindspace/topmind-writing-skills@0.8.35` 发布)
10
10
 
11
11
  ## 安装
12
12
 
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  name: topmind-briefs
3
- description: "干货短文:一件事讲透,X + 公众号双平台。短文不是长文——默认不出 HTML:X 版是一段可直接复制的纯文本(首行给结论、合理分段换行、emoji 项目符号列表,emoji 只用 TopMind 体系,带来源链接,0–2 个话题标签),公众号版是 300–800 字 Markdown;交付固定三块:①可复制纯文本正文 ②原帖/信源地址 ③1–2 张原图(官方图、原帖图/截图);没有原图时主动询问是否配图,不擅自生图。尊重原始信息、原图、原文。只交付不代发。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)、把稿子发出去(→ topmind-x,须用户确认)。"
3
+ description: "干货短文:一件事讲透,X + 公众号双平台。短文不是长文——默认不出 HTML:X 版是一段可直接复制的纯文本(首行给结论、合理分段换行、emoji 项目符号列表,emoji 只用 TopMind 体系,带来源链接,0–2 个话题标签),公众号版是 300–800 字 Markdown;交付遵守 X 交付规约:正文单独成块可直接复制(含来源行与话题标签),信源、原图(1–2 张)、说明各自分块;分点必须用 emoji 列表符号;没有原图时主动询问是否配图,不擅自生图。尊重原始信息、原图、原文。只交付不代发。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)、把稿子发出去(→ topmind-x,须用户确认)。"
4
4
  license: MIT
5
5
  metadata:
6
- version: "0.2.16"
6
+ version: "0.2.18"
7
7
  action_category: "write"
8
8
  triggers: "写短文, 公众号短文, X 短文, 发快讯, 快讯, 简讯, 速报, 干货短文, 论文解读, 数据榜单, 榜单速报, 新品速递, brief, 来篇短的, 短平快, 发个快讯"
9
9
  author: "TopMindSpace"
@@ -15,6 +15,8 @@ metadata:
15
15
 
16
16
  一件事,一段话,讲完就停。短文不是长文:**默认不出 HTML、不做排版包**,交付的是可以直接复制粘贴的文字。
17
17
 
18
+ > **必读必守**:[references/x-delivery-contract.md](references/x-delivery-contract.md)——分点必须用 emoji 列表符号(禁用 `- ` `1. `);X 正文单独一个 `text` 块、只放可发布内容;信源、原图、说明各自分块。
19
+
18
20
  - 跟 `topmind-viral-posts` 的区别:那是引流互动型段子(第一人称、钩子、涨粉);这是**信息密度型干货短文**(数据、榜单、论文、新品,第三方客观口吻)。
19
21
  - 跟 `topmind-x-article` / `topmind-wechat-post` 的区别:那两个是长文(数千字、多节多图、HTML 发布包);本技能 X 版一帖或 ≤3 条 thread,公众号版 300–800 字。
20
22
  - 现成文字只要排版 → `topmind-format`。
@@ -61,47 +63,17 @@ metadata:
61
63
  - 按 [references/writing-principles.md](references/writing-principles.md)「去 AI 味清单」过一遍;
62
64
  - `python3 scripts/lint_x_post.py X短文.txt`:错误清零(含 Markdown 列表/标题/加粗/引用/链接/删除线/代码围栏残留),W8(表情过多)/ W9(AI 套话)/ W10(缺来源)逐条处理;
63
65
  - 需要统一排版时可跑 `python3 scripts/format_text.py X短文.txt --mode short --out X短文.txt`(只动排版不改字)。
64
- 7. **交付**(只交付,不发布):见下节「交付格式」。
65
-
66
- ## 交付格式(固定三块)
67
-
68
- 默认交付纯文本,不生成 HTML。给用户的回复固定三块,顺序不变(规则见 [references/x-post-format.md](references/x-post-format.md)「交付三块」):
69
-
70
- 1. **① 正文(可直接复制)**:X 版纯文本放进 `text` 代码块(保证空行不丢),块内没有任何 Markdown 符号;用户要公众号版时,另起一个 `markdown` 代码块。
71
- 2. **② 原帖 / 信源**:每条承重事实一行:`来源名称|发布时间(注明时区)|URL`。发布时间取原文页面上的时间,页面没有就写「未标注」,不猜。
72
- 3. **③ 原图(1–2 张)**:`[图1] 图片地址或交付目录文件名 — 图注;来源:原帖 / 官网`。视频只给封面帧地址并注明「视频」。
73
- 没找到原图 → 写「未找到原图」,并在回复最后问一句:**「这条没有原图,要不要配图?可以用 topmind-cover 出一张 16:9 封面。」**
74
-
75
- ### 正例模板
76
-
77
- ````text
78
- ① 正文(可直接复制)
79
- ```text
80
- 🆕 某编辑器 3.0 发布:补全延迟降到 200ms 内,免费版每月 50 次 🐱
81
-
82
- 这次更新有三处变化:
66
+ 7. **交付**(只交付,不发布):见下节「交付格式」;落盘时 `X短文.txt` 只放正文,信源 / 配图 / 说明写进 `交付说明.md`。
83
67
 
84
- 🔹 补全延迟降到 200ms 内(厂商口径)
85
- 🔹 支持多文件同时修改
86
- 🔹 免费版每月 50 次
68
+ ## 交付格式
87
69
 
88
- 对日常写小脚本的人,免费额度够用了。
70
+ 默认交付纯文本,不生成 HTML,严格按 [references/x-delivery-contract.md](references/x-delivery-contract.md)(含正反例):
89
71
 
90
- 来源:官方更新日志 https://example.com/changelog
91
-
92
- #AI编程
93
- ```
94
-
95
- ② 原帖 / 信源
96
- - 官方更新日志|2026-10-13 09:00(UTC+8)|https://example.com/changelog
97
- - 官方账号原帖|2026-10-13 09:05(UTC+8)|https://x.com/example/status/1234567890
98
-
99
- ③ 原图
100
- [图1] https://example.com/images/release-3.png — 官方发布图,展示三项更新;来源:官方更新日志
101
- [图2] 01-原帖截图.png — 官方原帖截图;来源:官方账号原帖
102
- ````
103
-
104
- (模板中的产品、数字与链接均为虚构演示。)没有原图时,③ 写「未找到原图」,结尾加上配图询问。
72
+ 1. **X 正文块**:一个 `text` 代码块,只放可发布内容——标题、正文、emoji 列表、`来源:名称 URL` 行、末行话题标签。thread 每条一块。
73
+ 2. **公众号版**(用户要时):单独一个 `markdown` 块。
74
+ 3. **信源**:`来源名称|发布时间(注明时区)|URL`,每条承重事实一行;发布时间取原文页面,没有就写「未标注」。
75
+ 4. **原图**:1–2 张,`[图1] 图片地址或文件名 — 图注;来源`;视频给封面帧地址并注明。没有原图写「未找到原图」,最后问:「要不要配图?可以用 topmind-cover 出一张 16:9 封面。」
76
+ 5. **说明**(可选):口径提醒、改动说明,放最后。
105
77
 
106
78
  **HTML 只在用户明确要求时出**(例如「出个一键复制 HTML」「公众号要排版好的版本」):
107
79
  `python3 scripts/md2x-html.py X短文.md --out X短文.html --images-from 公众号短文.md`、
@@ -129,7 +101,7 @@ metadata:
129
101
 
130
102
  ## 话题标签
131
103
 
132
- X 版末尾给 0–2 个话题标签建议(另给 1 个备选),单独成行放在最后:榜单、发布类取榜单名或产品通用名,再加 1 个领域词;
104
+ X 版末尾给 0–2 个话题标签(属正文;备选标签写在正文块外),单独成行放在最后:榜单、发布类取榜单名或产品通用名,再加 1 个领域词;
133
105
  不堆砌,不蹭无关热点,不用诱导互动或敏感标签;中文帖用中文话题,英文帖用英文驼峰。公众号稿不加话题标签。细则见 `references/platform-specs.md`。
134
106
 
135
107
  ## 内容类型(四种)
@@ -141,13 +113,6 @@ X 版末尾给 0–2 个话题标签建议(另给 1 个备选),单独成
141
113
  | 论文解读型 | 新论文、新方法 | 判断句开头 → 核心方法一句 + 3 条 emoji 要点 → 论文原图 |
142
114
  | 机制讲解型 | 技术原理、流程拆解 | 痛点一句 → 1️⃣2️⃣3️⃣ 分步 → 「简单来说」一句 → 流程图 |
143
115
 
144
- ## 配图铁律
145
-
146
- - 交付 1–2 张原图(核心图),最多 4 张。每张图必须承载信息,装饰图不要。
147
- - 图注写一句,说明这张图在证明什么;X 版文字里用 [图1] 标注对应关系。
148
- - 图紧跟它证明的那段文字(公众号版);图与文字不错位。
149
- - 封面不是必需品:有原图就用原图当首图;没有原图先问用户要不要配图,用户同意后才走 `topmind-cover`,不擅自生图。
150
-
151
116
  ## 和其他技能怎么配合
152
117
 
153
118
  | 场景 | 组合 |
@@ -9,5 +9,5 @@
9
9
  "type": "git",
10
10
  "url": "git+https://github.com/topmindspace/topmind-writing-skills.git"
11
11
  },
12
- "version": "0.2.16"
12
+ "version": "0.2.18"
13
13
  }
@@ -1,6 +1,8 @@
1
1
  # TopMind emoji 体系(账号人设 · 标题 · 列表)
2
2
 
3
- > 适用:`topmind-briefs`(短文)、`topmind-viral-posts`(段子)、`topmind-format`(格式化)的 X 稿,以及其他技能派生 X 纯文本稿时。
3
+ > 交付与列表规约见 `x-delivery-contract.md`(必读必守)。
4
+ > **只用于短文体**:`topmind-briefs`(短文)、`topmind-format` 的「格式化成短文」、viral-posts 热点资讯型的短文版,以及其他技能派生的 X 短文稿。
5
+ > **段子体完全不用 emoji**(`topmind-viral-posts` 段子、`topmind-format` 转段子):不用人设点缀、情绪表情、标题 emoji,也不用 emoji 列表符号;分点就一条一行、靠行间空行区分。
4
6
  > 公众号稿正文不用人设点缀。列表符号的细则见 `x-post-format.md`,本文只定「用哪些、用几个、放哪里」。
5
7
  > **唯一真源**:本文是 TopMind emoji 体系的唯一出处(仓库 `shared/references/emoji-system.md`,各技能目录里是逐字节副本)。各技能 SKILL.md 只引用本文,不另写一套 emoji 规则;要改体系只改这里。
6
8
 
@@ -12,7 +14,7 @@
12
14
  | 标题 emoji | 一眼看出这帖讲什么 | 标题行行首 | 0–1 个 |
13
15
  | 列表符号 | 分点、步骤、对比 | 每条列表项行首 | 一套,见 `x-post-format.md` |
14
16
 
15
- 三类之外的情绪表情(😂 🤝 😭)每帖最多 1 个,放在钩子或吐槽那一句的句尾。
17
+ 三类之外的情绪表情(😂 🤝 😭)短文一般不用。
16
18
 
17
19
  ## 二、人设点缀(账号 motif)
18
20
 
@@ -27,7 +29,7 @@
27
29
 
28
30
  用法:
29
31
 
30
- 1. **开头**:放在第一行行尾,或单独一行(段子可以单独一行)。例:`说个冷知识 🐱`
32
+ 1. **开头**:放在第一行(标题行)行尾。例:`🆕 某编辑器 3.0 发布 🐱`
31
33
  2. **结尾**:放在最后一句行尾(话题标签之前)。例:`明天见 🌱`
32
34
  3. **不进正文和列表**:正文中间、列表项里不放人设 emoji。
33
35
  4. **严肃内容不放**:事故、伤亡、争议、监管处罚类帖子不用人设点缀,也不用情绪表情。
@@ -76,7 +78,7 @@
76
78
 
77
79
  | 体裁 | 人设点缀 | 标题 emoji | 列表符号 | 情绪表情 |
78
80
  |---|---|---|---|---|
79
- | 段子(topmind-viral-posts / 转段子) | 0–2 | 不用(段子没有标题行) | 一般不用列表 | ≤1 |
81
+ | 段子(viral-posts 段子 / 转段子) | 0 | 0 | 0(分点不加符号,靠行间空行) | 0 |
80
82
  | 短文(topmind-briefs / 格式化成短文) | 0–2 | 0–1 | 一套 | 0 |
81
83
  | 严肃资讯 | 0 | 0–1(只用 ⚡ 📄 ⚠️ 📅) | • ▪ 或 🔹 | 0 |
82
84
  | 长帖资讯(【小标题】分节) | 0–1(只放结尾) | 0–1 | 一套或不用 | 0 |
@@ -85,22 +87,6 @@
85
87
 
86
88
  ## 七、示例(原创)
87
89
 
88
- 段子:
89
-
90
- ```text
91
- 说个冷知识 🐱
92
-
93
- X 的创作者收益,看的不只是浏览量。
94
-
95
- 付费蓝V用户的互动,权重明显更高。
96
-
97
- 所以同样十万浏览,收益可能差很多。
98
-
99
- 难怪大家都在找蓝V互动😂
100
-
101
- 蓝V互关,评论区报到 🌱
102
- ```
103
-
104
90
  短文:
105
91
 
106
92
  ```text
@@ -114,3 +100,15 @@ X 的创作者收益,看的不只是浏览量。
114
100
 
115
101
  #AI编程
116
102
  ```
103
+
104
+ 段子(零 emoji,对照用):
105
+
106
+ ```text
107
+ 说个冷知识:
108
+
109
+ X 的创作者收益,看的不只是浏览量。
110
+
111
+ 付费蓝V用户的互动,权重明显更高。
112
+
113
+ 蓝V互关,评论区报到
114
+ ```