ah-init

star 16

知识库初始化与索引管理。用于首次搭建知识库、迁移旧笔记,或后续维护索引统计,统一完成目录校验、页面初始化、索引生成与状态汇报。

1095327780 By 1095327780 schedule Updated 6/13/2026

name: ah-init description: 知识库初始化与索引管理。用于首次搭建知识库、迁移旧笔记,或后续维护索引统计,统一完成目录校验、页面初始化、索引生成与状态汇报。

执行 Obsidian 的读取、检索、写入等动作时,优先调用官方技能:obsidian-cli

知识库初始化与索引管理

目标:一个入口完成“初始化 + 迁移 + 索引更新 + 主页维护”。

启动即执行

  1. 扫描当前知识库结构与文件数量。
  2. 判断运行模式:
    • 初始化模式(缺少标准结构)
    • 更新模式(结构已存在,仅更新索引)
    • 主页刷新模式(用户明确要求更新主页、HOME、首页文档)
  3. 告知用户本次执行范围与将写入的文件。
  4. 无论进入哪种模式,最后都必须执行一次“主页检查”:不存在则创建,存在自动区则刷新自动区,存在旧主页但没有自动区则先确认再转换。

流程锁定规则(高优先级)

  • 进入本技能后,按当前模式完成核心流程再退出。
  • 用户在问答中提到“阅读/项目/回顾”等词,默认作为初始化输入,不自动切换技能。
  • 仅在用户明确输入其他命令时允许切换。

模式 A:初始化/迁移

  1. 创建并校验标准目录:
    • {{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}}/
  2. 扫描并确认连接层领域页(优先复用已有设置)。
  3. 扫描并确认培养层主题笔记(扁平结构,无子目录)。
  4. 创建 HOME 主页:若不存在主页,立即使用 references/HOME模板.md 创建 🏠Home.md,保留顶部插件提示;这一步不依赖领域页/主题笔记确认结果。
  5. 按用户确认结果生成其他基础页面:领域页、主题笔记、项目总览。
  6. 迁移旧笔记(保留原内容,按规则分类)。
  7. 初始化 {{metaPaths.memory}}/STATUS.md
  8. 生成知识库索引 {{metaPaths.indexes}}/kb-manifest.md

模式 B:索引更新

  1. 扫描四层目录与关键子目录。
  2. 统计:笔记数量、主题分布、领域分布、项目分布。
  3. 更新 {{metaPaths.indexes}}/kb-manifest.md
  4. 同步检查主页自动区:若主页不存在则创建;若主页存在且包含 FLOWNOTE 自动区标记,则只更新自动区;若主页存在但没有标记,先征求用户确认,不得直接覆盖。
  5. 输出本次变化摘要(与上次对比)。

模式 C:主页刷新

当用户说“更新主页 / 刷新首页 / 修复 HOME / 主页显示不对”时进入本模式。

  1. 查找主页文件,候选顺序:
    • 🏠Home.md
    • 🏠 主页.md
    • 🏠 Home.md
    • Home.md
  2. 若不存在主页:
    • 使用 references/HOME模板.md 创建 🏠Home.md
    • 首次创建时保留顶部插件提示,提醒用户安装 Dataview;Banners 为可选。
  3. 若已存在主页且包含:
    • <!-- FLOWNOTE_HOME_AUTOMATED_START -->
    • <!-- FLOWNOTE_HOME_AUTOMATED_END --> 则只替换两个标记之间的内容,保留用户在标记外写的内容。
  4. 若已存在主页但没有自动区标记:
    • 先说明旧主页会被转换为自动主页。
    • 必须得到用户确认后才整体替换。
    • 如果用户不同意,只输出建议,不写入。
  5. 后续刷新主页时,不重新插入顶部插件提示。用户删除提示后必须尊重。
  6. 主页正文优先使用 Dataview / DataviewJS 自动读取状态,避免把项目、主题、统计数字写死。
  7. 主页统计必须排除:
    • .obsidian/
    • .flownote/
    • .opencode/
    • .agents/
    • {{metaPaths.memory}}/
    • {{metaPaths.legacyMemory}}/
    • {{notePaths.archive}}/
    • Clippings/
  8. 活跃项目只统计 {{notePaths.activeProjects}}/ 下项目自己的 📍 项目总览.md,不得把根目录的 {{notePaths.activeProjects}}/📍 项目总览.md 算作项目。

用户场景判定

场景 1:新装用户,已有自己的笔记结构

  • 判定:标准四层目录缺失或不完整,但 vault 内已有其他笔记。
  • 行为:
    1. 不移动、不删除用户原有目录,除非用户明确确认迁移。
    2. 创建 FLOWnote 最小标准目录。
    3. 自动创建 🏠Home.md,使用 references/HOME模板.md,包含顶部 Dataview/Banners 插件提示。
    4. 主页使用 Dataview 自动读取状态,因此即使用户旧结构尚未迁移,也不会写死错误项目或统计。
    5. 对领域页、主题笔记、旧笔记迁移继续走确认流程。

场景 2:老用户升级,已有主页

  • 判定:存在 🏠Home.md / 🏠 主页.md / 🏠 Home.md / Home.md
  • 行为:
    1. 如果主页包含 FLOWNOTE_HOME_AUTOMATED_START/END,只刷新自动区。
    2. 保留自动区外用户自己写的内容。
    3. 不重新插入顶部插件提示;用户删掉提示就视为主动删除。
    4. 如果主页没有自动区标记,必须先说明会转换主页并征求确认,不得直接覆盖。

场景 3:老用户升级,但之前没有主页

  • 判定:标准结构可能存在,但找不到任何主页候选文件。
  • 行为:
    1. 自动创建 🏠Home.md
    2. 使用 references/HOME模板.md
    3. 保留顶部插件提示,因为这是首次创建主页。
    4. 创建后继续更新索引与输出路径摘要。

索引统计范围

  • 捕获层:每日/周/月/年笔记数量 + 划线笔记数量
  • 培养层:永久笔记、文献笔记、主题笔记数量
  • 连接层:领域页数量
  • 创造层:活跃项目与归档项目数量

输出标准

  • 初始化模式必须输出:创建目录、创建页面、迁移结果、索引结果。
  • 索引更新模式必须输出:本次统计、增量变化、发现的问题、建议动作。
  • 主页刷新模式必须输出:主页路径、是否创建/替换自动区、是否保留用户自定义内容。
  • 两种模式都必须给出最终文件路径,保证可追溯。
  • 初始化模式必须额外输出:领域确认结果、主题确认结果(复用/补充/新建)。

关键执行规则(确定性)

  • 目录初始化不能只建父目录,必须把下游技能依赖的子目录一次建齐。
  • 捕获层最小可用结构固定为:每日笔记/划线笔记/周记/月记/年记/
  • 记忆系统最小可用结构固定为:{{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:初始化后开始每日使用
Install via CLI
npx skills add https://github.com/1095327780/FLOWnote --skill ah-init
Repository Details
star Stars 16
call_split Forks 3
navigation Branch main
article Path SKILL.md
More from Creator