@topmindspace/topmind-writing-skills 0.8.32 → 0.8.34

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 +51 -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 +11 -0
  6. package/topmind-briefs/README.en.md +1 -1
  7. package/topmind-briefs/README.md +1 -1
  8. package/topmind-briefs/SKILL.md +21 -36
  9. package/topmind-briefs/package.json +1 -1
  10. package/topmind-briefs/references/emoji-system.md +17 -4
  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 +122 -0
  15. package/topmind-briefs/references/x-layout-patterns.md +78 -0
  16. package/topmind-briefs/references/x-post-format.md +54 -103
  17. package/topmind-briefs/scripts/format_text.py +33 -15
  18. package/topmind-briefs/scripts/lint_x_post.py +36 -3
  19. package/topmind-cover/README.en.md +1 -1
  20. package/topmind-cover/README.md +1 -1
  21. package/topmind-format/README.en.md +1 -1
  22. package/topmind-format/README.md +1 -1
  23. package/topmind-format/SKILL.md +26 -11
  24. package/topmind-format/package.json +1 -1
  25. package/topmind-format/references/emoji-system.md +17 -4
  26. package/topmind-format/references/x-delivery-contract.md +122 -0
  27. package/topmind-format/references/x-layout-patterns.md +78 -0
  28. package/topmind-format/references/x-post-format.md +54 -103
  29. package/topmind-format/scripts/format_text.py +33 -15
  30. package/topmind-format/scripts/lint_x_post.py +36 -3
  31. package/topmind-format/scripts/negative_tests.py +23 -0
  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 +1 -1
  35. package/topmind-viral-posts/README.md +1 -1
  36. package/topmind-viral-posts/SKILL.md +35 -49
  37. package/topmind-viral-posts/package.json +1 -1
  38. package/topmind-viral-posts/references/emoji-system.md +17 -4
  39. package/topmind-viral-posts/references/patterns.md +6 -6
  40. package/topmind-viral-posts/references/tags-and-topics.md +21 -21
  41. package/topmind-viral-posts/references/x-delivery-contract.md +122 -0
  42. package/topmind-viral-posts/references/x-layout-patterns.md +78 -0
  43. package/topmind-viral-posts/references/x-post-format.md +54 -103
  44. package/topmind-viral-posts/scripts/format_text.py +33 -15
  45. package/topmind-viral-posts/scripts/lint_x_post.py +36 -3
  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 +122 -0
  51. package/topmind-wechat-post/references/x-post-format.md +54 -103
  52. package/topmind-wechat-post/scripts/lint_x_post.py +36 -3
  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 +122 -0
  58. package/topmind-x-article/references/x-post-format.md +54 -103
  59. package/topmind-x-article/scripts/lint_x_post.py +36 -3
  60. package/topmind-wechat-post/references/design.md +0 -50
