本技能面向 Obsidian 文章库的整理环节,目标是把杂乱的收藏规整成结构化、可检索、可聚合的知识,解决归档内容长期闲置未被激活的问题。
【主要能力】
- 补 frontmatter:为缺少 topics / captured_at / author 的文章补上对应字段。
- 主题归类:读取文章内容,判断应挂载哪些 topics(双链);优先复用已有主题(查 _MOC/),避免创建重复主题。
- 建/更新 MOC:运行 rebuild_moc.py 重建两级主题地图(一级分类 → 二级 topic)。
- 按月归位:clip 原生落在 <年>/ 目录,本技能按文件名日期把文章归到 <年>/<月>/。
- 补双链:补充文章之间、文章与书、文章与日志之间的关联。
【底层脚本】
- scripts/rebuild_moc.py:扫描全部文章 topics,重建 _MOC/ 两级地图。支持用 --vault 或 OBSIDIAN_VAULT 指定库路径,分类表可用 _MOC/.categories.json 按库覆盖默认值,详见脚本 --help。
- soia-pkm-library-book-catalog/scripts/backfill_reading_records.py:书库到阅读记录的补齐(读书线的本地 catalog)。
- 按月归位:mv <年>/*.md <年>/<月>/(按文件名日期)。
职责划分上,脚本负责确定性批量操作,LLM 负责「这篇属于什么主题」「这个 MOC 的核心判断是什么」等语义判断。
【分类原则】 topic 优先复用已有项(查 _MOC/),不轻易创建新主题;映射写死在 rebuild_moc.py 的分类表中,不依赖 AI 每次猜测,修改归类时改表后重跑。
【使用方式】 以自然语言说明目标,并提供必要输入:文件、URL、repo、workspace、proposal、vault 或平台账号状态。Agent 先判断是否命中本技能,再检查依赖、配置、权限与风险动作;能 dry-run 或预览的动作先给预览;涉及删除、覆盖、发送、发布、写远端状态时先征求确认;执行后验证真实输出。
【安装与配置】 安装命令:npx skills add soia-team/soia-open-skills -g -a '*' -s soia-pkm-organize-article-moc -y 配置约定路径:~/.config/soia-skills/soia-open-skills/soia-pkm/soia-pkm-organize-article-moc/config.yml 可用环境变量 SOIA_PKM_ORGANIZE_ARTICLE_MOC_CONFIG_FILE 指定自定义配置路径。若无需私有配置,可不创建 config.yml。API key、cookie、session、provider home 或本机路径只能放入私有 config.yml、进程环境或 provider 登录态,不能写入仓库、vault 正文或日志。
【前置规程】 任何「整理/重组知识库某一块」的任务开工前,先加载并严格遵循 references/知识库整理规程.yml:先只读探明现状(摸清已有结构、约定、模板,发现同类先并入不另起)→ 再提最小方案给用户拍板 → 确认后才批量执行。核心红线:不先探明就动手必返工;已有成熟结构还另起一套是重复造轮子;空模板、瞎猜分类、一次性批量生成再让用户挑错都是浪费。规程为外部配置,与本 skill 解耦,修改规程应改该 yml。
【闭环位置】 clip(收)→ ★organize(整理)→ distill(点)→ compose(写)→ publish(发)。上游 clip 收进来(可能杂乱、落在年份根目录),organize 负责规整,下游 distill 在规整的库上提炼。
【回执要求】 执行后必须向用户输出:做了什么、文件变更(新建/修改/移动的完整路径,未改动则说明)、验证情况、问题与下一步,以及处理篇数、补齐的 topics、MOC 更新情况和归位文件数。
【限制】 本技能的资料未说明支持的 Obsidian 版本、操作系统限制、处理规模上限或具体的错误恢复策略;强依赖、可选依赖和第三方 skill 关系应以 SKILL.md 后续的「依赖/前置/资源/边界」说明为准,未写清时应先补说明或询问客户,不要猜测。