@topmindspace/topmind-writing-skills 0.8.38 → 0.8.40

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 (85) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.en.md +28 -10
  3. package/README.md +28 -10
  4. package/package.json +1 -1
  5. package/topmind-briefs/CHANGELOG.md +8 -0
  6. package/topmind-briefs/README.en.md +5 -1
  7. package/topmind-briefs/README.md +5 -1
  8. package/topmind-briefs/SKILL.md +3 -3
  9. 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 +13 -0
  10. package/topmind-briefs/examples/01-/351/223/276/346/216/245/344/270/216/351/205/215/345/233/276.txt +5 -0
  11. 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 +13 -0
  12. package/topmind-briefs/examples/03-/345/205/254/344/274/227/345/217/267/347/237/255/346/226/207-/347/225/252/350/214/204/345/267/245/344/275/234/346/263/225.md +19 -0
  13. package/topmind-briefs/examples/README.md +9 -0
  14. package/topmind-briefs/package.json +1 -1
  15. package/topmind-briefs/references/emoji-system.md +3 -3
  16. package/topmind-briefs/references/examples.md +1 -1
  17. package/topmind-briefs/references/platform-specs.md +2 -2
  18. package/topmind-briefs/references/style-guide.md +1 -1
  19. package/topmind-briefs/references/x-layout-patterns.md +15 -16
  20. package/topmind-briefs/references/x-post-format.md +7 -5
  21. package/topmind-briefs/scripts/lint_x_post.py +5 -5
  22. package/topmind-cover/README.en.md +1 -1
  23. package/topmind-cover/README.md +1 -1
  24. package/topmind-cover/SKILL.md +1 -1
  25. package/topmind-cover/assets/examples/README.md +1 -1
  26. package/topmind-cover/package.json +1 -1
  27. package/topmind-cover/references/cover-combos.md +1 -1
  28. package/topmind-cover/references/cover-patterns.md +1 -1
  29. package/topmind-cover/references/cover-prompts.md +4 -15
  30. package/topmind-cover/references/design-system.md +0 -9
  31. package/topmind-cover/references/scene-builder.md +0 -3
  32. package/topmind-cover/scripts/negative_tests.py +12 -0
  33. package/topmind-format/README.en.md +5 -1
  34. package/topmind-format/README.md +5 -1
  35. package/topmind-format/SKILL.md +1 -1
  36. package/topmind-format/examples/01-/345/216/237/346/226/207.txt +1 -0
  37. package/topmind-format/examples/01-/346/240/274/345/274/217/345/214/226/346/210/220/347/237/255/346/226/207.txt +10 -0
  38. package/topmind-format/examples/02-/345/216/237/346/226/207.txt +1 -0
  39. package/topmind-format/examples/02-/350/275/254/346/256/265/345/255/220.txt +11 -0
  40. package/topmind-format/examples/README.md +6 -0
  41. package/topmind-format/package.json +1 -1
  42. package/topmind-format/references/emoji-system.md +3 -3
  43. package/topmind-format/references/x-layout-patterns.md +15 -16
  44. package/topmind-format/references/x-post-format.md +7 -5
  45. package/topmind-format/scripts/lint_x_post.py +5 -5
  46. package/topmind-format/scripts/negative_tests.py +12 -1
  47. package/topmind-poster/README.en.md +5 -1
  48. package/topmind-poster/README.md +5 -1
  49. package/topmind-poster/SKILL.md +1 -1
  50. package/topmind-poster/examples/01-/346/265/267/346/212/245-/351/230/205/350/257/273/346/234/210/346/212/245.md +8 -0
  51. package/topmind-poster/examples/02-/346/265/267/346/212/245-/345/267/245/345/205/267/345/210/206/347/272/247/346/246/234.md +9 -0
  52. package/topmind-poster/examples/README.md +6 -0
  53. package/topmind-poster/package.json +1 -1
  54. package/topmind-viral-posts/README.en.md +5 -1
  55. package/topmind-viral-posts/README.md +5 -1
  56. package/topmind-viral-posts/SKILL.md +3 -5
  57. package/topmind-viral-posts/examples/01-/345/221/250/344/270/200/346/227/251/346/231/250.txt +13 -0
  58. package/topmind-viral-posts/examples/02-/346/224/266/347/272/263.txt +13 -0
  59. package/topmind-viral-posts/examples/03-/350/257/273/344/271/246/350/256/241/345/210/222.txt +13 -0
  60. package/topmind-viral-posts/examples/README.md +9 -0
  61. package/topmind-viral-posts/package.json +1 -1
  62. package/topmind-viral-posts/references/emoji-system.md +3 -3
  63. package/topmind-viral-posts/references/patterns.md +14 -14
  64. package/topmind-viral-posts/references/x-layout-patterns.md +15 -16
  65. package/topmind-viral-posts/references/x-post-format.md +7 -5
  66. package/topmind-viral-posts/scripts/lint_x_post.py +5 -5
  67. package/topmind-wechat-post/README.en.md +5 -1
  68. package/topmind-wechat-post/README.md +5 -1
  69. package/topmind-wechat-post/SKILL.md +1 -1
  70. package/topmind-wechat-post/examples/01-/345/205/254/344/274/227/345/217/267-/346/225/264/347/220/206/344/271/246/346/236/266.md +19 -0
  71. package/topmind-wechat-post/examples/02-/345/205/254/344/274/227/345/217/267-/347/254/254/344/270/200/346/254/241/345/205/273/347/273/277/346/244/215.md +17 -0
  72. package/topmind-wechat-post/examples/README.md +6 -0
  73. package/topmind-wechat-post/package.json +1 -1
  74. package/topmind-wechat-post/references/x-post-format.md +7 -5
  75. package/topmind-wechat-post/scripts/lint_x_post.py +5 -5
  76. package/topmind-x-article/README.en.md +15 -11
  77. package/topmind-x-article/README.md +15 -11
  78. package/topmind-x-article/SKILL.md +1 -1
  79. package/topmind-x-article/examples/01-/351/225/277/346/226/207-/346/205/242/346/205/242/345/206/231.md +17 -0
  80. package/topmind-x-article/examples/02-/351/225/277/346/226/207-/345/221/250/346/234/253/347/237/255/351/200/224.md +19 -0
  81. package/topmind-x-article/examples/README.md +6 -0
  82. package/topmind-x-article/package.json +1 -1
  83. package/topmind-x-article/references/x-html-format.md +2 -2
  84. package/topmind-x-article/references/x-post-format.md +7 -5
  85. package/topmind-x-article/scripts/lint_x_post.py +5 -5
