@topmindspace/topmind-writing-skills 0.8.27 → 0.8.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,23 @@
1
+ ## [0.8.28] - 2026-10-11
2
+
3
+ > 根包 0.8.27 → **0.8.28**(patch);技能版本:topmind-wechat-post 0.3.3 → 0.3.4、topmind-briefs 0.2.10 → 0.2.11。
4
+ > 本次为本地既有修复的补发——该修复此前只存在于本地工作副本,远端 `main` 无对应提交。
5
+
6
+ > - 修 bug:`topmind-wechat-post/scripts/lint-wechat.py` 的**盘古之白误报**。检测侧直接对原文做 `PANGU_A/B.search()`,
7
+ > 而修复侧 `pangu_line()` 会先屏蔽行内代码 / 链接目标 / 裸 URL —— 两套规则不一致,导致图片链接目标里的中英混排片段
8
+ > 被算作缺空格,而 `--fix` 保护的正是这一段、根本不会改它,告警永远清不掉。新增 `pangu_scan()`,
9
+ > 让检测与修复共用同一套屏蔽规则
10
+ > - 修文案:`md2wechat.py` 的 `--author` 帮助文本仍写「留空写 {{作者名}} 占位」,
11
+ > 而函数自 2026-10-01 起已不再渲染自我介绍行,提示与实际行为对不上,改为「留空则不输出署名行」。
12
+ > 同步 `shared/` 与 `topmind-briefs/` 两份副本
13
+ > - 补文档:`topmind-wechat-post/SKILL.md` 的溯源审计段补**适用范围**——`audit-provenance.py` 按段落比对,
14
+ > 只在「源稿与派生稿同构」时有效;派生稿把表格改写成句子、数据清单改写成图时相似度会整体塌到阈值下,
15
+ > 此时改用**数字级回源核对**
16
+ > - 本地验证:`run_skill_gates.js check` / `audit` / `versions`、`check:shared`(37 份副本逐字节一致)、
17
+ > `check:evals`、`check:pack`(117 文件)、安装器守卫与 CLI 测试共 9 项全部 `exit 0`;
18
+ > `ci_skill_gates.sh` 全量门禁末行 `all skills green`;隐私扫描 144 文件 PASS。
19
+ > 图片链接目标不再误报「盘古之白」,真实缺空格(`这是API接口`)仍正常报出
20
+
1
21
  ## [0.8.27] - 2026-10-10
2
22
 
3
23
  > 根包 0.8.26 → **0.8.27**(patch);技能版本:topmind-briefs 0.2.9 → 0.2.10、topmind-cover 0.4.3 → 0.4.4、
package/README.en.md CHANGED
@@ -73,14 +73,14 @@ npx @topmindspace/topmind-writing-skills install topmind-poster
73
73
 
74
74
  | Skill | Version | What it does |
75
75
  |-------|---------|--------------|
76
- | [`topmind-wechat-post`](./topmind-wechat-post/) | **0.3.3** | WeChat article lifecycle: package, review, 3 quality gates, inline typography & publish checklist |
76
+ | [`topmind-wechat-post`](./topmind-wechat-post/) | **0.3.4** | WeChat article lifecycle: package, review, 3 quality gates, inline typography & publish checklist |
77
77
  | [`topmind-x-article`](./topmind-x-article/) | **0.4.10** | X long-form one-click publish: Markdown → one-click-copy HTML (images/prompt copy, click-to-zoom images) / plain-text fallback + cover + checklist |
78
78
  | [`topmind-cover`](./topmind-cover/) | **0.4.4** | Cover art for X / WeChat (X master 1500×600 / 5:2): striking, theme-focused; 22-style cover style library + 26 example images (incl. 3 alt samples) + 1 style overview |
79
- | [`topmind-briefs`](./topmind-briefs/) | **0.2.10** | Short-form briefs (WeChat + X): one topic, one chart; data rankings / paper one-liners / product alerts / mechanism explainers; one-click-copy HTML for both |
79
+ | [`topmind-briefs`](./topmind-briefs/) | **0.2.11** | Short-form briefs (WeChat + X): one topic, one chart; data rankings / paper one-liners / product alerts / mechanism explainers; one-click-copy HTML for both |
80
80
  | [`topmind-viral-posts`](./topmind-viral-posts/) | **0.3.4** | X viral short posts: 14 template types (incl. trending-news type); prefer original images (official/third-party), generate only when none exists |
