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 agentmods add skills/barakgut/lore/lore-lintnpx skills add barakgut/lore --skill lore-lintgit clone --depth 1 https://github.com/barakgut/loreWrote 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/barakgut/lore/lore-lint)<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>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.00076 | $0.02036 |
| Opus 5 | $0.00038 | $0.01018 |
| Sonnet 5 | $0.00015 | $0.00407 |
| Haiku 4.5 | $0.00008 | $0.00204 |
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.
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.
- Index drift —
--checkexits 1 and printsDRIFT <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 staleindex/*.md). FIX: regenerate — the plain run at the end (see Output). Orphan pages, ghost entries, and deprecated pages listed outside## Deprecatedcannot exist in a generated index except as drift, so this one check covers all three. If the plain run answersERROR: … run --seed-groups once, follow theloreskill's Index regeneration section. - Ungrouped pages — non-deprecated
wiki/*.mdwith nogroup:in their frontmatter.rg --files-without-match '^group:' "$LORE/wiki"(rg -Lis--follow, not--files-without-match) is a first pass, not the answer: it matches anywhere in a file, so a page whose onlygroup:line sits in its body is missed, and it knows nothing ofstatus: deprecated. Filter what it lists — drop the deprecated pages — and confirm the rest by reading their frontmatter. Before assigning any group by hand: ifindex.mdcarries no<!-- generated by lore_index.pymarker 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 answersERROR: … run --seed-groups once), follow theloreskill's Index regeneration path for that ERROR as check 1 says, and re-run this check on whatever--seed-groupsleft 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: addgroup:— reuse an existing group (--groups) when one fits, else the page's obvious topic, title-case. - Group hygiene — groups that differ only by case, punctuation, or
plural (
Register Mapsvsregister-map), and groups holding a single page. REPORT only, as merge candidates: the fix is changinggroup:on the pages, then regenerating. - Dead wikilinks —
rg -o '\[\[[^]]+\]\]' wiki/targets with no matchingwiki/<Target_With_Underscores>.md. FIX: if an obvious near-match page exists, correct the link; else REPORT. - Duplicate titles — two pages whose
title:differ only by case/punctuation. REPORT only (merging is a judgment call). - Contradictions — count existing
> ⚠ CONTRADICTIONblocks. Also actively cross-check pages that share a subject (via title, wikilinks, or overlappingsources[].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. - Description cap — compute each page's entry line
- [title](wiki/X.md) — descriptionfrom its frontmatter: 200 characters or longer is over the cap. FIX: tightendescriptionin the page (the index shows a cut hook until then).--checkdoes not report this; the end-of-flow regeneration echoes what is left asWARN: over-cap wiki/X.md (<n> chars). Index size — more than 200wiki/*.mdpages while the index is flat (the same regeneration echoesNOTE: <n> entries > 200 …): REPORT, then follow theloreskill's Index regeneration section's ask-once flow; never split or refuse on your own. - Frontmatter validity — against the
loreskill's page schema: mandatorytype(one of the allowed five),title,description,tags, andgeneratedwith bothbyandat.group, when present, must be a non-empty string (its absence is check 2's business, not a violation).sourcesis validated only when present (each entry needs aresource;idon every entry when the body contains[^footnotes) — its absence is not a violation.status, if present, must bedraft,stable, ordeprecated. 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. - Footnote discipline — a page with 2+
sourcesentries 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). - Missing concept pages — a topic wikilinked or substantively discussed across 2+ pages with no page of its own. REPORT only (suggest the page).
- Missing cross-references — two pages clearly covering the same entity with no wikilink between them. FIX when the connection is unambiguous; else REPORT.
- 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.
- Discard candidates — pages that look like dead weight: near-duplicates,
mis-ingests, pages superseded by newer ones, pages already
status: deprecatedfor some time (candidates for permanent deletion). REPORT only, phrased as the discard flow's triggers: "discard page X" / "delete page X permanently".
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.
- 5d ago First seen · 113 lines · 76 tokens per session scan A 29e51c829295
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.
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…
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.
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.
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.
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.
simplify
Wrap-up refactoring — simplify code, eliminate duplication, preserve behavior.