package/CHANGELOG.md CHANGED
@@ -1,3 +1,23 @@
1
+ ## [0.8.40] - 2026-10-16
2
+
3
+ > 根包 0.8.39 → **0.8.40**(patch);技能版本:topmind-briefs 0.2.20 → 0.2.21、topmind-format 0.1.5 → 0.1.6、topmind-viral-posts 0.3.12 → 0.3.13、topmind-wechat-post 0.3.12 → 0.3.13、topmind-x-article 0.4.18 → 0.4.19。
4
+
5
+ ### 变更(短文去掉 280 字限制)
6
+
7
+ - 统一定义:**短文** = X 纯文本帖,约 1000 字以内都可以;**长文** = X Article;段子规则不变。
8
+ - 删掉所有 280 字 / 加权字数限制和「超了拆 thread / 确认账号支持长帖」的说法;briefs 的 platform-specs、style-guide、examples、SKILL.md,viral-posts 写作铁律,evals 同步。
9
+ - `lint_x_post.py` 的 W7 改为:超过约 1000 字才提示写成长文(X Article);format negative_tests 新增对应用例。
10
+
11
+ - 2026-10-16
12
+
13
+ > 根包 0.8.38 → **0.8.39**(patch);技能版本:topmind-briefs 0.2.19 → 0.2.20、topmind-cover 0.4.10 → 0.4.11、topmind-format 0.1.4 → 0.1.5、topmind-poster 0.1.5 → 0.1.6、topmind-viral-posts 0.3.11 → 0.3.12、topmind-wechat-post 0.3.11 → 0.3.12、topmind-x-article 0.4.17 → 0.4.18。
14
+
15
+ ### 变更(原创化清理 + 各技能原创示例)
16
+
17
+ - 全仓清理参考来源:删掉资料网址清单、外部文章出处行、第三方帖子链接与账号、「参考帖 / 灵感来自」类说法;示例里的真实产品名和第三方帖子改写换成我们自己写的虚构内容。规则全部改用我们自己的话表述。
18
+ - topmind-cover negative_tests 新增全仓守卫:再出现参考来源、站点名、账号或致谢语即失败。
19
+ - 各技能新增 `examples/` 原创示例:段子 3 条、短文 3 篇(含链接与配图另列)、排版前后对照 2 组、X 长文 2 篇、公众号 2 篇、海报文案 2 份;根 README 与各技能 README 加链接。
20
+
1
21
  ## [0.8.38] - 2026-10-16
2
22
 
3
23
  > 根包 0.8.37 → **0.8.38**(patch);技能版本:topmind-cover 0.4.9 → 0.4.10;其余技能不变。
package/README.en.md CHANGED
@@ -66,7 +66,7 @@ Single source in `shared/references/`, distributed to each skill's `references/`
66
66
  | `x-delivery-contract.md` (must read) | Short-post workflow: sources → original post/images → content → layout; emoji optional for short posts (emoji or 「1)」/「·」/【headings】 bullets), 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
67
  | `x-post-format.md` | No Markdown, bullet sets, spacing, sources, skeletons, images, WeChat → X |
68
68
  | `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
- | `x-layout-patterns.md` | Layout patterns distilled from reference posts |
69
+ | `x-layout-patterns.md` | Layout patterns in our own words |
70
70
 
71
71
  Checks: `lint_x_post.py` (E1–E9 Markdown leftovers; E10–E12 URLs / source lines / image notes in the body; W9 AI-sounding phrases, W10 first line too long for a hook, W12 notes / internal tags in the body; W13 any emoji in a duanzi post with `--duanzi`; `--long` skips E10–E12 for long-form). The de-AI and hook checklist lives in section 5.5 of `writing-principles.md`.
72
72
 
@@ -98,19 +98,37 @@ npx @topmindspace/topmind-writing-skills install topmind-poster
98
98
  > the npm package is `@topmindspace/topmind-writing-skills` and the old package is no longer updated.
99
99
  > Also do not install the old package's `^2` (2.0.0–2.1.1 deprecated).
100
100
 
101
+
102
+ ## Original examples
103
+
104
+ Every skill ships sample outputs written by us (fictional or neutral topics; no third-party text or images):
105
+
106
+ | Skill | Examples |
107
+ |---|---|
108
+ | topmind-viral-posts (one-liners) | [`topmind-viral-posts/examples/`](./topmind-viral-posts/examples/) |
109
+ | topmind-briefs (short posts) | [`topmind-briefs/examples/`](./topmind-briefs/examples/) |
110
+ | topmind-format (formatting) | [`topmind-format/examples/`](./topmind-format/examples/) |
111
+ | topmind-x-article (X long-form) | [`topmind-x-article/examples/`](./topmind-x-article/examples/) |
112
+ | topmind-wechat-post (WeChat) | [`topmind-wechat-post/examples/`](./topmind-wechat-post/examples/) |
113
+ | topmind-poster (posters) | [`topmind-poster/examples/`](./topmind-poster/examples/) |
114
+ | topmind-cover (covers) | [`topmind-cover/assets/examples/`](./topmind-cover/assets/examples/) |
115
+
101
116
  ## Skills
102
117
 
118
+ > Terms: **short post (短文)** = a plain-text X post, anything up to about 1000 Chinese characters (no 280-character limit); **long-form (长文)** = an X Article; **duanzi (段子)** = a one-sentence-per-line short-post style.
119
+
120
+
103
121
  | Skill | Version | What it does |
104
122
  |-------|---------|--------------|
105
- | [`topmind-wechat-post`](./topmind-wechat-post/) | **0.3.11** | WeChat article lifecycle: package, review, 3 quality gates, inline typography & publish checklist |
106
- | [`topmind-x-article`](./topmind-x-article/) | **0.4.17** | X long-form one-click publish: Markdown → one-click-copy HTML (images/prompt copy, click-to-zoom images) / plain-text fallback + cover + checklist |
107
- | [`topmind-cover`](./topmind-cover/) | **0.4.10** | 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 |
108
- | [`topmind-briefs`](./topmind-briefs/) | **0.2.19** | 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 |
109
- | [`topmind-viral-posts`](./topmind-viral-posts/) | **0.3.11** | 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 |
110
- | [`topmind-format`](./topmind-format/) | **0.1.4** | 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 |
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) |
112
-
113
- Installer [`@topmindspace/topmind-writing-skills`](https://www.npmjs.com/package/@topmindspace/topmind-writing-skills) is **0.8.38** (whole-repo same-tag releases).
123
+ | [`topmind-wechat-post`](./topmind-wechat-post/) | **0.3.13** | WeChat article lifecycle: package, review, 3 quality gates, inline typography & publish checklist |
124
+ | [`topmind-x-article`](./topmind-x-article/) | **0.4.19** | X long-form one-click publish: Markdown → one-click-copy HTML (images/prompt copy, click-to-zoom images) / plain-text fallback + cover + checklist |
125
+ | [`topmind-cover`](./topmind-cover/) | **0.4.11** | 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 |
126
+ | [`topmind-briefs`](./topmind-briefs/) | **0.2.21** | 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 |
127
+ | [`topmind-viral-posts`](./topmind-viral-posts/) | **0.3.13** | 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 |
128
+ | [`topmind-format`](./topmind-format/) | **0.1.6** | 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 |
129
+ | [`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) |
130
+
131
+ Installer [`@topmindspace/topmind-writing-skills`](https://www.npmjs.com/package/@topmindspace/topmind-writing-skills) is **0.8.40** (whole-repo same-tag releases).
114
132
 
115
133
  ### Which skill, and how they combine
116
134
 
package/README.md CHANGED
@@ -66,7 +66,7 @@ npx @topmindspace/topmind-writing-skills install topmind-format
66
66
  | `x-delivery-contract.md`(必读必守) | 短文工作流:信源 → 原帖原图 → 内容 → 排版;短文 emoji 不强制(分点可用 emoji 或「1)」「·」【小标题】),段子完全不用 emoji,都禁用 `- ` `1. `;X 短文 / 段子的正文是一段可直接复制的纯文本(话题标签在末行),**链接(含来源)、原图、配图另发**;X 长文与公众号长文可保留文内链接 |
