Releases: qin1473692580-ux/oh-story-claudecode
Release list
oh-story 0.7.10
本次重点
v0.7.10 汇总了 v0.7.7–v0.7.10 的开发成果:在保留本仓库独立版本线、追踪事务、长篇热路径拆分和多端适配增强的前提下,选择性吸收原上游的新能力,并补上中文正文语言漂移的完整防线。
中文正文英文泄漏三层门
- 生成前锁定中文;明确的英文小说、海外发行需求才路由到英文发行流程。
check-degeneration.js新增auto|zh|en,可阻断纯英文句段、连续英文片段、英文对白和中文叙事中的裸英文词。- Claude Code、Codex、OpenCode、ZCode 写后 Hook 自动复扫;长篇写下一章前还会清查上一章英文旧债。
- URL、邮箱、Markdown、代码、路径、型号、缩写等受保护;确需保留的外文名和术语通过
.deslop-whitelist精确放行。 <!-- 去味:跳过 -->只豁免用户指定的毒句式,不再成为英文泄漏的绕行入口。
去 AI 味与写作质量
- 去 AI 味规则按情节节拍控制段落疏密,减少固定句长、机械标签和提示词重复。
- 新增感官对象误作感知主体、普通名词滥用引号等检查,并保留合法对话、逐字引用、书名、代号和场内系统原文。
story-long-write将开书阶段工作流拆成按需参考,降低日更时的常驻提示词负担。
上游能力吸收与本地领先增强
- Bash 正文守卫覆盖重定向、
tee、touch、cp、mv、install等写入方式;部署配置可幂等迁移并保留用户 Hook。 - 起点、七猫等长篇扫榜补齐周期、字数、推荐、签约、收费模式与参数校验。
- 长篇拆文支持 500 章以上的分批子 Agent 聚合;chapter-extractor 增加严格 JSON → 原子 Markdown 渲染链。
story-review增加跨批状态落盘和未解决 findings 继承。- 新部署项目缺少追踪 state 时严格阻断;旧项目和受控导入窗口保持兼容。
跨平台与多 CLI
- 修复 Windows Git Bash 的 stdin、CRLF、中文路径、
/tmp路径别名及书目级.deslop-whitelist兼容问题。 - Claude Code、Codex、OpenCode、ZCode、OpenClaw、Reasonix 与 generic 部署契约已同步。
版本与升级
- 产品版本:
0.7.10 setup_skill_version:1.2.12agents_version:29- 发布提交:
3786283
更新或安装后,请在写作项目中重新运行 /story-setup(Codex 使用 $story-setup),然后新开会话,让新版 Hook、agents、rules 和 reference bundle 生效。
固定安装资产:oh-story-release.zip
验证
- Cross-platform smoke test:Windows、macOS、静态门禁通过
- Agent CLI compatibility:通过
- Release package:完整质量门、SHA256、450 个安全 ZIP 成员、14 个 skills 安装 smoke 通过
完整变更比较:v0.7.6...v0.7.10
v0.7.6 — 独立仓迁移与 Dev / Release 分流
升级必读
本版将公开 bundle 升至 0.7.6,setup_skill_version 升至 1.2.8,部署契约 agents_version 升至 25。
更新安装包后,必须在每个写作项目中重跑 /story-setup(Codex 使用 $story-setup),然后关闭并新开会话。
稳定安装入口:
https://github.com/qin1473692580-ux/oh-story-claudecode/releases/latest/download/oh-story-release.zip
本版重点
- Dev 与 Release 正式分流:本地先生成可追溯 Dev 包,正式包只能从
main手动触发。 - Release 必须通过同一提交的 Dev、Windows/macOS 跨平台和四端 CLI 兼容门禁。
- 正式资产包含版本 ZIP、稳定别名 ZIP、tar.gz、manifest 和
SHA256SUMS;禁止覆盖既有 tag、Release 或资产。 - 仓库从 fork 蓝绿迁移为同名独立仓,完整保留 Git commits、branches 与 tags。
- GitHub Stars、Watchers 和 fork network 无法迁移,保留在改名后的 legacy fork 中。
验证
发布提交:b4078a5a4b6406c8f31fcbdb146d7054d1e261b7
- Dev package:通过
- Windows / macOS 跨平台:通过
- Claude Code / Codex / OpenCode / OpenClaw:通过
- Release SHA-256:通过
- 447 个安全归档成员、14 个 skills:通过
- 解包与真实安装烟测:通过
完整变更见 CHANGELOG.md。
v0.7.5 — 跨章连续性守卫 / 规划记号泄漏拦截 / 情绪与钩子下限
⚠️ 升级必读:本版agents_version由 23 升到 24,改动了 24 个部署产物(四端 hook 核与 agent 模板)。必须在每个写作项目里重跑/story-setup,然后关闭并新开一个会话——不做这一步,下面所有新拦截一条都不生效。本版还改变了
追踪/的存放方式(见「破坏性变更」一节),旧文件会自动归档保存,但以后不要再手动编辑追踪文件。
破坏性变更:追踪状态改单一权威事务模型
追踪/ 从「多个各自维护的 Markdown」改为「一个结构化权威状态 + 多个确定性派生视图」。
_tracking-state.json是唯一权威;上下文.md、角色状态/{名}.md、伏笔.md、时间线/作者真相.md、时间线/读者已知.md全部由它渲染,禁止手改。- 模型只提交一份语义 JSON,由
tracking_commit.py校验、合并、渲染、原子落盘。 - 旧结构由
init原样移入追踪/_旧追踪存档/,不解析、不做兼容层。 - 配套修掉六条会让用户卡死的主流程断链,最要紧的一条是回炉备份被守卫打死:
原稿_{日期}.md备份必然命中章号顺序校验,而回炉章号恒小于已提交章号,无解。
跨章连续性守卫
起因是实际反馈的最严重问题:上一章主角住学校宿舍,下一章骑车从家去学校;上一章主角的娘摆针线摊,下一章地痞掀的摊子变成卖菜的。复现证实——两处矛盾 commit 成功、check 全绿,工具一声没吭。
根因是三层都漏:热上下文的角色行只有「身份|状态|目标」,看不到人在哪、手里有什么;全量快照有位置字段,但规则是「核心角色若不在热上下文才去读小文件」,主角必然在热上下文里,那条分支永不触发;提交时新快照整份覆盖旧值,不做比对。
- 位置与持有物进热上下文,按 60 字节截断。
- 新增
delta.continuity_changes:位置 / 持有物与库内不同时必须申报,且from要与旧值逐字相同——模型得先去读快照才写得出来,写对了说明它知道自己在改什么。 - 补上 Claude Code 端缺失的写正文核判据,此前「首建第 N+1 章前必须先提交第 N 章事务」这条校验在本端从不触发。
consistency-checker(三端)新增「跨章位置/营生/道具漂移」检查项,定为 S1。
规划记号泄漏拦截
规划层的临时标记被正文层照抄,是同一族问题。本版收了实测零误报的全部类别:
- 章号引用:
ch13/Ch.13/chapter 13。中文工程词表只收「第X章/本章/前文」,跑「她在 ch13 便学乖了」零告警。 - 裸英文词:
watcher这类内部代号。判据两层——整行以中文为主、词是独立全小写 ≥4 位。先在真实语料量过误报:101 个正文文件里与中文相邻的拉丁串全是 PDF/USB 缩写、DB-40/R66-7 编号道具、扩展名,没有一个是小写英文常用词。 - 剧情单元 ID / 结构字段名 / 压力级 / 规划文件路径:逐类量了正文误报数,只收零误报的。
- 进的是自动拦截网,不是工作流步骤,弱模型跳过流程也拦得住。
- 生成侧同时补规则:查下来起名、写正文、追踪三层对语言零约束,
watcher能直接注册成角色名。现已要求中文作品的故事内专名必须是中文。
情绪与钩子下限
原有 4 个脚本 84 条规则全是禁止型。禁止情绪标签却不设下限,最省力的通关解就变成干脆不写情绪。实测已完本长篇:第 39–62 章情绪落点均值 0.97/千字,其余章 4.42,其中 8 章为 0。
check-emotion-floor.js:三通道 + 密度下限 + 零体温段 + 复读检测,阈值按 84 章实测分布标定。emotion-landing.md:情绪 × 强度 → 身体/动作/感官转译表。check-hook-strength.js:把「第 1 章必须强 / 2-3 章强」和悬念三档下限变成可机器校验。正文章的ending-no-hook定为 advisory 待查清单,只有黄金三章是 blocking——硬门误报多了作者会学会忽略它。
撤销早先的规则软化
hooks-chapter.md:「第 1 章必须强」曾被改成「通常强,服从题材契约」,已恢复硬下限。hooks-suspense.md:三档等级下限曾被加上「只在本章承担悬念功能时判断」的自判豁免口,且正文章下限降了一档——中段文书 / 谈判章会自判为「不承担悬念功能」整体跳过。已恢复。
新增 story-data-analyze
第 14 个 skill。用「分发 → 回访 → 章内」三层框架定位读者流失的真实位置,按平台指标的官方定义计算、防止误读。触发:/story-data-analyze、/数据分析、/后台数据。
其他修复
- 多端部署每次会话误报「参考资料包缺失」(
references_dir是逗号拼接的多条路径,被当成单一路径判断)。 - 部署端探测自触发:
metadata.openclaw被当成 OpenClaw 信号,但 13 个 skill 全带这个字段,导致 reasonix / generic 项目被误判。 - 补回细纲未标字数时的默认兜底(3000 字/章)。
check-typos.js补「否定词 + 张声」搭配(「没张声」应为「没声张」)。--pressure/--position写明是整次调用生效、不是逐章判定。
如何更新
# 全局安装
npx skills add qin1473692580-ux/oh-story-claudecode -y -g
# 或 git clone 的
git pull && ./sync-skills.shZCode / Reasonix 用户在各自 marketplace 面板重装 oh-story。
更新后必须在每个写作项目里跑一次 /story-setup,然后关掉窗口重开。
验证
scripts/ 下全部 32 个检查与测试脚本通过、0 失败(两个需真实 CLI 的 e2e 跳过),另加 Dashboard 单测 27 项与 static-check 14/14。新拦截在已完本长篇 84 章 + 短故事 17 篇共 101 个正文文件上回归,三类泄漏检测零误报。
v0.7.3 — 跨端拆文降级修复 + Dashboard 按需加载 + 更新检查修复
同步上游 v0.7.2 之后的三个提交,并修掉本仓库自身积累的几处不一致。
⚠️ 升级必读
agents_version 由 21 升到 22。已部署项目必须在项目根重跑 /story-setup(Codex 中用 $story-setup)并新开一个会话,否则拆文仍走旧模板。
修了什么
跨端拆文降级路径(最要紧) — ZCode / OpenClaw / Reasonix / 通用 Web AI 这四端本就不部署 project agents,拆文 Stage 2 必然走串行降级;而降级说明此前要求主线程「按 chapter-extractor 方法论」处理,指向的正是这四端读不到的那份文件——循环依赖。现改指 output-templates.md(skill 自带 reference,四端都读得到)。同时章节概要从「因为…所以…」因果链改为叙事化、原文引用改精选(每章至多 8 条)、新增 P 行白描机械硬检查。
Dashboard 目录树按需加载 — 首屏只返回写作项目与拆文库根节点,展开时按需分页读取,深目录不再被首屏扫描深度剪掉。同时修复标准短篇工程(单文件 正文.md + 小节大纲.md/设定.md 结构)此前不被识别、进不了项目列表。
扫描预算隔离 — 此前写作项目与拆文库共用一份 5000 节点预算且项目先扫,超大项目耗尽预算后,拆文库即使真实存在也返回空数组,界面把「预算被另一类耗尽」呈现成「拆文库为空」。
更新检查链路 — session-start.sh 与 /story 查的是旧仓库名,GitHub API 返回 301,而 curl 用的 -fsS 不跟重定向,永远 grep 不到 tag_name——更新提醒其实从未生效过。现改用实名并补 -L。本次也是本仓库第一个正式 release,从此更新检查才真正有东西可查。
版本号归位 — 此前仍写 0.7.2,与上游同号但内容已不同,用户无从分辨手里是哪一版。
第三方作品名清理 — 合并从上游带回的「盘龙」「江晨」,以及 output-templates.md 中出自《盘龙》的「林雷」,统一换为中性夹具名。
没动什么
自研内容一处未改:check-typos.js 前置错别字门、export-for-platform.js 发布导出、现实共鸣型 / 悬疑脑洞型题材包、Phase 5 质检硬性化、逐章质检进度表、留存节奏工程化。上游 10 个题材包全部保留。
验证
静态检查 13/13、契约检查全过、Dashboard 单测 27/27、e2e 16/16,另将上游 CI 独有的 12 项检查在本地逐条实跑通过。
完整变更见 CHANGELOG.md。