le-wechat-article v1.3:融合 human-writing 活人感写法(材料关 / 说话位置 / 活人感审读 + check_prose.py 双自检);附 check_article front matter 剥离修复

This commit is contained in:
leroy
2026-10-06 21:30:36 +08:00
parent 500d8224db
commit 3af717a76d
10 changed files with 788 additions and 19 deletions
+20 -10
View File
@@ -20,7 +20,7 @@ description: >
- **真实性是底线。** 每个事实性陈述都要能追溯到用户素材、公开可验证信息或用户声明的个人经历。素材不足就明说缺什么,不为凑篇幅编造细节、数据、经历或情绪。
- **类型决定写法。** 不同文章类型有不同的开头、节奏和审读标准(见 [references/article-types.md](references/article-types.md)),不把所有文章写成一种腔调。
- **修改不得走样。** 审读修改时保护事实、否定、范围、时间、归因和确定程度——不得把相关写成因果、可能写成确定、计划写成已完成。
- **判断放参考、数数放脚本。** 结构和审读的判断读 references/;能机器量的(标题层级、加粗密度、金句数、表格、中英文间距)交给 `check_article.py`,不靠眼睛。
- **判断放参考、数数放脚本。** 结构和审读的判断读 references/;能机器量的(标题层级、加粗密度、金句数、表格、中英文间距)交给 `check_article.py`,模型腔硬禁(翻案腔、破折号、冒号、黑话、路标)交给 `check_prose.py`,不靠眼睛。
## 工作流
@@ -49,10 +49,12 @@ description: >
画像还是空模板、或所选账号没有分节时,用其中的「首访问题」问用户一次,把答复写回该文件(此文件随本 skill 存放,属于个人资产);每个账号首次使用各问一次,之后不再重复问。事实卡留空则跳过,用户随时可补。画像与事实卡都不能覆盖类型路由、事实核查和真实性底线。
**校准结果是固定停点(轻量)**:展示本次将采用的约束——该账号画像要点(定位/声音/文末块/排版主题)、将取用的事实卡条目、敏感词要求——用户确认或调整后进第 3 步。画像早已填好、无新信息时也要展示:给用户当场临时调整的机会(如本文换排版主题、跳过文末块),展示可精简为几行。
**校准结果是固定停点(轻量)**:展示本次将采用的约束——该账号画像要点(定位/声音/文末块)、**排版主题选择**、将取用的事实卡条目、敏感词要求——用户确认或调整后进第 3 步。**排版主题以选择题呈现**:按文章类型从 [themes/theme-index.md](references/themes/theme-index.md) 给出 1 个推荐主题(附一句理由)+ 2–3 个备选(各附一句适用理由),该账号画像的默认主题标注出来;用户回复主题名或序号选定,说「按推荐」即用推荐项(可用 AskUserQuestion 出选项)。画像早已填好、无新信息时也要展示:给用户当场临时调整的机会(如换排版主题、跳过文末块),展示可精简为几行,但主题选择题不省。
### 第 3 步:大纲与图位
起草大纲前先过**材料关**([human-voice.md](references/human-voice.md) 第一节):非虚构正文计划 ≥1200 字的,先列**至少 5 件可追溯的具体材料**(动作、数字、时间、原话、失败、代价、后续,注明来自用户哪句话或哪份可靠来源),并确认能组成一条实际过程;大纲每个主要小节标注依托的材料。列不出 5 件——能检索的先研究再重新计数;依赖用户经历的回第 1 步用「三问」一次问全;仍不足就**缩题或压短篇幅**,不靠推演和重复解释灌字数。
按所选类型的结构骨架起草大纲,同时规划图位(按 style-rules 的密度档位表选一档)。每个图位标注「信息位 / 节奏位」:
- **信息位**:删掉这张图读者会**看不懂**(流程、结构、数据、对比)→ 图上文字逐字取自文章
@@ -64,11 +66,14 @@ description: >
### 第 4 步:写初稿
遵守 style-rules 的全部硬规则(标题层级、表格限制、中英文间距、直角引号),并满足产出配额——这些规则不靠自觉,第 6 步有脚本核验:
动笔前读 [human-voice.md](references/human-voice.md)(活人感写法),内部回答「说话位置五问」——不把答案原样交给用户。活人感按类型分浓度(叙事/复盘高、技术/教程克制、简报不加),它来自材料与信息来路,不是口头禅与假细节。
遵守 style-rules 的全部硬规则(标题层级、表格、中英文间距、直角引号),并满足产出配额——这些规则不靠自觉,第 6 步有脚本核验:
- **加粗是扫读落点**:每 100 字左右一处,连续 200 字不得没有;每个小节至少一处。验收标准:把全文加粗按顺序连起来读,应该是一篇能独立看懂的缩写版
- **摘要 ≠ 导语**:front matter 的 digest 与正文开头导语不得是同一句话
- **金句卡至多一处**:`> 金句。 —— 出处`,多了就退化成装饰
- **金句卡至多一处**:`> 金句。(出处)`,多了就退化成装饰
- **模型腔硬禁**(human-voice.md 第七节,`check_prose.py` 核验):翻案腔零容忍、正文无破折号、冒号只引人物直接原话、黑话与洞察路标清零
初稿写到 `article.md`,同时复制一份完整副本到同目录 `review-baseline.md`。基线在终稿交付前不得修改——第 5 步审读要对照它检测语义漂移。
@@ -76,7 +81,7 @@ description: >
两项审读,各起独立 subagent(关注点不同,混在一次会顾此失彼),都给它:作者素材、`review-baseline.md`、当前 `article.md`、文章类型、[references/review-playbook.md](references/review-playbook.md)。
**5a 内容审读**——按手册输出意见清单(每条含位置、可观察的问题、对阅读的影响、必须保留的信息、建议方向):去模板化、AI 味指纹(按防误判阈值,命中本身不是修改理由)、语义保真风险(对照基线标出可能改变事实/否定/范围/条件/时间/归因/确定程度/立场的位置)。
**5a 内容审读**——按手册输出意见清单(每条含位置、可观察的问题、对阅读的影响、必须保留的信息、建议方向):去模板化、AI 味指纹(按防误判阈值,命中本身不是修改理由)、**活人感审读**(谁在说 / 推进 / 表演性中文 / 结尾 / 冷读)、**模型腔硬禁清单**(命中即必改,与合规同级)、语义保真风险(对照基线标出可能改变事实/否定/范围/条件/时间/归因/确定程度/立场的位置)。
**5b 事实核查 + 合规扫描**——数字、事件、产品名、引用是否可追溯到素材;平台合规逐类扫描(违禁内容、广告法绝对化用语、医疗金融承诺、未授权素材、画像自定义敏感词清单)——**合规命中一律必改,与 AI 味的建议级不同**。
@@ -90,10 +95,12 @@ subagent 可以给出「没有需要修改的问题」;不要为填满清单
**长文终审**(正文 ≥2500 字或类型为测评/复盘/叙事/技术):修改完成后、交付前,再起一个 subagent 对照「作者素材 + 基线 + 当前稿」做终审——只查三件事:新增/遗漏/强化了主张没有、合规清零没有、HKR 一句话总评。轻稿(简报 <2500 字)跳过终审,主 agent 自查即可。
然后跑自检直到退出码为 0:
然后跑双脚本自检,直到两个退出码都为 0:
```bash
python3 scripts/check_article.py <文章目录>/article.md --type <主类型>
# 活人感硬禁:fail 项清零;「需人工判断」项按语境裁决,不改也说明理由
python3 scripts/check_prose.py <文章目录>/article.md
```
脚本输出加粗串读提要——自己读一遍那一串,像词云或像把段落重念一遍都是挑错了落点,这要人来判断,脚本量不了。
@@ -104,7 +111,7 @@ python3 scripts/check_article.py <文章目录>/article.md --type <主类型>
0. **图片生产(默认执行,用户明确不要图时才跳过)**:正文图位与封面按 [visual-production.md](references/visual-production.md) 生产——交给 ckm-banner-design,或 SVG 自绘 + 浏览器截图均可,满足 brief 验收点即可。信息位图上的文字**逐字取自文章**,配色与所选排版主题一致;可编辑源文件(SVG/HTML)随 PNG 一起保留在 `imgs/src/`。生成后把正文图位占位替换为 `imgs/<文件名>.png` 真实路径——**终稿不得残留 placeholder**(此时 check_article 不再加 `--allow-placeholder`)。
1. 排版转换。默认走**主题引擎**——6 套实战主题组件库,融合自 gzh-design-skill(AGPL,见 [themes/README.md](references/themes/README.md))。主题以**该账号**画像的「排版偏好」为默认,按文章类型对照 [themes/theme-index.md](references/themes/theme-index.md) 的适用场景校准(教程/测评→摸鱼绿、深度观点→红白色系、设计科技→石墨极简、随笔→留白禅意、对比评测→摸鱼票据、内刊复盘→橄榄手记);选定后按 [themes/ENGINE.md](references/themes/ENGINE.md) 读该主题组件库 + 通用组件库装配 HTML,装配完**校验到全绿才算完成**:
1. 排版转换。默认走**主题引擎**——6 套实战主题组件库,融合自 gzh-design-skill(AGPL,见 [themes/README.md](references/themes/README.md))。主题用**第 2 步停点用户选定的**(画像默认 + 当场调整的结果);若停点被「一口气跑完」豁免跳过,按文章类型对照 [themes/theme-index.md](references/themes/theme-index.md) 的适用场景自动选(教程/测评→摸鱼绿、深度观点→红白色系、设计科技→石墨极简、随笔→留白禅意、对比评测→摸鱼票据、内刊复盘→橄榄手记),并在交付时说明选择理由。选定后按 [themes/ENGINE.md](references/themes/ENGINE.md) 读该主题组件库 + 通用组件库装配 HTML,装配完**校验到全绿才算完成**:
```bash
python3 scripts/validate_gzh_html.py <文章目录>/article.html
@@ -148,7 +155,7 @@ python3 scripts/publish_draft.py <文章目录> --title "标题" --digest "摘
## 失败模式与停手点
- **素材不足以支撑所选类型** → 停下来列出缺什么,让用户补素材或换类型;不编造垫稿。
- **素材不足以支撑所选类型** → 停下来列出缺什么:能检索的先研究;要用户补的用 human-voice「三问」一次问全;研究后仍不足就缩题或压短篇幅,**宁可明显短于目标字数,不用推演和重复解释填满**;不编造垫稿。
- **审读意见互相冲突**(如保真要求与去模板化要求打架)→ 按手册判断顺序裁决:保信息 > 保类型 > 保作者声音 > 改表达;裁决不了的带两案问用户。
- **用户要「直接发表/群发」** → 拒绝:同步止于草稿箱,发表由用户在公众号后台手动完成;凭证缺失时给配置指引并停,不代填。
- `check_article.py` 跑不过且原因不明 → 先修硬规则项;脚本本身出错时报告错误,改为人工对照 style-rules 逐项检查,不假装通过。
@@ -159,7 +166,9 @@ python3 scripts/publish_draft.py <文章目录> --title "标题" --digest "摘
- 不在简报类文章里强加个人故事、情绪曲线或价值升华;不为提高「共鸣」编造经历。
- 不用「随着 AI 的发展」「综上所述」这类零信息套话开头收尾;连接词只在承担真实顺序、转折、总结功能时保留。
- 不把技术术语当 AI 味删掉;技术解析保持应有正式度,不统一改成聊天语气。
- 不在没跑 check_article.py 的情况下宣称「自检通过」。
- 不在没跑 check_article.py 和 check_prose.py 的情况下宣称「自检通过」。
- 不写翻案腔——先立误解再推翻(「不是A,而是B」及一切变形)一次也不行,判断从正面下。
- 不添无来源的精确细节(时间、神态、天气、摆设、突现原话),不穿论坛服装(口头禅、粗口、错别字不是活人感)。
- 不把作者画像、素材中的私人内容复制进交付物或对外文件。
- 未获「一口气跑完」授权时,不把停点之间的多个步骤合并进同一回合执行。
- 不把「在回复中展示了产物」当作「已获得确认」——确认只能来自停点之后用户的下一条消息。
@@ -168,7 +177,8 @@ python3 scripts/publish_draft.py <文章目录> --title "标题" --digest "摘
- 五类型路由与各类型结构:[article-types.md](references/article-types.md)
- 公众号排版硬规则、标点规范、产出配额、标题规范:[style-rules.md](references/style-rules.md)
- 审读手册(去模板化 + AI 味指纹 + 平台合规 + 语义保真):[review-playbook.md](references/review-playbook.md)
- 审读手册(去模板化 + AI 味指纹 + 活人感审读 + 模型腔硬禁 + 平台合规 + 语义保真):[review-playbook.md](references/review-playbook.md)
- 活人感写法(材料关 / 说话位置 / 行文规则 / 分型浓度 / 成稿硬禁):[human-voice.md](references/human-voice.md)
- 排版主题库与装配规则(6 主题 + 通用组件 + 引擎规则,AGPL 来源与协议边界):[themes/README.md](references/themes/README.md) · [theme-index.md](references/themes/theme-index.md) · [ENGINE.md](references/themes/ENGINE.md)
- 作者画像(风格;个人层 + 分账号层,渐进填充):[author-profile.md](references/author-profile.md)
- 常用事实卡(作者本人事实,渐进填充):[topic-facts.md](references/topic-facts.md)