@topmindspace/topmind-writing-skills 0.8.46 → 0.8.48
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 +89 -32
- package/README.en.md +163 -158
- package/README.md +170 -151
- package/package.json +1 -1
- package/topmind-briefs/CHANGELOG.md +6 -0
- package/topmind-briefs/README.en.md +50 -40
- package/topmind-briefs/README.md +68 -37
- package/topmind-briefs/SKILL.md +92 -50
- 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 +1 -3
- package/topmind-briefs/examples/01-/351/223/276/346/216/245/344/270/216/351/205/215/345/233/276.txt +3 -0
- package/topmind-briefs/examples/README.md +1 -1
- package/topmind-briefs/package.json +1 -1
- package/topmind-briefs/references/core-voice.md +45 -15
- package/topmind-briefs/references/de-ai-rules.md +31 -3
- package/topmind-briefs/references/emoji-system.md +3 -7
- package/topmind-briefs/references/examples.md +61 -12
- package/topmind-briefs/references/information-design.md +35 -11
- package/topmind-briefs/references/platform-specs.md +27 -6
- package/topmind-briefs/references/revision-workflow.md +2 -2
- package/topmind-briefs/references/x-delivery-contract.md +45 -27
- package/topmind-briefs/references/x-layout-patterns.md +4 -4
- package/topmind-briefs/references/x-post-format.md +5 -5
- package/topmind-briefs/scripts/check_article.py +289 -0
- package/topmind-briefs/scripts/de_ai_lint.py +147 -17
- package/topmind-briefs/scripts/format_text.py +31 -8
- package/topmind-briefs/scripts/info_design_hints.py +13 -4
- package/topmind-briefs/scripts/lint_x_post.py +26 -11
- package/topmind-briefs/scripts/md2wechat.py +97 -6
- package/topmind-briefs/scripts/md2x-html.py +152 -3
- package/topmind-briefs/scripts/post_type_report.py +215 -0
- package/topmind-briefs/scripts/revise_check.py +2 -2
- package/topmind-cover/README.en.md +3 -1
- package/topmind-cover/README.md +4 -2
- package/topmind-cover/SKILL.md +3 -3
- package/topmind-cover/package.json +1 -1
- package/topmind-cover/references/core-voice.md +45 -15
- package/topmind-cover/references/cover-styles.md +14 -14
- package/topmind-cover/references/impact-language.md +2 -2
- package/topmind-cover/references/information-design.md +35 -11
- package/topmind-cover/references/md3-foundation.md +4 -1
- package/topmind-cover/scripts/de_ai_lint.py +147 -17
- package/topmind-cover/scripts/info_design_hints.py +13 -4
- package/topmind-format/README.en.md +30 -22
- package/topmind-format/README.md +43 -21
- package/topmind-format/SKILL.md +31 -10
- package/topmind-format/package.json +1 -1
- package/topmind-format/references/core-voice.md +45 -15
- package/topmind-format/references/de-ai-rules.md +31 -3
- package/topmind-format/references/emoji-system.md +3 -7
- package/topmind-format/references/information-design.md +35 -11
- package/topmind-format/references/x-delivery-contract.md +45 -27
- package/topmind-format/references/x-layout-patterns.md +4 -4
- package/topmind-format/references/x-post-format.md +5 -5
- package/topmind-format/scripts/de_ai_lint.py +147 -17
- package/topmind-format/scripts/format_text.py +31 -8
- package/topmind-format/scripts/info_design_hints.py +13 -4
- package/topmind-format/scripts/lint_x_post.py +26 -11
- package/topmind-format/scripts/negative_tests.py +3 -3
- package/topmind-poster/README.en.md +3 -1
- package/topmind-poster/README.md +3 -1
- package/topmind-poster/SKILL.md +4 -4
- package/topmind-poster/package.json +1 -1
- package/topmind-poster/references/information-design.md +35 -11
- package/topmind-revise/CHANGELOG.md +6 -0
- package/topmind-revise/README.en.md +57 -21
- package/topmind-revise/README.md +50 -25
- package/topmind-revise/SKILL.md +31 -8
- package/topmind-revise/examples/02-/347/237/255/346/226/207-/346/224/271/345/220/216.txt +1 -1
- package/topmind-revise/package.json +1 -1
- package/topmind-revise/references/calibration-drill.md +10 -1
- package/topmind-revise/references/core-voice.md +45 -15
- package/topmind-revise/references/de-ai-rules.md +31 -3
- package/topmind-revise/references/information-design.md +35 -11
- package/topmind-revise/references/revision-workflow.md +2 -2
- package/topmind-revise/scripts/check_article.py +47 -11
- package/topmind-revise/scripts/de_ai_lint.py +147 -17
- package/topmind-revise/scripts/info_design_hints.py +13 -4
- package/topmind-revise/scripts/lint_x_post.py +26 -11
- package/topmind-revise/scripts/post_type_report.py +215 -0
- package/topmind-revise/scripts/revise_check.py +2 -2
- package/topmind-viral-posts/README.en.md +72 -48
- package/topmind-viral-posts/README.md +81 -49
- package/topmind-viral-posts/SKILL.md +123 -181
- package/topmind-viral-posts/examples/01-A1-/344/270/215/346/207/202/345/260/261/351/227/256.txt +5 -0
- package/topmind-viral-posts/examples/02-A4-/345/215/247/346/247/275/344/275/223.txt +7 -0
- package/topmind-viral-posts/examples/03-A5-/345/206/267/347/237/245/350/257/206.txt +7 -0
- package/topmind-viral-posts/examples/{04-/350/257/235/351/242/230/346/256/265/345/255/220-/346/225/264/347/220/206/344/273/223/345/272/223.txt → 04-A11-/344/272/247/345/223/201/345/217/215/350/275/254.txt} +0 -2
- package/topmind-viral-posts/examples/05-A6-/347/276/244/350/201/212/344/275/223.txt +9 -0
- package/topmind-viral-posts/examples/06-A7-/350/277/236/347/273/255/345/211/247.txt +5 -0
- package/topmind-viral-posts/examples/07-A2-/346/211/222/346/226/231/346/261/202/350/257/201.txt +5 -0
- package/topmind-viral-posts/examples/README.md +11 -6
- package/topmind-viral-posts/package.json +1 -1
- package/topmind-viral-posts/references/core-voice.md +45 -15
- package/topmind-viral-posts/references/de-ai-rules.md +31 -3
- package/topmind-viral-posts/references/emoji-system.md +3 -7
- package/topmind-viral-posts/references/information-design.md +35 -11
- package/topmind-viral-posts/references/patterns.md +283 -743
- package/topmind-viral-posts/references/revision-workflow.md +2 -2
- package/topmind-viral-posts/references/tags-and-topics.md +57 -71
- package/topmind-viral-posts/references/x-delivery-contract.md +45 -27
- package/topmind-viral-posts/references/x-layout-patterns.md +4 -4
- package/topmind-viral-posts/references/x-post-format.md +5 -5
- package/topmind-viral-posts/scripts/de_ai_lint.py +147 -17
- package/topmind-viral-posts/scripts/format_text.py +31 -8
- package/topmind-viral-posts/scripts/info_design_hints.py +13 -4
- package/topmind-viral-posts/scripts/lint_x_post.py +26 -11
- package/topmind-viral-posts/scripts/post_type_report.py +215 -0
- package/topmind-viral-posts/scripts/revise_check.py +2 -2
- package/topmind-wechat-post/README.en.md +14 -6
- package/topmind-wechat-post/README.md +15 -8
- package/topmind-wechat-post/SKILL.md +13 -12
- package/topmind-wechat-post/package.json +1 -1
- package/topmind-wechat-post/references/core-voice.md +45 -15
- package/topmind-wechat-post/references/de-ai-rules.md +31 -3
- package/topmind-wechat-post/references/element-spec.md +3 -3
- package/topmind-wechat-post/references/information-design.md +35 -11
- package/topmind-wechat-post/references/known-pits.md +1 -1
- package/topmind-wechat-post/references/revision-workflow.md +2 -2
- package/topmind-wechat-post/references/theme-map.md +2 -2
- package/topmind-wechat-post/references/typography-rules.md +2 -2
- package/topmind-wechat-post/references/wechat-constraints.md +2 -2
- package/topmind-wechat-post/references/workspace.md +14 -2
- package/topmind-wechat-post/references/writing-quality.md +4 -4
- package/topmind-wechat-post/references/x-delivery-contract.md +45 -27
- package/topmind-wechat-post/references/x-post-format.md +5 -5
- package/topmind-wechat-post/scripts/article_scaffold.py +45 -13
- package/topmind-wechat-post/scripts/check_article.py +47 -11
- package/topmind-wechat-post/scripts/de_ai_lint.py +147 -17
- package/topmind-wechat-post/scripts/info_design_hints.py +13 -4
- package/topmind-wechat-post/scripts/lint-wechat.py +5 -5
- package/topmind-wechat-post/scripts/lint_x_post.py +26 -11
- package/topmind-wechat-post/scripts/md2wechat.py +97 -6
- package/topmind-wechat-post/scripts/negative_tests.py +27 -0
- package/topmind-wechat-post/scripts/new-article.py +8 -5
- package/topmind-wechat-post/scripts/revise_check.py +2 -2
- package/topmind-x-article/README.en.md +16 -6
- package/topmind-x-article/README.md +16 -6
- package/topmind-x-article/SKILL.md +10 -6
- package/topmind-x-article/package.json +1 -1
- package/topmind-x-article/references/core-voice.md +45 -15
- package/topmind-x-article/references/de-ai-rules.md +31 -3
- package/topmind-x-article/references/information-design.md +35 -11
- package/topmind-x-article/references/publish-checklist.md +2 -2
- package/topmind-x-article/references/revision-workflow.md +2 -2
- package/topmind-x-article/references/workspace.md +14 -2
- package/topmind-x-article/references/x-delivery-contract.md +45 -27
- package/topmind-x-article/references/x-post-format.md +5 -5
- package/topmind-x-article/scripts/article_scaffold.py +45 -13
- package/topmind-x-article/scripts/check_article.py +47 -11
- package/topmind-x-article/scripts/de_ai_lint.py +147 -17
- package/topmind-x-article/scripts/info_design_hints.py +13 -4
- package/topmind-x-article/scripts/lint_x_post.py +26 -11
- package/topmind-x-article/scripts/md2x-html.py +152 -3
- package/topmind-x-article/scripts/md2x.py +49 -1
- package/topmind-x-article/scripts/negative_tests.py +14 -0
- package/topmind-x-article/scripts/revise_check.py +2 -2
- package/topmind-briefs/references/style-guide.md +0 -48
- package/topmind-briefs/references/writing-principles.md +0 -17
- package/topmind-viral-posts/examples/01-/345/221/250/344/270/200/346/227/251/346/231/250.txt +0 -13
- package/topmind-viral-posts/examples/02-/346/224/266/347/272/263.txt +0 -13
- package/topmind-viral-posts/examples/03-/350/257/273/344/271/246/350/256/241/345/210/222.txt +0 -13
- package/topmind-viral-posts/references/writing-principles.md +0 -17
- package/topmind-wechat-post/references/writing-principles.md +0 -17
- package/topmind-x-article/references/writing-principles.md +0 -17
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,60 @@
|
|
|
1
|
+
## [0.8.48] - 2026-10-22
|
|
2
|
+
|
|
3
|
+
> 全面优化:段子重组为 12 + 2 种写法,短文按 9 种内容类型写,去 AI 味规则新增社交短帖模式和问句口径条目,长文骨架先写「我的判断」并在交付前出图文预览;根 README 和各技能 README 改为能力优先。
|
|
4
|
+
> 根包 0.8.47 → **0.8.48**(patch);技能版本:topmind-briefs 0.2.26 → 0.2.27、topmind-cover 0.4.15 → 0.4.16、topmind-format 0.1.11 → 0.1.12、topmind-poster 0.1.8 → 0.1.9、topmind-revise 0.1.3 → 0.1.4、topmind-viral-posts 0.3.18 → 0.3.19、topmind-wechat-post 0.3.18 → 0.3.19、topmind-x-article 0.4.24 → 0.4.25。
|
|
5
|
+
|
|
6
|
+
### 特性支持
|
|
7
|
+
|
|
8
|
+
- topmind-viral-posts:类型重组为 12 种话题段子(A1 不懂就问、A2 扒料求证、A3 故障求证、A4 卧槽体、A5 冷知识、A6 群聊体、A7 连续剧、A8 算账、A9 站边轻判断、A10 荒诞自嘲、A11 产品反转、A12 借热点)+ 2 种关系帖(B1 关系帖、B2 互助帖)。每种写明适用题材、钩子、结构、收尾、反例和原创示例;新增「想让哪种人来评论」、删尾测试、配图按类型、回复与转发点评、旧编号对照表。示例重写为 7 条。
|
|
9
|
+
- topmind-briefs:9 种内容类型(快讯首发、快讯晚到、预告 / 传闻、新品 / 工具、羊毛、榜单、论文、实测、观点一句话),各自的首行、结构、收尾;新增「一眼快餐」(查证过程和口径进交付说明的口径提醒)、「时效」一节;示例新增 6 条。
|
|
10
|
+
- 共享脚本 `de_ai_lint.py` / `lint_x_post.py`:`--kind post|news|ops` 和 `--sources`;新增 W22–W26(套路互动钩子结尾、段子体行间没空行、类比腔、英文网文模板句、回复过长)和 H15–H21 提示(回复偏长、编经历、口径词进正文、夹英文小词、播报模板、标题动词和口径对不上、首行偏长);首行过长在快讯里是 W10,其他短帖降为 H21 提示;「?!」在首行、末行各允许一次。
|
|
11
|
+
- 共享脚本 `info_design_hints.py`:新增 I9「素材罗列」(一节很长却没有一句判断)。
|
|
12
|
+
- 共享脚本 `format_text.py`:`--variants` 把几个备选开头拼成几条完整成品,各自做保真校验;Markdown 引用标记自动去掉。
|
|
13
|
+
- 共享脚本 `md2x-html.py`:`--tables-as-images`(表格渲染成图按顺序嵌入,没有 Chrome 时降级为分行列表)和 `--preview`(生成 `out/预览.png`)。
|
|
14
|
+
- 共享脚本 `md2wechat.py`:`--preview` 按手机宽度生成 `预览.png`;「·」开头的行逐行成段。
|
|
15
|
+
- 共享脚本 `check_article.py`:支持短文文件夹(`公众号短文.md` / `X短文.txt`),不要求文件名等于标题、不要求封面。
|
|
16
|
+
- 新增共享脚本 `post_type_report.py`:读作者自己的往期帖子(JSONL / CSV),按开头、收尾、类型、长度、话题标签、配图统计相对表现,`--samples-out` 生成习惯摘要;topmind-revise 新增 `samples=` 参数使用它。
|
|
17
|
+
- 长文(x-article、wechat-post):骨架必填「我的判断」3–5 条(依据 + 读者会怎么反驳)和每节素材 / 判断比例;方法论、架构、对比类文章至少一张自制图(`raw/自制图源/`);交付前必出图文预览。`article_scaffold.py` 的骨架模板同步。
|
|
18
|
+
- topmind-revise:快审清单(首行、口径、S01–S10、删尾测试、回复、精炼、作者样本);`calibration-drill.md` 新增「用数据校准」。
|
|
19
|
+
- topmind-format:`--variants` 与引用块、转发点评的排法写进工作流。
|
|
20
|
+
|
|
21
|
+
### 优化
|
|
22
|
+
|
|
23
|
+
- `core-voice.md`:V05 区分快讯和观点的首行;V10 只限制套路互动问句,作者真拿不准的问题可以收尾;V22 允许首行、末行各一处「?!」;V27 话题标签默认不带、最多 2 个;新增 V34–V40(真问句、开头、精炼、回复、口径、预告动词)。
|
|
24
|
+
- `de-ai-rules.md`:新增第五节「社交短帖模式(S01–S10)」。
|
|
25
|
+
- `x-delivery-contract.md`、`x-post-format.md`、`x-layout-patterns.md`、`emoji-system.md`:话题标签默认不带;口径写进交付说明;新增「备选写成完整成品」「回复给两个版本」「交付前自检」三条规则和对应示例。
|
|
26
|
+
- `information-design.md`:骨架加入「我的判断」和自制图,提示码扩到 I1–I9。
|
|
27
|
+
- 文档措辞统一:版本说明一律用「优化 / 特性支持」,其余改为「修正」。
|
|
28
|
+
- 根 README(中 / 英)改为能力优先:分类总览、段子 14 种写法表、短文 9 种类型表、段子 / 短文 / 去 AI 味改前改后示例、长文骨架、触发说法;去掉版本号总表。各技能 README(中 / 英)同步改写。
|
|
29
|
+
- 路由评测新增 8 条用例(不懂就问、群聊体、预告、羊毛、备选开头、回复快审、表格转图预览、长文骨架)。
|
|
30
|
+
- 回归测试:去 AI 味规则用例扩充(62 / 9 / 39 / 26),信息设计用例 13 / 9;format 负例测试按新的提示级别更新。
|
|
31
|
+
|
|
32
|
+
## [0.8.47] - 2026-10-18
|
|
33
|
+
|
|
34
|
+
> 全面整理文档:README 和各技能文档按「原则优先」四层结构重写,剩余的「铁律」措辞改成「原则 + 怎么判断」,清理废弃文件和过时说明;新增多环境协作字段,渲染脚本去掉 HTML 注释。
|
|
35
|
+
> 根包 0.8.46 → **0.8.47**(patch);技能版本:topmind-briefs 0.2.25 → 0.2.26、topmind-cover 0.4.14 → 0.4.15、topmind-format 0.1.10 → 0.1.11、topmind-poster 0.1.7 → 0.1.8、topmind-revise 0.1.2 → 0.1.3、topmind-viral-posts 0.3.17 → 0.3.18、topmind-wechat-post 0.3.17 → 0.3.18、topmind-x-article 0.4.23 → 0.4.24。
|
|
36
|
+
|
|
37
|
+
### 优化(文档整理)
|
|
38
|
+
|
|
39
|
+
- 根 README(中 / 英)重写:结论先行,技能表带当前版本,新增「写作理念」四层表(第 0 层写作原则 → 第 1 层信息设计 → 第 2 层措辞口吻 → 第 3 层审稿)、文章文件夹结构(`骨架.md`、`参考/`)和多环境协作说明;旧版本号表更新。
|
|
40
|
+
- 深层参考里剩余的「铁律 / 红线 / 纪律」改成「原则 + 怎么判断」:cover 的 `cover-styles.md`(各风格「怎么判断」)、`md3-foundation.md`,wechat-post 的 `known-pits.md`(「怎么避免」)、`typography-rules.md`、`writing-quality.md`、`theme-map.md`,viral-posts 的 `patterns.md`,poster 的内容原则。真正的硬约束(安全区、原创、事实、不改字、平台格式检测、交付格式)保留并标「硬约束」。
|
|
41
|
+
- 「必读必守」统一改成「必读(交付格式是硬约束)」,「核心经验对照」改名「措辞原则对照」。
|
|
42
|
+
- topmind-revise:流程写明「声明 + 备份 → ⓪ 结构 → ① 事实 → …」;README 的「三层规则」换成四层表;第 ⑤ 步按 `core-voice.md` 十条原则和人设抽查。
|
|
43
|
+
- topmind-briefs:删除无引用的 `style-guide.md`(禁止清单式写法),其中的开头写法和发前自检改写成表格并入 `platform-specs.md`;写作步骤加上人设一行。
|
|
44
|
+
- topmind-revise、topmind-viral-posts 的 SKILL.md 补上 `research-mode.md` 入口(之前分发了但没有链接)。
|
|
45
|
+
- topmind-x-article README 的文件夹说明补上 `骨架.md`、`参考/` 和多环境字段。
|
|
46
|
+
- topmind-wechat-post `element-spec.md` 的 `:::` 容器一节标明「只用于旧交付包」;脚本帮助文本同步说明 `:::` 和扩展标记只为旧稿兼容。
|
|
47
|
+
- 公开仓库清理:去掉示例里的私有环境名和「用户偏好」类个人化表述,示例改用中性名称。
|
|
48
|
+
- `core-voice.md` 原则 9 的人设改成「还在学习的普通人」:不是专家,不像科普老师,可以带一点老司机式的自嘲;topmind-viral-posts 的写作要点同步。
|
|
49
|
+
- 删除 `writing-principles.md` 迁移说明文件(0.8.46 已按内容拆到各层,仓库里不再有引用),`shared/manifest.json` 同步去掉;briefs / viral-posts / wechat-post / x-article 不再带这份副本。
|
|
50
|
+
|
|
51
|
+
### 特性支持
|
|
52
|
+
|
|
53
|
+
- 渲染脚本(`md2wechat.py`、`md2x-html.py`、`md2x.py`)去掉 HTML 注释:源稿里临时写的 `<!-- 提示 -->`(可跨行)不进公众号版和 X 版;代码块和行内代码里的注释原样保留。负例测试同步。
|
|
54
|
+
- 多环境协作字段:`article_scaffold.py`(以及 wechat-post 的 `new-article.py`)新建源稿时写 `updated_at`(当前时间,ISO 8601 带时区)、`updated_env`、`updated_by`,后两项用 `--env` / `--by` 填,缺省留空;文章文件夹多建一个 `参考/`,放其他环境写的同主题稿件和素材(`参考-<环境>-<YYYYMMDD>.md`,永远不当源稿)。
|
|
55
|
+
- `check_article.py` 新增 H1 提示:`updated_at` 写了但没有时区时提醒;三个字段都是可选的,旧稿缺了不报,退出码不变。
|
|
56
|
+
- `workspace.md` 新增「多环境协作」一条:字段写法、新旧以 `updated_at` 为准、两边都改过时不覆盖而是存进 `参考/`、提交信息带一致前缀(wechat-post / x-article 的 SKILL.md 与 README 的文件夹说明同步)。
|
|
57
|
+
|
|
1
58
|
## [0.8.46] - 2026-10-18
|
|
2
59
|
|
|
3
60
|
> 经过 8 轮对练,写作技能改为原则优先:先想清楚要传达什么、内容用什么形式最好读,再谈措辞;去 AI 味改成成稿后的审稿步骤,脚本只提示、人来判断。
|
|
@@ -312,7 +369,7 @@
|
|
|
312
369
|
- `cover-prompts.md` 补齐橙色暖阳、卡通素描、赛博霓虹三种风格的完整提示词(第 1 章覆盖全部 22 种风格),新增第 2 章 X 短文 16:9 封面的 6 条场景提示词与填充示例;第 4 章场景推荐补 4 行。
|
|
313
370
|
- `crop-cover.py` 新增 `--preset x-post`,输出 `00-封面-X短文.png`(1200×675);默认行为不变。
|
|
314
371
|
|
|
315
|
-
###
|
|
372
|
+
### 优化
|
|
316
373
|
|
|
317
374
|
- `cover-prompts.md` 里的变量占位符此前全部丢失(只剩 `""`、`()` 和附录空白列),提示词无法照填;现统一恢复为 `【标题】`、`【胶囊标签】` 等 `【】` 变量。
|
|
318
375
|
- `cover-prompts.md` 标题「十九种」、样张数「42 张」与实际不符,改为 22 种风格、55 张样张。
|
|
@@ -358,12 +415,12 @@
|
|
|
358
415
|
## [0.8.28] - 2026-10-11
|
|
359
416
|
|
|
360
417
|
> 根包 0.8.27 → **0.8.28**(patch);技能版本:topmind-wechat-post 0.3.3 → 0.3.4、topmind-briefs 0.2.10 → 0.2.11。
|
|
361
|
-
>
|
|
418
|
+
> 本次为本地既有修正的补发——该修正此前只存在于本地工作副本,远端 `main` 无对应提交。
|
|
362
419
|
|
|
363
420
|
> - 修 bug:`topmind-wechat-post/scripts/lint-wechat.py` 的**盘古之白误报**。检测侧直接对原文做 `PANGU_A/B.search()`,
|
|
364
|
-
>
|
|
421
|
+
> 而修正侧 `pangu_line()` 会先屏蔽行内代码 / 链接目标 / 裸 URL —— 两套规则不一致,导致图片链接目标里的中英混排片段
|
|
365
422
|
> 被算作缺空格,而 `--fix` 保护的正是这一段、根本不会改它,告警永远清不掉。新增 `pangu_scan()`,
|
|
366
|
-
>
|
|
423
|
+
> 让检测与修正共用同一套屏蔽规则
|
|
367
424
|
> - 修文案:`md2wechat.py` 的 `--author` 帮助文本仍写「留空写 {{作者名}} 占位」,
|
|
368
425
|
> 而函数自 2026-10-01 起已不再渲染自我介绍行,提示与实际行为对不上,改为「留空则不输出署名行」。
|
|
369
426
|
> 同步 `shared/` 与 `topmind-briefs/` 两份副本
|
|
@@ -566,7 +623,7 @@
|
|
|
566
623
|
>
|
|
567
624
|
> - 配图铁律重写:官方原图 > 第三方原图 > AI 生图;只有纯引流段子或无可用原图时才生图;
|
|
568
625
|
> 生图风格统一为清新优雅 / 商务美观 MD3 风(段子/短文/长文通用)。
|
|
569
|
-
> -
|
|
626
|
+
> - 修正 SKILL.md 类型表新人报到型重复行。
|
|
570
627
|
|
|
571
628
|
## [0.8.11] - 2026-10-03
|
|
572
629
|
|
|
@@ -631,7 +688,7 @@
|
|
|
631
688
|
> 根包 0.8.3 → **0.8.4**(patch);技能:topmind-briefs 0.2.3 → **0.2.4**、
|
|
632
689
|
> topmind-x-article 0.4.3 → **0.4.4**、topmind-wechat-post 0.2.6 → **0.2.7**(patch)。
|
|
633
690
|
>
|
|
634
|
-
> - 全仓:writing-principles.md
|
|
691
|
+
> - 全仓:writing-principles.md 编号修正(二点五 4→5→6),四处全量同步
|
|
635
692
|
> (含第五节措辞偏好)。
|
|
636
693
|
|
|
637
694
|
## [0.8.3] - 2026-10-02
|
|
@@ -870,13 +927,13 @@
|
|
|
870
927
|
> 根包 0.4.0 → **0.4.1**(patch);技能版本:top-ppt-html 0.2.0 → **0.2.1**(修技能数据 bug 则 patch)、
|
|
871
928
|
> topmind-cover 保持 0.2.0(仅换样张图+描述文案,无功能变更)、topmind-wechat-post / topmind-x-article 保持 0.1.0。
|
|
872
929
|
> 本轮是第十三轮集成轮(A 文档抛光 + B 示例与描述 + C 新代码复审),改动最小、无新功能。
|
|
873
|
-
> 另含第十四轮集成轮(wechat-post/x-article 真
|
|
930
|
+
> 另含第十四轮集成轮(wechat-post/x-article 真 优化 + installer 测试扩展):**不 bump 版本**,全部并入 0.4.1。
|
|
874
931
|
|
|
875
|
-
### 安装器
|
|
932
|
+
### 安装器 优化(高危 · Worker C 复审发现)
|
|
876
933
|
|
|
877
934
|
- `uninstall`/`install` 的 `assertDestOutsideSource` 守卫被符号链接绕过:`path.resolve` 不解析软链,
|
|
878
935
|
`--to <软链指向包根>` 会跟随链接 `rmSync` 删掉包内技能源目录(已实测验证旧代码确会删源)
|
|
879
|
-
-
|
|
936
|
+
- 修正:`bin/tms-skills.js` 改用 `realpath` 归一化比对(`realOrResolved()`:dest 不存在时向上找最深存在祖先),+25/−4
|
|
880
937
|
- `scripts/test_installer_cli.js` 新增 case11/case12(uninstall/install 经软链指包根 → 拒绝、源目录完好),12 用例全过
|
|
881
938
|
|
|
882
939
|
### top-ppt-html 0.2.1(Worker C 复审发现 · 低危数据 bug)
|
|
@@ -913,7 +970,7 @@
|
|
|
913
970
|
- **分发体积与性能**(Worker B):无真问题。0.4.1 tarball 解包 29.1MB(0.3.9 18.4MB,
|
|
914
971
|
+10.7MB 系封面示例画廊预期增量);top10 大文件全合法素材;48 图标 PNG 最大 27.4KB 无异常;
|
|
915
972
|
install 耗时 0.3s 不需优化;`sync_npm_files.js --check` 通过
|
|
916
|
-
- 技能版本号保持:wechat-post / x-article 保持 0.1.0(纯
|
|
973
|
+
- 技能版本号保持:wechat-post / x-article 保持 0.1.0(纯 优化按技能版本规则不 bump);
|
|
917
974
|
cover 保持 0.2.0、ppt-html 保持 0.2.1、根包保持 0.4.1
|
|
918
975
|
|
|
919
976
|
## [0.4.0] - 2026-09-29
|
|
@@ -940,7 +997,7 @@
|
|
|
940
997
|
|
|
941
998
|
- 内置原创图标包 `assets/icons/`:48 SVG + 48 PNG + `index.json` 映射,7 个默认图标兜底;`scripts/check_icons.py`(`--strict`)做图标一致性门禁;`references/icons.md` 文档化
|
|
942
999
|
- 3 种 layout variant:bento-grid / timeline / 2-col-feature(`references/layout-variants.md`);`references/style-pack.md` 风格包文档化
|
|
943
|
-
- `validate_report.py` 新增内容覆盖率检查(<95% WARN
|
|
1000
|
+
- `validate_report.py` 新增内容覆盖率检查(<95% WARN);随门禁修正 6 个真实丢字 bug
|
|
944
1001
|
- `scripts/layout-constants.json` 加 adaptiveText 弹性文本规则;HTML/PPTX 弹性适配减少溢出截断
|
|
945
1002
|
|
|
946
1003
|
## [0.3.9] - 2026-09-29
|
|
@@ -954,10 +1011,10 @@
|
|
|
954
1011
|
|
|
955
1012
|
- TODO 注释 6 命中 → 0 真遗留(均为有意为之:文档纪律说明/scaffold 指导注释/校验正则/示例代称)
|
|
956
1013
|
- 死代码:全仓 Python + top-ppt-html JS 逐函数交叉 grep,零死函数;12 个 CLI 参数逐个验证全部在用
|
|
957
|
-
-
|
|
1014
|
+
- 跨技能一致性修正:19 处错误信息半角冒号 `错误:` → 全角 `错误:`(多数派 47 处);`validate_report.py` 加 `-h/--help` 早退(exit 0),与其他 argparse CLI 一致
|
|
958
1015
|
- 重复逻辑(仅记录,不重构):`esc()` HTML 转义三处逐字相同、`read_frontmatter()` 跨技能同构、`load_constants()` 各自实现——均为四技能同构门禁的有意设计
|
|
959
1016
|
|
|
960
|
-
### 对抗输入测试(第十一轮 Worker B:5
|
|
1017
|
+
### 对抗输入测试(第十一轮 Worker B:5 真崩溃全部修正)
|
|
961
1018
|
|
|
962
1019
|
- `bin/tms-skills.js`:`--to` 指向已存在文件时 `mkdirSync` 抛未捕获堆栈 → try/catch 干净报错 exit 1
|
|
963
1020
|
- `md2wechat.py`:`resolve_image` 的 `shutil.copy2`/`os.makedirs` 未捕获 OSError(磁盘满/目录当图片)→ 干净报错 exit 1
|
|
@@ -968,33 +1025,33 @@
|
|
|
968
1025
|
### 文档一致性(第十一轮 Worker C)
|
|
969
1026
|
|
|
970
1027
|
- 审计结论抽查 5 处全部为真(architecture 归一化/SKILL.md 13KB 预算/cover 触发词/ip-fun 原位垫色块补丁/footer 移出 content 标记)
|
|
971
|
-
- SKILL.md vs --help
|
|
1028
|
+
- SKILL.md vs --help 漂移修正 1 处:wechat-post SKILL.md 注释声称 `--workspace` 参数,全仓无此参数 → 改为 `--base`
|
|
972
1029
|
- README 示例 10/10 实跑通过(/tmp 干净目录,本地包安装)
|
|
973
1030
|
|
|
974
1031
|
## [0.3.8] - 2026-09-29
|
|
975
1032
|
|
|
976
1033
|
> **本版未发布**(未打 tag、未推 npm;0.3.8 全部内容已并入 0.3.9)。
|
|
977
1034
|
> 根包 0.3.6 → **0.3.8**(patch);4 个技能 `version` 保持不动(top-ppt-html 0.1.19,其余 0.1.0)。
|
|
978
|
-
> 本轮只动 top-ppt-html +
|
|
1035
|
+
> 本轮只动 top-ppt-html + 文档:渲染产出目检修正(A)+ PPTX 双引擎保真修正 11 bug(B)+ 文档修正(C)。
|
|
979
1036
|
|
|
980
|
-
### 模板 footer
|
|
1037
|
+
### 模板 footer 修正(第十轮 Worker A:渲染产出目检)
|
|
981
1038
|
|
|
982
|
-
- `top-ppt-html/assets/templates/{presentation,research,architecture}.html`:`<footer>` 移出 `__TOPPPT_CONTENT_START__`/`__TOPPPT_CONTENT_END__` 标记之外——此前自动渲染取 content
|
|
1039
|
+
- `top-ppt-html/assets/templates/{presentation,research,architecture}.html`:`<footer>` 移出 `__TOPPPT_CONTENT_START__`/`__TOPPPT_CONTENT_END__` 标记之外——此前自动渲染取 content 区间时会连带删除页脚,目检确认已修正。
|
|
983
1040
|
|
|
984
|
-
### PPTX
|
|
1041
|
+
### PPTX 双引擎保真修正(第十轮 Worker B:PPTX 实检,11 bug 全部像素复验)
|
|
985
1042
|
|
|
986
1043
|
- `top-ppt-html/scripts/build_pptx.js` + `assets/pptx-export.js`(双端同规则):
|
|
987
|
-
- 图表数据标签小数位:按模型数值实际小数位(上限 2 位)生成 format code
|
|
1044
|
+
- 图表数据标签小数位:按模型数值实际小数位(上限 2 位)生成 format code,修正小数标签被截断
|
|
988
1045
|
- hbar 条形图:类目轴自下而上绘制,反转数据使首项居顶;单系列颜色按数据点分配(跟随数据归属,与 A 通道一致)
|
|
989
1046
|
- streamgraph 退化:相邻 ribbon quad 沿走向微叠 0.02in,消除拼接处抗锯齿发丝缝
|
|
990
1047
|
- boxplot:min 标签默认移到须线帽下方,不再被组标签带压住叠印
|
|
991
|
-
- marimekko:单元格归一化兼容裸数值或 `[标签,数值]`
|
|
992
|
-
- pyramid:标题列宽按层内宽比例(labelFrac≈0.3
|
|
1048
|
+
- marimekko:单元格归一化兼容裸数值或 `[标签,数值]` 对(裸数值沿用旧行为),修正 NaN 崩坏
|
|
1049
|
+
- pyramid:标题列宽按层内宽比例(labelFrac≈0.3)分配,顶层窄时改单框混排,修正窄层标题/说明叠印
|
|
993
1050
|
- KPI:第 4 个起的支撑指标不再静默截断——容量按最小允许行高计算、行高按全部指标自适应压缩,超容显式告警
|
|
994
|
-
- donut 图例:百分比列 x(`donut.legendPctX` 5.3 → 10.8
|
|
1051
|
+
- donut 图例:百分比列 x(`donut.legendPctX` 5.3 → 10.8)右移,修正图例数值被圆环覆盖
|
|
995
1052
|
- table:内容高度逐格预估、超高全表收字号,字号触底仍装不下则显式告警(不再撑高行压脚注)
|
|
996
1053
|
- exhibit 徽标:纯编号自动补 `Exhibit ` 前缀(与 HTML 视觉一致),已带前缀的不重复
|
|
997
|
-
- sankey/streamgraph note:note 与 footnote 均参与 `chartBottom`
|
|
1054
|
+
- sankey/streamgraph note:note 与 footnote 均参与 `chartBottom` 结算,修正 note 重叠
|
|
998
1055
|
- `top-ppt-html/scripts/layout-constants.json`:`donut.legendPctX` 5.3 → 10.8(单源),已由 `sync_runtime.py` 同步至 `pptx-export.js`、画廊、`templates/*.html`、示例的内联副本与 `__TOPPPT_RUNTIME_SHA__` 戳
|
|
999
1056
|
|
|
1000
1057
|
### 文档修正(第十轮 Worker C)
|
|
@@ -1168,9 +1225,9 @@
|
|
|
1168
1225
|
- `references/cover-styles.md` 新增**原创铁律**:prompt 配方是设计语言,
|
|
1169
1226
|
禁止照抄任何第三方封面的文案与形象;8 风格示例小节同步换为本轮原创标题。
|
|
1170
1227
|
|
|
1171
|
-
### topmind-wechat-post:全面优化 + 4
|
|
1228
|
+
### topmind-wechat-post:全面优化 + 4 处修正
|
|
1172
1229
|
|
|
1173
|
-
- `scripts/md2wechat.py`
|
|
1230
|
+
- `scripts/md2wechat.py` 修正:**行内图片绕过图片管线**(现统一经管线解析、复制到
|
|
1174
1231
|
`images/`、登记上传清单、可被 `--embed-images` 内嵌);分隔线不再触发自家合规
|
|
1175
1232
|
WARN(改用块级 `<section>` 居中,视觉一致);标题手写序号剥离支持大写数字
|
|
1176
1233
|
(壹贰叁肆伍陆柒捌玖拾);图片 `title` 属性(``)不再导致整段源码泄漏。
|
|
@@ -1179,9 +1236,9 @@
|
|
|
1179
1236
|
- README(中/英):新增 9 行"最小示例"(输入→输出片段)+ `md2wechat` 参数表。
|
|
1180
1237
|
- `negative_tests.py` 5→8 项,全过。
|
|
1181
1238
|
|
|
1182
|
-
### topmind-x-article:全面优化 + 12 处转换
|
|
1239
|
+
### topmind-x-article:全面优化 + 12 处转换 优化
|
|
1183
1240
|
|
|
1184
|
-
- `scripts/md2x.py`
|
|
1241
|
+
- `scripts/md2x.py` 修正 12 处:标题/引用/表格内行内标记残留、引用式链接与图片
|
|
1185
1242
|
(`[文字][ref]`/`![alt][img]` 及定义行)、URL 含括号断裂、`\` 转义符残留、
|
|
1186
1243
|
Setext 标题残留、带空格分割线(`* * *`)不识别、代码块内 `---` 误判分割线、
|
|
1187
1244
|
文首 `---` 被 frontmatter 误吞、BOM 头、文档以代码块开头时首行缩进丢失。
|
|
@@ -1210,7 +1267,7 @@
|
|
|
1210
1267
|
- 根 README(中/英)、cover README(中/英)、cover SKILL.md 嵌入总览图(GitHub 绝对 URL)
|
|
1211
1268
|
+ 8 风格一行式索引;用法"6 选 1"→"8 选 1"。
|
|
1212
1269
|
|
|
1213
|
-
###
|
|
1270
|
+
### 优化
|
|
1214
1271
|
|
|
1215
1272
|
- topmind-wechat-post `scripts/md2wechat.py`:本地图片文件缺失时未登记进"图片上传清单"
|
|
1216
1273
|
(用户按清单补图会漏传);现登记 `⚠ 本地文件缺失` 行并计入"图片 N 张"计数。
|
|
@@ -1242,7 +1299,7 @@
|
|
|
1242
1299
|
- 各技能 README(中/英)与 SKILL.md 对齐:cover 新增风格库与示例图章节、用法改"步骤 0 选风格";
|
|
1243
1300
|
x-article 转换规则补"分隔线→空行"。
|
|
1244
1301
|
|
|
1245
|
-
###
|
|
1302
|
+
### 优化
|
|
1246
1303
|
|
|
1247
1304
|
- topmind-x-article `scripts/md2x.py`:`---` / `***` / `___` 分隔线转**空行**(原逻辑误当 frontmatter 吞掉);
|
|
1248
1305
|
`***粗斜体***` 先去三重星号再处理 `**` / `__` / `*`,不再残留星号。
|
|
@@ -1257,7 +1314,7 @@
|
|
|
1257
1314
|
交付包 / 审校改写 / 质量三关(事实·逻辑·去 AI 味 ≥85)/ 状态同步 / 微信内联排版(`md2wechat --embed-images`)/ 发布清单。
|
|
1258
1315
|
适配点:frontmatter 去 topmind-pack 专有键(`degradation`/`action_category`/`entrypoint`),
|
|
1259
1316
|
跨 skill 引用改为通用表述,`writing-quality.md` 改用技能自带 `scan_ai_flavor.py`
|
|
1260
|
-
|
|
1317
|
+
(原引用本机私有路径),`md2wechat.py` 缺失输入改干净报错(原 Traceback)。
|
|
1261
1318
|
- **topmind-x-article `0.1.0`**:X 长文一键发布。`md2x.py` 把 Markdown 转可直接粘贴进
|
|
1262
1319
|
X Article 编辑器的纯文本(标题→纯文本行、加粗/斜体去标记、链接→`文字(url)`、
|
|
1263
1320
|
图片→`[图N]`+文末配图清单、表格→"项:值"列表);`references/publish-checklist.md`
|
|
@@ -1272,12 +1329,12 @@
|
|
|
1272
1329
|
|
|
1273
1330
|
## [0.1.19] - 2026-09-28
|
|
1274
1331
|
|
|
1275
|
-
###
|
|
1332
|
+
### 排版修正 · 大纲篇章化 · 参考资料去假 · 图标真导出 · PPTX 高保真增强
|
|
1276
1333
|
|
|
1277
1334
|
> 源起:2026-09-28 用户复盘五类问题(顶栏重叠 / 卡片不齐 / 大纲罗列页标题 / 参考资料占位 / PPTX 格式错乱),并要求「业界怎么解决的,不要闭门造车」。本次对照 Slidev `pptx-editable` / PptxGenJS / think-cell 混合通道模式系统整改。
|
|
1278
1335
|
|
|
1279
1336
|
#### A. HTML 排版硬伤
|
|
1280
|
-
- **顶栏副标题压住右侧工具钮**:`.brand__txt` 此前无基础样式,flex `min-width:auto` 钉死整行文字宽,省略号永不触发。补 `min-width:0; overflow:hidden`,`.brand` / `.bar__in` / `.nav`
|
|
1337
|
+
- **顶栏副标题压住右侧工具钮**:`.brand__txt` 此前无基础样式,flex `min-width:auto` 钉死整行文字宽,省略号永不触发。补 `min-width:0; overflow:hidden`,`.brand` / `.bar__in` / `.nav` 收缩链修正;≤1360px 自动收起副标题。
|
|
1281
1338
|
- **卡片高度不一致**:`.card` 改 flex 列 + 底对齐;`.g-quad` / `.g-half` / `.g-*--equal` 强制等高;`.g-half` 提升进 `engine.css` 并改 `align-items:stretch`(此前 research 专属且 `start` 违反「同构同高」契约);纯卡片栅格不再误用 `.a-start`。
|
|
1282
1339
|
|
|
1283
1340
|
#### B. 大纲 = 章节大纲(3–7 章),不是页目录
|