package/CHANGELOG.md CHANGED
@@ -1,3 +1,54 @@
1
+ ## [0.8.34] - 2026-10-14
2
+
3
+ > 根包 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、
4
+ > topmind-wechat-post 0.3.8 → 0.3.9、topmind-x-article 0.4.14 → 0.4.15;topmind-cover、topmind-poster 不变。
5
+
6
+ ### 新增
7
+
8
+ - **X 文本交付规约** `references/x-delivery-contract.md`(共享,分发到 briefs、format、viral-posts、wechat-post、x-article;各 SKILL.md 开头「必读必守」引用):
9
+ - 列表:段子和短文都可以分点,分点必须用 emoji 列表符号,禁用 `- ` `* ` `1. `;段子体条目一条一行、行间空行。
10
+ - 交付分离:正文单独一个可直接复制的 `text` 块,只放可发布内容(标题、正文、emoji 列表、`来源:名称 URL` 行、末行话题标签);信源清单、原图 / 配图建议、内部分类与备选标签、说明各自块外另列;多条帖子每条一块;落盘文件同理。附聊天交付正例 2 个、反例 1 个。
11
+ - **`lint_x_post.py` W12**:正文里混入「信源:」「配图:」「说明:」「标签:」「【帖 N】」等非发布内容时警告。
12
+
13
+ ### 变更
14
+
15
+ - **`format_text.py` 段子体支持列表**:`--mode duanzi` 把 Markdown 列表改成 emoji 列表符号,条目行间空行;`--split` 不拆列表条目。
16
+ - **lint 列表判定**:只隔空行的列表项算同一个列表(段子体列表也查同层混用);帖子首行的标题 emoji 不再算列表项。
17
+ - 去掉「段子体不用列表符号」等矛盾措辞(`x-post-format.md`、`emoji-system.md`、format SKILL、viral-posts `patterns.md`)。
18
+ - **viral-posts**:Output Contract 与示例改为每条正文单独成块,信源 / 原图 / 内部标签另列;`tags-and-topics.md` 的「标签项」改为块外「内部标签」。
19
+ - **briefs**:交付格式按规约重写;`examples.md` 4 个示例改为中文、去掉正文里的 `[图]` 占位、补来源行;`platform-specs.md`、`style-guide.md` 的重复列表规则改为引用规约。
20
+ - **x-article / wechat-post**:引用规约;x-article 交付物不用 `--list-style keep`。
21
+ - 评测:更新 5 条、新增 4 条(段子分点、多条分块、format 段子列表、briefs 分块交付),共 63 条;format 负向测试补段子列表与 W12 用例。
22
+
23
+ ### 清理
24
+
25
+ - `x-post-format.md` 重写精简(174 → 93 行):删除与规约重复的「交付三块」、与 `emoji-system.md` 重复的 emoji 规则、与 `x-layout-patterns.md` 重复的「版式节奏」长段和重复示例。
26
+ - briefs SKILL.md 删除与工作流重复的「配图铁律」节。
27
+ - 删除 `topmind-wechat-post/references/design.md`(无引用;描述的桌面端对拍测试不在本仓库,已过时)。
28
+ - README 中英文新增「X 文本统一规约」表,替换旧的 emoji 体系单行说明;版本号与能力描述同步。
29
+
30
+ ## [0.8.33] - 2026-10-14
31
+
32
+ > 根包 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、
33
+ > topmind-wechat-post 0.3.7 → 0.3.8、topmind-x-article 0.4.13 → 0.4.14(后两者只同步共享文件 `x-post-format.md` / `lint_x_post.py`);topmind-cover、topmind-poster 不变。
34
+
35
+ ### 新增
36
+
37
+ - **X 短文版式规律**:新增共享文档 `references/x-layout-patterns.md`(分发到 briefs、format、viral-posts),拆解 6 条 X 参考帖的开头钩子、分段长度、空行节奏、列表写法、emoji 用法、中英混排、链接与话题标签位置、结尾,只记规律、不收录原文,逐条注明原帖链接;末尾附一页速查。
38
+ - **交付三块**:X 短文 / 短帖 / 格式化统一交付 ① 可直接复制的纯文本正文(text 代码块,块内无 Markdown)② 原帖 / 信源地址(含发布时间)③ 1–2 张原图(图片地址或交付目录文件)。规则写入 `x-post-format.md`,briefs 附正例模板。
39
+ - **`lint_x_post.py`**:新增 E8(普通帖里残留代码围栏 ```)、E9(删除线 ~~)、W11(连续多个空行);`--fix` 自动去掉围栏与删除线。format 负向测试补对应用例与共享文档存在性检查。
40
+
41
+ ### 变更
42
+
43
+ - **没有原图先询问**:briefs、format、viral-posts 与 `x-post-format.md` 统一为「没有原图时主动问用户是否配图(可选 topmind-cover),不擅自生图」;viral-posts 输出模板新增「信源」行,示例同步。
44
+ - **emoji 体系唯一真源**:`emoji-system.md` 声明为 TopMind emoji 体系唯一出处,各技能只引用不另写;新增「只用 TopMind 的,不跟风」一节(不用 🔥 😍 凑标题、不堆话题标签、长帖可零 emoji 靠【小标题】分层),列表前「xx:」引导语,长帖资讯配额。
45
+ - **`x-post-format.md`**:新增「版式节奏」7 条(首行给结论、列表引导语、长条目间空行、【小标题】分节、中英混排、链接单独一行、一句收尾)与第四种骨架「分节长帖」。
46
+ - **topmind-briefs**:X 版写作步骤接入版式规律;配图改为交付 1–2 张原图;交付格式改为固定三块并附正例模板。
47
+
48
+ ### 文档
49
+
50
+ - README 中英文、`docs/PUBLISHING.md`、各技能 README 版本号与能力描述同步。
51
+
1
52
  ## [0.8.32] - 2026-10-14
2
53
 
3
54
  > 根包 0.8.31 → **0.8.32**(patch);新增技能 **topmind-format 0.1.0**;技能版本:topmind-briefs 0.2.14 → 0.2.15、topmind-viral-posts 0.3.6 → 0.3.7、
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. Jokes may use bullets too — always emoji bullets, one per line with blank lines between. 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, bullets turned into emoji bullets; **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) | Bullets are always emoji bullets (jokes and briefs alike; no `- ` / `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: 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).
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.7** | WeChat article lifecycle: package, review, 3 quality gates, inline typography & publish checklist |
95
- | [`topmind-x-article`](./topmind-x-article/) | **0.4.13** | 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.9** | WeChat article lifecycle: package, review, 3 quality gates, inline typography & publish checklist |
106
+ | [`topmind-x-article`](./topmind-x-article/) | **0.4.15** | 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.15** | 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; original images first, cover optional; delivery lists source / publish time / link |
98
- | [`topmind-viral-posts`](./topmind-viral-posts/) | **0.3.7** | 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, optional 16:9 image via topmind-cover |
99
- | [`topmind-format`](./topmind-format/) | **0.1.0** | X plain-text formatter: to duanzi (blank lines) / to short post (paragraphing + emoji system); layout only, words unchanged, with a fidelity check |
108
+ | [`topmind-briefs`](./topmind-briefs/) | **0.2.17** | 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.9** | X viral short posts: 18 template types + combinations, duanzi layout (blank lines, emoji bullets), 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.2** | X plain-text formatter: to duanzi (blank lines) / 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.32** (whole-repo same-tag releases).
113
+ Installer [`@topmindspace/topmind-writing-skills`](https://www.npmjs.com/package/@topmindspace/topmind-writing-skills) is **0.8.34** (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。尊重原始信息、原图、原文,配图原图优先、封面可选;交付时写明信息来源、发布时间与来源链接。只起草不代发。
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 列表符号(段子、短文都一样,禁用 `- ` `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 正文混入信源 / 配图 / 说明 / 内部标签)。
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.7** | 公众号文章全生命周期:交付包、审校改写、质量三关、微信内联排版与发布清单 |
95
- | [`topmind-x-article`](./topmind-x-article/) | **0.4.13** | X 长文一键发布:Markdown 原稿 → 一键复制 HTML(含配图/提示词复制、图片点击放大)/ 纯文本兜底 + 封面图 + 发布清单 |
105
+ | [`topmind-wechat-post`](./topmind-wechat-post/) | **0.3.9** | 公众号文章全生命周期:交付包、审校改写、质量三关、微信内联排版与发布清单 |
106
+ | [`topmind-x-article`](./topmind-x-article/) | **0.4.15** | 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.15** | 干货短文(公众号 + X 双平台):一件事讲透,数据榜单/论文解读/新品速递;X 版一段纯文本(默认不出 HTML)+ emoji 列表 + 来源链接 + 话题标签建议;原图优先、封面可选;交付附信息来源 / 发布时间 / 链接 |
98
- | [`topmind-viral-posts`](./topmind-viral-posts/) | **0.3.7** | X 引流段子/爆款短篇:18 大类型模板 + 组合玩法,段子体(行间空行)、事实类带来源链接、带话题标签与分类标签;配图原图优先,无原图可选走 topmind-cover 出 16:9 图 |
99
- | [`topmind-format`](./topmind-format/) | **0.1.0** | X 纯文本格式化:转段子(行间空行)/ 格式化成短文(分段 + emoji 体系),只动排版不改字,带原文保真校验 |
108
+ | [`topmind-briefs`](./topmind-briefs/) | **0.2.17** | 干货短文(公众号 + X 双平台):一件事讲透,数据榜单/论文解读/新品速递;X 版一段纯文本(默认不出 HTML)+ emoji 列表 + 来源链接 + 话题标签建议;正文单独成块,信源 / 原图另列,无原图先询问配图 |
109
+ | [`topmind-viral-posts`](./topmind-viral-posts/) | **0.3.9** | X 引流段子/爆款短篇:18 大类型模板 + 组合玩法,段子体(行间空行,分点用 emoji 列表)、每条正文单独成块、话题标签在正文、分类标签另列;无原图先询问再走 topmind-cover |
110
+ | [`topmind-format`](./topmind-format/) | **0.1.2** | 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.32**(整仓同 tag 发版)。
113
+ 安装器 [`@topmindspace/topmind-writing-skills`](https://www.npmjs.com/package/@topmindspace/topmind-writing-skills) 为 **0.8.34**(整仓同 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.32",
3
+ "version": "0.8.34",
4
4
  "description": "TopMindSpace 写作技能合集 — 通过 npm / npx 安装技能(公众号长文、X 长文、干货短文、X 引流短帖、封面图、长图海报)。只出稿与发布包,不代发。",
5
5
  "license": "MIT",
6
6
  "author": "TopMindspace",
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.17 (2026-10-14)
4
+
5
+ - 特性支持:接入共享 X 交付规约 `x-delivery-contract.md`(必读必守)——X 正文单独成块,信源 / 原图 / 说明另列;分点必须用 emoji 列表符号
6
+ - 优化:`examples.md` 改为中文示例并去掉正文里的图片占位;`platform-specs.md`、`style-guide.md` 去重;删除重复的「配图铁律」节
7
+
8
+ ## 0.2.16 (2026-10-14)
9
+
10
+ - 特性支持:交付固定三块(可复制纯文本正文 / 原帖与信源地址 / 1–2 张原图)并附正例模板;没有原图时主动询问是否配图,不擅自生图
11
+ - 优化:X 版写作接入共享 `x-layout-patterns.md`(首行给结论、列表引导语、长条目间空行、【小标题】分节、中英混排、链接单独一行);emoji 只引用共享 `emoji-system.md`
12
+ - 优化:`lint_x_post.py` 新增 E8/E9/W11(见根 CHANGELOG 0.8.33)
13
+
3
14
  ## 0.2.15 (2026-10-14)
4
15
 
5
16
  - 变更:短文默认不出 HTML——X 版交付一段可直接复制的纯文本,公众号版交付 Markdown;`md2x-html.py` / `md2wechat.py` 仍随包自带,仅在用户明确要求时使用
@@ -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.15** (ships with `@topmindspace/topmind-writing-skills@0.8.32`)
11
+ - Version: **v0.2.17** (ships with `@topmindspace/topmind-writing-skills@0.8.34`)
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.15**(随 `@topmindspace/topmind-writing-skills@0.8.32` 发布)
9
+ - 版本:**v0.2.17**(随 `@topmindspace/topmind-writing-skills@0.8.34` 发布)
10
10
 
11
11
  ## 安装
12
12
 
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  name: topmind-briefs
3
- description: "干货短文:一件事讲透,X + 公众号双平台。短文不是长文——默认不出 HTML:X 版是一段可直接复制的纯文本(合理分段换行,标题与列表用克制的 emoji,带来源链接,0–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)、把稿子发出去(→ 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.15"
6
+ version: "0.2.17"
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`。
@@ -46,42 +48,32 @@ metadata:
46
48
 
47
49
  1. **定主题**:一篇只讲一件事——一个数据、一个榜单变化、一篇论文的核心结论、一个新品的关键参数。定不下来就问:这篇让读者记住哪一个数字或结论?
48
50
  2. **找素材**:先核实,再找图。记下每条信息的**来源名称、链接、发布时间**(交付时要报给用户)。
49
- 3. **写 X 版**:一段纯文本,按 [references/platform-specs.md](references/platform-specs.md) 和 [references/style-guide.md](references/style-guide.md):
50
- - 标题一行,行首可放 1 个与关键词对应的 emoji(发布 🆕、数据 📊、论文 📄 …);
51
- - 正文一段 1–3 行,段与段空一行;并列信息用 emoji 列表(默认 🔹,步骤 1️⃣,对比 ✅/❌),一帖一套;
51
+ 3. **写 X 版**:一段纯文本,按 [references/platform-specs.md](references/platform-specs.md)、[references/style-guide.md](references/style-guide.md) 和参考帖版式规律 [references/x-layout-patterns.md](references/x-layout-patterns.md):
52
+ - 标题一行,写出「是什么 + 最扎眼的事实」(只看首行也拿到信息),行首可放 1 个与关键词对应的 emoji(发布 🆕、数据 📊、论文 📄 …);
53
+ - 正文一段 1–3 行,段与段空一行;并列信息用 emoji 列表(默认 🔹,步骤 1️⃣,对比 ✅/❌),一帖一套;列表前一行写「xx:」引导语,列表后一句收尾;
54
+ - 中英混排:英文专名保留原文,中英之间加半角空格;链接单独一行写明用途;
55
+ - 信息量大(约 500 字以上、账号支持长帖)时用【小标题】分节,不用 `#`;
52
56
  - 正文后单独一行 `来源:名称 URL`,最后一行 0–2 个话题标签;
53
- - emoji 配额按 [references/emoji-system.md](references/emoji-system.md):人设点缀(🐔 🐱 🌱)最多 2 个、只放首尾,严肃资讯不放;
57
+ - emoji 只用 TopMind 体系,唯一出处 [references/emoji-system.md](references/emoji-system.md):标题 emoji 按关键词对照表取(对不上就不放,不用 🔥 😍 凑数),人设点缀(🐔 🐱 🌱)最多 2 个、只放首尾,严肃资讯不放;
54
58
  - 不用 Markdown(X 不渲染),规则见 [references/x-post-format.md](references/x-post-format.md)。
55
59
  4. **写公众号版**(用户要双平台时):300–800 字 Markdown,内容与 X 版一致,只允许排版差异;不写前言导读。
56
- 5. **配图**:原图优先,1 张核心图,最多 4 张,每张写一句图注说明它证明什么。**没有可用原图时**,封面可选:问用户或直接调用 `topmind-cover` 的「X 短文封面」(16:9,1200×675)。有原图时不另配封面,除非用户要。
60
+ 5. **配图**:原图优先,交付 1–2 张(官方图、原帖配图 / 原帖截图、基准图、榜单实拍),每张写一句图注说明它证明什么;给可直接打开的图片地址,能下载就下载到交付目录。**没有可用原图时,必须主动问用户「要不要配图?可以用 topmind-cover 出一张 16:9 封面」**,用户说要再调用 `topmind-cover` 的「X 短文封面」(16:9,1200×675);不擅自生图。
57
61
  6. **自检**:
58
62
  - 每个数字都有来源;图和文字说的是同一件事;推测已标注;
59
63
  - 按 [references/writing-principles.md](references/writing-principles.md)「去 AI 味清单」过一遍;
60
- - `python3 scripts/lint_x_post.py X短文.txt`:错误清零,W8(表情过多)/ W9(AI 套话)/ W10(缺来源)逐条处理;
64
+ - `python3 scripts/lint_x_post.py X短文.txt`:错误清零(含 Markdown 列表/标题/加粗/引用/链接/删除线/代码围栏残留),W8(表情过多)/ W9(AI 套话)/ W10(缺来源)逐条处理;
61
65
  - 需要统一排版时可跑 `python3 scripts/format_text.py X短文.txt --mode short --out X短文.txt`(只动排版不改字)。
62
- 7. **交付**(只交付,不发布):见下节「交付格式」。
66
+ 7. **交付**(只交付,不发布):见下节「交付格式」;落盘时 `X短文.txt` 只放正文,信源 / 配图 / 说明写进 `交付说明.md`。
63
67
 
64
68
  ## 交付格式
65
69
 
66
- 默认交付纯文本,不生成 HTML:
67
-
68
- ```text
69
- 【X 版】(可直接复制)
70
- <一段纯文本>
70
+ 默认交付纯文本,不生成 HTML,严格按 [references/x-delivery-contract.md](references/x-delivery-contract.md)(含正反例):
71
71
 
72
- 【公众号版】(用户要时)
73
- <Markdown 正文>
74
-
75
- 【配图】
76
- [图1] <文件名或原图链接> — <图注>;来源:<名称>
77
-
78
- 【信息来源】
79
- - <来源名称>|发布时间:<YYYY-MM-DD HH:MM,注明时区>|<URL>
80
- - <来源名称>|发布时间:…|<URL>
81
- ```
82
-
83
- 给用户的说明里必须写明:**信息来源、发布时间、来源链接**(每条承重事实一条),以及图片来源(原图出处或「生图」)。
84
- 发布时间取原文页面上的时间;页面没有时间时写「未标注」,不猜。
72
+ 1. **X 正文块**:一个 `text` 代码块,只放可发布内容——标题、正文、emoji 列表、`来源:名称 URL` 行、末行话题标签。thread 每条一块。
73
+ 2. **公众号版**(用户要时):单独一个 `markdown` 块。
74
+ 3. **信源**:`来源名称|发布时间(注明时区)|URL`,每条承重事实一行;发布时间取原文页面,没有就写「未标注」。
75
+ 4. **原图**:1–2 张,`[图1] 图片地址或文件名 — 图注;来源`;视频给封面帧地址并注明。没有原图写「未找到原图」,最后问:「要不要配图?可以用 topmind-cover 出一张 16:9 封面。」
76
+ 5. **说明**(可选):口径提醒、改动说明,放最后。
85
77
 
86
78
  **HTML 只在用户明确要求时出**(例如「出个一键复制 HTML」「公众号要排版好的版本」):
87
79
  `python3 scripts/md2x-html.py X短文.md --out X短文.html --images-from 公众号短文.md`、
@@ -109,7 +101,7 @@ metadata:
109
101
 
110
102
  ## 话题标签
111
103
 
112
- X 版末尾给 0–2 个话题标签建议(另给 1 个备选),单独成行放在最后:榜单、发布类取榜单名或产品通用名,再加 1 个领域词;
104
+ X 版末尾给 0–2 个话题标签(属正文;备选标签写在正文块外),单独成行放在最后:榜单、发布类取榜单名或产品通用名,再加 1 个领域词;
113
105
  不堆砌,不蹭无关热点,不用诱导互动或敏感标签;中文帖用中文话题,英文帖用英文驼峰。公众号稿不加话题标签。细则见 `references/platform-specs.md`。
114
106
 
115
107
  ## 内容类型(四种)
@@ -121,19 +113,12 @@ X 版末尾给 0–2 个话题标签建议(另给 1 个备选),单独成
121
113
  | 论文解读型 | 新论文、新方法 | 判断句开头 → 核心方法一句 + 3 条 emoji 要点 → 论文原图 |
122
114
  | 机制讲解型 | 技术原理、流程拆解 | 痛点一句 → 1️⃣2️⃣3️⃣ 分步 → 「简单来说」一句 → 流程图 |
123
115
 
124
- ## 配图铁律
125
-
126
- - 一篇配 1 张核心图,最多 4 张。每张图必须承载信息,装饰图不要。
127
- - 图注写一句,说明这张图在证明什么;X 版文字里用 [图1] 标注对应关系。
128
- - 图紧跟它证明的那段文字(公众号版);图与文字不错位。
129
- - 封面不是必需品:有原图就用原图当首图;没有原图才考虑 `topmind-cover`。
130
-
131
116
  ## 和其他技能怎么配合
132
117
 
133
118
  | 场景 | 组合 |
134
119
  |---|---|
135
120
  | 写完再统一排版 | 本技能 → `topmind-format` 短文体(只排版不改字) |
136
- | 没有原图、要一张首图 | 本技能 → `topmind-cover`「X 短文封面」 |
121
+ | 没有原图、用户同意配图 | 本技能 → `topmind-cover`「X 短文封面」 |
137
122
  | 内容太多、写成长文 | 转 `topmind-x-article`(X 长文)或 `topmind-wechat-post`(公众号长文) |
138
123
  | 要一张数据长图 | 本技能出文案 → `topmind-poster` 出图 |
139
124
  | 同一事件出段子 | 本技能出干货版,`topmind-viral-posts` 出引流版,事实与来源保持一致 |
@@ -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.15"
12
+ "version": "0.2.17"
13
13
  }
@@ -1,7 +1,9 @@
1
1
  # TopMind emoji 体系(账号人设 · 标题 · 列表)
2
2
 
3
+ > 交付与列表规约见 `x-delivery-contract.md`(必读必守)。
3
4
  > 适用:`topmind-briefs`(短文)、`topmind-viral-posts`(段子)、`topmind-format`(格式化)的 X 稿,以及其他技能派生 X 纯文本稿时。
4
5
  > 公众号稿正文不用人设点缀。列表符号的细则见 `x-post-format.md`,本文只定「用哪些、用几个、放哪里」。
6
+ > **唯一真源**:本文是 TopMind emoji 体系的唯一出处(仓库 `shared/references/emoji-system.md`,各技能目录里是逐字节副本)。各技能 SKILL.md 只引用本文,不另写一套 emoji 规则;要改体系只改这里。
5
7
 
6
8
  ## 一、三类 emoji,各管一件事
7
9
 
@@ -55,23 +57,34 @@
55
57
 
56
58
  一个标题只放一个 emoji,放在行首,后面空一格。
57
59
 
58
- ## 四、列表 emoji:统一、克制
60
+ ## 四、只用 TopMind 的,不跟风
61
+
62
+ 参考帖里常见的 🔥 😍 🚀 💥 开头、6–10 个话题标签、同一列表 🔸 🔹 混用,是别人的个人风格,TopMind 不照搬:
63
+
64
+ - 标题行首只放第三节对照表里的标题 emoji;对不上关键词就不放,不用 🔥 😍 🚀 凑热度。
65
+ - 账号辨识度只靠人设点缀(🐔 🐱 + 小动物 / 植物),放首尾。
66
+ - 信息密度高的长帖(分【小标题】的那种)可以完全不用 emoji,靠空行和【】小标题分层——这也是 TopMind 风格。
67
+ - 版式规律见 `x-layout-patterns.md`。
68
+
69
+ ## 五、列表 emoji:统一、克制
59
70
 
60
71
  - 默认 🔹(二级 ▫️),步骤 1️⃣ 2️⃣ 3️⃣,对比 ✅ / ❌ 成对,严肃内容用 • ▪。
61
72
  - 一帖一套,不在同一层级混用;列表项里不再加第二个 emoji。
62
73
  - 数据型列表可以用一次 📌 标最关键那一条,其余仍用 🔹。
74
+ - 列表前写一句「xx:」引导语(如「三处变化:」),引导语本身不加 emoji。
63
75
 
64
- ## 五、按体裁的配额
76
+ ## 六、按体裁的配额
65
77
 
66
78
  | 体裁 | 人设点缀 | 标题 emoji | 列表符号 | 情绪表情 |
67
79
  |---|---|---|---|---|
68
- | 段子(topmind-viral-posts / 转段子) | 0–2 | 不用(段子没有标题行) | 一般不用列表 | ≤1 |
80
+ | 段子(topmind-viral-posts / 转段子) | 0–2 | 不用(段子没有标题行) | 分点时一套(条目间空一行) | ≤1 |
69
81
  | 短文(topmind-briefs / 格式化成短文) | 0–2 | 0–1 | 一套 | 0 |
70
82
  | 严肃资讯 | 0 | 0–1(只用 ⚡ 📄 ⚠️ 📅) | • ▪ 或 🔹 | 0 |
83
+ | 长帖资讯(【小标题】分节) | 0–1(只放结尾) | 0–1 | 一套或不用 | 0 |
71
84
 
72
85
  合计:一帖的点缀类 emoji(人设 + 标题 + 情绪)不超过 3 个,`lint_x_post.py` 超过 4 个会给 W8 警告。
73
86
 
74
- ## 六、示例(原创)
87
+ ## 七、示例(原创)
75
88
 
76
89
  段子:
77
90