写稿Agent v0.10.0:平台增长、创意反馈与双事实门禁
v0.10.0 把写作流程从“正文写得完”推进到“标题与正文都可核查、交付物按平台设计、发布后能用真实数据复盘”。这是从 v0.9.0 直接升级的正式 GitHub Release,也包含此前已进入 main 但未单独打 tag 的 v0.9.1 可信写作与安全门禁。
这次升级能带来什么
- 标题不再是事实防线的例外:锁定标题、平台分发文案和最终正文一起进入 Stage 10.5,标题或正文任一改动都会使旧核查结果失效。
- 配图不再破坏已通过的事实哈希:尾部顺序固定为 Humanizer → 可选配图 → Fact Checker → Auto Clean,最终核查绑定配图后的正文版本。
- 平台字段真正影响交付:公众号、今日头条和知乎分别获得摘要、信息流导语或回答导语,Stage 9 也会切换到对应平台的定性测试矩阵。
- 发布后开始学习真实反馈:可选 Stage 14 记录曝光、打开、完成阅读、分享、评论和收藏,同时绑定标题公式、开头方案、风格、平台及源文件 SHA-256。
- 评审不再反复打分:Editor 聚焦写作工艺与风格,Pre-publish 聚焦读者价值、逻辑和发布风险,Reader Test 聚焦平台行为,Humanizer 只负责表达改写。
- 历史风格档案不再混装成“都已验证”:风格登记表显示
verified或legacy_unverified,缺少跨样本证据和独立盲测的档案只能作为低置信度参考。
主要变更
1. 标题 + 正文双版本事实门禁
- Stage 5.5 正式读取
01b_position.md和02_evidence_ledger.json。 - 标题数字区分为结构数字和事实数字;金额、比例、年龄、年份、时长、排名等必须来自证据账本或作者真实素材。
fact-checker显式抽取锁定标题、最终分发文案和正文中的事实 claim。run_manifest.json新增fact_checked_title_file和fact_checked_title_sha256,并继续绑定正文文件及 SHA-256。auto_clean_hook.py同时校验标题与正文哈希,缺少任一绑定都不会生成_clean.txt。
2. 平台化标题、分发文案、读者测试与配图
title-designer在 8 个标题候选外,再生成 3 条对应平台的分发文案。wechat-reader-test保留旧 ID 和文件名兼容旧流程,内部已升级为公众号、今日头条、知乎三套定性测试矩阵。- Stage 9 发现标题承诺错位时,可由用户返回 Stage 5.5 重新锁定;新标题会同步正文 H1 并重跑 Stage 9。
- Article Illustrator 会读取发布平台和动态正文,图片比例、安全裁切区与设计依据进入用户确认卡点,不再将固定 16:9 或模板化企业插画当作全局默认。
- 所有 Reader Test 结果都是文本层定性代理指标,禁止伪造 CTR、完读率、推荐量或评论量预测。
3. 可选 Stage 14:真实发布数据复盘
record_publish_metrics.py是写入publication_metrics.jsonl的唯一入口,原始记录 append-only。- 每条记录包含平台、发布时间、观察时间与窗口、流量来源、真实指标、标题/正文/封面版本及创意变量快照。
performance-review在同平台、同窗口、同流量来源的前提下做跨项目比较,分开已观察事实、混杂变量、待验证假设和跨样本规则候选。- 单篇数据只能形成观察和假设,不会直接写成稳定记忆规则。
- Stage 14 只在用户明确要求“记录发布数据”或“复盘上一篇数据”时触发,正常写作流程仍在 Stage 13 结束。
4. 创意、评审与调研反馈闭环
- Share Map 增加“趣味谈资”,Editor 检查幽默、荒诞反差、认知意外与新鲜细节;严肃主题不强制搞笑,任何趣味细节仍受真实素材和证据边界限制。
- 评审不再以第一人称数量衡量“灵魂”,没有真实素材时禁止补造亲历。
- 证据账本新增
research_requirement与research_attempts;计划使用外部事实时必须记录真实检索及found/not_found/blocked结果。 - “金句”统一为带场景、代价或立场的判断句,空心口号应删除,不再为满足评分而硬凑。
5. 风格登记、模式 C 与记忆输入
- 新增
styles/style_registry.json及manage_style_registry.py,新档案默认且只能登记为legacy_unverified。 - 只有档案、跨样本证据和显式独立盲测结果都齐全时,才能原子升级为
verified。 collab_v2.json -> modes.C正式定义 Stage 0a/0b、产物与向 B 模式 Stage 1 的交接。topic-generator先查重articles/_topic_pool/,再持久化候选、差异化角度和用户提供的对标账号。- Stage 3、5.5、6、10 显式依赖
00_memory_packet.md;没有历史经验时也会读取 Stage 0 的占位结论。
6. 可信写作、URL 安全与交付门禁
- Humanizer 必须服从用户真实素材和证据账本,禁止新增第一人称亲历、人物、时间、地点、金额、对话和无来源数据。
- 事实核查结果绑定具体正文文件和 SHA-256,旧式无哈希
passed不再是有效放行凭证。 - 自动清稿默认只处理显式项目或正文路径,不再跨
articles/猜测“最近项目”。 - 页面主 URL、DNS、重定向链和图片下载共用远程 URL 安全策略,拒绝非 HTTP(S)、带凭据 URL、本机/私网/保留地址和跳转到私网。
- Windows/Linux CI 强制执行完整检查、high 级生产依赖审计和真实隔离插件安装;Windows Python 统一使用 UTF-8,临时目录按规范化路径比较。
升级指南
git clone 用户
git pull
npm ci
npm run checkv0.9.1 及更早项目升级后,请对当前锁定标题和最终正文重新执行 Stage 10.5。仅有正文哈希、缺少标题哈希的旧 passed 状态会被视为未完整绑定,这是有意的安全收紧。
Claude Code plugin 用户
claude plugin marketplace update writing-agent-marketplace
claude plugin update writing-agent@writing-agent-marketplace更新后重启 Claude Code,或执行 /reload-plugins。已有工作区的 collab_v2.json 应通过最新 bootstrap/sync 流程刷新,避免插件 agent 与旧工作流契约错配。首次进入工作区需要访问 npm registry 安装锁定依赖。
兼容性与注意事项
- Node.js:
18.17.0或更新版本。 - Python:建议
3.11或更新版本。 wechat-reader-testID 和wechat_reader_test.md文件名是兼容保留,不代表仍只测试微信。publication_metrics.jsonl是 append-only 原始记录,不要手工覆盖,也不要把发布指标写进run_manifest.json。- 发布复盘无法消除封面、流量来源、发布时间和账号基数等混杂变量;单篇高阅读量不能证明某个标题公式有效。
- 自定义风格若未完成跨样本证据和独立盲测,会保持
legacy_unverified;不要手工修改登记状态。 - 当前 npm 完整审计剩余 1 个
tsx -> esbuildlow 级 Windows 本地开发服务器告警;high 级生产依赖门禁已通过。
发布验证
npm run check:177 项 Python 回归通过,1 项显式联网测试按设计跳过。- 24 个 Python 脚本语法、工作流、文档、运行时镜像和插件 manifest 严格校验全部通过。
- 显式联网的隔离插件安装测试通过。
- Ubuntu 与 Windows GitHub Actions 全部通过,并已作为
main合并强制门禁。 npm audit --omit=dev --audit-level=high通过 high 门禁;当前仅报告 1 个开发服务器场景的 low 级esbuildadvisory。npm pack --dry-run --json:writing-agent-0.10.0.tgz包含 477 个文件,打包体积 377,183 字节,未混入writing-agent-app、node_modules、__pycache__或.pyc。