← 全部项目

18trees-AI-writing-skill

把中文口播稿整理干净、又不把作者声音抹平的 skill:修正 ASR 错误与口播污染,同时提供装进 Claude Code 与 Codex 的拆分版,和可以粘给任意 AI 聊天工具的单文件版。

文章目录[4]

项目是什么

18trees-AI-writing-skill 是一个中文口播稿整理 skill:把“作者已经想明白、但口播表达较乱”的原稿,整理成一篇仍然明显像作者本人写的文章。

它要处理的是语音输入留下的那一坨——口水词、断句乱、专名错、一整块不分段——以及随后更麻烦的一步。直接丢给 AI 整理,文章会变干净,但读起来不像你了:它会替你升华结论、把观点写软、塞进“不是……而是……”、拆成一堆 bullet list、加粗到发光。

所以这个 skill 反过来做:整理优先于润色,保真优先于稳健。事实和口播污染可以修,作者的观点、语气和锋利度不动。它面向用语音输入写自己稿子的人,落地方式有三种:装进 Claude Code、装进 Codex,或者把合订版粘给任意一个 AI 聊天工具。CONTRIBUTING.md 里也写明了边界:不接受批量洗稿和伪原创他人内容的用法。

具体结构

18trees-AI-writing-skill Architecture A architecture diagram generated by Archify. Rule source · skills/ Two delivery forms Evidence and change control SKILL.md · priorities · red lines · Rule source · skills/ SKILL.md priorities · red lines references/ · six files, on demand · Rule source · skills/ references/ six files, on demand Claude Code · Codex · installed as a skill · Two delivery forms Claude Code · Codex installed as a skill Build Script · scripts/build-dist.sh · Two delivery forms Build Script scripts/build-dist.sh Any AI Chat Tool · paste the whole file · Two delivery forms Any AI Chat Tool paste the whole file Bound Single File · all rules in one file · Two delivery forms Bound Single File all rules in one file Worked Example · draft → final, per rule · Evidence and change control Worked Example draft → final, per rule Cumulative Rule · ten rules, never cut · Evidence and change control Cumulative Rule ten rules, never cut installed reads reads generates pasted in

整个仓库只有一条主线:规则写在 skills/ 里,由脚本合成合订版,再交付到不同的工具。图里最下方的那组节点不在这条数据流上,它们是这个仓库自证与自我约束的部分。

规则源。 规则只维护在一个地方:skills/voice-preserving-essay-editor/。SKILL.md 是入口,写任务本质、六条编辑优先级、事实与观点的边界、AI 味红线和段落硬约束;细则按主题拆成六个文件放进 references/,用到哪条读哪条。入口保持精简,是为了让 skill 在 Claude Code 和 Codex 里都跑得好;目录里另有一份 agents/openai.yaml,只提供 Codex 的界面元数据。

生成物。 拆分版和单文件版不能各自维护,手抄必然走样。scripts/build-dist.sh 从 SKILL.md 里读出 version,剥掉 frontmatter 和只对拆分版有意义的路由表,把入口与六份细则拼成 dist/voice-preserving-essay-editor.md——一份所有规则都在里面、不依赖任何外部文件、插件或 API 的合订版。改规则只改 skills/,改完跑一次脚本重新生成。

交付。 拆分版整份装进工具:Claude Code 走插件市场安装,Codex 复制到 skills 目录。没有 skill 机制的工具则收到合订版全文,粘贴即可,不需要安装任何东西。

自证与约束。 examples/ 放着一份真实的口播转写原稿和整理后的成稿:原稿 620 字,保留了 ASR 错误、口水词和半截句,成稿逐条标注了每处改动对应哪条规则。CONTRIBUTING.md 定义了这个仓库的核心约束——这是累计式 skill,只增量优化不回退——并列出 10 条不得弱化的规则。

优秀设计

整理 > 润色 > 改写。 这是写进任务定义的一句排序:如果“更漂亮”与“更像作者原文”冲突,优先后者。围绕它的六条编辑优先级里,最后一条才是“稳健、中性、更容易被普遍接受”;作者允许激进、片面、强硬,也允许写下一个以后可能被自己推翻的判断。

事实可以纠正,判断不自动中和。 人名、作品名、明确的数据和年份、ASR 专名错误,属于可以检索并修正的部分;而对社会结构的理解、价值判断和“我认为”的个人立场,不会因为缺少证据就被降格成“可能”“也许”。检索只负责纠正事实,不负责给作者降调。

AI 味句式被点名封禁。 “不是……而是……”被列为最高风险的句式:原文没有就不主动制造,原文已有也要判断是否必要,同一章节出现多次必须逐一检查。同类句式、把文章改造成大量 bullet list、擅自升华结论、频繁使用“首先/其次/综上所述”,都在禁止清单里。默认原则是“能直接说是什么,就直接说”。

段落节奏是硬约束,而且规则本身可以演进。 随笔的基本单位是完整段落,默认 2~5 句;独立短句通常每 4~6 个自然段最多 1 个;禁止用空行制造“高级感”“电影感”。这套规则还保留了版本演进:v0.6 把段落完整性升级成硬约束,v0.7 改成以中等长度段落为主——后一代修正前一代,但不推翻。

改规则只改一个地方。 规则的源文件只有 skills/,dist/ 是生成物,两边内容必须一致。AGENTS.md 把验证方法也写死了:改完重跑一次生成脚本,git diff 应该没有任何输出。

只增量,不回退。 CONTRIBUTING.md 的核心约束只有一条:新规则只能增加、修正或细化,不得删除已经验证有效的旧规则;觉得旧规则有问题,正确做法是提出一条新规则来细化或限定它。其中 10 条被维护者确认为不可回退。

解决了什么问题

  • 转写留下的 ASR 错误、错别字、专名和事实错误会被修正,口水词、断句污染和半截句会被删掉。
  • 观点不会被写软:强判断不会变成“可能”,原文没有的“不是……而是……”不会被塞进来。
  • 排版会被重排——小标题、加粗、段落切分——但结构化程度由内容决定,随笔不会被改成公众号鸡汤或咨询报告。
  • 一套规则在三种工具里生效:Claude Code 和 Codex 装拆分版,任意 AI 聊天工具粘合订版,后者不需要安装任何东西。
  • 每次改规则都能自我验证:重跑生成脚本、确认 git diff 为空,再对照 examples/ 走一遍,确认示例仍然符合规则。
  • 输出前的最后一道自检只有一个问题:我是在整理作者,还是在替作者写作?
0