| name | ray-writer |
| description | 把灵感、剪藏审核卡、调研包或已有草稿装配成有事实、有情绪、有网感和传播力的中文长文,接入本地 Obsidian 知识库的成稿、发布与复盘流程;也把外文/他人文章做成带授权署名的译介稿。用于“把这个 idea 写成文章”“写一篇公众号或 X 长文”“检查或重写这篇文章”“翻译/转载这篇文章”时。找不到兼容知识库先转交 ray-obsidian;定稿改口播稿转交 ray-kb;不虚构用户经历,不自动发布,也不使用 WeWrite。 |
Ray Writer
把写作当成一条可追溯、但不露出生产线痕迹的过程。
原创长文默认只做四件事:先确定读者收获和一个核心冲突,再划清事实边界,由同一个写作者连续完成全文,最后做一次自然语言自修和终检。文章原型、情绪曲线、反方和传播句都是修复工具,不是每篇文章动笔前必须填满的表格。
固定原则
- 只使用用户明确提供或可以从本地材料核实的个人经历。缺少个人素材时,写成观察与判断,不补故事。
- 区分事实、来源观点、合理推论和作者立场。时间敏感或高风险事实必须重新核对。
- 情绪和网感是正式质量维度。增强真实张力、口语节奏和传播记忆点,不硬塞热梗,不制造虚假危机。
- 借鉴优秀作者的机制,不复制其人设、口头禅或经历。整篇内容属于别人时不走原创流程,走译介模式,靠授权和署名解决,不靠改写规避。
- 一个主题只保留一份当前草稿。不要把新观点直接追加到原始资料、审核卡或长期知识笔记末尾。
- 不自动发布。最终署名判断与发布动作由用户确认。
- 母稿是事实与判断的唯一真源。口播等衍生再分发由
ray-kb 承接,衍生稿必须绑定母稿路径和内容指纹;母稿变化后先重新核对,不能让多个版本各自长出新事实。
- 调研、事实核对和反例搜索可以并行;最终正文由一个写作者连续完成。不要把章节分给多个写作者后再拼接。
先判断任务状态
- 只有 idea、剪藏或审核卡:先建立成稿包,再调研和写作。
- 已有成稿包(含管线 promote 或知识工作台立项生成的):只补齐会影响本篇文章的最小信息,确认读者收获、核心冲突和事实边界后直接写作。不要为了填满模板而延迟成稿。
- 已有草稿:读取对应成稿包和事实清单,再做连续审阅或重写。
status: ai-draft 的机器初稿(工作台无头起草产出)按此处理:它只是骨架,事实核对、语气校准和终检不能省,「待人工确认」清单逐项落实后才改状态。
- 已有定稿,需要提炼口播选题或逐字稿:转交
ray-kb,把通过检查的母稿、成稿包和事实清单一并交过去。
- 内容主体是别人的文章(翻译外文、转载中文):进译介模式,完整执行 translation.md。不建成稿包,也不套原创的事实装配流程;先落授权和署名,再翻译。
知识库根目录不写死。优先使用用户明确路径,再向上查找 .ray-obsidian.json 或兼容目录结构;路径与文件职责见 knowledge-pipeline.md。
若找不到兼容知识库:
- 用户只要临时文章时,可以在当前工作区交付正文与事实清单,并明确这次没有进入知识回流流程。
- 用户要完整内容管线、长期积累或 Obsidian 基础时,先转交
ray-obsidian,只确认一个关键问题:知识库要建在哪个本地目录。初始化检查通过后再继续写作。
- 不得自行创建
~/rays-brain,也不得把 Skill 安装目录当作用户知识库。
译介模式
内容主体是别人的文章时进这条支线,先读 translation.md。原创管线的前提是事实和判断属于 Ray,译介正好相反,所以它比原创多两道门,顺序不能颠倒:
- 授权。先确认
source_permission。只有 granted(原作者明确许可)和 open-license(CC 等允许转载的许可)能往下走到平台草稿;pending 只做本地产物,denied 直接停。联系作者、确认许可、开公众号转载白名单都是用户动作,不代做,不把沉默当默许,也没有"合理使用"这一档。
- 署名。frontmatter 记录原标题、原作者、原文链接、发表日期和授权凭据;正文里另外要有读者真看得见的出处块。两边都在,检查器才放行。
翻译时按 translation_mode 区分:full 保留原文全部论点,Ray 的话只出现在译前引言和译后按语;digest 只译一部分并加入 Ray 的判断,但必须逐段分得开谁在说话。把原文论点改写成自己的话再署自己的名不属于任何一种。
译文里的"我"永远是原作者的,不得改写成 Ray 的经历。原文没有的事实不加,有的事实不改;过期数据在按语里说明,不在正文里偷偷更新。
译文进 <vault>/10-创作/30-文章草稿/,kind: translation 或 repost;原文备份进 <vault>/30-资料/,不进 <vault>/20-知识/。交给 ray-wechat 时不勾选原创声明,交给 ray-x-article 时出处块随正文进编辑器;两个平台都会重新验一次授权和署名。
写作流程
1. 建立最小写作任务
完整内容管线使用 <vault>/50-系统/30-模板/内容成稿包.md,但开始写作前只要求填清:
- 目标读者和发布场景
- 读者读完后真正得到什么
- 一个核心问题或冲突
- 一句话判断
- 用户真实材料及允许使用范围
文章原型、最强反方、情绪曲线和传播句不是启动条件。材料已经足够时直接进入正文;只有核心判断会明显改变文章方向时,才向用户确认。不要把内部任务说明先写成一篇小论文,也不要因为模板有空位而编造内容。
2. 建立事实清单
优先读取本地原文、相关长期知识和既有调研。需要最新信息、精确引用或来源网页时再联网核对。
为关键内容分别记录:
- 已核对事实:能给出原始来源。
- 来源观点:明确是谁的判断,不写成客观事实。
- 作者推论:说明从哪些事实推出。
- 不确定项:未核实前不得进入肯定句。
数字、日期、产品状态、人物职位、政策和公开指标必须逐项核对。保留原始链接和本地材料入口。
3. 连续写完第一稿
写作前阅读 voice.md。先完成全文,再局部修句,不把提纲冒充文章。
- 由同一个写作者从开头写到结尾。调研可以并行,正文不要分章节拼接。
- 先让判断自然推进,不预先规定每一节的功能,也不先分配金句、反方和情绪节点。
- 材料服务于判断。除非事实归属必须让读者知道,否则不要在正文展示“原文说”“资料显示”或内部来源清单。
- 尽早出现具体的人、事、变化或冲突。
- 材料里已有清楚的人物转向时,开头直接交代“谁、原来做什么、哪里走不通、因此追问什么”;删掉替读者解释“这个故事为什么值得看”的铺垫。
- 先让读者看见最强证据,再压缩抽象判断。不要在证据出现前提前讲完文章结论,也不要用一句概括替代能证明判断的前后变化。
- 一段只推进一个动作,长短段落交替。
- 篇幅不平均分配。压缩背景、过渡和重复解释,把空间留给最强证据、真正改变结论的反方,以及作者最后愿意承担的判断。
- 每隔一段距离回到核心问题,避免支线越写越大。
- 反方只有在能收缩、补充或升级原判断时才进入,不为结构完整强行安排。
- 第一人称判断可以出现;第一人称经历必须有真实材料支撑。
- 结尾留下判断和情绪余波,不重复全文摘要。
面向公众号或 X 的长文还必须设计浏览节奏:
- 3000–8000 字的文章通常需要二级标题作为阅读锚点,但标题数量服从文章推进,不按模板凑数。标题要推进判断,避免“背景”“分析”“总结”这类目录词。
- 加粗用于移动端阅读导航,可以标记关键问题、冲突、行动门槛和完整判断;没有必要达到固定数量,也不把无意义的名词刷成荧光笔效果。
- Markdown 段落之间只留一个空行,不使用空白段落制造视觉间距。
标题至少同时满足清楚、张力和可信。内部可以生成多个候选,但只向用户交付最适合的一版。
4. 做一次自然语言自修
第一稿完成后先不看检查器,从读者角度连续读一遍,只做一次整体自修:
- 删掉能看出材料排列顺序、内部流程和来源展示欲的段落。
- 若原材料有具体转向,检查开头是否已经直接进入事件;删掉事件之前的背景解释和事件之后立刻重复的抽象总结。
- 合并重复的判断、重复收束和章节末尾的小结。
- 减少反复出现的“不是……而是……”、编号论证和均匀分布的金句。
- 检查最强证据是否出现在对应判断之前,篇幅是否真正偏向证据、反方与最后落锤,而不是平均铺开。
- 收窄过满的事实表达,明确模型机制、现实类比和作者推论之间的边界。
- 检查文章是否像一个人在连续思考,而不是几个正确模块拼在一起。
- 如果资料少、版本单一、任务清楚,允许结论停在简单方案;不要为了显得完整额外发明治理系统。
- 若最近一两篇认可文章与本稿同时重复开场方式、推进顺序和结尾动作,只改变其中一个维度;读者收益足够强时允许保留稳定结构,不为求新打乱文章。
这一步优先保住自然流动和作者判断。不要一看到表面提醒就把文章修成整齐的模板。
5. 按问题调用结构工具
只有正文暴露具体问题时才读取 article-prototypes.md:
- 文章跑散:用主原型检查不可删除的推进线。
- 教程不够可执行:补步骤、前置条件、常见失败和验收。
- 观点过满:补一个真正会改变结论的反方。
- 成功案例过于顺滑:补当时的真实质疑、后来发生的变化,以及市场太小、付费不足、数据资质、责任边界或替代成本等具体失效机制;不要用一句“存在幸存者偏差”草草收尾。
- 情绪太平:回到真实矛盾、代价和不确定性,不画一条虚构的情绪曲线。
- 缺少记忆点:从已经成立的核心判断中压缩一两句,不另造空金句。
原型和结构只负责修复问题,不负责替文章搭出一套人人看得见的脚手架。
6. 终检
完整执行 quality-gates.md:
- 真实性:事实、来源、个人经历和边界是否可靠。
- 文章性:是否是连续文章,而不是提纲、报告、材料复述或观点清单;移动端浏览时是否有合适的二级标题、重点加粗和段落节奏。
- 情绪与传播:真实矛盾是否成立,是否存在值得保留的记忆点和结尾余波。
- 个人语气:是否像 Ray 的判断,而不是卡兹克、通用 AI 或居高临下的导师。
若已落盘,运行:
python3 scripts/article_check.py <文章路径>
错误必须修改并重跑。提醒只用于定位风险,逐项判断后可以合理保留;不要为了把提醒清零而破坏文章。机械检查通过不等于文章合格,人工审读仍然必须完成。
7. 落盘与回流
- 成稿包进入
<vault>/10-创作/20-写作任务/。
- 调研和事实清单进入
<vault>/30-资料/10-自主调研/<主题>/。
- 当前草稿进入
<vault>/10-创作/30-文章草稿/。
- 公开发布是用户在平台上的动作;发布完成后走知识库的发布归档流程(
50-系统/40-自动化/发布归档/ 或工作台「登记发布」)写入 <vault>/40-发布/,不在本 Skill 内手工归档。
- 发布后,把新形成且值得长期复用的观点、案例或方法提炼回
<vault>/20-知识/。
8. 封面交接
文章核心判断、标题和真实情绪张力通过检查后,需要公众号或 X 封面时转交 ray-cover。向它提供正文路径、成稿包路径、一句话判断,以及正文中实际成立的核心冲突与传播句;不要为了交接临时编造,也不要只传标题。
ray-cover 负责从同一视觉母题生成无字底图,再分别排成公众号与 X 封面。写作阶段不让图片风格反过来改动事实和核心判断。若还需要约 5 秒竖屏动态素材,由 ray-cover 继续转交 gbro-collage-broll。
用户明确要求把成稿送入 X Articles 后台时,再把通过检查的文章与 5:2 x-article-cover 交给 ray-x-article。它只保存并验证草稿,不自动发布。
用户明确要求公众号排版或保存草稿时,把通过检查的文章、公众号封面和署名偏好交给 ray-wechat。它先生成并验证本地预览,用户确认后才创建或更新公众号草稿;不要在 ray-writer 内临时拼 HTML 或直接调用微信接口。
用户要求把定稿变成口播视频时,把通过检查的母稿、成稿包和事实清单交给 ray-kb;由它选角度、产出逐字稿并完成口播检查,需要拼贴 B-roll 时再由它交接 ray-broll。
风格只从用户明确认可、亲自修改或正式发布的内容中学习。普通机器草稿不得自动成为新样本。
参考资料路由
交付要求
长文任务向用户交付完整文章链接、事实边界记录和一句话核心判断。简要说明已核对哪些关键事实、是否存在仍需用户提供的个人材料。不要把内部检查过程写成长报告。