81
81
  | [`topmind-poster`](./topmind-poster/) | **0.1.2** | HTML+CSS → high-res long image / poster / infographic PNG: headless Chrome 2× screenshot + auto-trim; "one image per section" batch workflow (generator + renderer) |
82
82
 
83
- Installer [`@topmindspace/topmind-writing-skills`](https://www.npmjs.com/package/@topmindspace/topmind-writing-skills) is **0.8.27** (whole-repo same-tag releases).
83
+ Installer [`@topmindspace/topmind-writing-skills`](https://www.npmjs.com/package/@topmindspace/topmind-writing-skills) is **0.8.28** (whole-repo same-tag releases).
84
84
 
85
85
  > SKILL.md frontmatter uses only Agent Skills spec keys at the top level (`name` / `description` / `license` / `metadata`); version, `action_category`, `triggers` and other custom keys live under `metadata` as strings, so `skills-ref validate` passes. Shared scripts and `writing-principles.md` have a single source in `shared/`; skill folders keep byte-identical copies (CI checks with `node scripts/sync_shared.js --check`). The npm package ships only `overview.png` from the cover examples; the per-style samples and `references/cover-study/` images stay on GitHub / in the Release zip.
86
86
 
package/README.md CHANGED
@@ -81,14 +81,14 @@ npx @topmindspace/topmind-writing-skills install topmind-poster
81
81
 
82
82
  | 技能 | 版本 | 做什么 |
83
83
  |------|------|--------|
84
- | [`topmind-wechat-post`](./topmind-wechat-post/) | **0.3.3** | 公众号文章全生命周期:交付包、审校改写、质量三关、微信内联排版与发布清单 |
84
+ | [`topmind-wechat-post`](./topmind-wechat-post/) | **0.3.4** | 公众号文章全生命周期:交付包、审校改写、质量三关、微信内联排版与发布清单 |
85
85
  | [`topmind-x-article`](./topmind-x-article/) | **0.4.10** | X 长文一键发布:Markdown 原稿 → 一键复制 HTML(含配图/提示词复制、图片点击放大)/ 纯文本兜底 + 封面图 + 发布清单 |
86
86
  | [`topmind-cover`](./topmind-cover/) | **0.4.4** | 文章封面配图(X / 公众号共用,X 主尺寸 1500×600 / 5:2):震撼醒目主题突出;22 种封面风格库 + 26 张示例图(含 3 张 alt 样张) + 1 张风格总览图 |
87
- | [`topmind-briefs`](./topmind-briefs/) | **0.2.10** | 干货短文(公众号 + X 双平台):一件事讲透,数据榜单/论文解读/新品速递;双版一键复制 HTML |
87
+ | [`topmind-briefs`](./topmind-briefs/) | **0.2.11** | 干货短文(公众号 + X 双平台):一件事讲透,数据榜单/论文解读/新品速递;双版一键复制 HTML |
88
88
  | [`topmind-viral-posts`](./topmind-viral-posts/) | **0.3.4** | X 引流段子/爆款短篇:14 大类型模板(含热点资讯型);配图原图优先(官方/第三方),无原图才生图(清新优雅/MD3商务风) |
89
89
  | [`topmind-poster`](./topmind-poster/) | **0.1.2** | HTML+CSS → 高清长图 / 海报 / 信息图 PNG:无头 Chrome 2× 截图 + 自动裁白;「一段一图」分段图批量出图(生成器 + 渲染器) |
90
90
 
91
- 安装器 [`@topmindspace/topmind-writing-skills`](https://www.npmjs.com/package/@topmindspace/topmind-writing-skills) 为 **0.8.27**(整仓同 tag 发版)。
91
+ 安装器 [`@topmindspace/topmind-writing-skills`](https://www.npmjs.com/package/@topmindspace/topmind-writing-skills) 为 **0.8.28**(整仓同 tag 发版)。
92
92
 
93
93
  > SKILL.md frontmatter 顶层只用 Agent Skills 规范字段(`name` / `description` / `license` / `metadata`),版本、`action_category`、`triggers` 等自定义字段放在 `metadata` 下(字符串值),能通过官方校验器 `skills-ref validate`。
94
94
  >
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topmindspace/topmind-writing-skills",
3
- "version": "0.8.27",
3
+ "version": "0.8.28",
4
4
  "description": "TopMindSpace 写作技能合集 — 通过 npm / npx 安装技能(公众号长文、X 长文、干货短文、X 引流短帖、封面图、长图海报)。只出稿与发布包,不代发。",
5
5
  "license": "MIT",
6
6
  "author": "TopMindspace",
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.11 (2026-10-11)
4
+
5
+ - 修文案:交付脚本 `md2wechat.py` 的 `--author` 帮助文本改为「留空则不输出署名行」,
6
+ 与 2026-10-01 起的实际行为对齐(原文案仍写「留空写 {{作者名}} 占位」,提示与实现不符)
7
+
3
8
  ## 0.2.10 (2026-10-10)
4
9
 
5
10
  - 优化:`examples.md` 的 4 个示例与开场句式模板改为原创内容,通用写作原则中的示例同步整理
@@ -6,7 +6,7 @@ One topic, one chart, then stop. Data-driven short posts: rankings, paper TL;DRs
6
6
  product launches — one X post or short thread, ~300–800 Chinese characters on WeChat,
7
7
  one-click-copy HTML for both.
8
8
 
9
- - Version: **v0.2.10** (ships with `@topmindspace/topmind-writing-skills@0.8.27`)
9
+ - Version: **v0.2.11** (ships with `@topmindspace/topmind-writing-skills@0.8.28`)
10
10
 
11
11
  ## Install
12
12
 
@@ -5,7 +5,7 @@
5
5
  一件事,一张图,讲完就停。干货向短文:数据榜单、论文一句话解读、新品速递——
6
6
  X 一帖或短 thread,公众号约 300–800 字,双版一键复制 HTML。
7
7
 
8
- - 版本:**v0.2.10**(随 `@topmindspace/topmind-writing-skills@0.8.27` 发布)
8
+ - 版本:**v0.2.11**(随 `@topmindspace/topmind-writing-skills@0.8.28` 发布)
9
9
 
10
10
  ## 安装
11
11
 
@@ -3,12 +3,12 @@ name: topmind-briefs
3
3
  description: "干货短文发布:公众号 + X 双平台,一件事讲透。X 一帖或短 thread,公众号约 300–800 字;1 张核心图(榜单/基准/截图/表格),不废话,只交付不代发。Use when 写短文、发快讯、数据榜单、论文一句话解读、新品速递、来篇短的、短平快、brief、快讯;信息密度型(数据、榜单、发布)走本技能。Do NOT use for X 长文(→ topmind-x-article)、公众号长文(→ topmind-wechat-post)、引流互动型短帖与段子(→ topmind-viral-posts)、把稿子发出去(→ topmind-x,须用户确认)。"
4
4
  license: MIT
5
5
  metadata:
6
- version: "0.2.10"
6
+ version: "0.2.11"
7
7
  action_category: "write"
8
8
  triggers: "写短文, 发快讯, 干货短文, 一句话解读, 数据榜单, 新品速递, brief, 快讯, 来篇短的, 短平快, 发个快讯"
9
9
  author: "TopMindSpace"
10
10
  homepage: "https://github.com/topmindspace/topmind-writing-skills#readme"
11
- updated: "2026-10-08"
11
+ updated: "2026-10-11"
12
12
  ---
13
13
 
14
14
  # topmind-briefs · 干货短文(公众号 + X)
@@ -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.10"
12
+ "version": "0.2.11"
13
13
  }
@@ -1693,7 +1693,8 @@ def main():
1693
1693
  help="不自动插入前言导读(默认 H2 >=4 个,或 H2 >=3 且正文 >=2000 中文字时插入)")
1694
1694
  ap.add_argument("--signature", default="auto", choices=["auto", "on", "off"],
1695
1695
  help="尾部签名区:auto=稿件末尾已有签名则不重复生成(默认)")
1696
- ap.add_argument("--author", default="", help="签名区署名;留空写 {{作者名}} 占位")
1696
+ ap.add_argument("--author", default="",
1697
+ help="签名区署名;留空则不输出署名行(不再写 {{作者名}} 占位)")
1697
1698
  ap.add_argument("--author-bio", default="", help="签名区一句话简介")
1698
1699
  args = ap.parse_args()
1699
1700
 
@@ -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.4** (ships with `@topmindspace/topmind-writing-skills@0.8.27`)
7
+ - Version: **v0.4.4** (ships with `@topmindspace/topmind-writing-skills@0.8.28`)
8
8
 
9
9
  ## Style gallery
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  为 X 长文和公众号文章生成封面图的可复用技能。目标:**震撼、醒目、主题突出**。
6
6
 
7
- - 版本:**v0.4.4**(随 `@topmindspace/topmind-writing-skills@0.8.27` 发布)
7
+ - 版本:**v0.4.4**(随 `@topmindspace/topmind-writing-skills@0.8.28` 发布)
8
8
 
9
9
  ## 风格样张
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Rankings, infographics, monthly-report long images, posters — plus the "one image per section" workflow for splitting a long article into N shareable images. Text is 100% controllable, diffable, and iterable.
6
6
 
7
- - Version: **v0.1.2** (ships with `@topmindspace/topmind-writing-skills@0.8.27`)
7
+ - Version: **v0.1.2** (ships with `@topmindspace/topmind-writing-skills@0.8.28`)
8
8
 
9
9
  ## Install
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  榜单、信息图、月报长图、海报,以及「一段一图」的分段图批量出图。文本 100% 可控、可 diff、可迭代。
6
6
 
7
- - 版本:**v0.1.2**(随 `@topmindspace/topmind-writing-skills@0.8.27` 发布)
7
+ - 版本:**v0.1.2**(随 `@topmindspace/topmind-writing-skills@0.8.28` 发布)
8
8
 
9
9
  ## 安装
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Short, real, hooked — read in 3 seconds, impossible not to like/comment/follow. Templates summarised from common high-engagement writing patterns in the Chinese X community (all examples are original, written for this skill), each post paired with 1 image.
6
6
 
7
- - Version: **v0.3.4** (ships with `@topmindspace/topmind-writing-skills@0.8.27`)
7
+ - Version: **v0.3.4** (ships with `@topmindspace/topmind-writing-skills@0.8.28`)
8
8
 
9
9
  ## Install
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  短、真、钩子——3 秒看完,忍不住点赞/评论/关注。基于对 X 中文区常见高互动写法的归纳,提供多类型模板(示例均为自编),每帖配 1 张图。
6
6
 
7
- - 版本:**v0.3.4**(随 `@topmindspace/topmind-writing-skills@0.8.27` 发布)
7
+ - 版本:**v0.3.4**(随 `@topmindspace/topmind-writing-skills@0.8.28` 发布)
8
8
 
9
9
  ## 安装
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Full lifecycle for WeChat articles: delivery package, review & rewrite, three quality gates, status sync, WeChat inline typography, and publish checklist.
6
6
 
7
- - Version: **v0.3.3** (ships with `@topmindspace/topmind-writing-skills@0.8.27`)
7
+ - Version: **v0.3.4** (ships with `@topmindspace/topmind-writing-skills@0.8.28`)
8
8
 
9
9
  ## Install
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  公众号文章全生命周期:交付包、审校改写、质量三关、状态同步、微信内联排版与发布清单。
6
6
 
7
- - 版本:**v0.3.3**(随 `@topmindspace/topmind-writing-skills@0.8.27` 发布)
7
+ - 版本:**v0.3.4**(随 `@topmindspace/topmind-writing-skills@0.8.28` 发布)
8
8
 
9
9
  ## 安装
10
10
 
@@ -3,12 +3,12 @@ name: topmind-wechat-post
3
3
  description: "管一篇公众号文章从选题/底稿到发布清单的完整生命周期:交付包搭建、审校改写、质量三关(事实/逻辑/去AI味,含改稿保真溯源审计)、状态同步、微信内联排版与发布清单。只出 HTML 与清单,不代发。Use when 写公众号文章、公众号排版、微信排版、公众号定稿、发公众号、公众号交付包、公众号发布清单、wechat、mp format。Do NOT use for 只改错别字、小红书/知乎、纯网页发布、通用长文润色(→ topmind-write)、X 长文(→ topmind-x-article)、封面(→ topmind-cover)。"
4
4
  license: MIT
5
5
  metadata:
6
- version: "0.3.3"
6
+ version: "0.3.4"
7
7
  action_category: "write"
8
8
  triggers: "公众号, 微信排版, 公众号排版, 公众号稿, 排版这篇文章, 定稿, 发公众号, 公众号交付, wechat, mp format, 写公众号文章, 公众号排版定稿, 公众号发布清单"
9
9
  author: "TopMindSpace"
10
10
  homepage: "https://github.com/topmindspace/topmind-writing-skills#readme"
11
- updated: "2026-10-08"
11
+ updated: "2026-10-11"
12
12
  ---
13
13
 
14
14
  # topmind-wechat-post · 公众号创作技能
@@ -146,6 +146,8 @@ python3 scripts/sync-status.py --set 定稿 <包> --apply
146
146
 
147
147
  正向查「本稿有、源稿找不到」(扩写藏在这里),反向查「源稿有、本稿落下」。**退出码 1 不是失败,是「有待判定项」**:每一项要么归入已声明的修正/增补,要么就是不该有的改动;逐条在包内 README 声明后即收口。源稿里后加的块(勘误等)用 `--skip '^>\s*\[!'` 排除。细节见 `references/workflow.md`。
148
148
 
149
+ ⚠️ **适用范围**:本脚本按**段落**比对,只在「源稿与派生稿同构」时有效(如 X 长文 → 公众号稿)。若派生稿把**表格改写成句子、数据清单改写成图**,相似度会整体塌到阈值下、失去判别力(实测一篇多源综述:正向 39/39 段全部判为待判定)。此时改用**数字级回源核对**——把正文每个承重数字逐个对回底本,再把结果写进包内 README 替代逐段判定。
150
+
149
151
  ### 关 2 · 逻辑
150
152
 
151
153
  - 单边结论旁配反方证据
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "topmind-wechat-post",
3
- "version": "0.3.3",
3
+ "version": "0.3.4",
4
4
  "private": true,
5
5
  "description": "公众号文章全生命周期:交付包、审校改写、质量三关、状态同步、微信内联排版与发布清单。",
6
6
  "license": "MIT",
@@ -106,6 +106,19 @@ def pangu_line(line):
106
106
  return line
107
107
 
108
108
 
109
+ def pangu_scan(line):
110
+ """盘古之白检测:**必须先屏蔽与 pangu_line 相同的保护段**。
111
+
112
+ 否则图片/链接目标里的中文会被误报:文件名出现 `Argon官方` 这类中英混排片段时,
113
+ 会被当成缺空格命中 PANGU_B,而 --fix 保护的正是这一段、根本不会改它 ——
114
+ 告警永远清不掉,用户会以为正文不合规。检测与修复必须用同一套屏蔽规则。
115
+ """
116
+ masked = line
117
+ for pattern, _ in PROTECT:
118
+ masked = pattern.sub("\x00", masked)
119
+ return bool(PANGU_A.search(masked) or PANGU_B.search(masked))
120
+
121
+
109
122
  def fix_cjk(path, dry_run=False):
110
123
  with open(path, encoding="utf-8") as fh:
111
124
  lines = fh.read().split("\n")
@@ -258,7 +271,7 @@ def lint(path, max_para, max_item, asset_root=None):
258
271
  strong_chars += sum(len(re.findall(r"[*\u4e00-\u9fffA-Za-z0-9]", s))
259
272
  for s in bold + marked)
260
273
 
261
- if PANGU_A.search(stripped) or PANGU_B.search(stripped):
274
+ if pangu_scan(stripped):
262
275
  cjk_missing += 1
263
276
 
264
277
  if not stripped:
@@ -1693,7 +1693,8 @@ def main():
1693
1693
  help="不自动插入前言导读(默认 H2 >=4 个,或 H2 >=3 且正文 >=2000 中文字时插入)")
1694
1694
  ap.add_argument("--signature", default="auto", choices=["auto", "on", "off"],
1695
1695
  help="尾部签名区:auto=稿件末尾已有签名则不重复生成(默认)")
1696
- ap.add_argument("--author", default="", help="签名区署名;留空写 {{作者名}} 占位")
1696
+ ap.add_argument("--author", default="",
1697
+ help="签名区署名;留空则不输出署名行(不再写 {{作者名}} 占位)")
1697
1698
  ap.add_argument("--author-bio", default="", help="签名区一句话简介")
1698
1699
  args = ap.parse_args()
1699
1700
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  Turn a Markdown draft into a "copy → paste → publish" X long-form (Article) package.
6
6
 
7
- - Version: **v0.4.10** (ships with `@topmindspace/topmind-writing-skills@0.8.27`)
7
+ - Version: **v0.4.10** (ships with `@topmindspace/topmind-writing-skills@0.8.28`)
8
8
 
9
9
  ## Install
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  把 Markdown 原稿变成"复制 → 粘贴 → 发"的 X 长文(Article)发布包。
6
6
 
7
- - 版本:**v0.4.10**(随 `@topmindspace/topmind-writing-skills@0.8.27` 发布)
7
+ - 版本:**v0.4.10**(随 `@topmindspace/topmind-writing-skills@0.8.28` 发布)
8
8
 
9
9
  ## 安装
10
10