plain-style-output — 对外输出通俗化风格规范
把专业内容改写成"企业非市场、非技术专业人员也能看懂"的表达,用于 PPT、报告、邮件、培训材料、群分享等对外载体。核心原则:通俗化只改表达,不改事实——所有数字、结论、来源保持原样。
何时使用
- 用户明说:通俗版 / 培训用 / 对外汇报 / 给非技术人员看 / 进群分享 / 发给客户
- 产出物受众标签含"全员可读 / 商务 / 非技术"
-
用户反馈"太晦涩""看不懂""太技术了"
-
用户说“把接下来要做的事情讲通俗一点”“用大白话解释要拍板的事”“举几个例子说明”(内部决策沟通,见载体六)
- 产出物是"项目解码"类材料(甲方为什么买 / 我司站哪个位置 / 该找什么样的合作伙伴),或上游工作流产出了专业分析册、需要并排一册给决策层看(见载体七)——这类默认适用,不要等读者追问
不适用:内部技术笔记、代码与配置、给同行专家的纯技术评审、数据原始台账。
也不管"对话回复"本身:与用户本人的聊天回复走常驻「对话详略档」纪律(默认 3/10:结论先行+关键数字;分型设档——执行汇报 3/待拍板·异常诊断 4/高风险 7)——该纪律由宿主环境的用户级配置承载,不属本技能范围。本技能只在产出材料(报告/PPT/邮件/文档/群分享,受众含用户之外的人)时加载。边界一句话:本技能管「材料」,不管「对话」;而对话档位不得反过来被用来削减材料里的证据、状态标注与来源。
> 判据:读者要靠这份材料做决定吗? 靠 → 适用(哪怕它是"报告");只是要靠它执行/查证 → 用专业写法,不要通俗化。
「易懂」是什么 —— 六级判据(每条都能判,不靠感觉)
一句话定义:读者不问人、不回头翻原文,就能在一屏之内答出三件事——
- 结论是什么(要读到中段才知道结论=不合格);
- 要不要我动手(没有动作项,读者只能"知道了");
- 我凭什么信(指得出来源/证据等级/口径)。
三问答不出,再"通俗"也不算易懂。
| 级 | 判据 | 怎么验(能判就行) | 常被违反的样子(反例) |
|---|---|---|---|
| 1 结论先行 | 前 3 行内出现结论、动作、可信度指针 | 取前 3 行逐项找(机器可判) | 用「已完成本次同步」开场,读到末尾才知道要不要动手 |
| 2 标题是人话 | 每个段标题=读者会问的问题或一句陈述句;不含未展开的缩写与内部代号 | 对标题跑缩写表([A-Z]{2,}、内部代号、§) |
「A 上游」「[B] 版本一致性」——读者不知道 A/B 指什么 |
| 3 术语首现即解码 | 首次出现处写「白话(原词)」;同一术语全文只解释一次,其余引单源术语表 | grep 术语表逐条查首现行与解释次数 | 要么每期解释一遍(噪声),要么一次都不解释(看不懂) |
| 4 事实与研判分家 | 每条结论标明来源:机检/源文件/我的推断 | grep 标记覆盖率 | 把自己的推断写得像机器结论 |
| 5 强度不被改写 | 数字逐数比对;证据状态(疑似/待确认/单源)不升不降 | 数字逐数 grep + 状态词比对 | 通俗化顺手把「疑似」讲成「就是这样」 |
| 6 篇幅随信号 | 无事发生的报告短、有异常的才长;篇幅由信息量决定,不由"写全"决定 | 行数/字节计数(如:无事 ≤15 行) | 没变化也写 20 KB,把真信号淹掉 |
| 7 机器话沉底 | 正文不出现 exit code/字段名/脚本版本;统一收进文末一行「技术备注」 | 正文段 grep exit\s*\d、\w+_attempts、版本号 |
把 exit=0、xlsx_attempts 当人话讲给读者 |
| 8 动作可执行 | 每条=做什么+在哪找+怎么做;要拍板的标优先级与 [写操作]/[只读] |
结构检查(三要素齐;缺一即不合格) | 「建议排查一下工作目录」——去哪查、怎么查都不知道 |
> 元规则(本节最重要的一条):凡不能用「grep/计数/举反例」验证的要求,都不算规范。
> 「请写得通俗些」「注意可读性」这类要求必然空转——它没告诉你过没过。写规范时先问:
> 我怎么证明它被违反了? 答不出,就改写成能判的形态。实测:把「要写清楚」改成
> 「每条必须含 做什么+在哪找+怎么做」,才真的拦住了「建议排查一下」这种空话。
四点落地(把判据变成 prompt 里的硬约束)
- 段标题照抄,不留自拟空间:体检/报告类任务把段标题原文写进 prompt。实测(漂移监控报告):
「A 上游/B 应用环境/C 本地技能库」→「上游有没有变化/本地技能库有没有变化/需要你动手的事/和上次比有什么不同」。 - 术语表外置单源:用
GLOSSARY.md一类文件承载解释,报告只放一行指针——判据 3 的"解释次数恒为 1"才守得住(多副本必漂移,见反例库 #C9-49)。 - 篇幅档位写进 prompt:按信号强弱给 2–3 档行数/字节上限(例:无事 ≤15 行/有漂移 ≤8 KB/有风险 ≤12 KB)。
- 交付前自检三条(可直接抄进任何自动化 prompt):
1. 前 3 行能否答出「结论/要不要你动手/我凭什么信」?
2. 正文(技术备注之前)有没有exit、_attempts、版本号?有就下沉。
3. 每个代号与专业名词,首次出现处有没有白话?
> 与后文「产出前自检 9 条」的分工(防两套规则打架):本节定义什么算懂(三问+八条判据+元规则),
> 后文那份 9 条是可执行的自检清单(含机器判据与负向用例)。对应:判据 1 ⇄ 自检 3;判据 2/3 ⇄ 自检 1、6;
> 判据 4 ⇄ 自检 8 与完成度声明项;判据 5 ⇄ 自检 4、7、9;判据 7 ⇄ 自检 6;判据 6/8 ⇄ 载体五的 R1/R2。
> 冲突时:本节管「算不算懂」,后文自检管「怎么查」。
> ⚠️ 判据与「通俗化五手法」不是同构关系:五手法是"怎么写"(可只挑用得上的),判据是"写成什么样算过"(一条都不能跳)——跳了就会出现"手法全用了、读者还是答不出三问"的假完成。
通俗化五手法(核心操作)
按顺序对每一页/每一节套用:
- 白话副标——标题或首行紧跟一句白话解释;行话第一次出现必须配白话(格式:行话=白话)。例:"BOM=全部零件成本合计,即二手卡的'地板价'"。
- 类比先行——新概念先用生活类比开场,再上术语。例:云服务像自来水(水厂→水表要过好几道手);整机交付=精装修;Token=AI 用量的计费单位,类似流量包;专线网络=专用高速路 vs 共享网络=改良市政路。
- 问题驱动导览——章/文档开头先列"读者关心什么问题"(3-4 个),每个问题对应到哪一节;先给答案再展开。
- 一句话记住收口——每节末尾压缩成一句可转述的话(别人听完能复述给同事)。
- 动作清单收尾——结尾必须是"照着打勾就能用"的检查表/口诀(如红线检查 7 项、三不口诀),不是概念总结。
降级规则(工程细节让位于可读性)
先分两类,再决定降级还是保留——这是本节最容易被做错的地方。
| 标注类型 | 例子 | 处置 |
|---|---|---|
| 定位/工程类(读者不需要靠它判断可信度) | 版本号、行号、数据卡编号、§ 章节号、内部队列号(如 Q12)、"骨架节/占位"这类编辑状态标记 |
→ 下沉到页脚 / 尾注 / 来源清单,不占正文 |
| 可信度类(读者靠它判断"这话能不能信") | 来源标注、证据等级、口径差异、"本节内容未写完/占位待补"这类完成度声明 | → 必须保留,只做"精简表达",不得删除、不得下沉到读者看不到的地方 |
> ⚠️ 骨架节 / 占位 / 按 Qn 补全 归属第二类,不属第一类。 它们看着像内部编号,实际语义是"本节内容是占位、尚未写完"——删掉它,读者会把占位内容当成已完成结论,等于制造虚假确定性(与 SKILL 纪律红线、输出纪律 C2/OD-3 直接冲突)。处置:保留该声明本身,只把队列编号(Q12)这类定位信息下沉页脚。
>
> 判据一句话:删掉它之后,读者对内容可信度的判断会不会变?会变 → 第二类,保留。
- 一页一个主论点;副标一句话说清"这页讲什么、对我有什么用"
载体五:自动化/定时任务的定期输出(prompt 层规范)
与前四种载体的根本差别:PPT/报告/邮件/HTML 都有"人写给人看"这道中间环节;定时任务没有——它每天自动生成、直投用户,发布前没有任何人改写它。所以这类输出的通俗化不能靠事后返工,只能把规范写进任务自己的 prompt。
实证(2026-09-15 · 某数据同步定时任务):原 prompt 末段「输出格式」只有一句话——「一句话结论 + 失败明细 + 解析核验结论 + 一行自评审结论」。它只规定"必须包含什么",对"怎么说"零约束 → 执行端自然滑向"把复盘 JSON 的机器字段当人话讲":近 3 日摘要里 exit 出现 80 次、credit 72 次、回退 91 次、去噪 59 次。用户的原话是"输出经常太抽象了"。
从 1 条任务到 N 条任务:母本 + 正本区 + 机检(推广型任务必读)
当要推广的不止一条任务时,禁止把同一套规范分别粘进每条 prompt——多副本必然漂移(本地反例库 #C9-49)。改用三段式:
① 母本(唯一真相源)
<项目>/scanner/output_plain_guide.md ← 人只改这里
├─ 正本区:<!-- RULES_START --> … <!-- RULES_END --> 包住的硬规则 R1–R6
└─ 形态模板 + 自检清单 + 版本历史
│ 生成期:脚本从母本实时读正本区,构造各 prompt 的期望值
▼
② 各 prompt 内嵌一份「逐字节相同」的副本 + 一行指针(指向母本 + 校验命令)
│ 校验期:逐字节比对母本正本区 × 各 prompt 副本
▼
③ 机检 <项目>/scanner/check_plain_guide_sync.py
0=全 PASS | 1=有漂移 | 3=前置(母本读不到/哨兵缺失)不满足
五个必踩的坑(2026-09-15 实测,6 条任务推广过程中逐个踩到):
| # | 坑 | 症状 | 处置 |
|---|---|---|---|
| 1 | 跨 cwd 用相对路径=死链 | 任务 cwd 分散在多个项目目录,scanner/xxx.md 只有同目录的几条能用 |
规范里一律写绝对路径,并在块内注明原因 |
| 2 | "文末追加"不幂等 | 重跑一次就粘两份规范 | 改为「先找既有块 → 找到就整块替换、找不到才追加」;改完 grep -c 验证计数恒为 1 |
| 3 | 只改 prompt 不改 memory 版本表 | 版本门禁(check_version_sync.py)当场报 6 条全不一致 |
新版本行插在表首行之前(门禁取第一个匹配行) |
| 4 | 只换版本号、不换日期与说明 | 头部出现"新版本号 + 旧日期"的假同步 | 用整行替换(pat 锚点必须唯一命中),不要做 replace(旧版本号, 新版本号) |
| 5 | 期望值靠手抄 | 19K 字符的 prompt 肉眼核对必错 | 写期望值生成脚本(从母本读正本区、按形态拼装),让"逐字节一致"由构造保证,再 --verify 回读 DB 对比 |
执行顺序(固定):改母本 → 生成期望值 → 逐条提交 → 逐字节回读 → 补 memory 版本表 → 跑母本一致性机检 → 跑三处同步门禁 → 写交付与记忆。
形态 A 的五段骨架("产出入库"类任务;顺序固定,段标题即人话)
| 段 | 回答的问题 | 硬约束 |
|---|---|---|
| ① 今天做了什么 | 结果是什么 | ≤3 句、先给答案;不出现任何字段名 |
| ② 需要你动手的事 | 要我做什么 | ≤3 条,每条=做什么+在哪找(位置锚点)+怎么做;禁止"第 N 条"(列表顺序常 ≠ 时间序)、禁止让用户去搜索(这类条目正文为空,必零命中) |
| ③ 出问题的几条 | 坏在哪、内容丢没丢 | 表格;逐条回答"内容丢没丢"——这是用户唯一真正关心的事 |
| ④ 体检 | 整体健康吗 | ≤3 行;先给结论;禁止把自证算式(如"守恒 358+7+3=368")写进正文 |
| ⑤ 系统自己的判断 | 要不要我操心 | ≤2 行、只给结论(一切正常/已自动处置并说明原因/已停止自动改动,需你介入) |
四种输出形态(同一条规范、不同骨架;先选形态再写)
| 形态 | 适用 | 骨架 |
|---|---|---|
| A 产出入库型 | 有明确"产出了什么、要不要用户收拾"的任务(如知识库同步) | ① 今天做了什么 ② 需要你动手的事 ③ 出问题的几条(含"内容丢没丢") ④ 体检 ⑤ 系统自己的判断 |
| B 每日情报型 | 每日筛情报/给判断的任务(素材扫描、监管摘要、聊天文件日报) | ① 今天最值得注意的 ② 需要你动手的事 ③ 系统自己的判断 |
| C 体检诊断型 | 监测/质检类任务(看门狗) | ① 跑得怎么样 ② 有没有做多余的事 ③ 有没有该报没报的(人话摘要与原样转述两层并存,见 R5) |
| D 周期报告型 | 周报/月报类任务 | ① 本期人话摘要(3–5 句)→ 之后模板与字段名逐段原样保留(见 R6) |
形态选择规则(可判定):看任务主产物是什么——入库/落盘→A;筛选情报→B;只做检查不产内容→C;周期性汇总→D。拿不准时按 B(三段最薄,漏写风险最低)。
六条硬规则
- R1 结论先行 + 骨架固定:第一句就回答"今天怎么样";本形态的段数与顺序不许改,段标题用中文短句。禁用"已完成""同步结束""流程执行完毕"这类零信息开场——不得让用户读到最后才知道结论。
- R2 行话首现必配白话:格式"中文白话(原词)",如"网站没返回正文(no_content)";第二次起可只用中文。
- R3 机器信息不进正文:退出码、字段名、脚本与组件版本号、计数自证算式,一律并到文末「技术备注」一行。判据:凡不改变用户判断的信息,一律下沉。
- R4 通俗化只改说法、不改结论强度(本载体最易破的一条):拿不准的照旧写"疑似/待确认";失败类别照实说——抓取失败 ≠ 站点反爬 ≠ 缺陷在己方,没证据的那一个不许提。把话讲白,最容易顺手变成"把话讲死"。
- R5 通俗化不得削弱完整性(推广到多条任务时才暴露的一条):原文凡要求"必须原样转述 / 不可省略"的内容,一律改为「先给人话摘要,再附原始转述,两段并存」;禁止用摘要替代原始输出。理由:这类要求是防漏报设计——它的价值恰在于"把没报出来的那部分也摆出来",而写摘要是做减法,替代掉它等于拆掉防漏报机制(输出更好看、漏报风险反而升高)。
- R6 不得为求好懂而改机器可读的产物:规范只作用于"给用户看的回复"。日报结构/节号、报告字段名、台账格式、脚本 stdout 一律原样——它们要被下游程序解析、被下一期当对比基准读取,改字即断链。要加白话就旁边另起一段,不要就地改写。
> R3 与上文「降级规则」的接口:机器信息属第一类(定位/工程类)→ 可下沉到文末技术备注;但证据等级、口径差异、完成度声明仍属第二类,必须留在正文,不许跟着机器信息一起沉下去。
本载体专属自检(4 条)
- 正文里还有机器话吗(可机检):在正文(技术备注行之前)搜
exit \d、\w+_attempts、守恒 .*=—— 命中即不通过。 - R4 有没有被顺手升格(需回查源数据):把每条"坏消息"拎出来逐个回查源数据 —— 源里是"疑似/待确认"的,输出里不许变成"就是"。
- R5 原样转述段还在吗(可机检):
grep原文要求的转述段(看门狗的效率段/范围收敛段、周报的报告模板段等)——摘要只能加在它上面,不能在输出里找不到它。找不到 = 防漏报机制已被摘要替换掉。 - R6 产物有没有被动过(可机检):把本次回复涉及的产物文件与上一版
diff—— 本规范只允许改"回复",任何产物结构/节号/字段名的改动都要能指出上游依据;指不出来 = 越界改写。
落地要点
- 改的是任务的 prompt,不是当次回复 → 按「配置同步铁律」走三处同步(名称/prompt 头部/记录表)+ 当场跑门禁;改前必备份与文本快照,改后必做逐字节回读(多数平台 prompt 只支持全文替换,肉眼核对 7–8K 字符必出错)。
- 结构规范要连同"反例"一起写进去("不许出现
exit 0这类字样"比"请写得通俗些"有效得多)——只给正向要求的规范会空转。 - 同一次改动涉及"回复写法 + 任务机制"时,只改回复写法那一部分(机制改动属另一条授权线,不可搭车)——修改范围要能一句话说清,说不清就是扩权。
- 推广后必须验证"两层都在":人话摘要层(新加)与原样转述层(原有)同时存在才算合格(R5);只看到摘要 = 已悄悄削掉完整性。
- 观察期怎么设(规范刚铺开时):盯三项可肉眼判的——① 回复第一句是不是结论(R1)② 还夹不夹机器话(R3)③ 术语首现有没有白话(R2)。三项都稳了再谈扩大范围。
- 扩大范围前必须先补齐两件事(否则规范会退化成"凭感觉选形态"):① 受管清单改为从任务注册表动态读取(硬编码清单扩不动);② 形态分派规则要可判定(按主产物类型分,不由模型自由选)。
载体六:内部决策沟通(“接下来做什么 / 要我拍板什么”)
与前五种的差别:受众是要做决定的人,不是要读汇报的人。所以「降级规则」在这里必须改判一次——判据从「读者靠它判断可信度吗」换成「读者靠它做这个决定吗」。判据会变 → 保留,哪怕它是个版本号或内部编号。
最容易做错的一条:把顺序讲成清单。凡有依赖的几件事,讲成“任选勾选”的菜单 = 悄悄改掉了建议的含义。(实例:某步必须先有上一步的产物才算数——讲平了就变成“先做哪个都行”。)
骨架(五段,固定;段标题用大白话):
| 段 | 回答 | 硬约束 |
|---|---|---|
| ① 接下来干什么 | 先给答案 | ≤3 句;一句话说清共几件事 |
| ② 为什么是这个顺序 | 依赖讲白 | 凡有依赖处,必须点明「谁必须先、为什么」 |
| ③ 每件事的代价 / 做完你多知道什么 | 值不值 | 成本落到具体(“不用出门”“打开文件看几眼”“跑一次”),不许只写“高/中/低” |
| ④ 要你拍板的是什么 | 我停在哪 | 逐条列出待决项,并注明“我为什么不自己定” |
| ⑤ 我明确没做什么 | 守范围 | 一句话(如“本轮未改动任何机制”)——这是决策者判断风险的前提,不许省 |
三条专属自检:
1. 待拍板项有没有讲丢(可判):源清单里的每个待决项,通俗版里都能找到;丢一个 = 不通过(决策者会漏拍)。
2. 依赖关系有没有被讲平(可判):原文凡有“必须先 / 依赖 / 前提”处,通俗版仍是“必须先”,不许退化成并列。
3. 成本有没有被抽象掉(可判):正文不许只留“低成本/高成本”——必须能回答“要不要出门、要不要花钱、要动几个东西”。
一个手法:用“已经发生过的真事”替代抽象必要性。大白话里最有说服力的不是“这很重要”,而是“今天真的又发生了一次”。
载体七:项目解码类(“甲方为什么买 / 我司站哪 / 找谁合作”)
与前六种的差别:受众同时包含两类人——要拍板的人(决策层)与要动手的人(市场、交付、商务)。所以它的通俗化不是把专业话变浅,而是把"专业报告里没写、但决策需要"的那部分单独写出来。专业报告回答"怎么打分";本载体回答"值不值得进、我们站在哪、该找谁"。
触发场景:招投标项目的甲方视角解码 + 乙方生态位/合作伙伴策略同步产出(典型:售前分析、标讯研判、是否备标的决策材料)。若所在工作流已有"专业分析册",本载体产物默认作为第二册并排交付,不要等读者追问。
骨架(8 段,顺序固定;段标题用大白话):
| 段 | 回答 | 硬约束 |
|---|---|---|
| ① 问题导览 | 读者关心什么 | 3–4 个读者的问题(不是章节名)+ 每个配一句话答案+去哪节 |
| ② 甲方·背景 | 为什么是现在 | 每条动因都要能指回原始文件;推断必须标注,不得替对方表态 |
| ③ 甲方·内容 | 买的是什么 | 先用生活类比讲清(如"白帽黑客队 vs 安检门加保安"),再上白话能力表;硬指标单独一张白话表("相当于高速公路车流量标准") |
| ④ 甲方·价值 | 这笔钱花在哪一层 | 分层列,并点明哪一层是对方真正想要的(通常是最不容易看到的那层) |
| ⑤ 我司·处境 | 我们能不能进 | 事实边界 + 可用通道(逐条附原文或计数)+ 规则空档(空白处必须写"不能按经验猜") |
| ⑥ 我司·伙伴 | 找谁、怎么筛 | 分层(主合作方/能力补位方/我们自己的角色);主合作方逐条标注"对应多少分 + 要对方给什么 + 先筛哪几项";合作模式按推荐顺序排,含明文排除项 |
| ⑦ 一句话收口 | 全篇记住什么 | 一句可转述的话 |
| ⑧ 待核实与红线 | 哪些没确认 | 逐条列【待核实】+ 硬红线(他领域业绩不得当本项目业绩)+ 附录式行话对照表(行话=白话) |
四条专属自检:
1. "事实/推断/待核实"三类标注齐不齐(可判):逐句扫,凡判断类表述必带标注;替对方表态 = 不通过(例:把"我方推断甲方将放量"写成"甲方即将放量")。
2. 他领域业绩有没有被顺手当成本项目业绩(可判):凡出现自家业绩/案例,回查本项目对"同类"的定义与排除条款(常见明文"运营支撑或维护服务类项目不予认可")——对不上就删,或就地写出"不能计入本项"。
3. 数量声明与实际列项是否相等(同自检第 7 条):凡"N 条通道 / N 项硬条件 / N 层价值",逐一数出实际列了几条。
4. 读者读完能不能直接拍板(需人工判):末段必须能回答"投 / 不备标但做伙伴 / 只跟踪"三选一,且三段结论写全(事实边界 → 可用通道 → 必须澄清的空档),只写第一段 = 把决策者的选项也砍掉了。
一个手法:把"不能做"和"不能做什么"分开写。"不能投标"是事实;"不能参与"往往是没查证就下的结论——先用关键词检索把"角色/通道"证据摆出来,再下结论。通俗化的价值在这里恰恰是"把查证结果讲给非专业读者",而不是把结论讲得更软。
产出前自检(逐条可判;含机器可判项,全过才算完成)
> 为什么是 9 条:v1.1.0 的 5 条自检里,漏掉了本技能唯一两条可机检的强判据(数字逐数比对、HTML 注入检查)——数字写错、类比缺失的交付物可以"5 条全过",存在假完成路径(v1.2.0 补为 6 条)。
> v1.9.0 再补第 9 条:第 7 条管"数量声明",但"原表有几列"它查不出来 —— 2026-09-17 实测踩到(详见第 9 条注)。行与列是两个维度,查了行不等于查了列。
> v1.3.0 再补第 7 条:第 4 条管"数字对不对",但"声称列了 N 项、实际只列了几项"它查不出来 —— 2026-09-15 实测踩到(详见第 7 条注)。正确性检查 ≠ 完整性检查。
> v1.4.0 再补第 8 条:第 4/5 条都管不住"源文根本没有、自己加进去的定性承诺"(如"当天出片")—— 同日第二次实测踩到(详见第 8 条注)。改写 ≠ 创作:改写类材料不得新增源文没有的事实性声明。
- 每个行话首次出现都有白话解释吗?(可判:全文搜缩写/术语,逐个确认其首次出现处有「术语=白话」格式,或已在术语表内)
- 每节有"一句话记住"或等价收口吗?(可判:逐节检查末句是否为可转述的一句话,而非概念罗列)
- 开头是问题导览而不是目录复读吗?(可判:开头列的是"读者的问题"还是"章节名")
- 数字逐数比对过了吗?(机器可判:改写后对每个数字
grep源文件,逐一确认一致、量级未错。不通过 = 直接不许交付)
▸ 同族:字数/篇幅类要求也必须实测(2026-09-20 实证):用户要求"300 字左右"时,初稿凭手感写了
336 字(含标点),用脚本数一遍才发现超标,精简后 319 字。凡"约 N 字 / N 行以内 / 不超过一页"
这类约束,写完必须用脚本计数,并同时报两种口径(纯汉字数 / 含标点数字的总字符数)——
中文语境的"字数"两种口径都有人用。人对字数的直觉误差常在 ±15%。参考实现:
python
import re
flat = text.replace('\n', '').replace(' ', '')
print(len(flat), len(re.findall(r'[\u4e00-\u9fff]', flat))) # 总字符数 / 纯汉字数
5. 该保留的可信度类标注还在吗?(grep 全文:来源标注、证据等级、口径差异、完成度声明(骨架节/占位/待补)——任一丢失 = 不通过)
6. 工程标注(版本/行号/§/内部编号)已降级到尾注了吗?(可判:对外载体 grep 正文不应出现 § 与行号)
> 实现与边界(2026-09-22 实测补):把文件按「附录/尾注起点」切成正文段与尾注段两半(判据=## 附录 这类标题行本身作为切点),只对正文段跑 grep;命中后逐条判「该下沉还是保留」,不要一看到路径就删。
> - 可下沉(第一类):行号、§编号、exit N、手册坐标(如 L1035)、脚本名 —— 处置=改写为白话 + 在尾注补列一行坐标(例:"对应手册里一处已有记录(编号见附录 A)",附录 A 保留 L1035 原值)。
> - 不得下沉(第二类·可信度类):表格里的「出处/来源」列虽是文件路径,仍属来源标注,必须留正文——读者要靠它自己去核数。同理:单源/待验证/完成度声明一律留正文。
> - 判据一句话:删掉它之后,读者自己去核实的路径会不会断?会断 → 留在正文。
> - 必须带负向用例:往正文段注入一行伪 §/伪 L9999/伪 exit 7,确认检查器命中数 > 0——没被负向用例证明过的检查器=没有检查器。参考实现(回归脚本可复用):
import re, io
lines = io.open(path, encoding='utf-8').read().split('\n')
i = next(i for i, l in enumerate(lines) if l.startswith('## 附录')) # 切点:尾注起点
body, tail = '\n'.join(lines[:i]), '\n'.join(lines[i:])
PATS = [r'§', r'\bL\d{3,}\b', r'\bexit\s*\d']
assert all(re.findall(p, body) == [] for p in PATS), '正文残留工程标注'
for fake, p in [('\n§9.9', r'§'), ('\n见 L9999 行', r'\bL\d{3,}\b'), ('\nexit 7', r'\bexit\s*\d')]:
assert re.findall(p, body + fake), f'检查器抓不住 {p}' # 负向用例
- "声称的数量"与"实际列了几项"对得上吗?(机器可判:凡出现
N 类 / N 项 / N 条 / N 个 / 全部 / 逐一这类数量声明,逐一数出该处实际列出的条目数,确认与声明相等。不通过 = 直接不许交付) - 源文里没有的"事实性声明"被我加进去了吗?(可判:把每一句"读者/客户听了会形成预期"的话拎出来 —— 时效、能力、效果、承诺类表述(如"当天出片""不用等排期""随时改随时重出"),逐句回溯源文位置。源文有 → 保留并对齐措辞;源文没有 → 删掉,或标注外部出处 + 限定条件。不许凭空新增。)
> 第 7 条为什么必须单列(2026-09-15 实测踩到):这是第 4 条的邻近盲区。当时写"把市面上 8 类渠道的价格全部摊开",而表格里实际只列了 5 行 —— 每一个数字都是对的(0.23、0.99 均已逐数比对通过),错的是声明的数量与列举不符。第 4 条按数字逐个查,结构上查不出这类问题。
> 判据一句话:第 4 条问"数写对没有",第 7 条问"东西列全没有"。二者不能互相替代。
> 同源:pptx-memslides 失败经验「模式 28:把表格改成图表时发生信息降级,而检查全绿」—— 同属信息完整性问题,与"对不对"无关。凡做过删减、改写、换载体(长文→表格/PPT/邮件)的交付物,都要走这一条。
> ⚠️ 检查器自身的坑(2026-09-13 起四天内踩到 3 次,与 pptx-memslides 模式 27 同源):数条目时扫描范围必须先限定到目标小节,否则会把上游同形态的编号一起算进来 —— 实证:用 ^(\d)\. 数"自检条数",命中上文「通俗化五手法」的 1–5,把 8 条报成 13 条;用 ^\*\*[①②③] 数"三件事",命中后面「第一梯队」的 ①②③,把 3 项报成 6 项。误报的代价与漏报同级:它会让你去"修"一个本来没错的地方。判据:报出异常计数时,先打印命中的原文逐行核对范围,再下结论。
> 第 8 条为什么必须单列(2026-09-15 实测踩到,同一天第二次):第 4 条管数字、第 5 条管可信度标注有没有被删,但都管不住"源文根本没有、我自己加进去的定性承诺"。当时写"当天出片、不用等排期",回去搜源报告 24 页 —— 当天 / 出片 / 时效 / 排期 命中 0。这不是数字错,也不是夸大,是自造承诺,两条既有红线(数字零编造、不夸大)都拦不住。
> 危害因载体放大:这类"转述型材料"常被下游(销售、同事、客户)拿去对第三方复述 —— 自造承诺等于让他们替我们背书一件做不到的事,坏了的是他们的信誉。
> 判据一句话:能不能在源文里指出这句话的位置? 指不出来 → 删掉,或补外部出处 + 写清成立条件。
> 若确需引入源文外的数据(如厂商公开实测):必须 ① 标注来源(哪个官方页面/报告)② 标注"非本报告结论"③ 给出限定条件。示例处置:把"当天出片"改为"生成极快(厂商公开实测:30 秒视频纯生成约 1.5 分钟)—— 脚本定稿后当天可出素材,成片周期看客户审片轮次"。
- 引用表格类内容时,逐列核对过「维度是否完整」吗?(机器可判:把原表的列数与引用后的列数并列比对,逐列确认落点;凡"某列不见了"即为维度丢失。不通过 = 不许交付)
> 通俗化场景下的高危三列(2026-09-22 实测补):改写时最容易被"顺手"合并掉的固定是这三列——① 位置(哪里的问题)② 建议/怎么修 ③ 出处/来源。前两列看着像工程细节、第三列看着像路径,都容易被并进正文一句话里;但:①是读者定位问题用的、②是读者拍板用的、③是读者自己核数用的,三列都属「读者要靠它做决定/核实」那一侧。
> 处置:只允许"换说法",不允许"减列"。确要压缩时,把该项移到附录并在表内留指针(如"位置见附录 A"),不要直接删。自查话术:我这张表比原表少几列?少的那几列,读者还找得到吗?
> 第 9 条为什么必须单列(2026-09-17 实测踩到):把 MoMA 官方一张 4 行 × 5 列 的资费表引用进报告时,我压成了 2 行 × 2 列 —— 丢掉了「视频分辨率」(480P/720P vs 1080P)与「抵扣比例」两列,等于把 4 档单价砍成 2 档、把定价机制砍成两个数字。而自检第 4 条(数字逐数比对)全过 —— 因为留下的数字(56 / 92)每个都对;第 7 条(数量声明)也没报 —— 因为我没有声称过列数。
> 判据一句话:第 7 条问"声称 N 项、实际列了几项",第 9 条问"原表有几列、引用了几列"。表格是二维的,只数行不数列等于只查了一半。
> 同源:pptx-memslides 失败经验模式 28(换形式导致信息降级)、模式 32。凡引用表格、或把表格改写成正文 / 图形的交付物,都要走这一条。
> 附:引用类任务的三步原文核对法(2026-09-17 立)——
> 1. 不信任提取文本:文本提取产物会整段丢掉表格(实测某份 PPTX 的两张资费表在提取结果里只剩标题行,数字全无)。凡涉数字,回原始文件直读(表格用 python-pptx 的 shape.table)。
> 2. 核对维度完整性:对照原表列数,防"多列表压成单列表"(即本条)。
> 3. 核对归属:每条数据属于哪个产品 / 哪个区域 / 哪个统计期,逐条回原文的页面与区块坐标确认 —— 同一份材料里"30 天"与"90 天"并存、且分属不同对象,是该类错误的典型形态。
> 顺序说明:手法的 1–5 是"怎么写",自检的 1–9 是"写完怎么验"——两者不是同构映射(自检 4/5/7/8 是手法之外的守门项)。逐页套用手法 → 全文走完自检,不要逐页做自检。
>
> HTML 单页载体的两条机检(v1.1.0 补,归入上面第 4/6 条):①对数字与源文件 grep 逐项比对;②交付前查 data-page-node-id 注入属性(WB 预览会逐标签注入,需回滚干净版)。
纪律红线
- 数字零编造:改写前先核对源文件,改写后数字必须与源一致(
grep反查,见自检第 4 条)。 - 不得新增源文没有的事实性声明(见自检第 8 条):时效 / 能力 / 效果 / 承诺类表述必须能在源文指出位置;源文没有的,删掉,或标注外部出处 + 成立条件。改写类材料的下游常会拿去对第三方复述 —— 自造承诺是让别人替我们背书。
- 通俗≠营销化:不夸大、不省略限定条件(如"S4 单源待验证"这类证据等级必须保留)。
- 可信度类标注一律保留(来源/证据等级/口径差异/完成度声明),处置规则见上文「降级规则」表。
- 主张归属:本技能只定义怎么把专业话说白(表达层);"改写不得降级证据状态"的权威定义在
output-discipline的 C2/D4(证据状态层)。二者冲突时以输出纪律为准并回改本技能。 - 本技能是"不得删"这一侧的特化:通俗化的自然方向恰恰是升确定性(把"待验证"讲成"就是这样"),所以本技能额外不得放宽为"只是不许删"——改写后证据状态必须与源文一致,既不许降、也不许升。
- 对照正反例与四种载体(PPT/文档/邮件/HTML 单页)的具体写法,见
references/plain-style-guide.md(写前必读)。
本文引用的外部坐标(供无上下文模型解析)
| 指涉 | 含义 | 真源位置 |
|---|---|---|
S1~S5 证据等级、·双源/·单源/·待验证 |
数字可信度标签 | 通用证据分级规范(S1 官方一手 / S2 权威二手 / S3 自媒体 / S4 转述 / S5 未验证) |
| "红线检查 7 项" | 手册 §6.8 的七项勾选清单 | 同上手册 §6.8 |
| "三不口诀" | 手册内原称"黄金法则"("三不"是派生脚本里的叫法) | 同上手册 §6.8 附近 |
data-page-node-id |
宿主预览面板对 HTML 逐标签注入的属性,须回滚 | 见正文「HTML 单页载体」节的机检纪律 |
> 纪律:对外或对无上下文模型引用上表内容时,须带上表左列的真源位置,否则引用不可解析(本技能 v1.1.0 即因未给指针而被评审判为悬空引用)。