67
67
  | `x-post-format.md` | 不用 Markdown、列表符号、留白、来源、骨架、配图、公众号稿→X 稿 |
68
68
  | `emoji-system.md` | TopMind emoji 体系唯一出处(只用于短文体,且不强制):人设点缀 🐔 🐱 🌱 0–2 个只放首尾;标题 emoji 0–1 个对上关键词;列表符号一帖一套 |
69
- | `x-layout-patterns.md` | 参考帖拆出的版式规律(首行给结论、列表引导语、【小标题】分节等) |
69
+ | `x-layout-patterns.md` | 我们总结的版式规律(首行给结论、列表引导语、【小标题】分节等) |
70
70
 
71
71
  检查:`lint_x_post.py`(E1–E9 Markdown 残留;E10–E12 正文有 URL / 来源行 / 配图说明;W9 AI 套话、W10 首行太长不像钩子、W12 混入说明 / 内部标签;`--duanzi` 时 W13 段子里出现 emoji;`--long` 长文不查 E10–E12)。去 AI 味与吸引力清单在 `writing-principles.md` 第五点五节。
72
72
 
@@ -98,19 +98,37 @@ npx @topmindspace/topmind-writing-skills install topmind-poster
98
98
  > npm 包为 `@topmindspace/topmind-writing-skills`,旧包不再更新。
99
99
  > 也不要安装旧包的 `^2`(2.0.0–2.1.1 已弃用)。
100
100
 
101
+
102
+ ## 原创示例
103
+
104
+ 每个技能都附了我们自己写的示例输出(虚构或中性题材,不收录任何第三方原文、原图):
105
+
106
+ | 技能 | 示例 |
107
+ |---|---|
108
+ | topmind-viral-posts(段子) | [`topmind-viral-posts/examples/`](./topmind-viral-posts/examples/) |
109
+ | topmind-briefs(短文) | [`topmind-briefs/examples/`](./topmind-briefs/examples/) |
110
+ | topmind-format(排版) | [`topmind-format/examples/`](./topmind-format/examples/) |
111
+ | topmind-x-article(X 长文) | [`topmind-x-article/examples/`](./topmind-x-article/examples/) |
112
+ | topmind-wechat-post(公众号) | [`topmind-wechat-post/examples/`](./topmind-wechat-post/examples/) |
113
+ | topmind-poster(长图海报) | [`topmind-poster/examples/`](./topmind-poster/examples/) |
114
+ | topmind-cover(封面) | [`topmind-cover/assets/examples/`](./topmind-cover/assets/examples/) |
115
+
101
116
  ## 技能一览
102
117
 
118
+ > 术语:**短文** = X 纯文本帖,约 1000 字以内都可以(没有 280 字限制);**长文** = X Article;**段子**是一句一行的短文体裁。
119
+
120
+
103
121
  | 技能 | 版本 | 做什么 |
104
122
  |------|------|--------|
