---
name: junyi-content-distiller
description: 从本人录音逐字稿、日记、随手记、聊天记录或生活对话中，提取可追溯、可直接用于创作的真实素材，并在适用时生成每日核心事件、情绪地图与工作待办安排。用于“内容蒸馏”“录音整理”“把生活提炼成素材”“从日记找故事/观点/金句”“整理全天录音”等任务；支持短内容、每日记录和超长录音分块续跑。不要用于以理解外部书籍、课程或文章为目标的学习蒸馏，也不要把摘要冒充原话或证据。
---

# 君一内容蒸馏

**「君一」是方法来源，不是服务对象。** 本 Skill 蒸馏的是使用者自己的材料。

把原始生活材料变成可追溯的内容资产，而不是把它压缩成一篇摘要。所有判断都必须回到原文；资料没有说的内容保持未知。

## 开始前

1. 确认输入是本人经历、本人表达或与本人有关的真实对话。若主要任务是消化外部书籍、课程、文章或会议知识，改用学习蒸馏能力。
2. 确认使用者要在对话中查看结果，还是写入指定目录。未经要求不要改动原始文件，不要擅自写入其他知识库、关系档案或任务系统。
3. 识别输入来源、事件日期、参与者、时间戳是否存在，以及使用者是否启用“关系观察”。
4. 选择模式：
   - **快速模式**：一段短录音、日记、随手记或聊天记录。
   - **每日模式**：一天内的多段生活记录，需要核心事件、情绪地图和待办。
   - **长录音模式**：任一材料超过 20,000 字符、约 120 个时间块、录音超过 2 小时、输入文件不少于 3 份，或工具已出现截断/上下文压力。

## 不可违反的规则

- 只使用输入中可以定位的内容；不编造动作、情绪、场景、因果、人物身份、数字和结论。
- 直接引语只做不改变含义的轻度口语清理。听不清写 `[不可辨]`；说话人无法确认写 `[未确认说话人]`。
- 每条素材必须包含 `**证据位置**` 和 `📎 **原话**`。有时间戳就记录时间范围；没有时间戳就记录文件名与段落/行号，或明确写“原文未提供时间戳”。
- 智能纪要、AI 摘要和章节摘要只能帮助定位，不能代替逐字稿成为原话证据。
- 同一段可以进入多个类别，但必须分别满足各自门槛并说明关联；不要为了填满栏目强行分类。
- 原始材料、分块中间产物和最终结果分开保存。不要把 AI 摘要混入原始逐字稿。
- 若使用者没有授权公开，默认把涉及儿童、伴侣、客户、健康、财务和冲突的材料视为私密；输出创作建议时提醒脱敏和取得授权。
- 验收失败时只报告“未完成”和失败项，不把“已经读过”当作完成证据。

## 固定输出顺序

所有出现的栏目必须保持以下相对顺序；没有合格素材的类别可以省略：

1. 今日核心事件
2. 情绪地图
3. 🎬 故事
4. 💡 观点
5. 🔥 金句
6. 🎭 场景
7. ⚡ 冲突
8. 📊 数据案例
9. 🧭 决策原则
10. 📋 工作待办安排

每日模式必须包含第 1、2、10 项。快速模式只在材料确实覆盖一天或使用者要求每日索引时生成第 1、2 项；第 10 项仅在原文存在已确定的决策、责任或行动时生成。

读取 [extraction-rules.md](references/extraction-rules.md) 完成分类。需要逐项输出骨架时读取 [output-contract.md](references/output-contract.md)。

## 快速模式

1. 完整读取短材料并记录来源。
2. 先标出人物、时间范围和无法确认的信息，不根据口吻猜人。
3. 按固定顺序逐类扫描；先判断是否过门槛，再提取原话与必要语境。
4. 合并完全相同的素材；同一证据产生多类素材时互相标注关联。
5. 按 [output-contract.md](references/output-contract.md) 输出并执行基础验收。

## 每日模式

