@topmindspace/topmind-writing-skills 0.8.48 → 0.8.50

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 (162) hide show
  1. package/CHANGELOG.md +49 -45
  2. package/README.en.md +24 -20
  3. package/README.md +27 -23
  4. package/package.json +1 -1
  5. package/topmind-briefs/README.en.md +11 -54
  6. package/topmind-briefs/README.md +13 -74
  7. package/topmind-briefs/SKILL.md +36 -166
  8. package/topmind-briefs/package.json +1 -1
  9. package/topmind-briefs/references/core-voice.md +63 -307
  10. package/topmind-briefs/references/creative-practice.md +112 -0
  11. package/topmind-briefs/references/de-ai-rules.md +22 -22
  12. package/topmind-briefs/references/emoji-system.md +11 -118
  13. package/topmind-briefs/references/examples.md +1 -1
  14. package/topmind-briefs/references/image-sourcing.md +13 -41
  15. package/topmind-briefs/references/information-design.md +40 -115
  16. package/topmind-briefs/references/platform-specs.md +17 -85
  17. package/topmind-briefs/references/research-mode.md +11 -23
  18. package/topmind-briefs/references/revision-workflow.md +34 -37
  19. package/topmind-briefs/references/social-writing-principles.md +24 -59
  20. package/topmind-briefs/references/x-delivery-contract.md +20 -126
  21. package/topmind-briefs/references/x-layout-patterns.md +12 -71
  22. package/topmind-briefs/references/x-post-format.md +17 -90
  23. package/topmind-briefs/scripts/audit_skill.py +8 -6
  24. package/topmind-briefs/scripts/de_ai_lint.py +19 -19
  25. package/topmind-briefs/scripts/format_text.py +24 -41
  26. package/topmind-briefs/scripts/lint_x_post.py +18 -50
  27. package/topmind-cover/README.en.md +11 -53
  28. package/topmind-cover/README.md +14 -50
  29. package/topmind-cover/SKILL.md +49 -184
  30. package/topmind-cover/package.json +1 -1
  31. package/topmind-cover/references/core-voice.md +63 -307
  32. package/topmind-cover/references/cover-combos.md +5 -3
  33. package/topmind-cover/references/cover-patterns.md +3 -1
  34. package/topmind-cover/references/cover-prompts.md +10 -8
  35. package/topmind-cover/references/cover-styles.md +11 -9
  36. package/topmind-cover/references/creative-practice.md +112 -0
  37. package/topmind-cover/references/design-system.md +15 -15
  38. package/topmind-cover/references/image-sourcing.md +13 -41
  39. package/topmind-cover/references/impact-language.md +15 -91
  40. package/topmind-cover/references/information-design.md +40 -115
  41. package/topmind-cover/references/md3-foundation.md +2 -0
  42. package/topmind-cover/references/scene-builder.md +53 -179
  43. package/topmind-cover/references/social-writing-principles.md +24 -59
  44. package/topmind-cover/references/typography-system.md +2 -0
  45. package/topmind-cover/scripts/audit_skill.py +8 -6
  46. package/topmind-cover/scripts/check-title.py +5 -5
  47. package/topmind-cover/scripts/de_ai_lint.py +19 -19
  48. package/topmind-cover/scripts/negative_tests.py +12 -12
  49. package/topmind-cover/scripts/title-engine.py +11 -6
  50. package/topmind-format/README.en.md +11 -30
  51. package/topmind-format/README.md +13 -47
  52. package/topmind-format/SKILL.md +29 -115
  53. package/topmind-format/package.json +1 -1
  54. package/topmind-format/references/core-voice.md +63 -307
  55. package/topmind-format/references/creative-practice.md +112 -0
  56. package/topmind-format/references/de-ai-rules.md +22 -22
  57. package/topmind-format/references/emoji-system.md +11 -118
  58. package/topmind-format/references/information-design.md +40 -115
  59. package/topmind-format/references/social-writing-principles.md +24 -59
  60. package/topmind-format/references/x-delivery-contract.md +20 -126
  61. package/topmind-format/references/x-layout-patterns.md +12 -71
  62. package/topmind-format/references/x-post-format.md +17 -90
  63. package/topmind-format/scripts/audit_skill.py +8 -6
  64. package/topmind-format/scripts/de_ai_lint.py +19 -19
  65. package/topmind-format/scripts/format_text.py +24 -41
  66. package/topmind-format/scripts/lint_x_post.py +18 -50
  67. package/topmind-format/scripts/negative_tests.py +6 -6
  68. package/topmind-poster/README.en.md +9 -44
  69. package/topmind-poster/README.md +12 -41
  70. package/topmind-poster/SKILL.md +30 -255
  71. package/topmind-poster/package.json +1 -1
  72. package/topmind-poster/references/creative-practice.md +112 -0
  73. package/topmind-poster/references/image-sourcing.md +13 -41
  74. package/topmind-poster/references/information-design.md +40 -115
  75. package/topmind-poster/references/social-writing-principles.md +24 -59
  76. package/topmind-poster/scripts/audit_skill.py +8 -6
  77. package/topmind-revise/README.en.md +10 -63
  78. package/topmind-revise/README.md +11 -58
  79. package/topmind-revise/SKILL.md +33 -139
  80. package/topmind-revise/package.json +1 -1
  81. package/topmind-revise/references/calibration-drill.md +5 -5
  82. package/topmind-revise/references/core-voice.md +63 -307
  83. package/topmind-revise/references/creative-practice.md +112 -0
  84. package/topmind-revise/references/de-ai-rules.md +22 -22
  85. package/topmind-revise/references/fact-check.md +4 -4
  86. package/topmind-revise/references/image-sourcing.md +13 -41
  87. package/topmind-revise/references/information-design.md +40 -115
  88. package/topmind-revise/references/report-template.md +20 -71
  89. package/topmind-revise/references/research-mode.md +11 -23
  90. package/topmind-revise/references/revision-workflow.md +34 -37
  91. package/topmind-revise/references/social-writing-principles.md +24 -59
  92. package/topmind-revise/scripts/audit_skill.py +8 -6
  93. package/topmind-revise/scripts/de_ai_lint.py +19 -19
  94. package/topmind-revise/scripts/lint_x_post.py +18 -50
  95. package/topmind-viral-posts/README.en.md +11 -72
  96. package/topmind-viral-posts/README.md +13 -82
  97. package/topmind-viral-posts/SKILL.md +33 -195
  98. package/topmind-viral-posts/package.json +1 -1
  99. package/topmind-viral-posts/references/core-voice.md +63 -307
  100. package/topmind-viral-posts/references/creative-practice.md +112 -0
  101. package/topmind-viral-posts/references/de-ai-rules.md +22 -22
  102. package/topmind-viral-posts/references/emoji-system.md +11 -118
  103. package/topmind-viral-posts/references/image-sourcing.md +13 -41
  104. package/topmind-viral-posts/references/information-design.md +40 -115
  105. package/topmind-viral-posts/references/patterns.md +4 -20
  106. package/topmind-viral-posts/references/research-mode.md +11 -23
  107. package/topmind-viral-posts/references/revision-workflow.md +34 -37
  108. package/topmind-viral-posts/references/social-writing-principles.md +24 -59
  109. package/topmind-viral-posts/references/tags-and-topics.md +13 -100
  110. package/topmind-viral-posts/references/x-delivery-contract.md +20 -126
  111. package/topmind-viral-posts/references/x-layout-patterns.md +12 -71
  112. package/topmind-viral-posts/references/x-post-format.md +17 -90
  113. package/topmind-viral-posts/scripts/audit_skill.py +8 -6
  114. package/topmind-viral-posts/scripts/de_ai_lint.py +19 -19
  115. package/topmind-viral-posts/scripts/format_text.py +24 -41
  116. package/topmind-viral-posts/scripts/lint_x_post.py +18 -50
  117. package/topmind-wechat-post/README.en.md +10 -115
  118. package/topmind-wechat-post/README.md +13 -114
  119. package/topmind-wechat-post/SKILL.md +36 -257
  120. package/topmind-wechat-post/package.json +1 -1
  121. package/topmind-wechat-post/references/core-voice.md +63 -307
  122. package/topmind-wechat-post/references/creative-practice.md +112 -0
  123. package/topmind-wechat-post/references/de-ai-rules.md +22 -22
  124. package/topmind-wechat-post/references/element-spec.md +1 -1
  125. package/topmind-wechat-post/references/image-sourcing.md +13 -41
  126. package/topmind-wechat-post/references/information-design.md +40 -115
  127. package/topmind-wechat-post/references/platform-operations.md +173 -0
  128. package/topmind-wechat-post/references/research-mode.md +11 -23
  129. package/topmind-wechat-post/references/revision-workflow.md +34 -37
  130. package/topmind-wechat-post/references/social-writing-principles.md +24 -59
  131. package/topmind-wechat-post/references/theme-map.md +1 -1
  132. package/topmind-wechat-post/references/typography-rules.md +16 -48
  133. package/topmind-wechat-post/references/workflow.md +1 -1
  134. package/topmind-wechat-post/references/workspace.md +9 -25
  135. package/topmind-wechat-post/references/writing-quality.md +15 -97
  136. package/topmind-wechat-post/references/x-delivery-contract.md +20 -126
  137. package/topmind-wechat-post/references/x-post-format.md +17 -90
  138. package/topmind-wechat-post/scripts/article_scaffold.py +11 -26
  139. package/topmind-wechat-post/scripts/audit_skill.py +8 -6
  140. package/topmind-wechat-post/scripts/de_ai_lint.py +19 -19
  141. package/topmind-wechat-post/scripts/lint_x_post.py +18 -50
  142. package/topmind-wechat-post/scripts/negative_tests.py +2 -2
  143. package/topmind-x-article/README.en.md +10 -113
  144. package/topmind-x-article/README.md +13 -105
  145. package/topmind-x-article/SKILL.md +39 -168
  146. package/topmind-x-article/package.json +1 -1
  147. package/topmind-x-article/references/core-voice.md +63 -307
  148. package/topmind-x-article/references/creative-practice.md +112 -0
  149. package/topmind-x-article/references/de-ai-rules.md +22 -22
  150. package/topmind-x-article/references/image-sourcing.md +13 -41
  151. package/topmind-x-article/references/information-design.md +40 -115
  152. package/topmind-x-article/references/platform-operations.md +34 -0
  153. package/topmind-x-article/references/research-mode.md +11 -23
  154. package/topmind-x-article/references/revision-workflow.md +34 -37
  155. package/topmind-x-article/references/social-writing-principles.md +24 -59
  156. package/topmind-x-article/references/workspace.md +9 -25
  157. package/topmind-x-article/references/x-delivery-contract.md +20 -126
  158. package/topmind-x-article/references/x-post-format.md +17 -90
  159. package/topmind-x-article/scripts/article_scaffold.py +11 -26
  160. package/topmind-x-article/scripts/audit_skill.py +8 -6
  161. package/topmind-x-article/scripts/de_ai_lint.py +19 -19
  162. package/topmind-x-article/scripts/lint_x_post.py +18 -50
