用途
Style Harmonizer(去槽位编辑器)用于消除论文草稿中残留的生成器语音信号。当 writer-selfloop 已通过,但 output/WRITER_SELFLOOP_TODO.md 中仍标记出 Style Smells(例如重复的基于计数的开头),或者草稿读起来像多个章节共享相同节奏时,使用此技能。
主要能力
该技能不是全面重写,而是一个定向重写队列:
- 只修改 ## Style Smells 下标记的特定 sections/*.md 文件
- 保持事实和引用键不变
- 重写表面形式(开头/结尾/节奏),而非改变论点
- 保持每个段落承载内容(论证桥梁,而非导航)
- 优先进行小的局部编辑,而非全局风格重构
使用方式
输入
必需:
- output/WRITER_SELFLOOP_TODO.md(Style Smells 部分)
- 被引用的 sections/*.md 文件
可选(有助于在重写时保持在范围内):
- outline/writer_context_packs.jsonl(允许的引用 + opener_mode 提示)
输出
- 更新后的 sections/*.md 文件(相同文件名;仍为仅正文;无标题)
- 重新运行 writer-selfloop 作为审计轨迹(Style Smells 应减少)
- 完成后创建 sections/style_harmonized.refined.ok(空文件)(管道契约信号;如果此单元标记为 DONE 则必需)
工作流(最小)
- 读取 output/WRITER_SELFLOOP_TODO.md
- 找到 ## Style Smells 和文件列表
- 仅重写标记的文件
- 优先修复造成节奏问题的上游 writer 技能,而非依赖本地正则清理
- 如果仍需本地重写,进行小编辑:开头/结尾词干、句子形状、连接词多样性
- 最佳二选一重写(推荐):对于任何触及的段落,起草 2 种替代表述,保留满足以下条件的一种:(a) 去除槽位词干,(b) 不在 H3 之间引入新的重复节奏
- 如需,查阅 outline/writer_context_packs.jsonl 获取 opener_mode 提示,并在重写时保持引用范围安全
- 不要触碰引用键
- 重新运行 writer-selfloop
- 预期:PASS 保持 PASS
- 预期:Style Smells 部分变短(或消失)
完成检查清单
- 同一槽位短语不在多个 H3 之间重复(尤其是基于计数的开头)
- 没有添加/删除/移动引用键
- writer-selfloop 仍报告 PASS,且 Style Smells 减少
脚本
快速开始:
uv run python .codex/skills/style-harmonizer/scripts/run.py --workspace <workspace>
所有选项:
- --workspace <dir>(必需)
- --unit-id <U###>
- --inputs <semicolon-separated>
- --outputs <semicolon-separated>
- --checkpoint <C#>
示例:
在调查工作区中统一风格:
uv run python .codex/skills/style-harmonizer/scripts/run.py --workspace workspaces/survey-llm-agents
适用场景
- writer-selfloop 已通过,但 output/WRITER_SELFLOOP_TODO.md 标记出 Style Smells
- 草稿读起来像多个章节共享相同节奏
- 需要去除细微的生成器语音信号,这些信号可能通过结构门控
限制
- 不是全面重写,仅针对标记的文件进行定向重写
- 不添加新的事实声明或新引用
- 不将引用移动到不同段落或不同子节
- 不重写薄弱章节,而是路由上游以获取更多证据
- 如果为了改善文风而被迫添加新材料,应停止并路由上游
- 确定性脚本是认证适配器:当最新报告仍命名标记文件或早于任何 sections/*.md 文件时,拒绝创建标记。通过此技能或负责的上游 writer 执行语义重写,重新运行 writer-selfloop,然后重试适配器。通过的标记记录认证的 Section-tree SHA256。
常见风格气味及修复方法
-
基于计数的开头槽位(Two limitations..., Three takeaways...)
- 重写动作:将警告整合到对比段落(最后一句);使用单个警告句开头(无计数),但在 H3 之间轮换;如果确实需要枚举,隐藏计数。
-
重复的话语词干(The key point is that ...)
- 重写动作:替换为 "A practical implication is that ..." 等;改变节奏:拆分为短声明句加后续条件句。
-
多个 H3 使用相同的开头节奏
- 重写动作:切换章节的开头模式(张力优先/决策优先/协议优先/对比优先);用承载内容的转折替换通用连接词。
-
概述/叙述开头("This section provides an overview ...")
- 重写动作:用承载内容的视角替换 "overview" 叙述;保持第一句可证伪。
-
段落反复以连接副词开头(Moreover, In addition, Therefore, Overall, As a result)
- 重写动作:保留逻辑关系,但将连接词移入句中;使用从句形状而非副词开头;总结时避免 "Overall," 作为默认标签。
-
内部简写泄漏到论文语音("token(s)" 用作协议名词)
- 重写动作:将 "X tokens" 替换为面向读者的名词;如果确实指语言模型 token,保持数字和具体;避免 "three tokens: ..." 槽位。