| name | personal-knowledge-base |
| description | 基于 LLM Wiki 模式构建的个人知识库系统。用于知识沉淀、文章归档、概念整理、决策记录和知识库查询。当用户说"记下来"、"归档"、"沉淀一下"、"查知识库"、"wiki 里查一下"、"翻一下笔记"、"健康检查"、"lint 一下",或者任何涉及笔记管理、文章归档、决策记录、知识查询的场景,即使没有明确提到"知识库",也应使用此技能。 |
核心分工:用户策展方向,我负责所有记账工作。
知识库位置
~/knowledge/
自动创建:如果 ~/knowledge/ 目录不存在,我会自动创建完整的目录结构(包括 raw/ 和 wiki/ 下的所有子目录),无需用户手动创建。
目录结构
~/knowledge/
├── raw/{articles,notes,assets}/ ← 原始材料,我只读
└── wiki/{concepts,summaries,decisions,profiles,projects,collections,tasks}/
├── index.md ← 目录索引(每条更新)
├── log.md ← 操作日志(每次追加)
├── concepts/ ← 知识概念、技术原理
├── summaries/ ← 文章/笔记摘要
├── decisions/ ← 架构决策记录 (ADR)
├── profiles/ ← 个人资料(财务/简历/开源贡献)
├── collections/ ← 收藏(GitHub 项目 + 站点 + 前端库)
│ ├── github-repos.md ← GitHub 项目收藏聚合索引(主表 + 简要记录表)
│ ├── sites.md ← 站点收藏索引(工具/文档/博客)
│ ├── mcp.md ← MCP Server 索引
│ ├── skills.md ← Agent Skill 索引
│ ├── frontend-libs.md ← 前端常用 UI / 工具库索引(按子专题分区)
│ ├── mirror.md ← 容器镜像加速 / 镜像代理索引
│ ├── desktop-software.md ← 桌面端应用软件索引(按专题分区)
│ └── {name}.md ← 收藏项目的独立详情页
├── projects/ ← 个人在做的项目(含追踪/看板子页面)
└── tasks/
├── index.md ← 当期待办(按周分组,含源页面链接)
└── done.md ← 历史完成记录(归档用)
触发规则
用户主动触发
| 触发词 | 流程 |
|---|
| "记下来" / "归档" / "沉淀一下" / "记录" / "保存" / "这个值得记" | Ingest — 见下方 |
| "收藏这个项目" / "收藏 xxx" / "收藏 GitHub 项目" / "这个项目不错" | GitHub 项目收藏 — 见下方 |
| "收藏这个站点" / "收藏这个网站" / "记一下这个站" / "这个网站有用" | 站点收藏 — 见下方 |
| "收藏这个 MCP" / "记一下这个 MCP" / "这个 MCP 不错" | MCP 收藏 — 见下方 |
| "收藏这个 Skill" / "记一下这个 Skill" / "这个 Skill 有用" | Skills 收藏 — 见下方 |
| 遍历 UI 库 / 前端库列表集 / "看看这些前端库" | 前端常用库收藏 — 见下方(经用户筛选后入 frontend-libs.md) |
| "查知识库" / "wiki 里查一下" / "翻一下笔记" / "之前记录过什么" | Query — 见下方 |
| "健康检查" / "lint 一下" / "检查知识库" / "整理一下知识库" | Lint — 见下方 |
| "这个讨论归档" / "把这段对话记下来" | 提取当前对话 → Ingest |
| "看下待办" / "我还有什么没做" / "最近要干什么" / "待办事项" | Show tasks — 读 wiki/tasks/index.md |
| "更新待办" / "勾掉 xxx" / "xxx 完成了" / "标记完成" | Toggle task — 勾选 tasks 条目并同步更新源页面 |
| "增加/创建一个 xxx 收藏专题" / "新建一个 xxx 专题页" / "创建新的分类" | 新增专题聚合页 — 见下方 |
我主动询问"这个要归档吗?"
- 架构决策确定后
- 非 trivial bug 修完并找到根因后
- 我帮你读完一篇长文并做了分析后
- 你详细解释了一个业务概念或技术原理后
不触发的场景
日常闲聊、简单命令(查日志/git/改配置)、纯问答不涉及新知识、你没有明确表示要记录。
Ingest 流程
一次 Ingest 可能涉及 10-15 个 wiki 页面——不只是新建一个摘要页,还包含更新所有关联的概念页、决策页。这不是过度设计,这是核心价值:新知识和旧知识在 wiki 中汇合。
模式选择
- 单篇模式(默认):一次处理一个来源,每步与你确认。精度高。
- 批量模式(可选):一次处理多个来源("把这周读的 5 篇文章一起归档"),跳过逐篇讨论直接写页面。速度快。
询问用户偏好,如未指定用单篇模式。
执行步骤
写页面时,先读 references/templates.md 选对应模板。
GitHub 项目收藏流程
收藏 GitHub 开源项目时的独立流程。本质是 Ingest 的一个特化分支。
三级决策
收藏决策分三级,用户逐项判断:
| 级别 | 动作 | 产出 |
|---|
| 收藏 (collection) | 完整流程 | collections/{name}.md 详情页 + 聚合索引 + 横扫关联页 |
| 简要记录 (brief) | 只记录一行 | github-repos.md「简要记录」表新增一行,无需详情页 |
| 跳过 (skip) | 不动 | 无产出,可能取消 Star 或保留 Star |
触发词
"收藏这个项目" / "收藏 xxx(GitHub 链接)" — 触发收藏流程
"简要记录" / "记一下吧" — 触发简要记录
"取消 Star" / "跳过" — 跳过
执行步骤
收藏(完整流程)
简要记录(轻量流程)
注意:用户可能的补充要求:"和 xxx 对比"(如已收藏同类项目,需做对比分析写入详情页),"深度分析实现原理"(走通用 Ingest 补充分析到详情页),"给 GitHub 地址"(每个展示都要附链接)。
站点收藏流程
收藏实用 Web 站点时的独立流程。无须详情页,仅一行记录。
类型限定
限三种:工具 / 文档 / 博客。不增设新类型。
触发词
"收藏这个站点" / "收藏这个网站" / "记一下这个站"
执行步骤
MCP 收藏流程
收藏日常使用的 MCP Server。
执行步骤
Skills 收藏流程
收藏日常使用的 Agent Skill。包含单个 Skill 及聚合仓库。
执行步骤
前端常用库收藏流程
收藏前端生态的 UI 库、工具库,按子专题分类整理。
触发场景
遍历 Star 列表或前端生态项目时,逐项请用户决策(收藏/跳过),经筛选后写入专题页。
执行步骤
新增专题聚合页流程
创建 collections/ 下新的专题聚合页(如 desktop-software.md、mirror.md)。
触发词
"增加一个 xxx 收藏专题页面" / "新建一个 xxx 专题页" / "创建 xxx 收藏分类"
执行步骤
Query 流程
Tasks 流程
待办系统是「所有 wiki 页面 checklists 的聚合视图」。tasks/index.md 是索引,源页面是数据本体。
触发方式
| 触发词 | 动作 |
|---|
| "看下待办" / "我还有什么没做" | 读 wiki/tasks/index.md 展示当周待办 |
| "更新待办" / "勾掉 xxx" | 在 tasks/index.md 中勾选 → 我同步更新源页面 |
| "存档待办" | 将过期条目归档到 tasks/done.md |
同步机制
用户在 tasks/index.md 勾选 [x]
↓
我读取条目中的 → [path] 定位源页面
↓
在源页面中找到匹配的 checkbox(按关键词模糊匹配)
↓
同步改为 [x],更新源页面 frontmatter updated 字段
↓
(可选)记录到 tasks/done.md
匹配规则:取 tasks 条目标题中的关键词(如 S2:React 性能),在源页面的 checklists 中查找包含该关键词的 - [ ] 行。
维护节奏
- 我主动:每次 Ingest/Update 后,如果有后续行动,同步追加到
tasks/index.md
- 你主动:去
tasks/index.md 勾选,我下次看到就同步源页面
- 周切:每周一归档上周条目到
tasks/done.md,刷新当周视图
Lint 流程
index.md 与 log.md 格式
index.md
# Wiki Index
## Concepts
- [概念名称](concepts/page.md) — 一句话描述
## Summaries
- [文章标题](summaries/page.md) — 2026-05-19
## Decisions
- [决策标题](decisions/page.md) — 2026-05-19 [accepted]
## Projects
- [项目名](projects/page.md) — active
## Collections
- [GitHub 项目收藏索引](collections/github-repos.md) — active(收藏的 GitHub 项目聚合列表,含全部详情页及简要记录)
- [站点收藏索引](collections/sites.md) — active(收藏的实用工具/文档/博客站点)
- [MCP / Skills 收藏索引](collections/mcp-skills.md) — active(收藏的 MCP Server / Agent Skill / 工具集成)
- [前端常用 UI / 工具库收藏索引](collections/frontend-libs.md) — active(前端生态常用库,按子专题分区)
- [桌面软件收藏索引](collections/desktop-software.md) — active(录屏/演示/AI 工具等桌面应用)
- [容器镜像加速 / 镜像代理索引](collections/mirror.md) — active(镜像加速方案)
- 注意:**Collections 区只保留聚合索引入口**,子项目全部通过对应聚合索引访问
### log.md
[YYYY-MM-DD] site | 站点名
- 收藏: 站点名 — 类型 | 备注
- 更新: collections/sites.md — 新增一行
[YYYY-MM-DD] mcp | 名称
- 收藏: 名称 — MCP | 备注
- 更新: collections/mcp.md — 新增一行
[YYYY-MM-DD] skill | 名称
- 收藏: 名称 — Skill | 备注
- 更新: collections/skills.md — 新增一行
[YYYY-MM-DD] frontend | 名称
- 收藏: 名称(Nk Stars)— 子专题 | 备注
- 更新: collections/frontend-libs.md — 对应子分区新增一行
[YYYY-MM-DD] collection | 项目名
- 新增: collections/page.md — 一句话简介(Nk Stars, Language, License)
- 备注xxx
- 更新: collections/github-repos.md — 插入新行(最上方)
- 更新: index.md — Collections(仅聚合索引入口)
- 横扫: concepts/page.md — 补充交叉引用
[YYYY-MM-DD] brief | 项目名
- 简要记录: owner/repo — 一句话备注(Nk Stars, Language, License)
- 更新: collections/github-repos.md — 简要记录表新增一行
[YYYY-MM-DD] ingest | 源名称
- 新增: categories/page.md
- 更新: categories/page.md
[YYYY-MM-DD] query | 问题摘要
[YYYY-MM-DD] project | 页面名
- 新增: projects/page.md — 一句话说明
- 更新: projects/career-transition.md — related 补充引用
- 更新: index.md — Projects 新增条目
[YYYY-MM-DD] topic | 专题名
- 新增: collections/page.md — 专题聚合页,首条 xxx(Nk Stars, 领域)
- 更新: collections/xxx.md — related 补充 page.md
- 更新: index.md — Collections 新增专题入口
[YYYY-MM-DD] lint
- 孤儿页: page.md
- 矛盾: page-a.md vs page-b.md
---
## 命名规则
文件名: 小写英文,连字符分隔(micro-frontend-architecture.md)
frontmatter tags:小写英文
日期格式: YYYY-MM-DD
---
## Gotchas
- **目录自动创建**:如果 `~/knowledge/` 目录不存在,我会在首次操作时自动创建完整的目录结构,无需用户手动创建。
- index.md 必须在每次 Ingest/归档后更新,不要依赖我"之后统一处理"。每新增/修改一个页面,index.md 立刻同步。
- 页面路径在 index.md 和 log.md 中必须使用**相对路径**(相对于 wiki/ 目录),如 `concepts/xxx.md`,不要用绝对路径。
- summary 类页面的 `source` 字段可能是一个 URL 或本地文件路径,不要省略。
- decision 类页面的 `status` 必须是 `proposed` / `accepted` / `deprecated` 三者之一,不能自己发明值。
- 如果用户说"记下来"但没有指定具体内容,优先问清楚,不要自己猜。
- log.md 是 append-only,永远不要修改或删除历史记录。如果写错了,追加一条新的 corrigendum 条目。
- 更新已有页面时,必须更新 frontmatter 中的 `updated` 字段。
- **不要跳过"横扫关联页"步骤**。只写新页不更新旧页会导致知识孤岛,这是本体系失败的主要原因。
- **tasks/index.md 是源页面 checklists 的聚合索引,不是孤立的待办列表。** 每项必须包含 `→ [path]` 指向源页面。勾选时我负责双向同步。
- **不要直接在 tasks/index.md 中新增源页面不存在的待办。** 如果确实需要,先在源页面添加对应 checklists,再聚合到 tasks/index.md。
- **GitHub 项目收藏必须双向注册**:创建详情页的同时,必须在 `collections/github-repos.md` 聚合表中插入行,保持两个页面互相引用(详情页 `related` 指向 `github-repos`,github-repos 表链接指向详情页)。
- **`github-repos.md` 表格保持倒序**(最新的在最上方),方便快速浏览最近收藏。**主表无序号列**,插入新项目时直接在第一行后(表头下一行)插入新行,无需重编号。
- **GitHub API Token 安全**:调用 GitHub API 获取项目信息时,从环境变量 `GITHUB_TOKEN` 读取认证信息,不要在代码、日志或对话中暴露 token 明文。
- **敏感内容保护**:`profiles/` 目录可能包含个人敏感信息(财务、简历等)。如果知识库通过 Git 同步,务必使用私有仓库,或将敏感文件加入 `.gitignore`。
## Schema 迭代说明
这个 SKILL.md 不是一成不变的。随着使用你会发现问题:某个流程太繁琐、某种页面类型用得少、触发词不自然。指出问题,我来改。**Schema 是我们共同演化的活文档。**