105
- | [`topmind-wechat-post`](./topmind-wechat-post/) | **0.3.11** | 公众号文章全生命周期:交付包、审校改写、质量三关、微信内联排版与发布清单 |
106
- | [`topmind-x-article`](./topmind-x-article/) | **0.4.17** | X 长文一键发布:Markdown 原稿 → 一键复制 HTML(含配图/提示词复制、图片点击放大)/ 纯文本兜底 + 封面图 + 发布清单 |
107
- | [`topmind-cover`](./topmind-cover/) | **0.4.10** | 文章封面配图(X / 公众号共用,X 主尺寸 1500×600 / 5:2):震撼醒目主题突出;22 种封面风格库 + X 短文 16:9 封面场景 + 24 种标题花式 + 七层场景配方 + 55 张示例图(22 种风格 × 2 尺寸 + 11 张变体样张) + 1 张风格总览图 |
108
- | [`topmind-briefs`](./topmind-briefs/) | **0.2.19** | 干货短文(公众号 + X 双平台):一件事讲透,数据榜单/论文解读/新品速递;信源 → 原图 → 内容 → 排版;X 版交付一段可复制纯文本(默认不出 HTML,emoji 可选,去 AI 味),链接 / 原图 / 配图另发,无原图先询问配图 |
109
- | [`topmind-viral-posts`](./topmind-viral-posts/) | **0.3.11** | X 引流段子/爆款短篇:18 大类型模板 + 组合玩法,段子体(行间空行,零 emoji,分点不加符号)、每条一段可复制纯文本、话题标签在末行,链接 / 原图另发、分类标签另列;无原图先询问再走 topmind-cover |
110
- | [`topmind-format`](./topmind-format/) | **0.1.4** | X 纯文本格式化:转段子(行间空行,零 emoji)/ 格式化成短文(分段 + 合理列表,emoji 可选),只动排版不改字,带原文保真校验;交付一段可复制纯文本,链接 / 原图另发 |
111
- | [`topmind-poster`](./topmind-poster/) | **0.1.5** | HTML+CSS → 高清长图 / 海报 / 信息图 PNG:无头 Chrome 2× 截图 + 自动裁白;「一段一图」分段图批量出图(生成器 + 渲染器) |
112
-
113
- 安装器 [`@topmindspace/topmind-writing-skills`](https://www.npmjs.com/package/@topmindspace/topmind-writing-skills) 为 **0.8.38**(整仓同 tag 发版)。
123
+ | [`topmind-wechat-post`](./topmind-wechat-post/) | **0.3.13** | 公众号文章全生命周期:交付包、审校改写、质量三关、微信内联排版与发布清单 |
124
+ | [`topmind-x-article`](./topmind-x-article/) | **0.4.19** | X 长文一键发布:Markdown 原稿 → 一键复制 HTML(含配图/提示词复制、图片点击放大)/ 纯文本兜底 + 封面图 + 发布清单 |
125
+ | [`topmind-cover`](./topmind-cover/) | **0.4.11** | 文章封面配图(X / 公众号共用,X 主尺寸 1500×600 / 5:2):震撼醒目主题突出;22 种封面风格库 + X 短文 16:9 封面场景 + 24 种标题花式 + 七层场景配方 + 55 张示例图(22 种风格 × 2 尺寸 + 11 张变体样张) + 1 张风格总览图 |
126
+ | [`topmind-briefs`](./topmind-briefs/) | **0.2.21** | 干货短文(公众号 + X 双平台):一件事讲透,数据榜单/论文解读/新品速递;信源 → 原图 → 内容 → 排版;X 版交付一段可复制纯文本(默认不出 HTML,emoji 可选,去 AI 味),链接 / 原图 / 配图另发,无原图先询问配图 |
127
+ | [`topmind-viral-posts`](./topmind-viral-posts/) | **0.3.13** | X 引流段子/爆款短篇:18 大类型模板 + 组合玩法,段子体(行间空行,零 emoji,分点不加符号)、每条一段可复制纯文本、话题标签在末行,链接 / 原图另发、分类标签另列;无原图先询问再走 topmind-cover |
128
+ | [`topmind-format`](./topmind-format/) | **0.1.6** | X 纯文本格式化:转段子(行间空行,零 emoji)/ 格式化成短文(分段 + 合理列表,emoji 可选),只动排版不改字,带原文保真校验;交付一段可复制纯文本,链接 / 原图另发 |
129
+ | [`topmind-poster`](./topmind-poster/) | **0.1.6** | HTML+CSS → 高清长图 / 海报 / 信息图 PNG:无头 Chrome 2× 截图 + 自动裁白;「一段一图」分段图批量出图(生成器 + 渲染器) |
130
+
131
+ 安装器 [`@topmindspace/topmind-writing-skills`](https://www.npmjs.com/package/@topmindspace/topmind-writing-skills) 为 **0.8.40**(整仓同 tag 发版)。
114
132
 
115
133
  ### 怎么选、怎么组合
116
134
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topmindspace/topmind-writing-skills",
3
- "version": "0.8.38",
3
+ "version": "0.8.40",
4
4
  "description": "TopMindSpace 写作技能合集 — 通过 npm / npx 安装技能(公众号长文、X 长文、干货短文、X 引流短帖、封面图、长图海报)。只出稿与发布包,不代发。",
5
5
  "license": "MIT",
6
6
  "author": "TopMindspace",
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.21 (2026-10-16)
4
+
5
+ - 短文去掉 280 字限制:X 版一条纯文本帖,约 1000 字内;更长的写成长文(X Article)
6
+
7
+ ## 0.2.20 (2026-10-16)
8
+
9
+ - 新增 `examples/` 原创示例(X 短文 2 篇 + 链接配图另列 + 公众号短文 1 篇);示例链接换成 example.com 占位
10
+
3
11
  ## 0.2.19 (2026-10-14)
4
12
 
5
13
  - 变更:工作流改为「信源 → 原帖原图 → 内容 → 排版」;X 正文一段可复制纯文本,不含 URL 与来源行,链接 / 原图另发;emoji 不强制,分点可用「1)」「·」【小标题】
@@ -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.19** (ships with `@topmindspace/topmind-writing-skills@0.8.38`)
10
+ - Version: **v0.2.21** (ships with `@topmindspace/topmind-writing-skills@0.8.40`)
11
11
 
12
12
  ## Install
13
13
 
@@ -56,3 +56,7 @@ python3 scripts/lint_x_post.py brief-x.md
56
56
  Formatting existing text / converting to duanzi → `topmind-format`; X long-form → `topmind-x-article`; WeChat long-form → `topmind-wechat-post`;
57
57
  engagement-style short posts and jokes → `topmind-viral-posts`; standalone long images/posters → `topmind-poster`;
58
58
  covers and header images → `topmind-cover`; posting → `topmind-x` (only after the user confirms).
59
+
60
+ ## Original examples
61
+
62
+ Sample outputs written by us (fictional or neutral topics, no third-party text) are in [`examples/`](./examples/).
@@ -7,7 +7,7 @@
7
7
  X 版交付一段可直接复制的纯文本(emoji 可选),**链接(含来源)、原图、配图另发**,不和正文混在一起;公众号版约 300–800 字 Markdown。
8
8
  没有原图时先问要不要配图(`topmind-cover`);链接那一条写明来源名称、发布时间与 URL。
9
9
 
10
- - 版本:**v0.2.19**(随 `@topmindspace/topmind-writing-skills@0.8.38` 发布)
10
+ - 版本:**v0.2.21**(随 `@topmindspace/topmind-writing-skills@0.8.40` 发布)
11
11
 
12
12
  ## 安装
13
13
 
@@ -57,3 +57,7 @@ python3 scripts/lint_x_post.py X短文.md
57
57
  现成文字格式化 / 转段子 → `topmind-format`;X 长文 → `topmind-x-article`;公众号长文 → `topmind-wechat-post`;
58
58
  引流互动型短帖与段子 → `topmind-viral-posts`;单独出长图/海报 → `topmind-poster`;
59
59
  封面/头图 → `topmind-cover`;发帖 → `topmind-x`(须用户确认)。
60
+
61
+ ## 原创示例
62
+
63
+ 我们自己写的示例输出见 [`examples/`](./examples/)(虚构或中性题材,不收录任何第三方原文)。
@@ -3,7 +3,7 @@ name: topmind-briefs
3
3
  description: "干货短文:一件事讲透,X + 公众号双平台。短文不是长文——默认不出 HTML:工作流按「核实一手信源 → 找原帖原图 → 写内容 → 排版」;X 版交付一段可直接复制的纯文本(首行钩子、合理分段与列表、去 AI 味、emoji 可选且只用 TopMind 体系、末行 0–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)、把稿子发出去(→ topmind-x,须用户确认)。"
4
4
  license: MIT
5
5
  metadata:
6
- version: "0.2.19"
6
+ version: "0.2.21"
7
7
  action_category: "write"
8
8
  triggers: "写短文, 公众号短文, X 短文, 发快讯, 快讯, 简讯, 速报, 干货短文, 论文解读, 数据榜单, 榜单速报, 新品速递, brief, 来篇短的, 短平快, 发个快讯"
9
9
  author: "TopMindSpace"
@@ -18,7 +18,7 @@ metadata:
18
18
  > **必读必守**:[references/x-delivery-contract.md](references/x-delivery-contract.md)——X 正文是一段可直接复制的纯文本,**不含 URL 和来源行**;链接一条、图片一条另发。分点可用 emoji 或「1)」「·」【小标题】,禁用 `- ` `1. `;emoji 不强制。
19
19
 
20
20
  - 跟 `topmind-viral-posts` 的区别:那是引流互动型段子(第一人称、钩子、涨粉);这是**信息密度型干货短文**(数据、榜单、论文、新品,第三方客观口吻)。
21
- - 跟 `topmind-x-article` / `topmind-wechat-post` 的区别:那两个是长文(数千字、多节多图、HTML 发布包);本技能 X 版一帖或 ≤3 条 thread,公众号版 300–800 字。
21
+ - 跟 `topmind-x-article` / `topmind-wechat-post` 的区别:那两个是长文(数千字、多节多图、HTML 发布包);本技能 X 版是一条纯文本短文(约 1000 字内),公众号版 300–800 字。
22
22
  - 现成文字只要排版 → `topmind-format`。
23
23
 
24
24
  ## 何时不用
@@ -101,7 +101,7 @@ SWE-bench 榜单换了第一:领先只有 1.3 分
101
101
  #SWEbench #AI编程
102
102
  ```
103
103
 
104
- 链接(另发):`SWE-bench 官方榜单|2026-10-13(UTC)|https://www.swebench.com`
104
+ 链接(另发):`ToyBench 官方榜单|2026-10-13(UTC)|https://example.com/toybench`
105
105
  图片(另发):`[图1] 榜单截图 — 前三名分数;来源:官方榜单`
106
106
 
107
107
  (示例中的模型名与分数为虚构演示;同一条也可以用 🔹 列表加 📊 标题 emoji。更多示例见 [references/examples.md](references/examples.md)。)
