with one click
my-wiki
用户提到"知识库"、"wiki"、"消化素材"、"整理到知识库",或对已初始化的知识库执行查询、健康检查、统计、lint、去重等操作。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
用户提到"知识库"、"wiki"、"消化素材"、"整理到知识库",或对已初始化的知识库执行查询、健康检查、统计、lint、去重等操作。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | my-wiki |
| description | 用户提到"知识库"、"wiki"、"消化素材"、"整理到知识库",或对已初始化的知识库执行查询、健康检查、统计、lint、去重等操作。 |
把碎片化的信息变成持续积累、互相链接的知识库。知识被编译一次,持续维护;不是每次查询都从原始文档重新推导。
传统 RAG 的问题:每次问问题,AI 从头读原始文件,没有积累。知识库的价值在于编译一次,持续维护——你只需要提供素材,AI 做所有的整理工作。
处理任何请求时,先在脑中过三道判断:
[待创建]flowchart TD
A[用户请求] --> B{知识库存在?}
B -->|否| C[→ init]
B -->|是| D{请求类型?}
D -->|URL/文件/粘贴文本| E[→ ingest]
D -->|疑问句/定义/查询| F[→ query]
D -->|综述/深度分析/对比| G[→ digest]
D -->|健康检查/lint| H[→ lint]
D -->|状态/统计/有什么| I[→ status]
D -->|图谱/关联图| J[→ graph]
E --> K{素材类型?}
K -->|> 1000字| L[完整处理:实体+主题+摘要]
K -->|≤ 1000字| M[简化处理:摘要+标记待创建]
F --> N[先读 index → search.py 搜索 → 综合回答]
G --> O[读 index → search.py 全量搜索 → 生成深度报告]
兜底规则:直接给 URL/文件但没说做什么 → 默认走 ingest。搜不到相关内容 → 建议补充素材。
知识库大了,index 会过时。 index.md 是手动维护的目录,wiki 页面多了之后 inevitably 会漏。搜不到不代表知识库里没有——query 工作流要同时查 index 和用 search.py 全文搜索,不能只看 index。
[[双向链接]] 不代表语义关联。 两个页面互相链接可能只是因为它们恰好提到了同一个词(比如"模型"在 ML 和时尚领域含义完全不同)。关联实体页时,判断"是不是同一个东西"比"有没有提到这个词"重要得多。
短素材也可能有高价值概念。 一条 200 字的推文可能包含一个全新的框架/术语,值得创建实体页。不要用字数作为"值不值得深入处理"的唯一标准——概念密度比字数更重要。
references/source-patterns/ 目录存放不同素材来源的处理经验。当 AI 在处理某类来源(如微信公众号、Twitter、PDF 论文)时踩了坑或发现了更好的提取策略,将经验追加到对应文件中。
mp.weixin.qq.com.md、twitter.com.md这些经验文件会在后续 ingest 相同来源时被自动读取,帮助 AI 更精准地提取知识。
Scripts located in scripts/ subdirectory (Python 3.10+, zero external dependencies).
SKILL_DIR = this SKILL.md's directory. Script path = ${SKILL_DIR}/scripts/<script-name>.
跨平台兼容:所有脚本使用
pathlib.Path,Windows/Linux/macOS 通用。 调用时统一使用python3(Linux/macOS)或python(Windows),根据当前环境选择。
| 平台 | Skill 安装路径 |
|---|---|
| WorkBuddy | ~/.workbuddy/skills/my-wiki/ |
| Claude Code | ~/.claude/skills/my-wiki/ |
| OpenCode | ~/.config/opencode/skills/my-wiki/ |
| OpenClaw | ~/.openclaw/skills/my-wiki/ |
SKILL_DIR 的解析方式因平台而异,但脚本内部的路径处理完全跨平台。 如果平台不支持
{SKILL_DIR}变量,可用__FILE__等价机制获取当前 SKILL.md 所在目录。
除 init 外,其他工作流先执行:
.wiki-schema.md → 有就用当前目录{SKILL_DIR}/wiki-config.json,取 wikis[current] 的路径~/.my-wiki-path 文件获取默认路径(向后兼容)ingest 自动先 init,其他工作流提示用户先初始化~/Documents/my-wiki/,用户可自定义python {SKILL_DIR}/scripts/init.py --wiki-root "<路径>" --topic "<主题>" --name "<名称>"
{SKILL_DIR}/wiki-config.json,记录名称、路径、主题
wiki-config.json支持多个知识库,current字段标记当前活跃的知识库。前置检查按此文件定位知识库路径。
这是最核心的工作流。确定性操作用脚本,知识提取用 AI 判断。
ingest_prepare.py 处理素材:
# URL 类素材
python {SKILL_DIR}/scripts/ingest_prepare.py --wiki-root "<路径>" --url "<URL>" --title "<标题>"
# 本地文件
python {SKILL_DIR}/scripts/ingest_prepare.py --wiki-root "<路径>" --file "<文件路径>" --title "<标题>"
# 粘贴文本
python {SKILL_DIR}/scripts/ingest_prepare.py --wiki-root "<路径>" --text "<文本内容>" --title "<标题>"
# 强制覆盖重复素材
python {SKILL_DIR}/scripts/ingest_prepare.py --wiki-root "<路径>" --url "<URL>" --force
脚本输出 JSON,关键字段:is_long(是否 > 1000 字)、raw_path、statusreferences/source-patterns/ 下是否有该域名的经验文件,有则读取;然后用 web 工具提取网页内容根据脚本返回的 is_long 判断处理深度,但不要机械执行——用你的判断力调整:
完整处理(is_long: true,或素材虽然短但概念密度极高):
wiki/sources/{日期}-{标题}.mdupdated 日期wiki/entities/{概念名}.md简化处理(is_long: false 且概念密度一般):
wiki/sources/{日期}-{标题}.md[待创建: [[概念名]]],不主动创建实体页python {SKILL_DIR}/scripts/validate_page.py --wiki-root "<路径>" --page-path "<页面路径>" --page-type <entity|topic|source>
index.md(在对应分类下添加条目)和 log.md(添加操作记录)references/source-patterns/ 下创建经验文件,记录提取时的发现这是需要判断的工作流——搜索只是手段,综合回答才是目标。
index.md 快速定位相关条目——index 是人工维护的精华目录,优先级高于全文搜索python {SKILL_DIR}/scripts/search.py --wiki-root "<路径>" --query "<关键词>"
不要只看 index。知识库大了之后 index 会过时,search.py 能找到 index 没收录的页面。
[[链接]] 或 [来源](路径) 格式)搜索技巧:多词查询用空格分隔(AND 逻辑);用 --type entity 只搜实体页;用 --include-raw 搜原始素材。
digest 的价值在于跨素材的综合分析,不是简单拼接。
index.md 定位所有相关素材和页面python {SKILL_DIR}/scripts/search.py --wiki-root "<路径>" --query "<关键词>" --include-raw
wiki/synthesis/{主题}-深度报告.mdindex.md 和 log.md脚本负责结构检查,AI 负责语义检查。
python {SKILL_DIR}/scripts/lint.py --wiki-root "<路径>"
脚本返回 JSON:orphan_pages(孤立页面)、broken_links(断链)、index_mismatches(索引不一致)、registry_mismatches(注册表不一致)。
根据脚本报告,AI 额外做:
python {SKILL_DIR}/scripts/status.py --wiki-root "<路径>"
脚本生成 Mermaid 代码,AI 在聊天中直接渲染给用户看。
python {SKILL_DIR}/scripts/graph.py --wiki-root "<路径>" --max-nodes 30
脚本输出 JSON,关键字段:nodes(节点数)、edges(关系数)、mermaid(Mermaid 代码)、truncated(是否截断)。
mermaid 字段```mermaid
{mermaid 代码}
```
truncated: true,告知用户"图谱较大,仅展示最核心的 {N} 个节点,可通过 --max-nodes 50 扩大范围"python {SKILL_DIR}/scripts/graph.py --wiki-root "<路径>" --max-nodes 50 --format html
然后用浏览器预览生成的 wiki/knowledge-graph.html所有 wiki 页面必须遵循以下格式。
---
tags: [标签1, 标签2]
created: YYYY-MM-DD
updated: YYYY-MM-DD
sources: [素材引用]
---
# 一级标题:页面名称> 引用块:一句话摘要(紧跟标题下方)## 二级标题:各 section[[双向链接]]:页面间引用(Obsidian 兼容)[待创建: [[概念名]]]:标记尚未创建的实体