mcpField
V
voice-learn

voice-learn

github.com/athola创意与媒体34379 次安装1 天前更新
代码仓库

关于 voice-learn

voice-learn 根据审阅后文本与用户最终编辑之间的差异,改进现有写作风格档案。它追踪反复出现的模式,并在用户批准后提出档案更新。

主要功能

  1. 01比较审阅后与编辑后文本
  2. 02将编辑归类为模式
  3. 03在累积记录中追踪证据
  4. 04标记矛盾和过期模式
  5. 05提出更新供用户批准

适用场景

  1. 01根据编辑后的草稿完善风格档案
  2. 02区分反复偏好与一次性修改

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/athola/claude-night-market --skill voice-learn

安装后在 Claude Code 中输入/voice-learn确认已加载。

附带文件modules/pattern-analysis.mdmodules/snapshot-management.md

详细介绍

语音学习技能

从用户的编辑中学习,逐步改进语音配置。

不适用场景

  • 创建第一个配置(使用 scribe:voice-extract)
  • 在不更改配置的情况下审阅文本(使用 scribe:voice-review)

方法:三阶段对比

每份内容都会经过三个阶段:

  1. 预审阅:原始生成结果(审阅 Agent 开始工作前)
  2. 审阅后:用户接受或拒绝建议性修改后
  3. 编辑后:用户手动编辑后的最终版本

学习 Agent 会比较阶段 2 和阶段 3(审阅后与编辑后),以识别用户所做修改中的规律。 这些规律将用于更新语域和规则。

核心规则

  1. 精炼,不要新增:修改现有规则以涵盖新的规律。规则膨胀会降低输出质量。
  2. 标注适用范围:特定语域的规律归入语域。通用规律归入写作规则或 Agent。
  3. 标记矛盾:不同内容中出现相反规律时,需要用户裁定。
  4. 证据门槛:规律至少需要 3 个实例(或 1–2 个与现有累积记录相符的实例),才可纳入规则。
  5. 检测表征:结构性更改会提高被 AI 检测出的可能性。写作层面的更改则不会。优先进行写作层面的更新。
  6. 检查规则数量:如果任何部分有 8 条或更多规则,建议合并。

必需的进度项

  1. voice-learn:snapshots-loaded - 已读取所有三个阶段
  2. voice-learn:diff-analyzed - 已对更改进行分类
  3. voice-learn:accumulator-checked - 已检查先前规律
  4. voice-learn:proposals-generated - 已提出更新建议
  5. voice-learn:user-approved - 用户已接受更改

步骤 1:加载快照

加载:@modules/snapshot-management

PROFILE_DIR="$HOME/.claude/voice-profiles/{name}"
SNAP_DIR="$PROFILE_DIR/learning/snapshots"

# Find the most recent snapshot set
# Format: {piece-name}-{timestamp}-{stage}.md

读取目标内容的所有三个阶段。

步骤 2:差异分析

加载:@modules/pattern-analysis

比较审阅后与编辑后的版本。对每项更改进行分类:

类别示例
语气调整弱化某项主张,添加保留措辞
语音特征插入添加括号补充、插话或幽默
结构更改拆分段落、调整顺序
精确化编辑将含糊表述替换为具体表述
删除移除冗余内容或修饰
添加添加背景信息、示例或锚点

步骤 3:检查累积记录

读取 learning/accumulator.json:

{
  "patterns": [
    {
      "id": "pat-001",
      "category": "tone_adjustment",
      "description": "Softens confident claims about tool capabilities",
      "instances": [
        {"piece": "blog-post-1", "date": "2026-04-08", "diff": "..."}
      ],
      "target": "register",
      "status": "accumulating",
      "first_seen": "2026-04-08",
      "last_seen": "2026-04-08"
    }
  ],
  "staleness_threshold_days": 30
}

将新更改与现有规律进行匹配:

  • 语义相似性(类别相同且描述相似)
  • 如果找到匹配项:合并实例,并检查是否达到门槛
  • 如果没有匹配项:创建新的累积记录条目

步骤 4:生成建议

对于达到门槛的规律(3 个或更多实例,或与先前累积记录中有 2 个或更多实例相符的 1–2 个实例):

应用(证据充分)
## Proposed Update

**Pattern**: {description}
**Target**: {register file or craft-rules.md}
**Evidence**: {N instances across M pieces}

| Piece | Date | Change Made |
|-------|------|-------------|
| ... | ... | ... |

**Proposed edit**:
- File: {path}
- Section: {section name}
- Current: "{current text or 'new addition'}"
- Proposed: "{new text}"
暂缓(证据不足)

将当前实例添加到累积记录。报告:

Holding: "{pattern description}" (N instances, need 3+)
矛盾

如果新规律与现有累积记录条目相矛盾:

Contradiction detected:
- Existing: "{accumulator pattern}"
- New: "{contradicting pattern}"
- Resolution required: user must choose

步骤 5:用户批准

向用户展示建议:

Learning found N patterns ready to apply:

[1] {pattern}: {proposed change}
    Evidence: {N instances}
    [a]pply / [s]kip / [v]iew evidence?

[2] ...

将获批的更改应用到目标文件。

过时

累积记录中的规律会在 staleness_threshold_days 天后过期(默认值为 30)。如果某项规律在此时间段内未再次出现,则它很可能只是一次性的偏好,而非语音特征。

每次学习时,都要清理过时条目:

# Remove patterns older than threshold with < 3 instances

快照捕获

语音审阅完成后,学习系统会自动捕获快照。快照命名方式:

{piece-filename}-{YYYYMMDD-HHMMSS}-pre-review.md
{piece-filename}-{YYYYMMDD-HHMMSS}-post-review.md
{piece-filename}-{YYYYMMDD-HHMMSS}-post-edit.md

用户完成手动编辑后运行 /voice-learn 时,会捕获编辑后快照。

退出标准

  • 已加载并比较快照
  • 已对更改进行分类
  • 已检查并更新累积记录
  • 已为达到门槛的规律生成建议
  • 用户已接受或拒绝建议
  • 已将获批的更改应用到配置文件
  • 已清理过时的累积记录条目

评论

支持 Markdown