@@ -0,0 +1,13 @@
1
+ 🆕 晨光写作助手 3.0 发布:离线也能用 🐱
2
+
3
+ 晨光团队今天发布 3.0 版本(虚构示例)。这次最大的变化是加了离线模式:断网时也能续写和改错,联网后自动同步。
4
+
5
+ 这次更新的三件事:
6
+
7
+ 🔹 离线模式:本地运行常用功能,草稿不出设备
8
+ 🔹 更快的启动:官方称冷启动时间缩短一半
9
+ 🔹 新的导出:一键导出公众号和 X 两种格式
10
+
11
+ 老用户在设置里检查更新即可,免费升级。
12
+
13
+ #写作工具
@@ -0,0 +1,5 @@
1
+ 链接(另发):
2
+ 晨光 3.0 更新日志|2026-10-16(页面标注)|https://example.com/changelog
3
+
4
+ 配图(另发):
5
+ [图1] https://example.com/images/release-3.png — 官方发布图
@@ -0,0 +1,13 @@
1
+ 📊 青团市今年新开了 12 座口袋公园
2
+
3
+ 青团市园林局本周公布了今年的口袋公园名单(虚构示例):全市新开 12 座,大多在老街区,面积都不大。
4
+
5
+ 几个值得一看的点:
6
+
7
+ · 每座公园步行 5 分钟内能到地铁站或公交站
8
+ · 一半以上带儿童游乐区
9
+ · 夜间照明到晚上十点
10
+
11
+ 周末想找个近处走走,可以从家附近那座开始。
12
+
13
+ 明天见 🌱
@@ -0,0 +1,19 @@
1
+ # 番茄工作法,适合谁,不适合谁
2
+
3
+ 番茄工作法的规则很简单:专注 25 分钟,休息 5 分钟,四轮之后长休息一次。
4
+
5
+ ## 适合的情况
6
+
7
+ - 任务可以拆成小块,比如写稿、整理资料、回复邮件
8
+ - 容易被消息打断,需要一个"先别看手机"的理由
9
+
10
+ ## 不太适合的情况
11
+
12
+ - 需要长时间连续思考的工作,25 分钟刚进入状态就被打断
13
+ - 时间表由别人决定的岗位,比如客服值班
14
+
15
+ ## 怎么调整
16
+
17
+ 时长不是死规定。可以先试 25 分钟,觉得太短就改成 40 或 50 分钟,关键是"专注一段、停下一段"的节奏。
18
+
19
+ > 本文为原创示例,用来演示公众号短文的结构。
@@ -0,0 +1,9 @@
1
+ # topmind-briefs 原创示例(短文)
2
+
3
+ 全部为我们自己写的示例,产品、城市和数字都是虚构演示,不当作事实引用。
4
+
5
+ - [`01-X短文-编辑器发布.txt`](./01-X短文-编辑器发布.txt) + [`01-链接与配图.txt`](./01-链接与配图.txt):新品速递,正文与链接、配图分开交付
6
+ - [`02-X短文-城市公园.txt`](./02-X短文-城市公园.txt):数据型短文,用「·」分点,人设 emoji 只在结尾
7
+ - [`03-公众号短文-番茄工作法.md`](./03-公众号短文-番茄工作法.md):公众号 Markdown 短文
8
+
9
+ X 短文要点:首行是钩子;段落合理;emoji 可选,只用 TopMind 体系(人设 emoji 只放开头或结尾);分点用 emoji 或「·」;末行 0–2 个话题标签;正文不放网址和来源行,链接与图片另列。
@@ -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.19"
12
+ "version": "0.2.21"
13
13
  }
@@ -60,11 +60,11 @@
60
60
 
61
61
  ## 四、只用 TopMind 的,不跟风
62
62
 
63
- 参考帖里常见的 🔥 😍 🚀 💥 开头、6–10 个话题标签、同一列表 🔸 🔹 混用,是别人的个人风格,TopMind 不照搬:
63
+ X 上常见的 🔥 😍 🚀 💥 开头、6–10 个话题标签、同一列表 🔸 🔹 混用,属于个人风格,TopMind 不照搬:
64
64
 
65
65
  - 标题行首只放第三节对照表里的标题 emoji;对不上关键词就不放,不用 🔥 😍 🚀 凑热度。
66
66
  - 账号辨识度只靠人设点缀(🐔 🐱 + 小动物 / 植物),放首尾。
67
- - 信息密度高的长帖(分【小标题】的那种)可以完全不用 emoji,靠空行和【】小标题分层——这也是 TopMind 风格。
67
+ - 信息密度高的短文(分【小标题】的那种)可以完全不用 emoji,靠空行和【】小标题分层——这也是 TopMind 风格。
68
68
  - 版式规律见 `x-layout-patterns.md`。
69
69
 
70
70
  ## 五、列表 emoji:可选、统一、克制
@@ -82,7 +82,7 @@
82
82
  | 段子(viral-posts 段子 / 转段子) | 0 | 0 | 0(分点不加符号,靠行间空行) | 0 |
83
83
  | 短文(topmind-briefs / 格式化成短文) | 0–2 | 0–1 | 一套 emoji 或纯文本符号 | 0 |
84
84
  | 严肃资讯 | 0 | 0–1(只用 ⚡ 📄 ⚠️ 📅) | • ▪ 或 🔹 | 0 |
85
- | 长帖资讯(【小标题】分节) | 0–1(只放结尾) | 0–1 | 一套或不用 | 0 |
85
+ | 分节资讯短文(【小标题】分节) | 0–1(只放结尾) | 0–1 | 一套或不用 | 0 |
86
86
 
87
87
  合计:一帖的点缀类 emoji(人设 + 标题 + 情绪)不超过 3 个,`lint_x_post.py` 超过 4 个会给 W8 警告。
88
88
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 模型名、基准名、数字、链接皆为虚构,只演示结构。
4
4
  > 交付按 [x-delivery-contract.md](x-delivery-contract.md):正文是一段可直接复制的纯文本(不含 URL、来源行、配图说明),链接一条、图片一条另发;分点可用 emoji 或「1)」「·」【小标题】,emoji 不强制,规则见 [x-post-format.md](x-post-format.md)。
5
- > 正文超过 280 加权字符时按 thread 拆条,每条一块。
5
+ > X 短文是一条纯文本帖,约 1000 字内都可以,不需要拆条。
6
6
 
7
7
  ## 例 1:数据榜单型(不用 emoji)
8
8
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## X 版
6
6
 
7
- - 长度:280 字符内(一条)。超了就拆 thread,最多 3 条,每条都按单帖规格写(首条最重要,时间线上只显示首条和首图)。
7
+ - 长度:一条纯文本帖,约 1000 字以内都可以,没有 280 字限制;首行做钩子。更长、需要多节多图的内容写成长文(X Article,走 `topmind-x-article`)。
8
8
  - 语言:默认中文。英文是例外:只有受众明确是英文区、或素材本身就是英文速报时才用英文(沿用数据榜单型的英文起手);中文写作沿用榜单速报型的结构。
9
9
  - 图片:1–4 张,首图最重要(时间线上只显示首图)。
10
10
  - 格式:纯文本 + 图片。不用 Markdown 标题、加粗和列表(X 不渲染)。
@@ -62,7 +62,7 @@
62
62
 
63
63
  | | X 版 | 公众号版 |
64
64
  |---|---|---|
65
- | 长度 | 每条 ≤280 字符(thread 最多 3 条) | 约 300–800 字 |
65
+ | 长度 | 一条,约 1000 字内 | 约 300–800 字 |
66
66
  | 标题 | 无(首句即标题) | 15 字内 |
67
67
  | 背景 | 不写 | 1–2 句 |
68
68
  | 图片 | 原图 1–2 张,无原图先问 | 原图 1–4 张 |
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## 三原则
6
6
 
7
- **短**:一件事讲完就停。X 版每条 280 字符内(超了拆 thread,最多 3 条);公众号版约 300–800 字
7
+ **短**:一件事讲完就停。X 版一条纯文本帖,约 1000 字内;公众号版约 300–800 字
8
8
  (与 SKILL.md、`platform-specs.md` 同一口径)。
