一个 Codex Skill:用冯唐说理散文的语言结构写中文长文与文案。
不是模仿冯唐的腔调,也不是复读他的金句。它提取的是结构和节奏:
- 全文只有一个可证伪的判断,结论前置不铺垫
- 单句成段占 38%~53%(五种文体一致),一段只装一个判断
- 段落起手句比段内其余句短 6~13 字
- 问句密度按文体分档:议论 4.89 次/千字,随笔 2.59,文评 2.74
- 比喻密度按文体分档:议论 0.9,随笔 2.6,文评 3.0,小说 3.3(他写议论文时几乎不用比喻)
- 收口不用"综上所述",用引语或回扣
- 形式达标不等于逻辑通:判断句不许循环定义,三足各自独立成立,每个设问都要被正面回答
从七本书约 100 万字正文里量化提取,并作六组对照:
| 语料 | 汉字数 | 性质 |
|---|---|---|
| 《金线》《成事心法》 | 219,388 | 议论体 |
| 《三十六大》《活着活着就老了》 | 222,787 | 随笔体 |
| 《活着活着就老了》卷一/卷二 +《如何成为一个怪物》独有篇目 | 82,981 | 文评体(书评与人评) |
| 小说合集(已剔除混入的散文) | 429,690 | 叙事体(对照) |
| 《成事》冯唐白话点评 | 37,259 | 短评体(对照) |
| 《成事》曾国藩文言原文 | 14,900 | 真文言(对照) |
多本 EPUB 之间存在大量重叠(《三十六大》87% 也收在小说套装里),所以分组前先用 12 字滑窗指纹做了跨书去重,重复段落只计一次。
参考区间由 tools/calibrate.py 用分位数标定:把语料切成长约 1500 字的窗口,取各项指标的 p10~p90 作为"合格区间"、中位数作为"典型值"。
完整实测数据与方法见 references/language.md。
.
├── SKILL.md 流程主干:六条硬机制 + 五步写作流程 + 红线
├── references/
│ ├── structure.md 骨架模板、递进关系、开头与收尾句式库
│ ├── language.md 全部量化指标、句式规范、词汇与标点规范
│ ├── logic.md 表达逻辑:判断句检测、三足独立性、设问兑现、非法衔接
│ ├── anti-patterns.md 油腻六形态、结构性失败、逻辑性失败、诚实边界
│ ├── checklist.md 四遍自检清单(逻辑遍 / 结构遍 / 语言遍 / 油腔遍)
│ └── examples.md 三组 before/after + 一篇通过自检的完整范文
├── tools/
│ ├── check_style.py 自检工具:议论/随笔双模式,输出合格区间、典型值与逻辑告警
│ ├── calibrate.py 参考区间标定:用语料窗口的分位数推出合格区间
│ ├── extract_epub.py 语料提取(EPUB → 纯文本,含印刷行回流与重复段清理)
│ ├── style_stats.py 语料量化分析(六组语料对照 + 跨书去重)
│ └── pattern_mining.py 句式与结构模式挖掘
├── demo/ 示范稿与校准样本(含版权原文,已 gitignore)
└── corpus/ 原书与提取文本(含版权内容,已 gitignore)
把稿子写好之后跑一次自检:
python3 ~/.codex/skills/fengtang-style/tools/check_style.py demo/焦虑不是情绪问题.md # 议论模式
python3 ~/.codex/skills/fengtang-style/tools/check_style.py 我的随笔.md 随笔 # 随笔模式它会输出每一项指标的实测值、合格区间(语料窗口 p10~p90)和典型值(同文体中位数),并扫描油腻词、鸡汤句式、学术腔三类红线词。"合格"判合不合格,"典型"判像不像。
重新跑语料分析(需要先把 EPUB 放进 corpus/):
python3 tools/extract_epub.py corpus/*.epub
python3 tools/style_stats.py
python3 tools/pattern_mining.py
python3 tools/calibrate.py新书不要直接丢进分析,先体检,否则脏数据会污染分位数标定(《如何成为一个怪物》就是这样被查出来的):
- 看提取质量。
extract_epub.py会打印两行体检信息——硬换行回流章节数(扫描版 EPUB 的一行一个<p>排版会被自动粘回自然段)和删除重复段落(扫描稿常见的成块重复)。回流数为 0 而段落长度中位数只有 20 多字,说明这本书的排版没被识别,需要先查 XHTML 结构。 - 查跨书重叠。 本批 EPUB 之间大量互相收录(《三十六大》87% 也收进小说套装,《如何成为一个怪物》与《活着活着就老了》重叠约四成)。做法是用段首 40 字做指纹两两比对:重叠超过 20% 的书,进分析前必须去重,否则同一段文字会被统计两次。
- 定分组。 看这本书是议论、随笔、还是书评文评。若属于已有分组,并入即可;若是新文体,在
style_stats.py与calibrate.py里新增一组并重标分位数,再决定是否值得为它单列一个自检模式。判断标准是窗口分位数是否真的分得开——《文评体》标定下来与随笔体几乎重合,所以没有单列模式。
ln -s "$(pwd)" ~/.codex/skills/fengtang-stylecorpus/ 与 demo/校准样本/ 存放原书与原文摘录,仅供本地分析,不上传、不传播,已在 .gitignore 中排除。
references/ 中的所有示例均为原创改写,不使用原文大段引用。
本仓库分发的是方法与派生数据——六组语料的统计量、分位数、句式规律,以及分析这些数据的工具代码。统计量是事实性数据,不含原作表达。复现分析需要你自备语料,放进 corpus/ 后按上面的命令跑。
本技能使用「冯唐」之名仅为说明其风格来源,属指示性使用,与作者本人无关,未获其授权或背书。
MIT License,见 LICENSE。可自由使用、修改、分发,包括商用。