1. 先按时间建立当天事件线，不急着写总结。
2. 从事件线选出 5–8 个核心事件；只有真正影响当天方向、关系、情绪或后续行动的 2–3 个事件标为核心。
3. 按实际材料的时间段画情绪变化。情绪只能来自明确原话或可观察表达；推断必须标 `【推断】` 并附依据。
4. 按固定顺序提取七类内容素材和最后的工作待办安排。
5. 将决定与待办统一放在最后一节；记录事项、类型、责任人、时间线索、状态和证据位置。没有明确责任人或期限时写“未提及”，不要补全。
6. 若启用关系观察且出现关系存续级信号，只在结果末尾提醒使用者复盘；不得自动写入关系档案。详细规则见 [relationship-observation.md](references/relationship-observation.md)。

## 长录音模式

长录音不得一次性塞进上下文。读取 [long-recording-workflow.md](references/long-recording-workflow.md) 并严格执行：

1. 建任务目录、原始副本和 `manifest.json`。
2. 按录音分段建立说话人映射；编号跨分段时不得默认代表同一人。
3. 运行 `scripts/split_recording_md.py` 生成有字符上限的真实 chunk 文件。
4. 当 chunk 总数不少于 3 时进入**强制隔离模式**：主会话不得读取任何原始 chunk；每个 chunk 必须由独立 sub-agent/worker 或新的空白会话蒸馏。若环境不支持隔离上下文，停在分块完成状态，不得退回主会话硬读。
5. 主会话只传递单个 chunk 路径、对应说话人映射、可选人名表、分类规则和输出路径；只接收产物路径与状态，不接收整段原文回传。
6. 每个执行上下文立即写出同名 `.distilled.md`；主会话把执行模式和 worker/run 标识写回 manifest，直至没有未说明的 `pending`。
7. 运行确定性的 `scripts/merge_chunks.py` 按类型合并；合并器只读取 `.distilled.md`，不能按 chunk 顺序拼接，也不让主会话回读全部原文。
8. 运行 `scripts/validate_distillation.py`；失败则从原始 `.distilled.md` 重建，不在错误半成品上连续修补。

## 说话人确认

- 优先使用材料自报身份、参会人名单、使用者提供的映射和同段明确称呼。
- 每个录音分段单独记录映射依据。不要把“说话人 1”跨文件、跨分段永久绑定为同一人。
- 只有口吻相似不能证明身份。无法确定时保留未知，不妨碍提取其他信息。
- 最终稿不得把未确认编号替换成真实姓名。

## 人名与语音识别变体

- 使用者可以提供一份经确认的“正式姓名—别名—语音识别变体”映射；没有映射时不从私人知识库自动扫描，也不根据相似发音擅自归一。
- 映射只用于参与者标签、索引和分析说明。`📎 原话`必须保留逐字稿中的实际文字；需要说明时在引语外写“逐字稿转写作……”，不得静默改写原话。
- 同一变体指向多人、数字连读或上下文无法消歧时，标为待确认，不自动选择。
- 表外但疑似人名的词进入 `unconfirmed-names.md`，保留原文上下文与证据位置；只向使用者请求确认，不自动建人物卡、不分发给其他 Agent。

## 完成前验收

快速模式和每日模式至少检查：

- 栏目相对顺序正确，同一栏目最多出现一次。
- 每条素材都有证据位置和原话。
- 数字与姓名没有被改写；不确定信息已明确标注。
- 没有 U+FFFD 乱码，引用没有被摘要冒充。
- 工作待办安排没有散落在其他素材栏目。
- 关系观察只生成提醒，没有自动修改其他档案。

写入文件时运行：

```bash
python3 scripts/validate_distillation.py <最终稿.md>
```

长录音还要确认：原始副本存在、chunk 数与 manifest 一致、每个应处理 chunk 都有 `.distilled.md`、没有未说明的 `pending`；当 chunk 不少于 3 时，每项都记录隔离执行方式和 worker/run 标识，且主会话声明未读取原始 chunk；合并稿通过结构验收。详细清单见 [long-recording-workflow.md](references/long-recording-workflow.md)。

## 交付

先给结果，再说明来源范围、未确认信息、隐私提示和验收状态。只有使用者明确要求时才继续把素材写入知识库、创建任务、更新关系记录或分发给其他 Agent。
