name: ah-init description: 知识库初始化与索引管理。用于首次搭建知识库、迁移旧笔记,或后续维护索引统计,统一完成目录校验、页面初始化、索引生成与状态汇报。
执行 Obsidian 的读取、检索、写入等动作时,优先调用官方技能:
obsidian-cli。
知识库初始化与索引管理
目标:一个入口完成“初始化 + 迁移 + 索引更新 + 主页维护”。
启动即执行
- 扫描当前知识库结构与文件数量。
- 判断运行模式:
- 初始化模式(缺少标准结构)
- 更新模式(结构已存在,仅更新索引)
- 主页刷新模式(用户明确要求更新主页、HOME、首页文档)
- 告知用户本次执行范围与将写入的文件。
- 无论进入哪种模式,最后都必须执行一次“主页检查”:不存在则创建,存在自动区则刷新自动区,存在旧主页但没有自动区则先确认再转换。
流程锁定规则(高优先级)
- 进入本技能后,按当前模式完成核心流程再退出。
- 用户在问答中提到“阅读/项目/回顾”等词,默认作为初始化输入,不自动切换技能。
- 仅在用户明确输入其他命令时允许切换。
模式 A:初始化/迁移
- 创建并校验标准目录:
{{notePaths.captureRoot}}/{{notePaths.dailyNotes}}/{{notePaths.highlights}}/{{notePaths.weeklyReviews}}/{{notePaths.monthlyReviews}}/{{notePaths.yearlyReviews}}/{{notePaths.permanentNotes}}/{{notePaths.literatureNotes}}/{{notePaths.topicNotes}}/{{notePaths.domainPages}}/{{notePaths.activeProjects}}/{{notePaths.archive}}/{{metaPaths.memory}}/{{metaPaths.memory}}/reading/{{metaPaths.memory}}/cards/{{metaPaths.memory}}/projects/{{metaPaths.memory}}/reviews/{{metaPaths.indexes}}/
- 扫描并确认连接层领域页(优先复用已有设置)。
- 扫描并确认培养层主题笔记(扁平结构,无子目录)。
- 创建 HOME 主页:若不存在主页,立即使用
references/HOME模板.md创建🏠Home.md,保留顶部插件提示;这一步不依赖领域页/主题笔记确认结果。 - 按用户确认结果生成其他基础页面:领域页、主题笔记、项目总览。
- 迁移旧笔记(保留原内容,按规则分类)。
- 初始化
{{metaPaths.memory}}/STATUS.md。 - 生成知识库索引
{{metaPaths.indexes}}/kb-manifest.md。
模式 B:索引更新
- 扫描四层目录与关键子目录。
- 统计:笔记数量、主题分布、领域分布、项目分布。
- 更新
{{metaPaths.indexes}}/kb-manifest.md。 - 同步检查主页自动区:若主页不存在则创建;若主页存在且包含 FLOWNOTE 自动区标记,则只更新自动区;若主页存在但没有标记,先征求用户确认,不得直接覆盖。
- 输出本次变化摘要(与上次对比)。
模式 C:主页刷新
当用户说“更新主页 / 刷新首页 / 修复 HOME / 主页显示不对”时进入本模式。
- 查找主页文件,候选顺序:
🏠Home.md🏠 主页.md🏠 Home.mdHome.md
- 若不存在主页:
- 使用
references/HOME模板.md创建🏠Home.md。 - 首次创建时保留顶部插件提示,提醒用户安装 Dataview;Banners 为可选。
- 使用
- 若已存在主页且包含:
<!-- FLOWNOTE_HOME_AUTOMATED_START --><!-- FLOWNOTE_HOME_AUTOMATED_END -->则只替换两个标记之间的内容,保留用户在标记外写的内容。
- 若已存在主页但没有自动区标记:
- 先说明旧主页会被转换为自动主页。
- 必须得到用户确认后才整体替换。
- 如果用户不同意,只输出建议,不写入。
- 后续刷新主页时,不重新插入顶部插件提示。用户删除提示后必须尊重。
- 主页正文优先使用 Dataview / DataviewJS 自动读取状态,避免把项目、主题、统计数字写死。
- 主页统计必须排除:
.obsidian/.flownote/.opencode/.agents/{{metaPaths.memory}}/{{metaPaths.legacyMemory}}/{{notePaths.archive}}/Clippings/
- 活跃项目只统计
{{notePaths.activeProjects}}/下项目自己的📍 项目总览.md,不得把根目录的{{notePaths.activeProjects}}/📍 项目总览.md算作项目。
用户场景判定
场景 1:新装用户,已有自己的笔记结构
- 判定:标准四层目录缺失或不完整,但 vault 内已有其他笔记。
- 行为:
- 不移动、不删除用户原有目录,除非用户明确确认迁移。
- 创建 FLOWnote 最小标准目录。
- 自动创建
🏠Home.md,使用references/HOME模板.md,包含顶部 Dataview/Banners 插件提示。 - 主页使用 Dataview 自动读取状态,因此即使用户旧结构尚未迁移,也不会写死错误项目或统计。
- 对领域页、主题笔记、旧笔记迁移继续走确认流程。
场景 2:老用户升级,已有主页
- 判定:存在
🏠Home.md/🏠 主页.md/🏠 Home.md/Home.md。 - 行为:
- 如果主页包含
FLOWNOTE_HOME_AUTOMATED_START/END,只刷新自动区。 - 保留自动区外用户自己写的内容。
- 不重新插入顶部插件提示;用户删掉提示就视为主动删除。
- 如果主页没有自动区标记,必须先说明会转换主页并征求确认,不得直接覆盖。
- 如果主页包含
场景 3:老用户升级,但之前没有主页
- 判定:标准结构可能存在,但找不到任何主页候选文件。
- 行为:
- 自动创建
🏠Home.md。 - 使用
references/HOME模板.md。 - 保留顶部插件提示,因为这是首次创建主页。
- 创建后继续更新索引与输出路径摘要。
- 自动创建
索引统计范围
- 捕获层:每日/周/月/年笔记数量 + 划线笔记数量
- 培养层:永久笔记、文献笔记、主题笔记数量
- 连接层:领域页数量
- 创造层:活跃项目与归档项目数量
输出标准
- 初始化模式必须输出:创建目录、创建页面、迁移结果、索引结果。
- 索引更新模式必须输出:本次统计、增量变化、发现的问题、建议动作。
- 主页刷新模式必须输出:主页路径、是否创建/替换自动区、是否保留用户自定义内容。
- 两种模式都必须给出最终文件路径,保证可追溯。
- 初始化模式必须额外输出:领域确认结果、主题确认结果(复用/补充/新建)。
关键执行规则(确定性)
- 目录初始化不能只建父目录,必须把下游技能依赖的子目录一次建齐。
- 捕获层最小可用结构固定为:
每日笔记/、划线笔记/、周记/、月记/、年记/。 - 记忆系统最小可用结构固定为:
{{metaPaths.memory}}/STATUS.md+reading/+cards/+projects/+reviews/。 - 项目系统初始化时,若
{{notePaths.activeProjects}}/📍 项目总览.md不存在,必须创建最小索引文件。 - 连接层初始化规则:
- 先扫描
{{notePaths.domainPages}}/*.md作为“已有领域页”。 - 若已有领域页,先向用户回显并确认“沿用/补充/删改”。
- 若无领域页,先给候选方案并与用户确认后再创建,不得直接落盘。
- 领域确认固定提示:
我发现你当前已有这些领域页:{{已有领域页}}。是否沿用?还需要补充或调整哪些领域?你当前还没有领域页。基于常见工作流,我建议先建立:{{候选领域}}。您看这样是否可行?还有什么需要补充的吗?
- 先扫描
- 主题笔记初始化规则:
- 主题笔记目录固定为
{{notePaths.topicNotes}}/。 - 主题笔记必须是该目录下的一级
.md文件(扁平结构),禁止在主题目录下再建子文件夹。 - 若已有主题笔记,全部保留在该目录并向用户确认“沿用/补充/重命名”。
- 若无主题笔记,先与用户确认关注主题后再创建,不得直接落盘。
- 主题确认固定提示:
我发现你当前已有这些主题笔记:{{已有主题}}。这些是否需要调整或补充?你当前还没有主题笔记。为了后续知识连接,我建议先从这些主题开始:{{候选主题}}。您看这样是否可行?还有什么需要补充的吗?
- 主题笔记目录固定为
- 领域与主题确认分支规则:
- 用户确认可行且无补充 -> 按确认结果创建或复用。
- 用户提出补充/修改 -> 合并去重后执行创建/更新。
- 用户明确不可行 -> 基于反馈重生成一版并再次确认。
- 若创建/写入失败:报告失败位置 -> 停止后续写入 -> 修复后再继续(禁止静默失败)。
主页模板维护规则
- 主页模板文件:
references/HOME模板.md。 - 主页模板包含两类内容:
- 一次性提示区:顶部 Dataview/Banners 插件提示,仅新建主页时写入。
- 自动区:
FLOWNOTE_HOME_AUTOMATED_START/END之间的内容,可在刷新时替换。
- 更新主页时优先复用模板中的自动区,不要手写旧版硬编码项目列表。
- 如果用户已经手动编辑自动区之外的内容,必须保留。
- 如果用户删除了插件提示,不要在刷新时重新添加。
检查清单
- 已正确判定运行模式
- 已完成目录校验(初始化模式)
- 已完成捕获层子目录初始化(每日/划线/周/月/年)
- 已完成
ai-memory子目录初始化(reading/cards/projects/reviews) - 已完成领域页确认(已有复用或用户确认新建)
- 已完成主题笔记确认(扁平结构,无子目录)
- 已完成迁移与页面初始化(初始化模式)
- 已完成索引生成/更新
- 已检查或刷新主页自动区
- 已输出统计与问题摘要
渐进加载(按需读取)
- HOME 页面模板:
references/HOME模板.md - 主题笔记模板:
references/主题笔记模板.md - 领域页模板:
references/领域页模板.md - 迁移格式规则:
references/永久笔记迁移格式.md - 记忆系统模板:
references/记忆系统初始化模板.md - 索引模板:
references/kb-manifest模板.md
相关技能
ah-legacy:后续分批处理难迁移旧笔记ah-card:把迁移内容转为高质量永久笔记ah-project:把项目型旧笔记转入项目工作流ah-note:初始化后开始每日使用