# Lint

> 知识库健康度检查。扫描 wiki/ 目录，自动修复索引同步和 frontmatter 缺失问题。对于死链、孤岛页面、知识冲突、标签爆炸，生成报告供人工决策。当用户输入 /lint、/scan、/health 或要求"检查知识库状态"时调用。

- **Type:** Skill
- **Install:** `agentstack add skill-levi-qiao-obsidian-llm-wiki-lint`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [levi-qiao](https://agentstack.voostack.com/s/levi-qiao)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [levi-qiao](https://github.com/levi-qiao)
- **Source:** https://github.com/levi-qiao/obsidian-llm-wiki/tree/main/.claude/skills/lint

## Install

```sh
agentstack add skill-levi-qiao-obsidian-llm-wiki-lint
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Lint 技能

## 核心目标

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

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

## 触发条件

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

## 知识库路径

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

---

## 工作流程

### 步骤 1：索引同步检查（自动修复）

**读取总索引**：
```bash
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

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

---

### 步骤 2：死链检测（生成报告）

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

**检查项**：
- 如果链接指向的页面不存在 → 标记为**死链**

**生成建议报告**（不自动修复）：
1. **相似页面替换建议**：
   - 计算编辑距离（Levenshtein distance "
created: YYYY-MM-DD
pages: [[页面A]], [[页面B]]
---

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

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

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

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

**不自动修复**，等待用户决策。

---

### 步骤 6：标签爆炸检测（生成报告）

**统计标签使用情况**：
- 扫描所有页面的 frontmatter，统计每个标签的使用次数

**检查项**：
1. **单次使用标签** — 只被使用 1 次的标签
2. **相似标签** — 语义相似但拼写不同（如 `深度学习` vs `DeepLearning`）
3. **标签数量异常** — 页面标签数量  5

**生成报告**（不自动修复）：
```markdown
## 标签健康报告

### 单次使用标签（建议删除或合并）
- `标签1` — 仅在 [[页面A]] 使用
- `标签2` — 仅在 [[页面B]] 使用

### 相似标签（建议统一）
- `深度学习` (5 次) vs `DeepLearning` (2 次) → 建议统一为 `深度学习`
- `机器学习` (8 次) vs `ML` (3 次) → 建议统一为 `机器学习`

### 标签数量异常
- [[页面C]] — 只有 1 个标签（建议补充）
- [[页面D]] — 有 8 个标签（建议精简）

是否需要批量替换标签？
```

---

## 最终报告输出

扫描和修复完成后，生成报告到 `wiki/_lint/report_YYYY-MM-DD.md`：

```markdown
# 知识库健康体检报告 — YYYY-MM-DD

## 总体统计
- 页面总数：N
- 标签总数：N
- 平均每个页面被引用次数：N

## 自动修复完成
- 索引同步：新增 X 个，删除 Y 个
- Frontmatter：补全 X 个页面的缺失字段

## 建议修复（需用户确认）

### 死链检测 (N 处)
- `[[错误链接]]` 在 [[页面A]] → 建议替换为 `[[正确链接]]`

### 孤岛页面检测 (N 个)
- [[孤岛页面A]] → 建议在 [[页面1]], [[页面2]] 中添加链接

### 标签建议
- 单次使用标签：`标签1` (仅在 [[页面A]])
- 相似标签：`深度学习` (5次) vs `DeepLearning` (2次) → 建议统一

## 人工决策（仅报告）

### 知识冲突 (N 个)
- [[页面A]] 与 [[页面B]] 存在观点冲突，详见 `wiki/_conflicts/`

### 页面重复 (N 个)
- [[页面C]] 与 [[页面D]] 标题相似度 85%，建议合并

## 下一步行动
1. 查看 `wiki/_conflicts/` 目录，决策知识冲突
2. 确认是否批量替换相似标签
3. 为孤岛页面添加链接
```

同时在对话中输出简化版本，提示用户查看完整报告。

---

## 操作日志

修复完成后，在 `wiki/log.md` 末尾追加：

```markdown
## [YYYY-MM-DD] lint | 周度健康检查
- 自动修复: 索引同步 3 处，Frontmatter 补全 5 处
- 建议修复: 死链 2 处，孤岛页面 1 处
- 人工决策: 知识冲突 1 个
```

**不自动执行 Git 提交**，而是提示用户：

```
✅ Lint 完成
- 自动修复：X 处
- 建议修复：Y 处（详见报告）
- 完整报告：wiki/_lint/report_YYYY-MM-DD.md

使用 `/sync` 提交到 Git
```

---

## 强制约束

- **先检测后修复** — 完成所有检测后，再执行自动修复
- **保守修复** — 不确定的操作不要自动执行，生成报告供人工决策
- **记录所有操作** — 修复的每一步都要记录到 log.md
- **不修改源文件** — 只修复 wiki/ 目录下的文件，不触碰 raw/

## 关联连接

- [[wiki/index.md]] — 总索引
- [[wiki/log.md]] — 操作日志
- [[wiki/_conflicts/]] — 冲突报告目录
- [[CLAUDE.md]] — Wiki 架构总规范

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [levi-qiao](https://github.com/levi-qiao)
- **Source:** [levi-qiao/obsidian-llm-wiki](https://github.com/levi-qiao/obsidian-llm-wiki)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-levi-qiao-obsidian-llm-wiki-lint
- Seller: https://agentstack.voostack.com/s/levi-qiao
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