package/CHANGELOG.md CHANGED
@@ -1,3 +1,33 @@
1
+ ## [0.8.50] - 2026-10-26
2
+
3
+ ### 创作方式与参考
4
+
5
+ - 重构 8 个技能入口:按任务读取参考、看实际样张、按需探索不同方向;口吻、长度、emoji、开头结尾和视觉风格改为选项。
6
+ - 新增共享 `creative-practice.md`:同素材不同短文、段子与长文结构片段、真实参考阅读和匿名比较方法;事实、隐私、授权、文件恢复与输出完整性继续核对。
7
+ - 清理共享规则与局部经验中的固定判断 / 图片配额、分数定稿门槛、全局角色动作要求;平台操作细节移到按需参考。必要归因、近似值和不确定性保留正文。
8
+
9
+ ### 行为变化
10
+
11
+ - `format_text.py` 默认保留原文表情、链接和来源,`--strip-emoji` / `--separate-links` 显式选择转换;段子支持作者指定首尾表情。
12
+ - `lint_x_post.py` 默认允许文字列表、正文链接 / 来源、段子 emoji;链接分离检查仅在 `--separate-links` 启用。格式残留与缺失输入继续检查。
13
+ - `title-engine.py --check` 默认输出建议,`--strict` 主动选择模板门禁;无效 JSON 和空图层仍失败。
14
+ - 技能结构审计不再要求固定标题与禁用清单;移除把公开来源和致谢当隐私泄漏的封面测试,独立隐私扫描保留。
15
+
16
+ ### 验证与版本
17
+
18
+ - 增加 11 项 CLI 行为回归并接入 CI;更新旧用例预期,新增 12 个创作场景。用例结构检查不等于已执行模型评测或真实盲选。
19
+ - 根包 0.8.49 → 0.8.50;8 个技能各递增 patch,同步独立安装副本与中英文说明。提交并推送 v0.8.50 标签后,由 Release 工作流分发。
20
+
21
+ ## [0.8.49] - 2026-10-24
22
+
23
+ > 根包 0.8.48 → **0.8.49**(patch);技能版本:topmind-briefs 0.2.27 → 0.2.28、topmind-cover 0.4.16 → 0.4.17、topmind-viral-posts 0.3.19 → 0.3.20、topmind-wechat-post 0.3.19 → 0.3.20。其余技能不变。
24
+
25
+ ### 优化
26
+
27
+ - 根 README 中英文对齐,安装与技能说明从使用者角度重写;topmind-briefs、topmind-viral-posts 的 README 同步。
28
+ - 几处说明改得更直白:短文开头写法、风格表与段子表的表头、设计规范与主题映射的要点句、WARN 的含义。
29
+ - CHANGELOG 去掉内部备注,只涉及发布流程与 CI 的条目压成一行。
30
+
1
31
  ## [0.8.48] - 2026-10-22
2
32
 
3
33
  > 全面优化:段子重组为 12 + 2 种写法,短文按 9 种内容类型写,去 AI 味规则新增社交短帖模式和问句口径条目,长文骨架先写「我的判断」并在交付前出图文预览;根 README 和各技能 README 改为能力优先。
@@ -345,7 +375,7 @@
345
375
 
346
376
  - **topmind-briefs**:短文不是长文,默认不出 HTML——X 版是一段纯文本,公众号版是 Markdown;HTML 脚本只在用户明确要求时使用。新增「尊重原始信息」铁律与交付格式,交付时写明信息来源、发布时间、来源链接与图片来源。
347
377
  - **配图口径统一**:原图优先;没有原图时封面可选(不再默认配封面)。`x-post-format.md`、briefs、viral-posts、cover 的「X 短文封面」场景说明同步。
348
- - **topmind-viral-posts**:类型从 14 扩到 18(新增冷知识揭秘、差额冲刺、反差对照、自问自答),新增「段子体排版」(一句一行、行间空行)与「组合玩法(钩子 × 主体 × 收尾)」两节、8 种常用组合;示例按用户提供的两条参考帖改写(未复制第三方截图与账号信息);表情规则接入 emoji 体系。
378
+ - **topmind-viral-posts**:类型从 14 扩到 18(新增冷知识揭秘、差额冲刺、反差对照、自问自答),新增「段子体排版」(一句一行、行间空行)与「组合玩法(钩子 × 主体 × 收尾)」两节、8 种常用组合;示例改为原创(不含第三方截图与账号信息);表情规则接入 emoji 体系。
349
379
 
350
380
  ### 优化
351
381
 
@@ -460,44 +490,19 @@
460
490
 
461
491
  > 根包 0.8.24 → **0.8.25**(patch);各技能版本不变。
462
492
 
