lore-lint

lore-lint is a skill for Claude Code from barakgut/lore. It costs 76 tokens per session (2,036 once invoked), scanned A, original, MIT.

A health checker for a lore knowledge base: a collection of linked notes organized into groups and indexes. It checks whether the notes, links, metadata, references, and generated indexes follow the workspace's rules.

In plain words
What is it for?
Use it to audit and repair a lore folder, regenerate its index when needed, identify ungrouped or deprecated pages, and find missing concepts or cross-references.
Why use it?
It finds stale indexes, orphaned or duplicate pages, broken links, contradictions, missing references, and other gaps that are easy to miss when maintaining many connected notes.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin. Also seen: mentions CLAUDE.md.

Part of the lore plugin — 4 skills, 3 agents, 1 hook shipped together

Install

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.

agentmods
npx agentmods add skills/barakgut/lore/lore-lint
Any agent
npx skills add barakgut/lore --skill lore-lint
Clone the repo
git clone --depth 1 https://github.com/barakgut/lore

Made for: Claude Code.

Or install lore, the plugin that ships this one along with the rest of its 4 skills, 3 agents, 1 hook.

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 lore-lint

README.md
[![agentmods](https://agentmods.dev/badge/skills/barakgut/lore/lore-lint.svg)](https://agentmods.dev/skills/barakgut/lore/lore-lint)
Your own site
<a href="https://agentmods.dev/skills/barakgut/lore/lore-lint"><img src="https://agentmods.dev/badge/skills/barakgut/lore/lore-lint.svg" alt="Measured on agentmods" height="20"></a>
Per session 76 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,036 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
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.00076 $0.02036
Opus 5 $0.00038 $0.01018
Sonnet 5 $0.00015 $0.00407
Haiku 4.5 $0.00008 $0.00204

Measured 5d ago against content hash 29e51c829295, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

lore-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 5d 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.

skills/lore-lint/SKILL.md · 113 lines

How it starts

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

/lore:lore-lint

Follow the lore skill for all conventions — including its Finding the lore ladder, which resolves $LORE (a path in the user's message, else cwd if it is a lore, else the project's ## Knowledge Base section, else hard fail). Then read $LORE/CLAUDE.md — where it differs from these defaults, it wins.

Checks

Start with the index script in check mode (the command is in the lore skill's Index regeneration section; add --check). Its output feeds check 1.

  1. Index drift--check exits 1 and prints DRIFT <path> lines: the index on disk is not what the pages' frontmatter says (a page added, renamed, deleted, regrouped, re-described, or deprecated without regeneration; a stale index/*.md). FIX: regenerate — the plain run at the end (see Output). Orphan pages, ghost entries, and deprecated pages listed outside ## Deprecated cannot exist in a generated index except as drift, so this one check covers all three. If the plain run answers ERROR: … run --seed-groups once, follow the lore skill's Index regeneration section.
  2. Ungrouped pages — non-deprecated wiki/*.md with no group: in their frontmatter. rg --files-without-match '^group:' "$LORE/wiki" (rg -L is --follow, not --files-without-match) is a first pass, not the answer: it matches anywhere in a file, so a page whose only group: line sits in its body is missed, and it knows nothing of status: deprecated. Filter what it lists — drop the deprecated pages — and confirm the rest by reading their frontmatter. Before assigning any group by hand: if index.md carries no <!-- generated by lore_index.py marker line and still lists pages under real topic headings, this lore predates v0.5 — on a v0.4 lore every page is ungrouped, so this check would otherwise replace the user's own headings with fresh judgment. Those headings are curation to migrate, not judgment calls to redo: run the plain regeneration now (it answers ERROR: … run --seed-groups once), follow the lore skill's Index regeneration path for that ERROR as check 1 says, and re-run this check on whatever --seed-groups left ungrouped. Like the missing-index repair, that migration is not this flow's end-of-flow regeneration; Output still does its own single run. FIX: add group: — reuse an existing group (--groups) when one fits, else the page's obvious topic, title-case.
  3. Group hygiene — groups that differ only by case, punctuation, or plural (Register Maps vs register-map), and groups holding a single page. REPORT only, as merge candidates: the fix is changing group: on the pages, then regenerating.
  4. Dead wikilinksrg -o '\[\[[^]]+\]\]' wiki/ targets with no matching wiki/<Target_With_Underscores>.md. FIX: if an obvious near-match page exists, correct the link; else REPORT.
  5. Duplicate titles — two pages whose title: differ only by case/punctuation. REPORT only (merging is a judgment call).
  6. Contradictions — count existing > ⚠ CONTRADICTION blocks. Also actively cross-check pages that share a subject (via title, wikilinks, or overlapping sources[].resource) for conflicting claims on the same fact (e.g. differing numeric specs). Skip any pair where either page already carries a CONTRADICTION marker naming that fact — lint is idempotent, so a re-run never adds a second marker for the same disagreement. Otherwise FIX by adding > ⚠ CONTRADICTION: <claim A> [[Source_A]]; <claim B> [[Source_B]] to the disagreeing page(s) — this only RECORDS the disagreement; it never resolves it (never edit either claim's value, never delete one, never pick a winner). REPORT every contradiction found, pre-existing or newly recorded.
  7. Description cap — compute each page's entry line - [title](wiki/X.md) — description from its frontmatter: 200 characters or longer is over the cap. FIX: tighten description in the page (the index shows a cut hook until then). --check does not report this; the end-of-flow regeneration echoes what is left as WARN: over-cap wiki/X.md (<n> chars). Index size — more than 200 wiki/*.md pages while the index is flat (the same regeneration echoes NOTE: <n> entries > 200 …): REPORT, then follow the lore skill's Index regeneration section's ask-once flow; never split or refuse on your own.
  8. Frontmatter validity — against the lore skill's page schema: mandatory type (one of the allowed five), title, description, tags, and generated with both by and at. group, when present, must be a non-empty string (its absence is check 2's business, not a violation). sources is validated only when present (each entry needs a resource; id on every entry when the body contains [^ footnotes) — its absence is not a violation. status, if present, must be draft, stable, or deprecated. FIX missing/typo'd fields when the correct value is obvious from content; else REPORT. A page carrying unsupported old-schema fields (source:, captured, freshness, trust, verified, stale_after) is REPORT only: name it as pre-0.3, suggest re-ingesting its raw source — never auto-migrate.
  9. Footnote discipline — a page with 2+ sources entries whose nontrivial claims (one substantive, independently falsifiable statement — a number, a name, a rule, a behaviour) lack [^id] markers. REPORT only (attribution needs source knowledge lint doesn't have).
  10. Missing concept pages — a topic wikilinked or substantively discussed across 2+ pages with no page of its own. REPORT only (suggest the page).
  11. Missing cross-references — two pages clearly covering the same entity with no wikilink between them. FIX when the connection is unambiguous; else REPORT.
  12. Knowledge gaps — questions the wiki raises but cannot answer, claims a newer source may have superseded, sources worth finding next. REPORT only, phrased as suggested next questions/sources for the user to investigate.
  13. Discard candidates — pages that look like dead weight: near-duplicates, mis-ingests, pages superseded by newer ones, pages already status: deprecated for some time (candidates for permanent deletion). REPORT only, phrased as the discard flow's triggers: "discard page X" / "delete page X permanently".

Read the full file on GitHub · 113 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. 5d ago First seen · 113 lines · 76 tokens per session scan A 29e51c829295

Subscribe to this mod's changes

lore-lint is a skill published in the GitHub repository barakgut/lore (1 stars, last pushed 8d ago), licensed MIT. It adds 76 tokens to every session and 2,036 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

issue-analyze

GitHub Issue and PR review thread deep analysis with Codex blind verdict. Use when: analyzing issue root cause, classifying problems, investigation planning, triaging PR review comments for actionability. Not for: fixing bugs (use bug-fix), code exploration (use code-explore). Output: classified analysis + verdict…

sd0xdev/sd0x-harness · 73 tokens

code-explore

Pure Claude code investigation. Use when: tracing execution paths, understanding architecture, diagnosing issues. Not for: dual-perspective review (use code-investigate), code review (use codex-code-review). Output: analysis report with findings.

sd0xdev/sd0x-harness · 51 tokens

bug-fix

Bug fix workflow. Use when: fixing bugs, resolving issues, regression fixes. Not for: new features (use feature-dev), understanding code (use code-explore). Output: fix + regression test + review gate.

sd0xdev/sd0x-harness · 48 tokens

code-investigate

Dual-perspective code investigation. Use when: deep code analysis needing both Claude and Codex perspectives. Not for: quick exploration (use code-explore), code review (use codex-code-review). Output: integrated findings from dual analysis.

sd0xdev/sd0x-harness · 52 tokens

git-investigate

Git history investigation. Use when: tracking code changes, finding where bugs were introduced, root cause analysis. Not for: code exploration (use code-explore), issue analysis (use issue-analyze). Output: history trace + root cause report.

sd0xdev/sd0x-harness · 53 tokens

simplify

Wrap-up refactoring — simplify code, eliminate duplication, preserve behavior.

sd0xdev/sd0x-harness · 16 tokens