Obcurate
整理和维护 Obsidian 公共知识库 `Agent/Knowledge/` 与文档库 `Agent/Documents/`。适用于用户要求整理公共知识、整理文档、清理 Inbox、维护 `_catalog.md`、合并或拆分知识笔记、重命名主题、修正 aliases/tags/wikilink,或觉得公共知识和文档分类混乱需要低频维护。From its SKILL.md
npx -y skills add GeekXtop/obsidian-agent-skills --skill obcurateAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
15.0 KB, ~5.2k tokens by cl100k_base, as published. Nobody here has run it
Obcurate
整理 Agent/Knowledge/ 中已经存在的公共知识,以及 Agent/Documents/ 中已经存在的文档入口。Agent/Knowledge/_catalog.md 是公共 agent 发现入口;Agent/Documents/_catalog.md 是人类可读文档目录,agent 仅在用户明确指定、任务明确相关或执行文档整理时读取。文档是一等知识库产物,面向人类实践的可读、可执行、可复盘和可迁移使用;短经验只是另一种更紧凑的知识产物。它不是经验提取工具;从当前项目提炼新知识使用 $oblearn。
职责边界
- 维护
Agent/Knowledge/_catalog.md,让它成为已沉淀公共知识的事实来源。 - 维护
Agent/Documents/_catalog.md,让它成为人类可读文档目录和显式读取入口。 - 清理
Agent/Knowledge/Inbox/,把高置信、可复用的短经验按知识主题稳定归类。 - 清理
Agent/Documents/Inbox/,把文档、runbook、guide、reference、evidence 和 troubleshooting 按文档主题稳定归类。 - 修正公共知识笔记和文档的
title、aliases、tags、platform、topic、kind、source_skill、doc_type、wikilink 和脱敏状态。 - 合并重复主题,拆分过长或适用范围混杂的笔记。
- 复查经验生命周期:批量复核待复核(
needs-review)笔记、提出已退役(deprecated)删除建议、提示长期未验证条目。 - 按路径和 metadata 区分短经验知识与面向人类实践的可阅读、可执行文档:
Agent/Knowledge/对应kind: knowledge/source_skill: oblearn,Agent/Documents/对应kind: document/source_skill: obdoc。 - 产物是整理计划、metadata/catalog/wikilink/path 调整和 sensitivity 建议。
- 不从当前项目 memory 提取新经验;需要提取时改用
$oblearn。 - 文档正文里的可复用经验候选作为后续
$oblearn任务;用户明确要求从文档提炼时,按单独$oblearn任务处理。 - 不在普通任务开始时检索知识;需要按任务查阅时只读 catalog 和命中笔记,不使用本 skill。
文档整理边界
kind: document / source_skill: obdoc 的笔记是文档库中的一等知识库产物,可以纳入 $obcurate 整理范围。处理目标是文档本身的可发现性、分类、人类实践可读性和安全状态。
| 输入对象 | $obcurate 处理 | 转交条件 |
|---|---|---|
kind: knowledge / source_skill: oblearn | 合并、拆分、重命名、修正 aliases/tags/wikilink、维护 Agent/Knowledge/_catalog.md | 需要补充来源材料或提炼新经验时,转 $oblearn |
kind: document / source_skill: obdoc | 稳定归类,整理 metadata、Agent/Documents/_catalog.md、标题、aliases、tags、topic、wikilink、路径、Inbox 状态、sensitivity、## 相关 | 用户明确要求从文档提炼可复用经验时,创建单独 $oblearn 任务 |
整理 kind: document 时检查:
kind: document、source_skill: obdoc、use_as、doc_type、topic、sensitivity、status是否能说明文档类型、用途、主题和可公开程度。- 标题、aliases、tags、topic、wikilink、路径和 Inbox 状态是否准确。
- Documents catalog 是否保留:该文档是否应该作为人类可读文档目录入口登记;含内网拓扑、本地事实或
sensitivity不适合公开复用时,仍可稳定归类并登记到Agent/Documents/_catalog.md,但不登记Agent/Knowledge/_catalog.md。 ## 相关是否只链接真实主题相关文档。- 文档正文中的
## 可提取知识候选只作为后续$oblearn线索,不在$obcurate中直接转成短经验知识。 - 含内网拓扑的
kind: document仍可整理 metadata/catalog,其中 catalog 指Agent/Documents/_catalog.md;Agent/Documents/Inbox/不是敏感文档长期归档。敏感但稳定的文档应有稳定路径和明确sensitivity,经验提取和脱敏公共化属于$oblearn。
机器层 metadata 保持英文 token,中文展示用于整理计划和完成说明,例如“类型:文档(kind: document)”“用途:操作手册(use_as: runbook)”。
整理计划必须按用户点名范围裁剪。如果某个文档不属于本轮范围,计划中写明“暂不处理”,并说明只在 Inbox 或 catalog 整理范围内检查 metadata/catalog。
默认行为
用户只说 $obcurate 或“整理公共知识”时,按安全默认值执行:
- 只读取
Agent/Knowledge/_catalog.md、Agent/Knowledge/Inbox/、Agent/Documents/_catalog.md、Agent/Documents/Inbox/、用户指定的笔记,以及这些笔记明确链接的少量相关笔记。 - 使用有限范围,以 catalog、Inbox、用户指定笔记和明确链接为整理输入。用户可以要求只整理 Knowledge、只整理 Documents,或指定某个 topic/doc。
- 先列出整理计划,说明每个建议动作、理由、影响范围和回滚方式。
- 移动、重命名、合并、拆分、删除、批量 catalog 更新前必须等待用户确认。
- 面对多篇 Inbox 或 catalog 条目时按批量整理策略先分组,再让用户按组确认;只有高风险例外逐项确认。
- 默认不删除内容;确需删除时先建议归档或合并,除非用户明确要求删除。
- 不写 secret、账号、token、客户信息、内网地址、机器清单、磁盘序列号等本地事实。
- 发现本地事实时先判断产物类型:短经验知识应脱敏成可复用模式;实践文档可以保留必要当前环境值,但要设置明确
sensitivity、说明复用方式,并决定是否只登记到 Documents catalog。
输入范围
优先读取:
Agent/Knowledge/_catalog.md
Agent/Knowledge/Inbox/
Agent/Knowledge/<用户指定笔记>.md
Agent/Documents/_catalog.md
Agent/Documents/Inbox/
Agent/Documents/<用户指定文档>.md
可以按明确关键词做有限搜索:
obsidian search query="<关键词>" limit=10
obsidian read path="Agent/Knowledge/<命中笔记>.md"
obsidian read path="Agent/Documents/<命中文档>.md"
不要递归扫描整个 vault。没有用户指定范围时,以两类 _catalog.md 和两类 Inbox/ 为主。
批量整理策略
批量整理的目标是让用户确认整理意图和风险边界;低风险条目不逐篇确认。处理多篇笔记时必须先分组,按组给出数量、代表例子、共同理由、影响范围和回滚方式。
默认分组:
| 分组 | 适用情况 | 确认方式 |
|---|---|---|
| 稳定归类 | metadata 完整,topic、路径和 catalog 策略清楚,适合移出 Inbox 或纳入稳定主题 | 按组确认 |
| 保持 Inbox | topic、sensitivity、复用价值或分类仍不稳定 | 按组确认保持现状 |
| 敏感文档 | 包含本地事实、内网拓扑、账号线索或不适合公共 Knowledge catalog 的文档 | 按组确认保留在 Agent/Documents/,补充 sensitivity 和读取条件 |
| 复查候选 | needs-review 待裁决、deprecated 待删除、长期未验证(超过建议阈值) | needs-review 和删除逐项确认;待验证提示按组确认 |
| 需要人工判断 | 合并、拆分、删除、跨主题迁移、公共范围变化较大,或判断依据不足 | 列出高风险例外,逐项确认 |
执行规则:
- 大批量计划先汇总各组数量和代表样例,再列高风险例外;不要把低风险条目展开成冗长逐篇确认清单。
- 结构性修改仍需等待用户确认,但确认单位优先是分组;用户也可以只批准某些分组。
- 对同组条目使用同一处理策略;组内出现路径冲突、敏感信息、catalog 删除、合并目标不清等情况时,把该项移到“需要人工判断”。
- 用户没有回应批量计划时,不执行移动、重命名、合并、拆分、删除或批量 catalog 更新。
经验复查与退役
复查候选有三类:待复核(needs-review)笔记、已退役(deprecated)待删除笔记、长期未验证笔记(last_verified 距今超过阈值;建议默认 180 天,可按用户偏好调整)。
needs-review逐项给用户裁决:恢复active、标deprecated或修正内容。deprecated笔记可列入删除建议组,逐项确认后删除;确认删除时同步清理Agent/Knowledge/_catalog.md对应入口和notes链接。- 未删除的
deprecated笔记默认从 catalogterms移除入口或在notes标注已退役,防止被自动发现命中;保留正文和## 退役小节作为反例背景。 - 长期未验证但无矛盾证据的笔记只列“待验证”建议,不自动降级;时间流逝本身不是证伪证据。
- 项目内
.agents/lessons.md的验证和退役标注属于$obclose;其已退役条目的删除遵循$obclose的确认后维护规则,不在本 skill 默认范围。
工作流
- 确认整理范围:只整理 Knowledge、只整理 Documents、两个库一起整理、
Inbox/、catalog、某个平台、某个 topic,或用户指定的笔记列表。 - 读取范围内的
Agent/Knowledge/_catalog.md、Agent/Documents/_catalog.md和范围内笔记。 - 识别问题:重复主题、过长笔记、缺失 aliases、过期 wikilink、未脱敏内容、catalog stale link、Inbox 可稳定归类笔记、文档 metadata/catalog 状态。
- 生成整理计划,先按批量整理分组:稳定归类、保持 Inbox、敏感文档、需要人工判断;再在每组内按动作标明保留、移动、重命名、合并、拆分、修正 metadata、更新 catalog、暂不处理。
- 对每个
kind: document计划项标明处理类型:整理 metadata/catalog、保留为文档入口、补充sensitivity,或因不属于本轮范围而暂不处理。 - 等待用户按组确认结构性修改;“需要人工判断”和高风险例外必须逐项确认。
- 执行确认过的修改;每次修改保持最小范围。移动前检查路径冲突,确认目标路径目录,并先确保目标目录存在。
- 读回被修改的笔记和对应
_catalog.md,确认 wikilink、aliases、terms、notes 一致。 - 汇报修改过的文件、跳过的建议和需要用户判断的剩余项。
Catalog 维护
Agent/Knowledge/_catalog.md 是已沉淀公共知识的事实来源,不是完整分类树。catalog 不只回答“有哪些笔记”,还回答“查到后怎么用”。
Agent/Documents/_catalog.md 是文档目录和显式读取入口,可以按主题分组为人类可读 Markdown。它服务文档发现,不参与普通任务的公共知识自动检索。
建议结构:
## terms
- term: <关键词>
aliases: []
kind: knowledge
use_as: rule
notes:
- [[<真实笔记标题>]]
维护规则:
terms使用稳定关键词,例如平台名、框架名、错误类别或任务类型。aliases默认保持[];只写用户确认、笔记现有 frontmatter、标题可直接推出的别名。kind标明命中对象是knowledge;use_as标明使用语义。knowledge通常作为公共经验、规则、检查清单或启发式判断使用,use_as可写rule、checklist或heuristic。notes只链接真实存在的公共知识笔记或文档笔记。- 不凭空假设某个领域已经沉淀;没有真实笔记就不登记。
- 合并或重命名笔记时,保留旧标题或旧关键词为
aliases,避免旧搜索词失效。 - 删除 stale link 前先确认目标笔记确实不存在或已经被合并。
Documents catalog 可使用更人类友好的 Markdown 目录。展示分组名是人类阅读层,不是固定分类枚举;根据用户或项目既有语言偏好、vault 既有目录风格和文档实际 topic 命名。不要直接复制示例分组名,示例只说明结构。目标路径目录可以使用稳定英文 token 或 vault 既有目录名,展示分组名可以中文优先并保留英文对照。
## <展示分组名,例如:网络 / Network>
- [[<目标路径目录>/<真实文档标题>|<真实文档标题>]]
- 类型:文档(`kind: document`)
- 用途:操作手册(`use_as: runbook`)
- 敏感度:内部网络细节(`sensitivity: internal-network-details`)
- 读取条件:仅在用户明确涉及本地 PVE / ImmortalWrt / 内网迁移,或指定该文档时读取。
Tags
tags 是辅助 metadata,用于 Obsidian UI、Bases、Dataview、人工筛选和低频整理辅助,不作为 agent 发现入口。
整理 tags 时只做一致性维护:明显错类时修正,缺少稳定用途时保持 tags: []。不要用 tags 替代 catalog 的 terms / aliases / kind / use_as,也不要只凭 tags 决定稳定归类、敏感度或 catalog 是否保留。
Inbox 整理
Agent/Knowledge/Inbox/ 和 Agent/Documents/Inbox/ 是低摩擦落点,不是错误状态。
可以建议稳定归类的情况:
- 同一主题出现多次。
- 笔记已经被项目实际使用过。
- 适用场景、检查项和脱敏状态清楚。
- 能稳定命名为“某平台/某技术/某任务类型怎么处理某问题”。
保持 Inbox 或列为待判断的情况:
- 内容仍是未验证猜测。
- 内容包含本地事实且无法可靠脱敏。
- 适用范围不清楚。
- 只是一次性记录,没有复用价值。
合并、拆分和重命名
合并前先列出:
- 源笔记。
- 目标笔记。
- 合并理由。
- 冲突内容。
- 将保留为
aliases的旧标题。
拆分前先列出:
- 原笔记。
- 新主题。
- 每个新主题的适用范围。
- 原笔记是否保留为索引或归档。
重命名前先读取 backlinks 或定向搜索旧标题;重命名后更新明确指向旧标题的 wikilink,并把旧标题写入 aliases。
隐私和脱敏
短经验知识只保留可复用模式,不保留本地事实。实践文档可以保留必要当前环境值、拓扑和验证证据,但必须让读者知道这些值是材料中的当前事实,复用时需要替换本地参数。
遇到敏感内容时:
- 用
<management-subnet>、<pve-node>、<backup-target>这类占位描述替代。 - 将
sensitivity设为sanitized。 - 如果无法脱敏,文档可以稳定归类到
Agent/Documents/并设置明确sensitivity;不要登记到公开复用的Agent/Knowledge/_catalog.md。
模板
优先使用本 skill 的模板:
| 模板 | 目标 |
|---|---|
templates/curation-plan.md | 修改前整理计划 |
templates/catalog-entry.md | _catalog.md 条目格式 |
完成说明
结束时只汇报:
- 读取了哪些公共知识范围。
- 执行了哪些已确认的整理动作。
- 更新了哪些
terms/aliases/notes。 - 哪些建议等待用户确认。
- 哪些内容因隐私、范围不清或证据不足而跳过。
What ships with it: 3 files
2.7 KB alongside SKILL.md
agents/
- openai.yaml213 B
templates/
- catalog-entry.md279 B
- curation-plan.md2.2 KB