원클릭으로
my-wiki
用户提到"知识库"、"wiki"、"消化素材"、"整理到知识库",或对已初始化的知识库执行查询、健康检查、统计、lint、去重等操作。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
用户提到"知识库"、"wiki"、"消化素材"、"整理到知识库",或对已初始化的知识库执行查询、健康检查、统计、lint、去重等操作。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| 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 兼容)[待创建: [[概念名]]]:标记尚未创建的实体