junyi-vault · git:20260719.22f9438 · 2026-07-19 · sha256 d388facdc37f5cdc

junyi-vault git:20260719.22f9438A

Immutable. This exact content is served forever at /api/v1/blob/d388facdc37f5cdc.

---
name: junyi-vault
description: 搭建、维护和诊断采用“域—类—档”模型的个人知识库:从零设计最小目录骨架,把笔记、蒸馏素材、复盘和资料归入现有结构,或只读审计已经混乱的 Obsidian/Markdown 文件库并提出迁移方案。用于“搭知识库”“初始化 Obsidian”“这条笔记放哪”“批量归档”“整理混乱知识库”“合并 vault-builder 和 vault-filer”等任务。任何创建、移动、覆盖或批量写入都必须先预览并取得明确确认。
---

# 君一知识库

用一个入口处理知识库的三个状态:没有结构时搭建,有稳定结构时归档,结构混乱时先诊断。不要把“重新整理”理解成获得了擅自移动或覆盖用户文件的授权。

## 先判断状态

1. 确认知识库根目录。路径不明确时先定位,不根据文件夹名猜测。
2. 只读扫描现有结构;可运行:

   ```bash
   python3 scripts/scan_vault.py <知识库根目录>
   ```

3. 路由到一种模式:
   - **搭建模式**:目标目录不存在或基本为空,用户要从零建立结构。
   - **归档模式**:已有可理解的结构,用户要放入一条或一批新内容。
   - **诊断模式**:存在重复分类、层级过深、大量散落文件或用户明确说知识库很乱。
4. 如果状态不明确,展示扫描证据和建议模式,让用户确认;不要用“可能是空库”直接创建。

## 不可违反的规则

- 任何创建目录、写入文件、移动、重命名、合并或覆盖之前,先展示完整计划和目标路径。
- 新增“域”或“类”必须获得用户确认;归类不确定时给出 2–3 个候选和差异,不瞎猜。
- 默认不覆盖现有文件。批量操作默认 dry-run;只有用户确认计划后才使用 `--apply`。
- 诊断模式默认只读。迁移计划与迁移动作分开,不能在同一步完成。
- 不删除原文,不把有力量的原话切碎,不根据标题编造正文结构。
- 先读取现有命名、frontmatter、索引和隐私习惯;现有稳定约定优先于本 Skill 的默认模板。
- 私密内容不因为进入知识库就自动获得公开授权。记录来源、授权和隐私级别。
- 不让符号链接、绝对路径或 `..` 路径逃出知识库根目录。

## 核心模型

- **域**:长期负责或持续关心的生活/工作范围,通常 3–6 个。
- **类**:域内稳定出现、检索时会主动寻找的内容类型,通常每域 2–5 个。
- **档**:具体笔记、记录、案例、素材或产物。

域和类是检索承诺,不是装饰。能通过搜索、标签或索引解决的问题,不急着新增文件夹。新库默认只预建“域/类”两层;已有库不强制改成两层。

## 搭建模式

读取 [build-mode.md](references/build-mode.md) 并执行:

1. 了解用户要管理的内容、最常见检索问题、五个高频使用场景、隐私边界和现有工具。
2. 选择最接近的起手模型,再按真实内容收敛为 3–6 个域、每域 2–5 个类。
3. 展示“域—类”清单、每个类收什么/不收什么,以及三个示例归档。
4. 用户确认后生成操作 manifest,先 dry-run:

   ```bash
   python3 scripts/apply_manifest.py plan.json --root <目标目录>
   ```

5. 用户明确确认本次计划后再执行:

   ```bash
   python3 scripts/apply_manifest.py plan.json --root <目标目录> --apply
   ```

6. 重新扫描,确认目录、根索引和使用说明存在且未覆盖原文件。

## 归档模式

读取 [file-mode.md](references/file-mode.md) 和 [schema-decision.md](references/schema-decision.md):

1. 扫描现有域、类和命名约定。
2. 判断内容的“主要未来用途”,再选择域和类;主题相似但用途不同的内容不强行放一起。
3. 给出置信度与依据。低置信度必须询问;现有分类都不合适时提出一个最小新增方案并等待确认。
4. 选择强、半或无 schema;保留来源、原话和必要上下文。
5. 展示目标路径、文件名、frontmatter、内容结构和冲突处理方式。
6. 确认后通过 manifest 写入;默认同名冲突报错,可在用户确认后改用安全后缀。覆盖必须单独明确授权。
7. 回执写清写到哪里、为何归到这里、是否新增分类、是否保留待确认项。

## 诊断模式

读取 [audit-mode.md](references/audit-mode.md):

1. 只读扫描目录深度、根目录散落文件、重复/近义分类、空目录和命名漂移。
2. 通过抽样内容确认用途,不能只看文件名批量判定。
3. 输出“保留、合并候选、改名候选、待观察、不能自动处理”五类清单。
4. 提供可逆迁移顺序和回滚点;用户确认前不生成 apply manifest。
5. 每一批迁移单独预览、确认、执行和验收,不进行一次性大搬家。

## 完成前验收

- 重新运行 `scan_vault.py`,结构与已确认计划一致。
- manifest 中每个路径都在根目录内;没有未说明冲突和失败项。
- 新文件可用 UTF-8 读取、无 U+FFFD 乱码、frontmatter 合法。
- 没有覆盖、删除、移动计划之外的用户文件。
- 归档内容仍能追溯来源;引用、时间和人物没有被改写。
- 新增分类都能回答“以后什么内容会继续放进来”,否则撤回新增。

只有用户明确要求时,才继续把新结构接入其他 Agent、自动化任务或云端系统。