9
9
  **干**:每个字都承载信息。删掉所有"众所周知""值得一提的是"。
10
10
  **准**:数字有来源,判断有依据。不确定的写"据 X 报道",不编。
@@ -1,19 +1,18 @@
1
- # X 短文版式规律(参考帖拆解)
1
+ # X 短文版式规律
2
2
 
3
3
  > 适用:`topmind-briefs`(短文)、`topmind-format`(格式化)、`topmind-viral-posts`(段子 / 短帖)的 X 纯文本稿。
4
- > 本文只记**版式规律**,不收录原文;需要看原样时打开原帖。emoji 一律按 `emoji-system.md` 的 TopMind 体系取,参考帖里的 emoji 只作结构参考。
5
- > 拆解时间:2026-10-14。
4
+ > 本文只记**版式规律**,全部用我们自己的话描述。emoji 一律按 `emoji-system.md` 的 TopMind 体系取。
6
5
 
7
- ## 参考帖
6
+ ## 六种版式骨架
8
7
 
9
- | # | 原帖 | 体裁 | 一句话版式特征 |
10
- |---|---|---|---|
11
- | A | https://x.com/NFT_Chen/status/2110238874291110097 | 中文测评速报 | 标题行带结论 → 「证据拆解:」→ 1️⃣–5️⃣ 证据 → 一句评价 → 一句金句 → 末行话题标签 |
12
- | B | https://x.com/moritzkremb/status/2110108110203363626 | 英文视频导流 | 两行短句钩子,各自成段 → 「In this video:」+ 3 条短条目 → 末行「Full breakdown: 链接」 |
13
- | C | https://x.com/stevenmarkryan/status/2110184367347863796 | 英文清单体 | 一句引子 → 13 条 • 列表,每条一行,长短交错,无收尾 |
14
- | D | https://x.com/GitHub_Daily/status/2110219134357451045 | 中文工具推荐 | 痛点场景开头 → 是什么 → 技术来源 → 链接单独一段 → 用法举例 → 隐私说明 → 一句推荐收尾;全程无 emoji、无列表 |
15
- | E | https://x.com/NFT_Chen/status/2110146921646223867 | 中文作品拆解 | 情绪 emoji + 标题 → 「关键细节拆解:」→ 7 条 🔸 + 1 条 🔹 收束,条目间空行 → 一句总结 → 话题标签 → 末行链接 |
16
- | F | https://x.com/dotey/status/2110053992554238391 | 中文长帖资讯 | 标题行写全核心事实(谁/何时/价格)→ 导语段 → 【小标题】分节 × 5 → 每节 1–4 个短段 → 无 emoji、无话题标签 |
8
+ | # | 体裁 | 一句话版式特征 |
9
+ |---|---|---|
10
+ | A | 中文测评速报 | 标题行带结论 → 「证据拆解:」→ 1️⃣–5️⃣ 证据 → 一句评价 → 一句金句 → 末行话题标签 |
11
+ | B | 英文视频导流 | 两行短句钩子,各自成段 → 「In this video:」+ 3 条短条目 → 末行「Full breakdown: 链接」 |
12
+ | C | 英文清单体 | 一句引子 → 13 条 • 列表,每条一行,长短交错,无收尾 |
13
+ | D | 中文工具推荐 | 痛点场景开头 → 是什么 → 技术来源 → 链接单独一段 → 用法举例 → 隐私说明 → 一句推荐收尾;全程无 emoji、无列表 |
14
+ | E | 中文作品拆解 | 情绪 emoji + 标题 → 「关键细节拆解:」→ 7 条 🔸 + 1 条 🔹 收束,条目间空行 → 一句总结 → 话题标签 → 末行链接 |
15
+ | F | 中文分节资讯短文 | 标题行写全核心事实(谁/何时/价格)→ 导语段 → 【小标题】分节 × 5 → 每节 1–4 个短段 → 无 emoji、无话题标签 |
17
16
 
18
17
  ## 一、开头钩子
19
18
 
