Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add owenliang60-ship-it/knowledge-mgmt --skill lintgit clone --depth 1 https://github.com/owenliang60-ship-it/knowledge-mgmtWrote 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.
[](https://agentmods.dev/skills/owenliang60-ship-it/knowledge-mgmt/lint)<a href="https://agentmods.dev/skills/owenliang60-ship-it/knowledge-mgmt/lint"><img src="https://agentmods.dev/badge/skills/owenliang60-ship-it/knowledge-mgmt/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.
<a href="https://agentmods.dev/skills/owenliang60-ship-it/knowledge-mgmt/lint"><img src="https://agentmods.dev/badge/skills/owenliang60-ship-it/knowledge-mgmt/lint.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00069 | $0.01122 |
| Opus 5 | $0.00034 | $0.00561 |
| Sonnet 5 | $0.00014 | $0.00224 |
| Haiku 4.5 | $0.00007 | $0.00112 |
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 10d 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.
How it starts
The opening of the file, as written. The whole thing — 140 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/lint — Vault 健康体检
参考规则:先读取 vault 根目录
SCHEMA.md获取完整检查项定义。
执行流程
Step 1: 读取 Schema
obsidian read path="SCHEMA.md"
确认当前检查项清单和标签体系定义。
Step 2: 全量扫描
并行执行以下检查(使用 Obsidian CLI + subagent 加速):
2a: 链接检查
# 断链:搜索所有 wikilink,检查目标是否存在
obsidian search query="[["
# 孤岛:检查 Cards/ 下零 backlink 的文件
# 对每个 Card: obsidian backlinks path="Cards/{name}.md"
2b: 标签检查
# 扫描所有 Cards,检查 frontmatter 中是否有 type/ 和 domain/ 标签
# 扫描所有标签,找出不属于四维体系的噪声标签
obsidian tags path="Cards/"
2c: 格式检查
# 扫描所有 .md 文件,检查是否有 frontmatter(以 --- 开头)
obsidian files folder="Cards"
# 逐个读取检查 frontmatter
2d: Clipping 库存
# 统计待研究 / 已研究数量(按文件夹区分)
obsidian files folder="Clippings" # 待研究(根目录下的 .md 文件)
obsidian files folder="Clippings/已研究" # 已研究
# 检查超过 30 天未研究的(按 created 字段判断)
2e: MOC 完整性
# 读取每个 MOC 文件
# 检查是否有 Card 被遗漏(有 domain 标签但不在对应 MOC 中)
# 检查 MOC 中的链接是否有效
2f: 空链统计(知识缺口)
# 收集所有指向不存在页面的 [[wikilink]]
# 按 domain 分组统计
Step 3: 安全写入
Lint 可自动执行的(无需用户确认):
- 生成健康报告
Lint 不能自动执行的(只报告):
- 修复断链、补标签、建 Card、修改/删除任何内容
Step 4: 生成健康报告
产出格式:
---
title: "Vault Health Report YYYY-MM-DD"
tags:
- type/health-report
date: YYYY-MM-DD
---
## 总览
- 健康评分: XX/100
- Cards: {总数} | Clippings: {unread数} unread / {read数} read
- 断链: {数量} | 孤岛: {数量} | 噪声标签: {数量}
## 🔴 需要修复(高严重度)
{断链清单、缺标签 Card 清单、缺 frontmatter 文件清单、MOC 链接失效}
## 🟡 建议改善(中严重度)
{孤岛 Card、噪声标签、超 30 天 unread Clippings、MOC 遗漏}
## 🟢 信息
{Clipping 库存统计、空链统计}
## 📚 研究缺口建议
{按 domain 分组的空链热点,建议研究方向}
Step 5: 存入 Vault
obsidian create path="Cards/Vault Health Report YYYY-MM-DD.md" content="..." overwrite
Step 6: 输出摘要
向用户展示报告核心数据和需要关注的高优先级项目。
评分规则
| 扣分项 | 每个扣分 |
|---|---|
| 断链 | -3 |
| 缺 frontmatter | -2 |
| 缺四维标签 | -1 |
| 孤岛 Card | -0.5 |
| 噪声标签 | -1 |
| MOC 遗漏 | -0.5 |
满分 100,扣完为止,最低 0 分。
Cron 模式
被 cron 调用时(非用户手动触发),行为与手动相同,但:
- 报告自动写入
Journal/Vault Health Report YYYY-MM-DD.md(而非 Cards/),避免每日例行报告在 Cards/ 堆积产生噪声 - 不输出到对话(无用户在场)
- 不做任何"顺手修复":Step 3 的 lint 写入边界(只能写健康报告、不能补标签 / 不能改 / 不能建其他 Card)在 cron 模式下完全适用,和手动模式无差别
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.
- 10d ago First seen · 140 lines · 69 tokens per session scan A 483372d3da98
lint is a skill published in the GitHub repository owenliang60-ship-it/knowledge-mgmt (37 stars, last pushed 5mo ago), licensed MIT. It adds 69 tokens to every session and 1,122 once invoked, about $0.0003 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-30.
Other skills, from other repositories
cortex-memory
Persistent cognitive memory for AI agents — query, record, review, and consolidate knowledge across sessions with spreading activation, FSRS scheduling, and NLI contradiction detection.
heptabase-linking
Create real cross-links between Heptabase cards via the heptabase CLI. Use when the user wants to link Heptabase cards, cross-reference notes, build a card graph, or fix existing [[Card Title]] wiki-link text that is rendering as plain text instead of a clickable card pill. Real links require a ProseMirror card node…
heptabase-cli
Interact with Heptabase using the CLI to create, read, and edit notes, journals, tags, cards, list whiteboards and manage cards on whiteboards, and browse AI Tutor goals, courses, and lessons. Use when the user asks to manage their Heptabase knowledge base, search cards, work with journals, tags, or whiteboards, or…
validate
Check that an Open Knowledge Format (OKF) bundle is conformant with the v0.2 spec (§11). Use when asked to validate, lint, or check an OKF bundle, or before committing changes to one. Runs a deterministic Python checker — not an eyeball pass. Also migrates a v0.1 bundle to v0.2 in place with --migrate.
memex-sync
Sync Zettelkasten cards across devices via git.
council
Multi-persona debate for founder decisions. 4 personas argue a topic across structured rounds.