obsidian-llm-wiki: Skill for Claude Code

.claude/skills/lint/SKILL.md

lint is a skill for Claude Code from levi-qiao/obsidian-llm-wiki. It costs 72 tokens per session (2,237 once invoked), scanned A, original, MIT.

A health checker for a Markdown wiki stored in a `wiki/` folder. It synchronizes the page index, fixes safe missing entries, and reports problems that need human decisions.

In plain words
What is it for?
Use it to scan wiki health with `/lint`, `/scan`, or `/health`, update the main index, record removed pages, and review suggested fixes for broken links and isolated pages.
Why use it?
It helps keep a growing knowledge base organized without automatically making uncertain changes. You can find broken links, unconnected pages, conflicting information, and uncontrolled tags in one report.

Skill for Claude Code

Written for Claude Code: user-invocable in frontmatter. Also seen: mentions CLAUDE.md.

This is levi-qiao/obsidian-llm-wiki's own configuration. It tells Claude Code how to work on obsidian-llm-wiki itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything obsidian-llm-wiki configures →

Reuse

Borrowing it

Nothing to install: this file belongs to levi-qiao/obsidian-llm-wiki. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/levi-qiao/obsidian-llm-wiki/main/.claude/skills/lint/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/levi-qiao/obsidian-llm-wiki

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for lint