@@ -29,7 +28,7 @@ TopMind 写法:短文首行 = 可选的标题 emoji(按关键词对照表,
29
28
  1. **一段一个意思**:D、F 每段 1–3 句,中文约 40–90 字;段与段之间一定空一行。
30
29
  2. **标题、引导语、列表、收尾、标签之间各空一行**;列表内部一般不空行(A、C)。
31
30
  3. **条目本身很长(超过一行)时,条目之间空一行**(E)——否则手机上挤成一团。
32
- 4. 长帖(F)用【小标题】单独一行分节,节与节之间空一行;小标题后紧跟正文,不再空两行。
31
+ 4. 较长的短文(F)用【小标题】单独一行分节,节与节之间空一行;小标题后紧跟正文,不再空两行。
33
32
  5. 不出现连续两个以上空行(段子体的行间空行是唯一例外)。
34
33
 
35
34
  ## 三、列表写法
@@ -43,9 +42,9 @@ TopMind 写法:短文首行 = 可选的标题 emoji(按关键词对照表,
43
42
 
44
43
  ## 四、emoji 用法
45
44
 
46
- 1. 参考帖的 emoji 只出现在三个位置:**标题行首、列表行首、(偶尔)收尾行**;正文段中间都不插。
45
+ 1. 常见写法里 emoji 只出现在三个位置:**标题行首、列表行首、(偶尔)收尾行**;正文段中间都不插。
47
46
  2. 信息密度越高、emoji 越少:F、D 零 emoji 依然好读,靠的是空行和【小标题】。
48
- 3. 不连用、不堆叠;🔥 😍 这类情绪 emoji 是参考帖的个人风格,**TopMind 不照搬**——标题 emoji 只按关键词对照表取,人设点缀用 🐔 🐱 🌱 等(见 `emoji-system.md`)。
47
+ 3. 不连用、不堆叠;🔥 😍 这类情绪 emoji 属于个人风格,**TopMind 不照搬**——标题 emoji 只按关键词对照表取,人设点缀用 🐔 🐱 🌱 等(见 `emoji-system.md`)。
49
48
  4. **段子体完全不用 emoji**:像 D 那样只靠一句一行和空行;分点不加符号。
50
49
 
51
50
  ## 五、中英混排
@@ -57,7 +56,7 @@ TopMind 写法:短文首行 = 可选的标题 emoji(按关键词对照表,
57
56
 
58
57
  ## 六、链接与话题标签位置
59
58
 
60
- 1. 参考帖把链接单独成段(D 的「GitHub:URL」、B 的「Full breakdown: URL」)。**TopMind 不照搬**:X 短文 / 段子的正文里不放任何 URL 和来源行,链接整理成单独一条另发(见 `x-delivery-contract.md` 第三节);正文里只用文字点到出处(「官方博客称」)。
59
+ 1. 常见写法是把链接单独成段(如「GitHub:URL」「Full breakdown: URL」)。**TopMind 不照搬**:X 短文 / 段子的正文里不放任何 URL 和来源行,链接整理成单独一条另发(见 `x-delivery-contract.md` 第三节);正文里只用文字点到出处(「官方博客称」)。
61
60
  2. **话题标签放末行**(A);E 在标签后又放链接、F 不放标签——TopMind 统一为话题标签是正文最后一行,标签 0–2 个(段子 1–3 个),不堆 6–10 个(A、E 的堆标签不学)。
62
61
 
63
62
  ## 七、结尾
@@ -1,5 +1,7 @@
1
1
  # X 纯文本帖排版规则
2
2
 
3
+ > 定义:**短文** = X 纯文本帖,约 1000 字以内都可以,没有 280 字限制;**长文** = X Article(走 `topmind-x-article`)。段子是短文里的一种体裁,另有一行 ≤ 20 字等版式规则。
4
+
3
5
  > 适用:`topmind-briefs`、`topmind-viral-posts`、`topmind-format` 的 X 稿,`topmind-x-article` 的 `X发布稿.txt`(长文,可有文内链接),`topmind-wechat-post` 派生的 X 稿。公众号稿继续用 Markdown。
4
6
  > X 长文富文本(`X长文.html`)以 `x-html-format.md` 为准。
5
7
  > 配套文档:**交付与列表规约 `x-delivery-contract.md`(必读必守)**、emoji `emoji-system.md`、版式规律 `x-layout-patterns.md`。
@@ -20,7 +22,7 @@ X 普通帖不渲染 Markdown:`- ` `* ` `1. ` 列表、`#` 标题、`**加粗*
20
22
  | 重点 | 📌 | 一帖最多标一条 |
21
23
  | 纯文本并列 | · | 不想用 emoji 时的默认;别用半角 `- ` `* `(会被当 Markdown) |
22
24
  | 纯文本步骤 | 1)2)3) | 全角括号;别用 `1.` `1)` |
23
- | 分节 | 【小标题】 | 长帖分节,单独成行 |
25
+ | 分节 | 【小标题】 | 较长的短文分节,单独成行 |
24
26
  | 严肃 / 英文帖 | • ▪ → | 事故、争议类不用 ✅ 🎉 |
25
27
 
26
28
  规则:同层一个符号;一条一行(中文约 30 字内);最多两层;一个列表 3–5 条、不超过 7 条,只有 2 条时写成两句;列表前一行「xx:」引导语。
@@ -29,7 +31,7 @@ X 普通帖不渲染 Markdown:`- ` `* ` `1. ` 列表、`#` 标题、`**加粗*
29
31
  ## 三、段落与留白
30
32
 
31
33
  一段 1–3 行,段与段空一行,不出现连续两个空行(段子体的行间空行除外)。
32
- 钩子 / 标题、正文、列表、收尾、话题标签之间各空一行。长帖(约 500 字以上)用【小标题】单独成行分节。
34
+ 钩子 / 标题、正文、列表、收尾、话题标签之间各空一行。较长的短文(约 500 字以上)用【小标题】单独成行分节。
33
35
  段子体:一句一行,行与行之间都空一行,零 emoji(现成文字转段子体交给 `topmind-format`)。
34
36
 
35
37
  ## 四、来源与核实
@@ -46,7 +48,7 @@ X 普通帖不渲染 Markdown:`- ` `* ` `1. ` 列表、`#` 标题、`**加粗*
46
48
  | 钩子 + 列表 | 钩子 → 「xx:」+ 3–5 条(· / 1)/ 🔹)→ 有观点的收尾 → 标签 | 更新、盘点、干货 |
47
49
  | 步骤 | 痛点 → 1)–5)或 1️⃣–5️⃣ → 一句结论 → 标签 | 教程 |
48
50
  | 对比 | 结论 → ✅ / ❌ 2–3 组 → 建议 → 标签 | 选型、评测 |
49
- | 分节长帖 | 标题行(含核心事实)→ 导语 → 【小标题】× 3–5 → 收尾 → 标签 | 信息量大的资讯(需账号支持长帖) |
51
+ | 分节短文 | 标题行(含核心事实)→ 导语 → 【小标题】× 3–5 → 收尾 → 标签 | 信息量大的资讯(仍在约 1000 字内) |
50
52
 
51
53
  链接和图片不在骨架里,另发。thread:第 1 条放钩子和最关键事实,中间条目以「2/5」开头,最后一条放话题标签;每条单独交付,链接汇总另发(见规约)。
52
54
 
@@ -64,7 +66,7 @@ X 普通帖不渲染 Markdown:`- ` `* ` `1. ` 列表、`#` 标题、`**加粗*
64
66
  |---|---|
65
67
  | `- 要点` / ` - 子要点` | `· 要点` 或 `🔹 要点` / ` ▫️ 子要点` |
66
68
  | `1. 步骤` | `1)步骤` 或 `1️⃣ 步骤` |
67
- | `## 小标题` | 单独一行文字,长帖用【小标题】 |
69
+ | `## 小标题` | 单独一行文字,较长的短文用【小标题】 |
68
70
  | `**重点**` | 去星号,前置或用「」 |
69
71
  | `> 引用` | 「引文」+ 出处 |
70
72
  | `[文字](url)` | 正文留「文字」,url 另发 |
@@ -93,5 +95,5 @@ X 普通帖不渲染 Markdown:`- ` `* ` `1. ` 列表、`#` 标题、`**加粗*
93
95
  |---|---|
94
96
  | E1–E9 | Markdown 列表 / 有序列表 / 标题 / 加粗 / 引用 / 链接 / 表格 / 代码围栏 / 删除线(错误) |
95
97
  | E10–E12 | 正文有 URL / 来源行 / 配图说明或图片占位(错误;`--long` 不查) |
96
- | W1–W7 | 反引号、列表超两层、同层混用符号、列表超 7 条、话题标签不在末行、标签超 3 个、超字数 |
98
+ | W1–W7 | 反引号、列表超两层、同层混用符号、列表超 7 条、话题标签不在末行、标签超 3 个、超过约 1000 字 |
97
99
  | W8–W13 | 点缀表情过多、AI 套话(含排比、「不仅…更…」、空泛形容)、首行过长不像钩子、连续空行、正文混入说明 / 内部标签、段子体出现 emoji(`--duanzi`) |
@@ -21,7 +21,7 @@ X 的普通帖子不渲染 Markdown。本脚本检查 X 稿,并可把常见 Ma
21
21
  E8 代码围栏 ```(多半是把交付代码块的围栏一起复制进来了);E9 删除线 ~~文字~~;--fix 会去掉 E8/E9 符号。
22
22
  --long(x-article 的 X发布稿.txt 长文兜底稿)允许文内链接,不查 E10–E12。
23
23
  警告(不影响退出码,--strict 时算失败):点缀表情过多(W8)、疑似 AI 套话(W9,含排比、「不仅…更…」、空泛形容等)、
24
- 首行过长不像钩子(W10)、连续多个空行(W11)、正文里混入其他非发布内容(W12:说明 / 内部标签 / 帖序号等)、
24
+ 首行过长不像钩子(W10)、超过约 1000 字(W7,短文上限,更长的写成 X Article)、连续多个空行(W11)、正文里混入其他非发布内容(W12:说明 / 内部标签 / 帖序号等)、
25
25
  段子体出现 emoji(W13,需 --duanzi)。
26
26
  短文分点不强制 emoji:🔹 / 1️⃣ 等 emoji 符号,或「1)」「·」「【小标题】」等纯文本方式都可以;只禁止会被当成 Markdown 的 - * + 1.。
27
27
 
@@ -83,7 +83,7 @@ CONTRAST_PAIR = {"✅", "❌"}
83
83
  MAX_ITEMS = 7
84
84
  MAX_LEVELS = 2
85
85
  MAX_TAGS = 3
86
- WEIGHT_LIMIT = 280
86
+ CHAR_LIMIT = 1000 # 短文(X 纯文本帖)约 1000 字内;更长的写成长文(X Article)
87
87
  MAX_DECOR_EMOJI = 4 # 列表符号之外的点缀表情上限(规则建议 1–3 个)
88
88
 
89
89
  # --- 去 AI 味:常见套话(只警告,不报错;规则见 writing-principles.md「去 AI 味」)--
@@ -266,9 +266,9 @@ def lint_post(start: int, lines: list[str], long_mode: bool, duanzi: bool = Fals
266
266
  first = next((ln for ln in lines if ln.strip()), "")
267
267
  if x_weight(first) > HOOK_MAX_WEIGHT:
268
268
  warns.append((start, "W10", f"首行加权字数约 {x_weight(first)},超过 {HOOK_MAX_WEIGHT}(约 30 个汉字):首行做钩子,先给结论或最扎眼的数字"))
269
- w = x_weight("\n".join(ln for ln in lines if not PLACEHOLDER_RE.match(ln)))
270
- if w > WEIGHT_LIMIT:
271
- warns.append((start, "W7", f"加权字数约 {w},超过 {WEIGHT_LIMIT}(约 140 个汉字);长帖请确认账号支持,或精简/拆帖"))
269
+ n = sum(1 for ch in URL_RE.sub("", "\n".join(ln for ln in lines if not PLACEHOLDER_RE.match(ln))) if not ch.isspace())
270
+ if n > CHAR_LIMIT:
271
+ warns.append((start, "W7", f"约 {n} 字,超过短文的 {CHAR_LIMIT} 字左右;这么长的内容写成长文(X Article)"))
272
272
  return errs, warns
273
273
 
274
274
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  A reusable skill for generating cover art for X long-form posts and WeChat articles. Goal: **striking, eye-catching, theme-focused**.
6
6
 
7
- - Version: **v0.4.10** (ships with `@topmindspace/topmind-writing-skills@0.8.38`)
7
+ - Version: **v0.4.11** (ships with `@topmindspace/topmind-writing-skills@0.8.40`)
8
8
 
9
9
  ## Style gallery
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  为 X 长文和公众号文章生成封面图的可复用技能。目标:**震撼、醒目、主题突出**。
6
6
 
7
- - 版本:**v0.4.10**(随 `@topmindspace/topmind-writing-skills@0.8.38` 发布)
7
+ - 版本:**v0.4.11**(随 `@topmindspace/topmind-writing-skills@0.8.40` 发布)
8
8
 
9
9
  ## 风格样张
10
10
 
@@ -3,7 +3,7 @@ name: topmind-cover
3
3
  description: "文章封面配图生成:X 长文与公众号共用,也为 X 短文 / 短帖在没有原图时出 16:9 首图,并供 topmind-briefs、topmind-viral-posts 的配图环节调用。震撼、醒目、主题突出;平台尺寸规范、22 种风格模板与风格组合、七层场景配方与中英提示词模板、默认 2–3 个方案、24 种标题花式与副信息组件、分层背景库、10 种构图骨架、TopMind IP 主角、七项评分重做门槛、生图 + 脚本叠字双路径、命名落盘全流程覆盖。Use when 文章封面、封面图、X 短文封面、短帖封面、头图、题图、首图、X 长文头图、公众号封面、公众号头图、封面风格、banner、cover、thumbnail。Do NOT use for 正文插图、长图、海报与信息图(→ topmind-poster)、短文与段子写稿(→ topmind-briefs / topmind-viral-posts)、PPT/报告封面与多页演示(→ topmind-presentation)。"
4
4
  license: MIT
5
5
  metadata:
6
- version: "0.4.10"
6
+ version: "0.4.11"
7
7
  action_category: "write"
8
8
  triggers: "封面, 封面图, X 短文封面, 短帖封面, 头图, 题图, 首图, 封面配图, 缩略图, banner, cover, thumbnail, 公众号封面, 公众号题图, 公众号头图, X 封面, X 首图, X 长文头图, 文章封面, 封面风格"
9
9
  author: "TopMindSpace"
@@ -22,7 +22,7 @@ IP 趣味 `ip-fun` / 橙色暖阳 `orange-warm` / 卡通素描 `sketch-cartoon`
22
22
 
23
23
  ## 生成方式(v0.8.38 起)
24
24
 
25
- 全部示例改为**整张生成**:按 `../../references/cover-combos.md` 的命名组合(范式 × 风格 × 标题字 × 场景层 × 配色)写一段英文 prompt,标题原文写死,让字和场景在同一光照与透视里一起画出;出图后逐字核对,再按 5:2 裁出主图(1500×600)、按中部水平带裁出公众号版(900×383),并做轻度锐化与 PNG 调色板压缩。各图使用的组合标在 `cover-styles.md` 每个风格的「示例图」一行。组合是我们自己总结的配方,只参考公开封面合集里的抽象规律,仓库不收录任何第三方原图或原文。
25
+ 全部示例改为**整张生成**:按 `../../references/cover-combos.md` 的命名组合(范式 × 风格 × 标题字 × 场景层 × 配色)写一段英文 prompt,标题原文写死,让字和场景在同一光照与透视里一起画出;出图后逐字核对,再按 5:2 裁出主图(1500×600)、按中部水平带裁出公众号版(900×383),并做轻度锐化与 PNG 调色板压缩。各图使用的组合标在 `cover-styles.md` 每个风格的「示例图」一行。组合是我们自己总结的配方,仓库不收录任何第三方原图或原文。
26
26
 
27
27
  ## 原创与虚构声明(重要)
28
28
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "topmind-cover",
3
- "version": "0.4.10",
3
+ "version": "0.4.11",
4
4
  "private": true,
5
5
  "description": "文章封面配图生成(X 长文 / 公众号共用):震撼醒目主题突出,尺寸规范 + 11 种风格模板 + 裁剪落盘。",
6
6
  "license": "MIT",
@@ -1,6 +1,6 @@
1
1
  # 组合玩法(范式 × 风格 × 标题字 × 场景层 × 配色)
2
2
 
3
- > 用法:先按主题选一个组合,把 `{title}`、`{subtitle}` 换成自己的内容,整段英文交给生图模型。组合是我们自己总结的配方,灵感来自对公开封面合集的观察,不对应任何具体作品。
3
+ > 用法:先按主题选一个组合,把 `{title}`、`{subtitle}` 换成自己的内容,整段英文交给生图模型。组合是我们自己总结的配方,不对应任何具体作品。
4
4
 
5
5
  ## 组合公式
6
6
 
@@ -1,7 +1,7 @@
1
1
  # 封面范式库(整张生成用)
2
2
 
3
3
  > 用法:选一个范式,把模板里的 `{占位}` 换成具体内容,再在末尾接上「通用排版尾句」,整段英文交给生图模型,让它把字和场景一起画出来。出图后按 `design-system.md` 第九节「中文字生图规约」逐字核对,错字按那一节的方法修正。
4
- > 这些范式是从公开封面合集中观察、再用自己的话归纳出的抽象规律(构图、字的处理、配色、隐喻),不对应任何具体作品;用的时候换成自己的主题、主角和配色。
4
+ > 这些范式是我们自己归纳的抽象规律(构图、字的处理、配色、隐喻),不对应任何具体作品;用的时候换成自己的主题、主角和配色。
5
5
 
6
6
  ## 通用排版尾句(每条 prompt 都要接上)
7
7