463
- > - 优化:**npm 包不再带 package-lock.json**。0.8.24 的 npm 包里有 6 个锁文件:briefs、cover、wechat-post、x-article 提交在仓库里的 4 个,
464
- > 以及技能门禁在 poster、viral-posts 下临时生成的 2 个。6 个技能都没有 npm 依赖,这些锁文件里没有锁定任何包,用户按目录安装也用不上
465
- > - 优化:技能门禁(`scripts/ci_skill_gates.sh`、`scripts/run_skill_gates.js install`)在技能没有运行时依赖时跳过 `npm install`,不再生成临时锁文件;
466
- > 以后有依赖时,有锁文件用 `npm ci --omit=dev`,没有则用 `npm install --omit=dev --no-package-lock`
467
- > - 优化:删除仓库里 4 个空锁文件,`.gitignore` 忽略 `package-lock.json`(以后某个技能加了依赖,按注释为它加例外后提交);
468
- > `scripts/sync_npm_files.js` 为每个技能生成 `!<skill>/package-lock.json` 排除项,`package.json` `files` 同步更新
469
- > - 优化:`scripts/check_npm_pack.js` 增加拦截 `package-lock.json`、`npm-shrinkwrap.json`、`node_modules/`
470
- > - 优化:CI 与 Release 的 `setup-node` 去掉 `cache: npm`(没有依赖可缓存,原先指向的 `topmind-briefs/package-lock.json` 已删除)
471
- > - 本地验证:全部门禁与打包步骤之后 `npm pack --dry-run`:123 → 117 个文件,锁文件 6 → 0;临时放入锁文件并去掉排除项时,`check_npm_pack.js` 报错退出
493
+ > - 优化:npm 包不再附带空的 `package-lock.json`;其余为发布流程与 CI 调整,无用户可见变化
472
494
 
473
495
  ## [0.8.24] - 2026-10-08
474
496
 
475
497
  > 根包 0.8.23 → **0.8.24**(patch);各技能版本不变。
476
498
 
477
- > - 优化:**npm 包不再带 Release 打包产物**。Release 流程在 `npm publish` 之前运行 `package_skill.py`,会在各技能下生成
478
- > `dist/`(`<skill>.zip` 与 `<skill>.manifest.json`),0.8.23 的 npm 包因此多带了 briefs / poster / viral-posts 的 6 个文件(约 111 KB)。
479
- > `scripts/sync_npm_files.js` 现在为每个发现到的技能生成 `!<skill>/dist/` 排除项,`package.json` `files` 同步更新;
480
- > 这些产物仍作为 GitHub Release 附件发布
481
- > - 优化:新增 `scripts/check_npm_pack.js`(`npm run check:pack`),按 `npm pack --dry-run` 的实际文件清单检查,
482
- > 出现 `dist/`、`release-assets/`、`__pycache__/`、`*.pyc` 即失败。Release 在打包之后、建 Release 之前运行;
483
- > CI `Skill package gates` 先按 Release 同口径真实打包再运行,问题在推送 main 时就能发现
484
- > - 优化:GitHub Actions 改用 Node 24 运行时的版本:`actions/checkout` v4 → v7、`actions/setup-node` v4 → v7、`actions/setup-python` v5 → v7、
485
- > `softprops/action-gh-release` v2 → v3;ci / release / deprecate-npm-2x 的 `node-version` 20 → 24(本地 Node 24 跑全部门禁与打包步骤通过)
486
- > - 优化:`runs-on` 由 `ubuntu-latest` 固定为 `ubuntu-24.04`:GitHub 在 2026-10-19 至 11-19 期间把 `ubuntu-latest` 逐步切到 Ubuntu 26.04,先停在当前已验证的镜像,切 26.04 另行验证后再改
487
- > - 本地验证:打包 6 个技能后 `npm pack --dry-run`:127 → 121 个文件,tarball 2,188,530 B → 2,090,653 B,
488
- > 解包 2,842,215 B → 2,731,152 B,`dist/` 文件 6 → 0。完整走一遍 Release 步骤时为 123 个文件:技能门禁会在
489
- > poster、viral-posts 下临时生成无依赖的 `package-lock.json`(各约 200 B),随包发布,不影响使用
499
+ > - 优化:npm 包不再附带 Release 打包产物(`dist/`),这些文件仍作为 GitHub Release 附件发布;其余为发布流程与 CI 调整
490
500
 
491
501
  ## [0.8.23] - 2026-10-08
492
502
 
493
503
  > 根包 0.8.22 → **0.8.23**(patch);各技能版本不变。0.8.22 已打 tag 但未生成 Release、未发布 npm,其全部内容随 0.8.23 一并发布(见下方 0.8.22 条目)。
494
504
 
495
- > - 优化:**Release 打包不受运行时缓存影响**。`package_skill.py`(shared 真源 + 6 份副本)新增 `IGNORE_RES`,
496
- > `__pycache__/`、`*.pyc`、`*.pyo`、`.DS_Store` 在校验与打包时都直接跳过,不再判为「不应进包的文件」;
497
- > `scripts/_*`、`.env` 等仍按原规则拦截
498
- > - 优化:`release.yml` 在 job 级设置 `PYTHONDONTWRITEBYTECODE=1`,负向测试运行脚本时不写字节码缓存,打包与 npm 包保持干净
499
- > - 优化:CI `Skill package gates` 在负向测试之后追加「Release packaging check」,按 Release 同口径逐技能跑 `package_skill.py --check`,
500
- > 打包问题在推送 main 时就能发现,不必等到打 tag
505
+ > - 发布流程与 CI 调整,无用户可见变化
501
506
 
502
507
  ## [0.8.22] - 2026-10-08
503
508
 
@@ -510,7 +515,7 @@
510
515
  > 找不到时回落内置 `scan_ai_flavor_builtin.py` 并在 stderr 提示缺姿态维度(0.8.43 起改为环境变量 `$TOPMIND_AI_SCAN` 指定)
511
516
  > - `md2wechat.py` 两版逐段比对:本仓 1801 行版本已包含旧版全部能力,并多出括号 URL、嵌套围栏、行内图片管线、
512
517
  > 原子写、坏输入干净报错等处理,保留本仓版本;旧版独有的左衬条样式、自我介绍签名行、minimal-ink 默认主题
513
- > 是 2026-10-01/02 按用户要求去掉的,不恢复
518
+ > 此前已去掉,不恢复
514
519
  > - references 合入:`workflow.md` 补溯源审计步骤与 `word_count` 口径说明,`writing-quality.md` 补作者姿态分与清单文档误判说明
515
520
  > - 优化:**去掉写死的路径、类别编号与年份**。新增 `scripts/wechat_paths.py`,`new-article / sync-status / sync-mapping / push-to-topstream`
516
521
  > 共用:`--base` → `TOPMIND_WECHAT_BASE` → `--workspace` / `TOPMIND_WORKSPACE` 下按名称发现「长文」类别(兼容「创作」「专题」)
@@ -558,7 +563,7 @@
558
563
  > 含「一段一图」分段图批量出图工作流(生成器 + 渲染器)
559
564
  > - 新增 `scripts/render_poster.py`:一条命令跑完截图 → 扫底 → 裁切,支持批量、自动加大窗口重试、`--chrome` / `CHROME_PATH` 指定浏览器
560
565
  > - 新增 `references/layout-recipes.md`:画布尺寸 / 字号层级 / 浅底深底配色 / 栅格 / 进度条 / 常用版式模板
561
- > - 沉淀 7 个实测坑:macOS 沙箱下必须 `--no-sandbox`、柱状图填充整条消失(`<span>` 需 `display:block`)、
566
+ > - 记录 7 条实测经验:macOS 沙箱下必须 `--no-sandbox`、柱状图填充整条消失(`<span>` 需 `display:block`)、
562
567
  > 裁切基准色不能取左上角(顶部装饰层会污染)、PNG 重采样反而变大、`str.format()` 拼 CSS 报 KeyError 等
563
568
  > - 定位说明:本技能只管**出图那一环**;封面走 `topmind-cover`,PPTX 走 `top-ppt-html`
564
569
  > - README 技能表补齐 **topmind-viral-posts**(英文版此前缺)、校正各技能版本号与安装器版本
@@ -567,15 +572,15 @@
567
572
 
568
573
  > 根包 0.8.18 → **0.8.19**(patch);技能:topmind-viral-posts 0.3.0 → **0.3.1**(patch,纯运营 7 型并入)。
569
574
 
570
- > - topmind-viral-posts 新增 **8-14 型纯运营吸粉模板**(暴论型/数据晒单型/真诚交友型/吐槽共鸣型/干货技巧型/经验忠告型/执行清单型),基于 2026-10-03 用户提供的 10 张 X 爆款截图深度拆解
575
+ > - topmind-viral-posts 新增 **8-14 型纯运营吸粉模板**(暴论型/数据晒单型/真诚交友型/吐槽共鸣型/干货技巧型/经验忠告型/执行清单型)
571
576
  > - 新增 **Hashtag 矩阵**(#蓝V互关 #follow #真诚交友 #浇朋友 黄金组合)与 **圈内用语词典**(浇朋友/蓝朋友/出摊/串门/上岸)
572
- > - 8-14 型为纯 X 运营/吸粉内容,不蹭新闻热点;双份真源合并,本地 skills/ 目录的 0.2.0 内容已并入正式仓库
577
+ > - 8-14 型为纯 X 运营/吸粉内容,不蹭新闻热点
573
578
 
574
579
  ## [0.8.18] - 2026-10-03
575
580
 
576
581
  > 根包 0.8.17 → **0.8.18**(patch);技能:topmind-wechat-post 0.3.1 → **0.3.2**(patch,衬条禁令铁律)。
577
582
 
578
- > - design.md 设计要点新增 **禁止顶部/侧边衬条和颜色条铁律**(用户明确):用浅色调色板区分区块,不用硬色条;MD3 真风格 = 浅色调色块 + 圆角 + 柔和阴影 + 标签药丸
583
+ > - design.md 设计要点新增 **禁止顶部/侧边衬条和颜色条铁律**:用浅色调色板区分区块,不用硬色条;MD3 真风格 = 浅色调色块 + 圆角 + 柔和阴影 + 标签药丸
579
584
 
580
585
  ## [0.8.17] - 2026-10-03
581
586
 
@@ -583,7 +588,7 @@
583
588
 
584
589
  > - design.md 新增 **MD3 卡片规范**:禁止 matplotlib 做信息图,走 HTML+CSS → Playwright 截图 → PNG 路线;卡片不要衬条,表格式图表用浅色风格
585
590
  > - writing-quality.md 事实关新增 **第三方图片核实三问**:数字是否过于整齐、时间是否对得上、总量是否对得上
586
- > - writing-quality.md 文字关新增 **去AI味补充清单**(用户亲口):"不是…是…"对比句式、一句话总结、真正的、过度简洁、中立措辞
591
+ > - writing-quality.md 文字关新增 **去AI味补充清单**:"不是…是…"对比句式、一句话总结、真正的、过度简洁、中立措辞
587
592
 
588
593
  ## [0.8.16] - 2026-10-03
589
594
 
@@ -669,7 +674,7 @@
669
674
  > 根包 0.8.6 → **0.8.7**(patch);技能:topmind-briefs 0.2.4 → **0.2.5**、
670
675
  > topmind-x-article 0.4.5 → **0.4.6**、topmind-wechat-post 0.2.8 → **0.2.9**(patch)。
671
676
  >
672
- > - 全仓:writing-principles.md 第五节新增"很老"→"可以追溯很早之前"(用户亲口改稿)。
677
+ > - 全仓:writing-principles.md 第五节新增"很老"→"可以追溯很早之前"。
673
678
 
674
679
  ## [0.8.6] - 2026-10-02
675
680
 
@@ -697,7 +702,7 @@
697
702
  > topmind-x-article 0.4.2 → **0.4.3**、topmind-cover 0.4.0 → **0.4.1**(均为 patch)。
698
703
  >
699
704
  > - wechat-post:`references/writing-principles.md` 新增第五节"措辞偏好"
700
- > (2026-10-02 用户亲手改稿确立:不用噱头式导语/"一句话"伪简洁/绝对化断言/
705
+ > (不用噱头式导语/"一句话"伪简洁/绝对化断言/
701
706
  > "我的判断"/"全文的题眼"/"同一份报告"/"坑"字/看不懂的梗;断言留余地、
702
707
  > 简洁不取巧、评论腔删掉);SKILL.md 实战沉淀追加 v2 措辞整改、PIL 结尾
703
708
  > 总结插图做法、topmind-cover 封面流程
@@ -1181,8 +1186,7 @@
1181
1186
 
1182
1187
  ### topmind-cover:6 张样张版式级重设计(差异化纠偏)
1183
1188
 
1184
- - 用户指出第四轮样张仍是"翻版"(版式结构照搬 7 张参考封面,只换文案形象)。
1185
- 本轮按**版式级标准**重做:只保留抽象原则(标题是视觉重心/信息分层/留白呼吸感),
1189
+ - 上一轮样张的版式结构与参考封面过于接近,本轮按**版式级标准**重做:只保留抽象原则(标题是视觉重心/信息分层/留白呼吸感),
1186
1190
  6 张重设计(gan-huo 居中构图+深炭灰暖橙、big-type 单行超大书法字+奶油亮底、
1187
1191
  brand-launch 深海军蓝+荧光绿、tutorial-steps 横向时间线+墨色题字、
1188
1192
  ip-fun 数字改右下角印章+橙黄暖色、news-flash 纯黑单色+纸纹+俯视静物大改),
@@ -1258,7 +1262,7 @@
1258
1262
  教程步骤(`tutorial-steps`)/ IP 趣味(`ip-fun`)/ 资讯快报(`news-flash`)/
1259
1263
  极简留白(`minimal`,保留)/ 杂志编辑(`magazine`,保留),
1260
1264
  每种含适用场景、构图公式、配色 hex、标题写法规范(4~8 字、数字/关键词彩色突出)、
1261
- 中英 prompt 配方、避坑;删除旧 6 风格。
1265
+ 中英 prompt 配方、常见问题;删除旧 6 风格。
1262
1266
  - `assets/examples/` 样张全部重制:**16 张**(8 风格 × 1200×675 主图 + 900×383 公众号中央裁剪版)
1263
1267
  + `overview.png`(8 宫格总览图),逐张目检(标题逐字准确、无乱码、中央 60% 安全区),
1264
1268
  7 次返工均为"底部元素超出安全区";旧 12 张移除。
@@ -1282,7 +1286,7 @@
1282
1286
 
1283
1287
  - `references/cover-styles.md` 扩为 **6 种风格库**:震撼大字报(`big-poster`)/ 科技未来感(`tech-future`)/
1284
1288
  杂志编辑风(`magazine`)/ 极简留白(`minimal`)/ 国潮插画(`guochao`)/ 赛博故障艺术(`cyber-glitch`),
1285
- 每种含适用场景、配色 hex、字体建议、中英 prompt 配方、避坑。
1289
+ 每种含适用场景、配色 hex、字体建议、中英 prompt 配方、常见问题。
1286
1290
  - `assets/examples/` 新增 **12 张示例图**(6 风格 × 1200×675 主图 + 900×383 公众号中央裁剪版,共约 6.4MB),
1287
1291
  附 `assets/examples/README.md`(清单 + 安全区说明 + 复用声明),随 npm 包发布。
1288
1292
  - SKILL.md 工作流新增"**步骤 0 选风格**"(三步必做:按题材 6 选 1 → 看示例图 → 按配方组 prompt)。
@@ -1293,7 +1297,7 @@
1293
1297
 
1294
1298
  - top-ppt-html / topmind-wechat-post 的 SKILL.md `description` 改**第三人称**(降误触发);
1295
1299
  topmind-cover `description` 同步微调("一次配齐"→"全流程覆盖"),`triggers` 新增 `缩略图` / `thumbnail`。
1296
- - topmind-wechat-post:站外取源坑与回推命令串收敛到 `references/workflow.md`,SKILL.md 只留索引;
1300
+ - topmind-wechat-post:站外取源注意事项与回推命令收敛到 `references/workflow.md`,SKILL.md 只留索引;
1297
1301
  新增跨技能路由索引(封面配图 → topmind-cover,X 长文 → topmind-x-article);
1298
1302
  二级标题序号由排版层自动生成(不再手写)。
1299
1303
  - 各技能 README(中/英)与 SKILL.md 对齐:cover 新增风格库与示例图章节、用法改"步骤 0 选风格";
@@ -1314,7 +1318,7 @@
1314
1318
  交付包 / 审校改写 / 质量三关(事实·逻辑·去 AI 味 ≥85)/ 状态同步 / 微信内联排版(`md2wechat --embed-images`)/ 发布清单。
1315
1319
  适配点:frontmatter 去 topmind-pack 专有键(`degradation`/`action_category`/`entrypoint`),
1316
1320
  跨 skill 引用改为通用表述,`writing-quality.md` 改用技能自带 `scan_ai_flavor.py`
1317
- (原引用本机私有路径),`md2wechat.py` 缺失输入改干净报错(原 Traceback)。
1321
+ (不再依赖技能外的脚本),`md2wechat.py` 缺失输入改干净报错(原 Traceback)。
1318
1322
  - **topmind-x-article `0.1.0`**:X 长文一键发布。`md2x.py` 把 Markdown 转可直接粘贴进
1319
1323
  X Article 编辑器的纯文本(标题→纯文本行、加粗/斜体去标记、链接→`文字(url)`、
1320
1324
  图片→`[图N]`+文末配图清单、表格→"项:值"列表);`references/publish-checklist.md`
@@ -1424,7 +1428,7 @@
1424
1428
  ### Craft · 结论条去 AI 味:取消左侧 accent 装饰轨
1425
1429
 
1426
1430
  #### 设计决策(硬原则)
1427
- - **结论条无 left rail**:用户明确拒绝结论条左侧色条为 AI-flavored chrome。`.sowhat` / PPTX `soWhatBar()` 改为 **MD3 tonal surface 满铺**(`accent-soft` + 细描边)+ 舒适字阶 / `line-height:1.65` / 内边距 `--sp-5`/`--sp-6`;**禁止**竖色条、霓虹边、装饰 chip 当强调。
1431
+ - **结论条无 left rail**:结论条不用左侧色条。`.sowhat` / PPTX `soWhatBar()` 改为 **MD3 tonal surface 满铺**(`accent-soft` + 细描边)+ 舒适字阶 / `line-height:1.65` / 内边距 `--sp-5`/`--sp-6`;**禁止**竖色条、霓虹边、装饰 chip 当强调。
1428
1432
  - 写入 `design-system` §去 AI 味、`content-rules`、`components-atoms`、`SKILL`、`layout-constants.aiFlavor.visual.forbidConclusionLeftRail`。
1429
1433
  - 同类收口 `.note` 同步去掉左轨,改 tonal 细描边;`.flagbar`(待核实)保留细强调(功能态,非结论装饰)。
1430
1434
 
@@ -1661,7 +1665,7 @@
1661
1665
 
1662
1666
  ### top-ppt-html · Presentation Craft(Mode A 工艺)
1663
1667
 
1664
- - **P0-1 图表多样性(用户明确保留)**:**不降** `minTypes.presentation`(仍为 **4**);registry/advanced 图种保留。纪律改为「按内容选型拉开多样」+ 禁反模式(简单全幅 / 极偏 donut / 为过门禁硬上冷门图);playbook §五 / layout-qa 同步。
1668
+ - **P0-1 图表多样性(保留)**:**不降** `minTypes.presentation`(仍为 **4**);registry/advanced 图种保留。纪律改为「按内容选型拉开多样」+ 禁反模式(简单全幅 / 极偏 donut / 为过门禁硬上冷门图);playbook §五 / layout-qa 同步。
1665
1669
  - **P0-2 default-surface**:升为 Mode A / Fast 演示主读面(12 页型 + 8 核图 + V1–V4;P5–P12/advanced 按需);SKILL L2 索引指向。
1666
1670
  - **P0-3 layout-qa 默认**:`validate_report --strict` 在 presentation 下自动 `--layout-qa`;`quality_gate` 同口径;B/C 不强制。
1667
1671
  - **P0-4 主张标题**:Mode A action/claim title(禁话题标签)写入 content-rules / modes;校验 WARN。
package/README.en.md CHANGED
@@ -18,19 +18,21 @@ npx @topmindspace/topmind-writing-skills install topmind-viral-posts # install
18
18
  npx @topmindspace/topmind-writing-skills list # see all
19
19
  ```
20
20
 
21
- ## How it differs from "AI, write me a post"
21
+ ## More choices, concrete references
22
22
 
23
- - **Pick the type first.** 14 ways to write a duanzi (one-line-per-sentence post) and 9 content types for briefs, each with its own opening, structure and ending.
24
- - **Glanceable.** The X body keeps facts, numbers and the highlight. Verification notes, caliber notes, links and original images are delivered separately, so the body copies straight into X.
25
- - **De-AI with scripts.** Boilerplate phrases, newsreader tone, engagement-bait endings, fake first-hand claims and punctuation tics get flagged line by line; you decide what to change.
26
- - **Long-form starts with judgments.** The skeleton requires "my judgments" up front; material backs them up instead of piling up.
27
- - **Facts stay put.** Revision changes wording, never numbers, quotes or certainty; every edit cites a rule.
23
+ - Read actual references and visible specimens, then adapt their methods to the current material.
24
+ - Explore a few distinct directions when useful; deliver one finished result for a clear one-result request.
25
+ - Treat voice, length, emoji, openings and visual style as choices. Current user intent and author samples guide them.
26
+ - Preserve necessary attribution, approximation and uncertainty in public copy. Facts, privacy, authorization and usable output remain concrete boundaries.
27
+ - Linters offer context-sensitive signals, not a style score to maximize. Writing quality still needs real author or reader evaluation.
28
+
29
+ See the [practice and specimens](./shared/references/creative-practice.md) and [audit](./docs/creative-skills-audit.md).
28
30
 
29
31
  ## What it writes
30
32
 
31
- | Category | Skill | In one line | Say |
33
+ | Category | Skill | What it does | Say |
32
34
  |---|---|---|---|
33
- | Duanzi | [`topmind-viral-posts`](./topmind-viral-posts/) | One sentence per line, zero emoji, 14 patterns | "来条段子", "不懂就问", "写个群聊体" |
35
+ | Duanzi | [`topmind-viral-posts`](./topmind-viral-posts/) | X humor and conversational posts; 14 optional patterns | "来条段子", "不懂就问", "写个群聊体" |
34
36
  | Briefs | [`topmind-briefs`](./topmind-briefs/) | One thing, then stop: news, previews, launches, deals, rankings, papers, hands-on | "发个快讯", "来篇短的", "写条预告" |
35
37
  | Long-form · X | [`topmind-x-article`](./topmind-x-article/) | X Article: single-source Markdown → one-click copy HTML + preview image | "写 X 长文", "出一键复制版" |
36
38
  | Long-form · WeChat | [`topmind-wechat-post`](./topmind-wechat-post/) | WeChat articles: three quality gates, inline-image layout, publish checklist | "写公众号", "公众号排版" |
@@ -43,7 +45,7 @@ npx @topmindspace/topmind-writing-skills list # see all
43
45
 
44
46
  Decide **who you want in the replies**, then pick a pattern:
45
47
 
46
- | Pattern | In one line | Typical opening | Replies you want |
48
+ | Pattern | What it is | Typical opening | Replies you want |
47
49
  |---|---|---|---|
48
50
  | A1 Genuine question | Play dumb, ask what you really don't know | "Doesn't anyone use…?" | Experts explaining |
49
51
  | A2 Leak check | Clue + last time + a guess | "XX is about to ship?!" | More clues, guesses |
@@ -76,7 +78,7 @@ Each pattern has topics, hook, structure, ending, counter-examples and original
76
78
  | Hands-on | The result (broke, fast, pricey) | Self-roast or a real question |
77
79
  | One-line take | An insider's light judgment | The judgment |
78
80
 
79
- The first-post window is measured in minutes; if you're late, change the angle. Previews and launches are separate posts. See [topmind-briefs](./topmind-briefs/SKILL.md).
81
+ These are optional directions, not fixed openings or endings. Keep preview and launch states distinct; add a fresh angle when useful. See [topmind-briefs](./topmind-briefs/SKILL.md).
80
82
 
81
83
  ## Examples
82
84
 
@@ -112,7 +114,7 @@ Nova:我们也上线了,价格动了
112
114
  单任务成本两毛钱出头...
113
115
  ```
114
116
 
115
- Links, the official chart and caliber notes ("scores are vendor-reported") go to the author separately, not into the body.
117
+ Keep necessary vendor attribution and uncertainty in the copy. Detailed sources and charts can be listed separately; useful links may stay in the body.
116
118
 
117
119
  **De-AI · before → after**
118
120
 
@@ -140,21 +142,21 @@ Removed the newsreader hype, the "not just X but Y" construction and the uplifti
140
142
 
141
143
  More: [duanzi](./topmind-viral-posts/examples/) · [briefs](./topmind-briefs/examples/) · [format](./topmind-format/examples/) · [revise](./topmind-revise/examples/) · [X article](./topmind-x-article/examples/) · [WeChat](./topmind-wechat-post/examples/) · [poster](./topmind-poster/examples/) · [cover](./topmind-cover/assets/examples/)
142
144
 
143
- ## Long-form: judgments first, material second
145
+ ## Long-form: choose a structure that fits
144
146
 
145
147
  One folder per article, created by `article_scaffold.py`:
146
148
 
147
149
  ```text
148
150
  <title>/
149
151
  ├─ <title>.md the only source
150
- ├─ 骨架.md message, reader, my judgments (required), per-section form and figures
152
+ ├─ 骨架.md message, reader, main thread and evidence (optional), per-section form and figures
151
153
  ├─ 素材来源.md where every image and number came from (not published)
152
154
  ├─ images/ cover/ raw/自制图源/
153
155
  └─ out/ X HTML, WeChat HTML, 预览.png (rebuildable)
154
156
  ```
155
157
 
156
- - **My judgments**: 3–5, each with its basis and the likely pushback. A long section with no judgment gets a "material dump" hint.
157
- - **Own diagrams**: method, architecture and comparison pieces get at least one diagram of your own view.
158
+ - **Main thread**: claims and counterexamples for opinion, scenes for stories, tasks and steps for tutorials; no fixed number of judgments.
159
+ - **Diagrams**: originals and custom diagrams are options when they improve understanding; no figure quota.
158
160
  - **Preview**: render `out/预览.png` before delivery; tables X can't paste can become images.
159
161
 
160
162
  ## Rules: principles first
@@ -165,13 +167,15 @@ All skills share layered rules (single source `shared/references/`, copied into
165
167
  |---|---|---|
166
168
  | Principles | `social-writing-principles.md` | Know the message, lead with it, new info every line, form follows content, originals first, reader's side |
167
169
  | Information design | `information-design.md` | Skeleton first, content → form (list / table / figure / paragraph), length and density |
168
- | Voice | `core-voice.md` | Ten wording principles; V01–V40 show them in titles, openings, numbers, questions, replies, duanzi |
170
+ | Voice | `core-voice.md` | Contextual V01–V40 options for titles, openings, numbers, questions, replies and humor |
169
171
  | Review | `de-ai-rules.md` + `topmind-revise` | De-AI patterns (long-form + social S01–S10), rewrite boundaries, fidelity audit |
170
172
 
171
- The persona is **an ordinary person still learning**: talks about what they saw and tried, no lectern, says so when unsure.
173
+ The voice follows the current request, author samples, audience and genre; it is not one fixed persona.
172
174
 
173
175
  ### Scripts hint, people decide
174
176
 
177
+ Run these inside the skill folder (for example `topmind-briefs/` or `topmind-revise/`):
178
+
175
179
  ```bash
176
180
  python3 scripts/lint_x_post.py X短文.txt --kind news # news brief
177
181
  python3 scripts/lint_x_post.py 段子.txt --duanzi # duanzi
@@ -180,8 +184,8 @@ python3 scripts/de_ai_lint.py article.md --genre long # long-form
180
184
 
181
185
  | Level | Meaning | Required |
182
186
  |---|---|---|
183
- | E error | Markdown leftovers; URLs / source lines / image notes in the body | Must be zero |
184
- | W warning | Boilerplate, engagement-bait endings, forced analogies, English template lines, punctuation tics, over-long replies… | Each needs a decision: fix or justify |
187
+ | E format issue | Likely marker leftovers and image placeholders; URL/source enforcement only with `--separate-links` | Check actual formatting and semantic exceptions |
188
+ | W editorial signal | Patterns, length, literal lists and inline links | Use context; valid choices need no written justification |
185
189
  | H hint / I1–I9 | Context words, long first line, caliber notes in the body, newsreader template; information design (long runs, list candidates, material dumps…) | For judgment only, never in `--strict` |
186
190
 
187
191
  If you have your own post data, `post_type_report.py` shows which openings, endings and types work for you and writes a habits summary for revision; the data stays on your machine.
@@ -232,7 +236,7 @@ topmind-writing-skills/
232
236
  - Pushing main is visible on GitHub immediately; a `vX.Y.Z` tag creates a Release and publishes to npm. Each skill's version lives in its own `SKILL.md` and the [CHANGELOG](./CHANGELOG.md).
233
237
  - See [docs/PUBLISHING.md](./docs/PUBLISHING.md) · [docs/ci.md](./docs/ci.md).
234
238
 
235
- > The business presentation skill now lives in its own repo: [`topmind-presentation`](https://github.com/topmindspace/topmind-presentation).
239
+ For business presentations, install [`topmind-presentation`](https://github.com/topmindspace/topmind-presentation) separately.
236
240
 
237
241
  </details>
238
242
 
package/README.md CHANGED
@@ -18,19 +18,21 @@ npx @topmindspace/topmind-writing-skills install topmind-viral-posts # 装一
18
18
  npx @topmindspace/topmind-writing-skills list # 看全部
19
19
  ```
20
20
 
21
- ## 它和「让 AI 随便写一条」有什么不一样
21
+ ## 加选项,让经验帮助创作
22
22
 
23
- - **先定类型,再动笔**:段子有 14 种写法,短文有 9 种内容类型,每种的首行、结构、收尾都不一样。
24
- - **一眼快餐**:X 正文只留事实、数字和亮点;查证过程、口径说明、链接、原图都另发,正文可以直接复制。
25
- - **去 AI 味有脚本**:套话、播报腔、套路互动尾巴、编出来的亲历、标点腔,脚本逐条标出来,人来决定改不改。
26
- - **长文先有判断**:骨架里必须先写「我的判断」,素材给判断作证,不写成资料汇编。
27
- - **事实不动**:改稿只改表达,不改数字、引语和确定性;每处改动都说得出依据。
23
+ - **看过再借鉴**:实际阅读参考作品和可见样张,迁移角度、组织、节奏与设计关系。
24
+ - **按需探索**:方向未定时试几种真的不同的写法;明确要一稿就交完成稿,不固定多稿与审批回合。
25
+ - **偏好是选项**:口吻、长度、emoji、开头结尾和视觉风格跟任务与作者走,模板可以拆、混合或不用。
26
+ - **事实边界清楚**:正文保留必要归因、近似值和不确定性;隐私、授权、文件恢复与输出完整性仍明确核对。
27
+ - **工具帮助判断**:lint 提示回到语境,词面分数不作定稿门槛;真实质量通过作者或读者使用验证。
28
+
29
+ 完整方法与同素材样张见 [创作实践](./shared/references/creative-practice.md),整改范围与验证见 [审查报告](./docs/creative-skills-audit.md)。
28
30
 
29
31
  ## 能写什么
30
32
 
31
- | 类别 | 技能 | 一句话 | 你可以这样说 |
33
+ | 类别 | 技能 | 用途 | 你可以这样说 |
32
34
  |---|---|---|---|
33
- | 段子 | [`topmind-viral-posts`](./topmind-viral-posts/) | 一句一行、零 emoji 的 X 短帖,14 种写法 | 「来条段子」「不懂就问」「写个群聊体」 |
35
+ | 段子 | [`topmind-viral-posts`](./topmind-viral-posts/) | X 段子与互动短帖,14 类参考写法 | 「来条段子」「不懂就问」「写个群聊体」 |
34
36
  | 短文 | [`topmind-briefs`](./topmind-briefs/) | 一件事讲完就停:快讯、预告、新品、羊毛、榜单、论文、实测 | 「发个快讯」「来篇短的」「写条预告」 |
35
37
  | 长文 · X | [`topmind-x-article`](./topmind-x-article/) | X Article:单源 Markdown → 一键复制 HTML + 图文预览 | 「写 X 长文」「出一键复制版」 |
36
38
  | 长文 · 公众号 | [`topmind-wechat-post`](./topmind-wechat-post/) | 公众号长文:质量三关、图片内嵌排版、发布清单 | 「写公众号」「公众号排版」 |
@@ -39,13 +41,13 @@ npx @topmindspace/topmind-writing-skills list # 看全
39
41
  | 封面 | [`topmind-cover`](./topmind-cover/) | X 和公众号封面:22 种风格、标题逐字核对 | 「做个封面」「头图」 |
40
42
  | 长图 | [`topmind-poster`](./topmind-poster/) | HTML → 高清长图 / 海报 / 信息图,文字数字逐字正确 | 「出张长图」「做个榜单图」 |
41
43
 
42
- > **短文** = X 纯文本帖,1000 字以内都行;**长文** = X Article 或公众号长文;**段子** = 一句一行、行间空一行的短帖。
44
+ **短文** = X 纯文本帖,1000 字以内都行;**长文** = X Article 或公众号长文;**段子** = 以观察、反差或幽默推进的短帖,排版按节奏选择。
43
45
 
44
46
  ## 段子:14 种写法
45
47
 
46
48
  先想清楚**想让哪种人来评论**,再挑写法:
47
49
 
48
- | 写法 | 一句话 | 典型开头 | 想要的评论 |
50
+ | 写法 | 特点 | 典型开头 | 想要的评论 |
49
51
  |---|---|---|---|
50
52
  | A1 不懂就问 | 装傻式真疑问 | 难道没人…吗? | 懂行的人来解释 |
51
53
  | A2 扒料求证 | 线索 + 上次结果 + 猜测 | XX 要上新了?! | 补线索、猜结果 |
@@ -72,13 +74,13 @@ npx @topmindspace/topmind-writing-skills list # 看全
72
74
  | 快讯(晚到) | 换角度:实测、算账、求证 | 「...」 |
73
75
  | 预告 / 传闻 | 「要来了?!」,动词照口径 | 「?!」 |
74
76
  | 新品 / 工具 | 真疑问或一句真心推荐 | 「...」 |
75
- | 羊毛 / 优惠 | 一句话说能马上拿到什么 | 不收 |
77
+ | 羊毛 / 优惠 | 直说能马上拿到什么 | 不收 |
76
78
  | 榜单 / 数据 | 谁第一、领先多少 | 不收 |
77
79
  | 论文 | 一句结论 | 不收 |
78
80
  | 实测 | 结果一句(翻车、快、贵) | 自嘲或一个真问题 |
79
81
  | 观点一句话 | 一句内行的轻判断 | 判断本身 |
80
82
 
81
- 首发窗口以分钟计,晚了就换角度;预告和正式发布分开写。细则见 [topmind-briefs](./topmind-briefs/SKILL.md)。
83
+ 以下是方向示例,不限定标点或收尾;时效已过时可补新角度,预告与发布保留状态差别。细则见 [topmind-briefs](./topmind-briefs/SKILL.md)。
82
84
 
83
85
  ## 看看效果
84
86
 
@@ -130,7 +132,7 @@ Nova:我们也上线了,价格动了
130
132
  单任务成本两毛钱出头...
131
133
  ```
132
134
 
133
- 链接、官方评测图、「分数是厂商自测」这类口径提醒,都另发给作者,不进正文。
135
+ 正文保留“分数是厂商自测”等影响理解的归因与限定;详细来源、原图可另列,有用的链接也可随文。
134
136
 
135
137
  **去 AI 味 · 改前 → 改后**
136
138
 
@@ -158,21 +160,21 @@ Nova:我们也上线了,价格动了
158
160
 
159
161
  更多示例:[段子](./topmind-viral-posts/examples/) · [短文](./topmind-briefs/examples/) · [格式化](./topmind-format/examples/) · [改稿](./topmind-revise/examples/) · [X 长文](./topmind-x-article/examples/) · [公众号](./topmind-wechat-post/examples/) · [长图](./topmind-poster/examples/) · [封面](./topmind-cover/assets/examples/)
160
162
 
161
- ## 长文:先有判断,再有素材
163
+ ## 长文:结构按内容选择
162
164
 
163
165
  一篇长文一个文件夹,`article_scaffold.py` 一条命令建好:
164
166
 
165
167
  ```text
166
168
  <文章名>/
167
169
  ├─ <文章名>.md 唯一源稿
168
- ├─ 骨架.md 主要信息、读者、我的判断(必填)、每节要点 / 形式 / 图表计划
170
+ ├─ 骨架.md 主要信息、读者、主线与依据(按需)、每节要点 / 形式 / 图表计划
169
171
  ├─ 素材来源.md 每张图、每个数字的出处(不发布)
170
172
  ├─ images/ cover/ raw/自制图源/
171
173
  └─ out/ X 长文 HTML、公众号 HTML、预览.png(随时可重建)
172
174
  ```
173
175
 
174
- - **我的判断**:3–5 条,每条写依据和读者会怎么反驳;一节很长却没有判断,脚本会提示「素材罗列」。
175
- - **自制图**:方法论、架构、对比类文章至少一张,把自己的判断画出来。
176
+ - **主线**:观点稿可列判断与反例,故事可列场景,教程可列任务与步骤,不凑固定数量。
177
+ - **配图**:原图、自制结构图和纯文字按理解价值选择,不设图片配额。
176
178
  - **图文预览**:交付前生成 `out/预览.png` 先看一遍;X 粘贴不了的表格可以自动转成图。
177
179
 
178
180
  ## 写法规则:原则优先
@@ -183,13 +185,15 @@ Nova:我们也上线了,价格动了
183
185
  |---|---|---|
184
186
  | 写作原则 | `social-writing-principles.md` | 先想清楚传达什么、结论先行、每句有新信息、形式跟内容走、原图优先、站在读者那边 |
185
187
  | 信息设计 | `information-design.md` | 先写骨架、内容 → 形式(列表 / 表格 / 图 / 段落)、篇幅和密度 |
186
- | 措辞口吻 | `core-voice.md` | 十条措辞原则,V01–V40 是它们在标题、开头、数字、问句、回复、段子里的例子 |
188
+ | 措辞口吻 | `core-voice.md` | V01–V40 是标题、开头、数字、问句、回复、段子的场景选项 |
187
189
  | 审稿 | `de-ai-rules.md` + `topmind-revise` | 去 AI 味(长文模式 + 社交短帖 S01–S10)、改写边界、保真审计 |
188
190
 
189
- 人设是**还在学习的普通人**:讲自己看到、试过的,不站讲台,不确定就直说。
191
+ 声音跟当前任务、作者样本、读者与体裁走,不把所有作者固定成同一种人设。
190
192
 
191
193
  ### 脚本只提示,人来判断
192
194
 
195
+ 在对应技能目录里运行(如 `topmind-briefs/`、`topmind-revise/`):
196
+
193
197
  ```bash
194
198
  python3 scripts/lint_x_post.py X短文.txt --kind news # 快讯
195
199
  python3 scripts/lint_x_post.py 段子.txt --duanzi # 段子
@@ -198,9 +202,9 @@ python3 scripts/de_ai_lint.py 文章.md --genre long # 长文
198
202
 
199
203
  | 级别 | 含义 | 要求 |
200
204
  |---|---|---|
201
- | E 错误 | Markdown 残留;正文里有 URL / 来源行 / 配图说明 | 必须清零 |
202
- | W 警告 | AI 套话、套路互动尾巴、类比腔、英文模板句、标点腔、回复过长…… | 每条给结论:改,或写明保留理由 |
203
- | H 提示 / I1–I9 | 语境词、首行偏长、口径词进了正文、播报模板;信息设计(长段、可转列表、素材罗列……) | 只供判断,不进 `--strict` |
205
+ | E 格式问题 | 误带标记、图片占位;链接分离只在 `--separate-links` 启用 | 核对实际格式;特殊代码和引用按语义处理 |
206
+ | W 编辑提示 | 句式、长度、标点、文字列表、正文链接等现象 | 按语境取用,可保留,无需逐条报告 |
207
+ | H 提示 / I1–I9 | 语境词、首行偏长、归因与限定、播报模板;信息设计(长段、可转列表、素材罗列……) | 只供判断,不进 `--strict` |
204
208
 
205
209
  作者有往期帖子数据时,`post_type_report.py` 可以统计自己哪些开头、收尾、类型表现更好,生成一份习惯摘要给改稿用;数据只留在作者本机。
206
210
 
@@ -250,7 +254,7 @@ topmind-writing-skills/
250
254
  - push main 后 GitHub 立即可见;打 tag `vX.Y.Z` 自动出 Release 并发布 npm。每个技能的版本号写在它自己的 `SKILL.md` 和 [CHANGELOG](./CHANGELOG.md) 里。
251
255
  - 详见 [docs/PUBLISHING.md](./docs/PUBLISHING.md) · [docs/ci.md](./docs/ci.md)。
252
256
 
253
- > 正式商务演示技能已独立成仓库:[`topmind-presentation`](https://github.com/topmindspace/topmind-presentation)。
257
+ 正式商务演示用 [`topmind-presentation`](https://github.com/topmindspace/topmind-presentation),单独安装。
254
258
 
255
259
  </details>
256
260
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topmindspace/topmind-writing-skills",
3
- "version": "0.8.48",
3
+ "version": "0.8.50",
4
4
  "description": "TopMindSpace 写作技能合集 — 通过 npm / npx 安装技能(公众号长文、X 长文、干货短文、X 引流短帖、改稿与质检、封面图、长图海报)。只出稿与发布包,不代发。",
5
5
  "license": "MIT",
6
6
  "author": "TopMindspace",
@@ -1,72 +1,29 @@
1
- # topmind-briefs · Briefs (X + WeChat)
1
+ # topmind-briefs
2
2
 
3
3
  English | [中文](./README.md)
4
4
 
5
- **One thing, then stop.** News, previews, launches, deals, rankings, papers, hands-on results and one-line takes: nine content types, each with its own opening and ending. The X version is one block of plain text you can paste straight in, facts and highlight at a glance; links, original images and caliber notes are delivered separately. The WeChat version is 300–800 characters of Markdown. Writes in Chinese by default.
5
+ Write information-focused short posts for X and WeChat: releases, previews, tools, rankings, papers, hands-on results and opinions. Deliver copy for the requested platforms, keeping necessary attribution and uncertainty in the text. Chinese is the default language; current user instructions and author samples take priority. See [SKILL.md](./SKILL.md) for the capability, workflow and tools.
6
6
 
7
- - Version: **v0.2.27**
7
+ ## Install
8
8
 
9
9
  ```bash
10
10
  npx @topmindspace/topmind-writing-skills install topmind-briefs
11
11
  ```
12
12
 
13
- Say: "发个快讯", "来篇短的", "写条预告", "有个羊毛帮我发一条", "这个榜单换第一了", "公众号和 X 各一版".
13
+ ## How it works
14
14
 
15
- ## Nine content types
15
+ Read actual references and relevant [specimens](./references/creative-practice.md). Explore distinct directions when that helps the task; deliver one complete result when the request is clear. Voice, length, emoji, structure and visual styles are choices rather than universal gates. Facts, attribution, privacy, authorization and usable output still matter.
16
16
 
17
- | Type | For | Opening | Ending |
18
- |---|---|---|---|
19
- | News (first) | Just announced | What + the sharpest number, vs a rival readers know | "..." or none |
20
- | News (late) | Window has passed | New angle: hands-on, math, verification | "..." |
21
- | Preview / rumor | Teasers, gray rollouts, docs | "Coming?!", verbs match the caliber | "?!" |
22
- | Launch / tool | Something useful and new | Genuine question or a sincere pick | "..." |
23
- | Deal | Limited-time, free | What you can grab now | none |
24
- | Ranking / data | Rank changes, benchmarks | Who's first, by how much | none |
25
- | Paper | New method or result | One-line conclusion | none |
26
- | Hands-on | You ran it | The result (broke, fast, pricey) | Self-roast or a real question |
27
- | One-line take | Persona-building know-how | An insider's light judgment | The judgment |
17
+ ## Tools
28
18
 
29
- ## Example (original, fictional)
30
-
31
- ```text
32
- 某模型低调上线新版:编程评测 31 → 42,价格不变
33
-
34
- 网页、App、接口已全量切换,权重开源。
35
-
36
- 几项关键提升:
37
-
38
- 1)编程评测:31 → 42
39
- 2)推理评测:37 → 43
40
- 3)智能体评测:74 → 77,比某知名闭源模型高 3 分
41
-
42
- 单任务成本两毛钱出头...
43
- ```
44
-
45
- Delivered separately: the source line, `[图1]` the official chart, and the caliber note "scores are vendor-reported". More in [references/examples.md](./references/examples.md) and [`examples/`](./examples/).
46
-
47
- ## Key practices
48
-
49
- - **Glanceable**: the X body keeps facts, key numbers and the highlight; verification notes go into the caliber note.
50
- - **Match the caliber**: a preview is not a launch; a gray rollout is not an announcement.
51
- - **Timing**: the first-post window is minutes; if late, change the angle.
52
- - **One event, several posts**: performance in one, price in another.
53
- - **Images** only when the image is the information; no original → ask first.
54
- - **Hashtags**: none by default, at most 2.
55
-
56
- ## Delivery and checks
57
-
58
- Order: body (plain text) → links (source|time|URL) → images (1–2 originals) → caliber note → (optional) WeChat Markdown.
19
+ Run from this skill directory, using actual input paths:
59
20
 
60
21
  ```bash
61
- python3 scripts/lint_x_post.py X短文.txt --kind news
62
- python3 scripts/check_article.py <brief-folder>/
63
- python3 scripts/format_text.py X短文.txt --mode short --out X短文.txt
22
+ python3 scripts/lint_x_post.py X短文.txt
64
23
  ```
65
24
 
66
- HTML only on request: `md2x-html.py` (X one-click copy), `md2wechat.py --embed-images --no-toc --preview` (WeChat layout + preview image).
67
-
68
- ## When not to use
25
+ Style diagnostics are contextual suggestions, not a quality score. Platform conversion and directory requirements apply when using the corresponding tools. Check actual previews and disclose unverified steps.
69
26
 
70
- Duanzi → `topmind-viral-posts`; layout only → `topmind-format`; long-form → `topmind-x-article` / `topmind-wechat-post`; long images → `topmind-poster`; covers → `topmind-cover`; posting → `topmind-x` (with your confirmation).
27
+ Formatting preserves links and emoji by default. In skills that include `format_text.py`, `--separate-links` and `--strip-emoji` are explicit optional conversions. X lint only enforces link separation when `--separate-links` is requested.
71
28
 
72
- All samples are self-written; no third-party text is included.
29
+ Deliver the requested text or artifacts; these skills do not publish externally. MIT License. See the [collection](https://github.com/topmindspace/topmind-writing-skills) for installation options and maintenance.