README.md
[![agentmods](https://agentmods.dev/badge/skills/levi-qiao/obsidian-llm-wiki/lint/github.svg)](https://agentmods.dev/skills/levi-qiao/obsidian-llm-wiki/lint)
Your own site
<a href="https://agentmods.dev/skills/levi-qiao/obsidian-llm-wiki/lint"><img src="https://agentmods.dev/badge/skills/levi-qiao/obsidian-llm-wiki/lint/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for lint

Your own site · 80×15
<a href="https://agentmods.dev/skills/levi-qiao/obsidian-llm-wiki/lint"><img src="https://agentmods.dev/badge/skills/levi-qiao/obsidian-llm-wiki/lint.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 72 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,237 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00072 $0.02237
Opus 5 $0.00036 $0.01118
Sonnet 5 $0.00014 $0.00447
Haiku 4.5 $0.00007 $0.00224

Measured 11d ago against content hash 69d7d0a5f5d4, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

lint scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/lint/SKILL.md · 274 lines

How it starts

The opening of the file, as written. The whole thing — 274 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Lint 技能

核心目标

定期"体检"知识库,自动修复安全问题,对需要人工决策的问题生成报告。

核心原则:保守修复,不确定的操作生成报告供人工决策。

触发条件

  • 用户输入 /lint
  • 用户询问"我的知识库健康状况如何"
  • 用户要求"检查知识库状态"或"检查健康"

知识库路径

使用 Glob 工具动态定位当前工作区下的 wiki/ 目录


工作流程

步骤 1:索引同步检查(自动修复)

读取总索引

Read wiki/index.md

检查项

  1. 提取索引中注册的所有页面
  2. 扫描 wiki/ 下所有 .md 文件(排除 index.md、log.md、README.md 和 _conflicts/ 目录)
  3. 比对差异

自动修复

  • 文件存在但未注册 → 读取文件的 frontmatter,自动添加到 index.md 对应的 domain + type 分组
  • 已注册但文件不存在 → 从 index.md 删除该条目,记录到 log.md

修复日志

## [YYYY-MM-DD] lint | 索引同步修复
- 新增到索引:[[页面1]], [[页面2]]
- 从索引删除:[[不存在的页面]]

步骤 2:死链检测(生成报告)

扫描所有 .md 文件,提取所有 [[双链]] 格式的链接

检查项

  • 如果链接指向的页面不存在 → 标记为死链

生成建议报告(不自动修复):

  1. 相似页面替换建议

    • 计算编辑距离(Levenshtein distance < 3)
    • 如果找到相似页面 → 建议替换
    • 示例:[[Transformr]] → 建议替换为 [[Transformer]]
  2. 无法修复的死链

    • 如果找不到相似页面 → 标记为需要人工处理

报告格式

### 死链检测 (N 处)
- `[[错误链接]]` 在 [[页面A]] → 建议替换为 `[[正确链接]]`
- `[[不存在的页面]]` 在 [[页面B]] → 无相似页面,建议删除或创建

步骤 3:孤岛页面检测(生成报告)

统计被引用次数

  • 扫描所有页面,统计每个页面被其他页面引用的次数(排除 self-reference)
  • 找出 0 入链的页面 → 孤岛页面

生成建议报告(不自动修复):

  1. 读取孤岛页面的内容和 frontmatter(type, tags)
  2. 根据 tags,找到 3-5 个最相关的页面
  3. 建议在这些页面的 ## 关联连接 区域添加链接

报告格式

### 孤岛页面检测 (N 个)
- [[孤岛页面A]] (tags: #AI #NLP) → 建议在 [[页面1]], [[页面2]], [[页面3]] 中添加链接
- [[孤岛页面B]] (tags: #财务) → 建议在 [[页面4]], [[页面5]] 中添加链接

步骤 4:Frontmatter 规范检查(自动修复)

对每个页面检查:

必需字段

  • type (concept | entity | source | synthesis)
  • tags (数组,3-5 个)
  • created (YYYY-MM-DD)
  • updated (YYYY-MM-DD)

自动修复策略

  1. 缺失 type → 根据文件路径推断(concepts/ → concept)
  2. 缺失 created/updated → 使用文件时间戳
  3. tags 数量不足 → 不自动补全,生成报告

修复日志

## [YYYY-MM-DD] lint | Frontmatter 修复
- 补全 type:3 个页面
- 补全 created/updated:5 个页面

步骤 5:知识冲突检测(生成报告)

全局搜索

  • 使用 Grep 工具搜索所有包含 ## 知识冲突 的页面

生成冲突报告: 对每个冲突页面,在 wiki/_conflicts/ 创建冲突文件:

---
title: "知识冲突:<主题>"
created: YYYY-MM-DD
pages: [[页面A]], [[页面B]]
---

## 冲突描述
- **页面 A** ([[页面A]]) 说:[摘录冲突内容]
- **页面 B** ([[页面B]]) 说:[摘录冲突内容]

## 来源
- 页面 A 来源:[sources 字段]
- 页面 B 来源:[sources 字段]

## 建议
[LLM 分析后的建议]

## 决策
[ ] 采纳建议
[ ] 保留页面 A
[ ] 保留页面 B
[ ] 自定义合并方案:___________

Read the full file on GitHub · 274 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 11d ago First seen · 274 lines · 72 tokens per session scan A 69d7d0a5f5d4

Subscribe to this mod's changes

lint is a skill published in the GitHub repository levi-qiao/obsidian-llm-wiki (10 stars, last pushed 28d ago), licensed MIT. It adds 72 tokens to every session and 2,237 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

llm-wiki

Build and maintain a persistent, interlinked Obsidian-compatible markdown wiki using Karpathy's LLM Wiki pattern. Extension-backed with auto-generated metadata, guardrails, and 14 custom tools (+3 opt-in agent-trajectory tools).

zosmaai/pi-llm-wiki · 52 tokens

kb-lint

Health check for the PARA Knowledge Base. Detects orphan documents, broken links, index drift, tag issues, and stale content. Run periodically or as part of weekly review.

ernestolee13/para-knowledge-base · 39 tokens

kb-index

Update Knowledge Base indexes. Smart mode detects changes and updates only what's needed. Full rebuild available with --full flag. Use after adding/moving documents or when indexes feel stale.

ernestolee13/para-knowledge-base · 38 tokens

ObsidianDataWeave: NotebookLM, Atomization, and LLM Wiki

Use when the user wants to control NotebookLM programmatically, import .docx into an Obsidian vault as atomic Zettelkasten notes, build a compiled LLM Wiki layer, or full-text-search the whole vault. Claude Code and Codex both supported.

howdeploy/deploychan_mcp · 72 tokens

wiki-lint

Health-check the LLM Wiki and offer fixes for each category of finding. Use when the user says "lint the wiki", "audit the wiki", "check wiki health", "clean up the wiki", or after a batch of ingests. Categories covered - orphans, broken links, stale sources, missing pages, tag drift, index parity.

bezata/kObsidian · 74 tokens

wiki-ingest

File a new source into the LLM Wiki — create its Sources page, append a log entry, apply the proposed cross-reference edits. Use when the user says "ingest this", "file this source", "add this to the wiki", drops a URL/PDF/clipped article, or pastes notes they want captured. Never auto-applies cross-refs without…

bezata/kObsidian · 82 tokens