Content Brain — Obsidian 内容大脑 Skill
版本: 1.0 作者: 妙音集 AI 工作流 最后更新: 2026-04-10 兼容: Claude Code, Claude Desktop, 任何支持 SKILL.md 的 AI 工具 目标用户: 妙音集内容创作者
概述
这是一个完整的个人知识创作系统。它以 Obsidian 为载体,通过 AI 持续维护一个结构化、可生长的内容资产库。
核心能力
- 内容消化 — 将任意文本转化为结构化笔记
- 自动分类 — 判断内容类型并关联主题
- 双向链接 — 自动建立内容之间的关系
- 选题发现 — 扫描知识库,发现内容空白
- 脚本生成 — 从内容库提取素材,生成口播脚本
- 脚本审核 — 检查重复、风格、质量问题
- 反馈学习 — 从修改意见中学习,持续优化
文件结构规范
myobsidian/
├── Inbox/
│ ├── Clippings/ # Web Clipper 入口
│ └── Import/ # 手动导入 MD
├── content/
│ ├── insights/ # 感悟笔记
│ ├── themes/ # 主题分类(每主题一张笔记)
│ ├── stances/ # 核心观点
│ ├── series/ # 系列地图
│ ├── drafts/ # 选题草稿
│ ├── formats/ # 格式实验
│ └── clips/ # 已处理的剪藏
├── outputs/
│ └── scripts/ # 口播脚本(含版本和反馈)
├── graph/
│ ├── edges.jsonl # 内容关系边
│ └── gaps.md # 选题空白区
├── templates/
│ ├── content-card.md # 通用卡片模板
│ ├── insight.md # 感悟模板
│ ├── theme.md # 主题模板
│ └── script.md # 脚本模板
├── content-brain.md # 系统规则说明
├── profile.md # 内容偏好画像
└── feedback-log.md # 反馈经验日志
Frontmatter 规范
所有内容笔记必须使用以下 frontmatter:
---
uid: string # 唯一ID(格式:type-name,如 theme-growth)
type: string # 类型:insight | theme | stance | series | draft | script | clip | meta
date: string # ISO 日期:YYYY-MM-DD 或 YYYY-MM-DDTHH:MM:SS
title: string # 标题
category: string # 分类(同 type)
status: string # 状态:raw | processed | idea | script | reviewed | published
rating: number|null # 价值评分 1-7
tags: string[] # 标签(最多 5 个)
themes: string[] # 关联主题(Obsidian 链接格式)
related: string[] # 相关笔记(Obsidian 链接格式)
source: string|null # 来源:URL 或书籍名
created: string # 创建时间戳
modified: string # 修改时间戳
---
type 类型说明
| type | 说明 | 保存位置 |
|---|---|---|
insight |
感悟/文章笔记 | content/insights/ |
theme |
主题分类 | content/themes/ |
stance |
核心观点/立场 | content/stances/ |
series |
内容系列 | content/series/ |
draft |
选题草稿 | content/drafts/ |
script |
口播脚本 | outputs/scripts/ |
clip |
网页剪藏 | content/clips/ |
meta |
元信息文件 | 根目录 |
status 状态说明
| status | 含义 |
|---|---|
raw |
原始状态,未处理 |
processed |
已分析分类 |
idea |
已成为选题 |
script |
已有脚本 |
reviewed |
已审核 |
published |
已发布 |
技能 1:content-brain(内容消化)
触发场景
- 用户说「消化这篇」「处理这个文件」「分析这段内容」
- 用户粘贴了一段文本需要整理入库
操作流程
1. 提取内容
- 标题:从文本中提炼,或用「日期+关键词」格式
- 摘要:3-5 句话概括核心
- 核心观点:用列表提取关键论点
- 金句:原文中值得引用的原话
2. 判断类型
- 知识类:介绍概念、方法论 → 归入 insights/
- 观点类:表达立场、看法 → 归入 stances/
- 故事类:个人经历、案例 → 归入 insights/
- 素材类:数据、引用、案例 → 归入 clips/
3. 关联主题
读取 content/themes/ 下的主题笔记,
判断内容属于哪个主题,填入 frontmatter 的 themes 字段
4. 打标签
- 根据内容提取 2-5 个标签
- 优先从现有标签库中选择,新增标签需简短(1-2 个词)
5. 建立链接
扫描 content/ 下已有笔记,找到相关的内容,
填入 frontmatter 的 related 字段([[文件名]] 格式)
6. 更新图谱
在 graph/edges.jsonl 中追加新的关系边(如有)
如发现新的选题空白,更新 graph/gaps.md
7. 保存文件
按 type 保存到对应目录
自动更新文件名的 uid 避免重复
输出格式
---
[完整 frontmatter]
---
# [标题]
## 摘要
[3-5 句]
## 核心观点
- [观点1]
- [观点2]
- [观点3]
## 关键引用
> "[金句1]"
> "[金句2]"
## 我的思考
[你的理解或感悟]
## 关联
- [[相关主题1]]
- [[相关笔记1]]
技能 2:web-clip(网页剪藏处理)
触发场景
- 用户说「处理剪藏」「分析 inbox 里的文章」「有新的剪藏要消化」
- 检测到 Inbox/Clippings/ 或 Inbox/Import/ 有新文件
操作流程
1. 扫描入口目录
读取 Inbox/Clippings/ 和 Inbox/Import/ 下所有 .md 文件
2. 批量处理
对每个文件执行 content-brain 的流程
3. 特殊情况处理
- 如果原文质量低(水分多):只提取核心观点,不保存全文
- 如果是重复内容:合并到已有笔记,标注来源
- 如果是重要文献:创建 standalone 笔记,放入 insights/
4. 归档
处理完成后,将文件从 Inbox/ 移动到 content/clips/
或直接归档到对应的 content/ 子目录
5. 生成摘要报告
报告处理了哪些文件,分别归到了哪里
重要规则
- Web Clipper 导出的文件可能包含大量 HTML 残留,必须先清理
- 提取的正文内容需要去广告、去导航、去噪音
- 图片保留原始 URL,不下载到本地(保持 Obsidian 的外部引用)
技能 3:idea-generator(选题灵感)
触发场景
- 用户说「给我选题」「我想做一期视频」「最近有什么可以做的」
- 用户说「我在准备 [主题] 的内容,有什么角度」
操作流程
1. 读取你的 profile
- 了解你的语言风格
- 了解你的偏好话题
- 了解哪些话题效果最好
2. 扫描内容库
- 读取 content/ 下最近的新笔记
- 读取 graph/gaps.md(选题空白)
- 读取 graph/edges.jsonl(了解已覆盖的领域)
3. 扫描已发布内容
读取 outputs/scripts/ 下 status=published 的脚本,
确保新选题不和已发内容重复或高度雷同
4. 生成选题方向
输出 3-5 个选题,每个选题包含:
- 选题名称
- 核心角度(还没人讲过的切入点)
- 关联素材(哪些现有笔记可以用)
- 预计时长
- 预计难度(素材充足程度)
5. 推荐优先级
按「素材充足度 × 差异化程度 × 个人偏好匹配度」排序
输出格式
# 选题灵感
## 🎯 优先推荐
### [选题1]
- **角度**:[差异化切入点]
- **素材**:可用的现有笔记 [[笔记1]], [[笔记2]]
- **预计时长**:X 分钟
- **预计难度**:🟢 素材充足 / 🟡 需要补充 / 🔴 素材稀缺
### [选题2]
...
## 💡 备选
[其他选题...]
## 📌 选题空白提醒
[来自 gaps.md 的提示]
技能 4:script-writer(口播脚本生成)
触发场景
- 用户说「写脚本」「帮我生成口播」「帮我写文案」
- 用户选定了 idea-generator 输出的选题
操作流程
1. 读取 profile.md
理解用户的风格偏好:
- 喜欢什么开场方式
- 常用词汇 vs 避雷词汇
- 段落长度偏好
- 是否有固定的口头禅
2. 收集素材
- 读取相关 insights/ 下的笔记
- 读取相关 themes/ 下的主题笔记
- 读取相关 stances/ 下的观点
- 从 clips/ 中提取可用素材
3. 生成脚本
按以下结构生成:
- 开场(00:00):[吸引注意力的方式]
- 引入(00:XX):[铺垫背景]
- 核心内容1(0X:XX):[第一观点 + 案例]
- 核心内容2(0X:XX):[第二观点 + 案例]
- 核心内容3(0X:XX):[第三观点 + 案例]
- 总结(0X:XX):[金句 + CTA]
4. 保存文件
- 路径:outputs/scripts/YYYY-MM-DD_主题名_v1.md
- 更新 frontmatter 的 status 为 script
- 记录素材来源
5. 提示用户
- 告知生成了什么
- 告知从哪些笔记中提取了素材
- 告知如何提出修改意见
脚本格式要求
---
[frontmatter,含 type=script, status=script]
---
# [标题]
> **脚本概要**:[一句话]
> **目标受众**:[描述]
> **预计时长**:[X 分钟]
> **视频格式**:口播
---
## 结构大纲
[时间戳 + 内容摘要]
## 完整口播稿
### [00:00] 开场
[逐字逐句]
### [00:XX] [段落标题]
[逐字逐句]
...
---
## 素材来源
| 类型 | 笔记 | 摘录 |
|------|------|------|
重要规则
- 时长控制:每分钟约 200-250 字,根据语速调整
- 语言口语化:避免书面语,多用短句
- 避免重复:不要使用 profile.md 中标记为「避雷」的词汇
- 引用规范:引用原文时注明来源
- 逻辑清晰:每个观点至少有一个具体案例或故事支撑
技能 5:review-script(脚本审核)
触发场景
- 用户说「审核」「检查一下」「有没有问题」
- 脚本生成后自动触发(可选)
审核维度
1. 内容重复检查
- 扫描已发布的脚本(outputs/scripts/ 中 status=published)
- 检查新脚本的核心观点是否和已发内容高度重复
- 标记重复程度(无重复 / 轻微重复 / 高度重复)
2. 风格一致性
- 对照 profile.md 检查:
- 用词偏好是否符合
- 段落长度是否合适
- 是否有避雷词汇
- 标记需要调整的地方
3. 逻辑完整性
- 检查观点是否有案例支撑
- 检查过渡是否自然
- 检查结尾是否有 CTA(Call to Action)
4. 时长准确性
- 根据字数估算实际时长
- 告知实际可能偏差
5. 敏感表达检查
- 检查是否有潜在争议性表达
- 检查是否有夸大或虚假表述
输出格式
# 脚本审核报告
## 🔍 内容重复检查
- **重复程度**:🟢 无重复 / 🟡 轻微重复 / 🔴 高度重复
- **说明**:...
## ✍️ 风格一致性
- **用词**:✅ 符合 / ⚠️ 需调整
- **段落长度**:✅ 合适 / ⚠️ 需调整
- **避雷词汇**:✅ 无 / ⚠️ 发现:...
- **调整建议**:...
## 🧠 逻辑完整性
- **观点支撑**:✅ 充足 / ⚠️ 需补充案例
- **过渡流畅度**:✅ 流畅 / ⚠️ 需优化
- **CTA**:✅ 有 / ❌ 无
- **建议**:...
## ⏱️ 时长估算
- **估算时长**:X 分钟
- **字数**:XXX 字
- **评估**:🟢 合适 / 🟡 略长 / 🟡 略短
## ⚠️ 敏感表达
- **风险**:🟢 低 / 🟡 中 / 🔴 高
- **问题点**:...
## 📊 综合评分
[1-10 分评价]
## 💡 优化建议
[具体可操作的改进建议]
反馈 → 经验沉淀
反馈收集
当用户提出修改意见时:
1. 记录反馈
追加到 outputs/scripts/[日期]_主题_feedback.md
格式:
反馈 v1
- 时间:YYYY-MM-DD HH:MM
- 意见:[用户的原话或 AI 总结]
- 问题类型:[风格 / 逻辑 / 时长 / 其他]
2. 分类处理
- 风格类 → 更新 profile.md
- 逻辑类 → 标记到反馈日志
- 时长类 → 记录时长偏好
3. 提炼长期记忆
定期(月度)将 feedback-log.md 提炼为 profile.md 的更新
反馈类型分类
| 类型 | 处理方式 | 沉淀位置 |
|---|---|---|
| 风格偏好 | 更新 profile.md | profile.md |
| 避雷词汇 | 更新 profile.md | profile.md |
| 逻辑漏洞 | 记录到反馈日志 | feedback-log.md |
| 时长偏差 | 更新 profile.md | profile.md |
| 重复观点 | 更新 edges.jsonl | graph/edges.jsonl |
图谱维护
edges.jsonl 格式
{"from": "来源笔记名", "to": "目标笔记名", "rel": "关系类型", "note": "备注"}
关系类型
| rel | 说明 |
|---|---|
supports |
A 支撑 B |
extends |
A 延伸 B |
contradicts |
A 与 B 矛盾 |
example_of |
A 是 B 的例证 |
responds_to |
A 回应 B |
part_of |
A 属于 B |
gaps.md 维护规则
- 每处理 5 个新的 insights 或 stances,AI 应主动检查 gaps.md
- 如果发现新的未覆盖角度,追加到 gaps.md 的对应区域
- 如果某个空白已被内容覆盖,将其从 gaps.md 移除或标记
profile.md 格式
# 内容偏好画像
## 语言风格
- 句子长度:短句为主,避免长段落
- 语气:[描述]
- 口头禅:[有无]
## 开场偏好
- 首选开场方式:用故事开场 / 用问题开场 / 用数据开场
- 禁止的开场:[描述]
## 避雷清单
- 词汇:
- 表达方式:
- 话题雷区:
## 常青选题
- 效果最好的话题类型:...
- 效果最好的表达方式:...
## 时长偏好
- 偏好时长:X-Y 分钟
- 每分钟字数:约 XXX 字
## 脚本结构偏好
- 核心内容数量:X 个观点
- 是否需要案例:是 / 否
- CTA 类型:...
快速命令参考
| 场景 | 触发词 |
|---|---|
| 处理新剪藏 | 「帮我消化 inbox 里的文章」 |
| 获取选题灵感 | 「给我选题灵感」 |
| 生成口播脚本 | 「帮我写一个 X 分钟的口播脚本,主题是 Y」 |
| 审核脚本 | 「帮我审核这个脚本」 |
| 提出修改意见 | 「帮我修改脚本,意见:...」 |
| 查看内容库 | 「我最近积累了哪些关于 X 的内容」 |
| 更新偏好 | 「我发现自己不喜欢...以后避免用...」 |
Content Brain Skill v1.0 | 妙音集内容大脑