원클릭으로
wiki-lint
// 检查 LLM Wiki 知识库的健康状况。扫描所有 Wiki 页面,发现矛盾、过时信息、孤立页面、失效链接、缺失摘要等问题。触发词包括:lint、检查、wiki 检查、健康检查、检查 wiki、wiki lint、检查知识库。即使用户只说"检查一下知识库"或"wiki 有没有问题"也应该触发。不用于摄入新资料或查询知识库内容。
// 检查 LLM Wiki 知识库的健康状况。扫描所有 Wiki 页面,发现矛盾、过时信息、孤立页面、失效链接、缺失摘要等问题。触发词包括:lint、检查、wiki 检查、健康检查、检查 wiki、wiki lint、检查知识库。即使用户只说"检查一下知识库"或"wiki 有没有问题"也应该触发。不用于摄入新资料或查询知识库内容。
翻译 Markdown 文档为中文,并格式化为 Obsidian 兼容的 Markdown。用户指定文件或目录路径,翻译 front matter(title 简化翻译、description 翻译)和正文内容,使用 Obsidian Callout 等语法美化输出。触发词:翻译文档、translate、翻译 markdown、doc translate、翻译文件、translate doc。即使用户只说"翻译这个文件"或"把这个翻译一下"也应该触发此 skill。
删除 Wiki 中的源资料及其关联页面,级联清理索引、引用和元数据。触发词包括:删除、delete、移除、remove、清理 wiki、清理摄入。当用户想删除某个已摄入的资料或清理错误摄入的内容时使用。不用于摄入新资料、查询或健康检查。
摄入新资料到 LLM Wiki 知识库。当用户提供新的文章、论文、笔记、截图等资料要求添加到知识库时使用。触发词包括:摄入、ingest、添加资料、新资料、导入、导入资料、摄入资料、添加到 wiki、加入知识库。即使用户只说"帮我整理这篇资料"或"把这个加入知识库"也应该触发。不用于查询知识库内容或检查 Wiki 健康。无参数调用时自动扫描 raw/ 目录处理未摄入的文件。
查询 LLM Wiki 知识库内容并基于 Wiki 页面回答问题。当用户的问题涉及知识库中已有内容时使用——技术概念解释、实体信息、主题对比、知识关联等。触发词包括:查询、query、搜索、查找、搜索知识库、查一下、问一下。当用户问的是知识库覆盖的话题(编程、数学、密码学、设计模式、Docker、Git、OAuth2 等已有概念),即使没有明确说"查询知识库",也应考虑使用。不用于摄入新资料或检查 Wiki 健康。
通过网络搜索深入研究某个主题,自动将搜索结果摄入知识库。触发词包括:研究、research、深入调查、搜索资料、查资料、调研。当用户想对某个主题进行深入研究或知识库内容不足需要补充时使用。不用于摄入已有文件(/ingest)、查询知识库(/query)或删除内容(/delete)。
Generate Excalidraw diagrams from text content for Obsidian. Use when user asks to create diagrams, flowcharts, mind maps, or visual representations in Excalidraw format. Triggers on "Excalidraw", "画图", "流程图", "思维导图", "可视化", "diagram".
| name | wiki-lint |
| description | 检查 LLM Wiki 知识库的健康状况。扫描所有 Wiki 页面,发现矛盾、过时信息、孤立页面、失效链接、缺失摘要等问题。触发词包括:lint、检查、wiki 检查、健康检查、检查 wiki、wiki lint、检查知识库。即使用户只说"检查一下知识库"或"wiki 有没有问题"也应该触发。不用于摄入新资料或查询知识库内容。 |
扫描 Wiki 页面,发现并报告结构问题和内容问题。结果写入 wiki/.lint-results.md。
只做检查和报告。不修改 raw/ 目录,不自动修复发现的问题。发现问题后提示用户确认是否修复。
不处理摄入(那是 /ingest)和查询(那是 /query)。
开始前检查工具链可用性并自动修复问题:
# 1. 检查 qmd
qmd-node search "test" --files -n 1
# 2. 检查 qmd 索引目录是否指向本项目 wiki/
qmd-node collection show wiki
# 3. 检查 scripts 是否存在
ls .claude/skills/wiki-lint/scripts/
qmd 索引路径不正确时,自动修复:
# 移除旧集合,添加指向本项目 wiki/ 的新集合
qmd-node collection remove wiki
qmd-node collection add wiki "<项目根目录>/wiki"
修复后输出一条提示说明已自动修正。
qmd 完全不可用时(命令执行失败),输出提示继续执行(lint 以脚本和 LLM 判断为主,不依赖 qmd):
⚠️ qmd 搜索引擎不可用,跳过搜索相关检查。引用关系和内容检查不受影响。
读取 wiki/.status.json 中的 page_hashes,用辅助脚本检查变化:
bash .claude/skills/wiki-lint/scripts/check-changes.sh wiki/
如果 status.json 为空或不存在,输出提示并跳过变化检测,直接执行全量检查。
用辅助脚本一次性完成三项检查:
bash .claude/skills/wiki-lint/scripts/check-wikilinks.sh wiki/
输出包含三个区域:
=== BROKEN-LINK === → 指向不存在页面的 wikilink=== ORPHAN === → 存在但没有被引用的页面=== MISSING-PAGE === → 3+ 次引用但无对应文件用辅助脚本检查所有页面:
bash .claude/skills/wiki-lint/scripts/check-missing-summary.sh wiki/
输出每行一个缺失摘要的文件名,最后显示 TOTAL_MISSING: N。
对同名的概念/实体在不同页面中的描述进行交叉验证。搜索高频概念在不同页面的定义:
# 提取高频概念名
grep -roh '\[\[[^]]*\]\]' wiki/ --include="*.md" | sed 's/\[\[//;s/\]\]//' | sort | uniq -c | sort -rn | head -10
读取排名靠前的概念在多个页面中的描述,检查是否矛盾。由于内容矛盾检查需要理解语义,这项检查由 LLM 人工判断,脚本只提供线索。
对比来源摘要页的日期和概念页面的内容,看是否有更新的来源覆盖了旧信息。重点关注:
检查哪些高频关联主题缺少综合分析页面:
读取 wiki/.review-queue.md,检查是否有 状态: pending 的条目:
review-pending将所有发现的问题写入 wiki/.lint-results.md,使用以下结构化格式:
---LINT: 类型 | 严重度 | 简短标题---
问题描述。
PAGES: page1.md, page2.md
---END LINT---
```
如果没有发现任何问题,写入:
---LINT: none | info | Wiki 健康检查通过--- 所有页面检查完毕,未发现问题。 PAGES: (none) ---END LINT---
### 步骤 8:追加日志
在 `wiki/log.md` 末尾追加:
```markdown
## [YYYY-MM-DD] lint | Wiki 健康检查
- 发现 X 个问题(Y 个 warning,Z 个 info)
- [列出每个问题的简短标题]
更新 wiki/.status.json 中每个记录条目的 last_lint_at 为当前日期。
同时更新 page_hashes 为当前页面 hash(因为 Lint 检查已经计算过了)。
| 检查项 | 严重度 | 工具 | 说明 |
|---|---|---|---|
| contradiction | warning | LLM 判断 | 不同页面描述矛盾 |
| stale | warning | LLM 判断 | 信息过时 |
| missing-summary | warning | check-missing-summary.sh | 缺少摘要段落 |
| broken-link | warning | check-wikilinks.sh | 指向不存在页面的链接 |
| orphan | info | check-wikilinks.sh | 没有入链的孤立页面 |
| missing-page | info | check-wikilinks.sh | 高频引用但缺少页面 |
| suggestion | info | LLM 判断 | 建议创建 synthesis 页面 |
| review-pending | info | .review-queue.md | 异步等待人工审核的条目 |
检查完成后向用户汇报: