CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

ikuzuki/markdown-kb-lint

Whole-vault consistency pass over a markdown knowledge base (Obsidian vault, LLM-maintained wiki, docs folder, personal notes repo). Reads every note and reports broken markdown and wikilinks, missing or malformed frontmatter, missing reciprocal links, orphan notes, stale time-bound phrasing ("next sprint", "currently") in old notes, aged TBD markers, contradictions between decision records and later notes, inconsistent tags and emergent hub candidates - grouped by severity with a suggested fix each. Report first; edits only after the user approves. Use when the user says "lint my vault", "check my notes for broken links", "audit my knowledge base", "vault health check", "what's stale in my notes", "find orphan pages", or after a large reorganisation or bulk import.

79

1.21x
Quality

92%

Does it follow best practices?

Impact

100%

1.21x

1 of 3 eval scenarios. Add 2 more for a full score.

SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

Quality

Content

82%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A tight, well-sequenced instruction-only skill: schema discovery with sensible declared defaults, exact check definitions with quantitative thresholds, a literal report format, and an unusually careful edit policy (approval gating, mechanical/judgement batching, never-list). The main gaps are minor: no post-edit re-verification loop and slight repetition of the approval rule across sections.

Suggestions

Add a final verification step to §5 (e.g., 'after the edit pass, re-run the relevant checks on the touched files to confirm findings cleared and no new broken links were introduced') to close the feedback loop on batch edits.

State the report-first/no-unapproved-edits rule once (its natural home is §5) and drop the restatement from the intro paragraph, which can also lose one sentence of the 'rots quietly' preamble.

If the skill grows further, move the §3 checks catalogue (the largest block) into a references/checks.md and keep a severity summary inline, giving the body one-level-deep navigation.

DimensionReasoningScore

Conciseness

The body is dense and assumes competence — link resolution rules, check thresholds, and the report format are given as bare facts with no tutorializing. It falls at level 4 rather than 5 because of minor trims available: the two-sentence 'rots quietly' preamble and the report-first/approval rule stated in the intro, again in §4's framing, and again in §5's title and first line. Not level 3 ('several unnecessary explanations') since no concept Claude already knows is explained.

4 / 5

Actionability

Guidance is copy-paste concrete throughout: exact glob ('`**/*.md` minus exclusions'), all three link forms with syntax, exact staleness thresholds ('more than six weeks', 'more than three months', 'tag on four or more notes'), a literal report line format ('`[HIGH] path/to/note.md: <what is wrong>. Fix: <suggested edit>.`'), and a split of fixes into mechanical vs judgement batches. Per the rubric's scoring note, absence of code in an instruction-only skill is not penalized when guidance is this specific — this fully matches the level-5 anchor.

5 / 5

Workflow Clarity

The five phases (schema → read → checks → report → fix-on-approval) are clearly sequenced with strong checkpoints for the risky part: edits are gated behind explicit user approval, split into safe-to-batch mechanical fixes vs per-item judgement calls, and bounded by a never-do list. It sits at 4 rather than 5 because the workflow lacks a post-edit verification loop — after the batch of approved edits there is no step to re-run the lint to confirm findings actually cleared, which the rubric's feedback-loop note calls for in batch-edit contexts. It is not capped at 3: validation is not missing (the skill is validate-first by design, and false-positive suppression rules in §4 act as an accuracy check on the report).

4 / 5

Progressive Disclosure

There are no bundle files (no references/, scripts/, or assets/), and the body's ~68 lines are organized into five well-named sections with checks grouped by severity — structure is good and nothing that belongs in a separate file is inlined. It scores 4 rather than 5 because the rubric's automatic-5 for section-only organization applies to skills under 50 lines; at this length the §3 checks catalogue could plausibly live in a one-level-deep reference file, and no navigation/signposting beyond the section headers exists.

4 / 5

Total

17

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary description: it fully enumerates what the skill does, scopes the input types, states the report-first/no-unapproved-edits contract, and closes with a rich set of quoted natural-language triggers plus a situational trigger (post-reorganisation/bulk import). Every clause carries information; nothing is padded.

DimensionReasoningScore

Specificity

The description lists numerous concrete actions — "broken markdown and wikilinks, missing or malformed frontmatter, missing reciprocal links, orphan notes, stale time-bound phrasing ... aged TBD markers, contradictions between decision records and later notes, inconsistent tags and emergent hub candidates" — comprehensive coverage of the capability space with no padding, matching the level-5 anchor. It exceeds level 4 ('minor gaps in coverage') because every check category the skill performs is named.

5 / 5

Completeness

Both questions are explicitly answered: a detailed 'what' (the enumerated checks, severity grouping, suggested fix per finding, "edits only after the user approves") and an explicit 'when' clause with concrete trigger phrases ("Use when the user says ..."). This is the level-5 anchor verbatim in structure; level 4 ('when could be more explicit') does not apply since the when-clause quotes exact utterances.

5 / 5

Trigger Term Quality

It includes a full battery of natural user phrasings — "lint my vault", "check my notes for broken links", "audit my knowledge base", "vault health check", "what's stale in my notes", "find orphan pages" — plus domain synonyms (Obsidian vault, wiki, docs folder, notes repo). This matches the level-5 anchor (comprehensive natural terms incl. synonyms); level 4 ('a few natural terms missing') is too low given the breadth and the added situational trigger "after a large reorganisation or bulk import".

5 / 5

Distinctiveness Conflict Risk

The niche (whole-vault consistency linting of a markdown knowledge base) is distinct and the triggers ("lint my vault", "vault health check", "find orphan pages") are unlikely to fire for any other skill. It matches the level-5 anchor 'clear niche with distinct triggers; minimal conflict risk'; level 4's 'minor overlap risk with closely related skills' would require a plausible sibling skill, which these triggers don't invite.

5 / 5

Total

20

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

relative_links

Relative link issues: 1 missing

Warning

Total

15

/

16

Passed

Reviewed

On this page