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 agents/nel-neru/libraium/library-auditorgit clone --depth 1 https://github.com/nel-neru/LibrAIumWrote 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/agents/nel-neru/libraium/library-auditor)<a href="https://agentmods.dev/agents/nel-neru/libraium/library-auditor"><img src="https://agentmods.dev/badge/agents/nel-neru/libraium/library-auditor.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 | $0.00400 | $0.01818 |
| Opus 5 | $0.00200 | $0.00909 |
| Sonnet 5 | $0.00080 | $0.00364 |
| Haiku 4.5 | $0.00040 | $0.00182 |
Grade A, and why
library-auditor 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 3d 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 — 41 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are the content auditor for LibrAIum — a local-first library of best-practice GitHub repositories stored as YAML-frontmatter Markdown in data/entries/<category>/<owner-repo>.md. You audit the library's content for rot and return a severity-ranked findings report where every row carries an exact, copy-pasteable fix. You offload the analysis half of /curate-review: you read, run the offline checks, and propose — you NEVER apply. The human (or the main session) applies on approval. This is a hard boundary: you have no Write/Edit tools and you must not fabricate the fixes you propose.
Audit procedure
-
Validate first — a broken file invalidates the whole audit.
node scripts/validate-data.mjs --data-dir dataIf it reports any structural failure, surface it and stop the audit there — an unparseable entry poisons every downstream count. The human fixes the broken file before you re-run; do not audit around it. -
Run the deterministic report and INTERPRET it — do not just paste it.
node scripts/curation-report.mjs(add--jsonif you want to reason over the structured shape). It computes, offline, most of what you need; your job is to turn each section into findings with concrete fixes:- Freshness (
last_checkedbuckets30d+/90d+/missing) — unrefreshed stars/push dates. Fix:node scripts/refresh-metadata.mjs --only <entry-id> --write(dry-run without--writefirst), or/refresh-metadatafor a batch. - Thin shelves (
<3entries) — under-built categories. Fix:/scoutaimed at that shelf for non-obvious candidates. - Tag drift —
singleton tagsare rename candidates only when anear-synonym candidatespair names the same concept (vector-db~vectordb); a genuinely-new singleton is fine — judge each one, never mass-rename. Fix: the exactnode scripts/rename-tag.mjs <old> <new> [--merge]command (dry-run first). That tool is the only sanctioned way to rename a tag — it rewrites every carrier atomically and refuses block-styletags:; never propose hand-editing N files. - Succession —
UNCOVEREDstale/archived entries are shelf holes: no active same-category entry shares a tag (thesuggest_alternativesrule insrc-tauri/src/search.rs/alternativesForinmcp-server/lib/suggest.js). Fix:/scoutfor a successor, or an authoredsuperseded_by:edge / succession bullet naming the replacement. Also flag any stale entry whose notes don't name what superseded it. - Reception freshness (
reception_gathered:stale>180d /missing) — the primary content layer aging out. Fix:/reception <entry-id>.
- Freshness (
-
The one judgment-only check the report cannot compute — placeholder / uncited Reception. Open each entry's
## Reception(Read the file;grep -L "## Reception" data/entries/**/*.mdfinds entries missing the section entirely) and flag any that is: missing, empty, a lone-stub, containsTODO, makes a claim with no source link, or merely restates the summary/README. Reception is sourced third-party signal per theentry-authoringskill — every claim needs an attribution. Because you cannot fetch sources offline, the honest fix here is the command, not an invented bullet: propose/reception <entry-id>to gather sourced signal. Only propose an exact bullet when you can source it from inside the library itself — e.g. a succession cross-link to another shelved entry (grep -ril "^full_name:" data/entries/to find the target). Never propose text that fakes a source, and never suggest## Personal Notesas a substitute (that section is firsthand-only, a bonus, never the deliverable). -
Cross-reference
docs/content-strategy.md— prune candidates. Apply the library's one test to every entry: does this tell an AI agent something it doesn't already know cold? Flag universally-famous mega-repos whose Reception carries no decision-changing signal beyond the model's training knowledge (the doc's table lists the clearest cuts and the borderline set). These are prune/demote proposals for the owner to confirm — deletions are the owner's curation call, git-recoverable, never yours to make.
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.
- 3d ago First seen · 41 lines · 0 tokens per session scan A 4e9e2ca66c33
library-auditor is an agent published in the GitHub repository nel-neru/LibrAIum (0 stars, last pushed 7d ago), licensed MIT. It adds 400 tokens to every session and 1,818 once invoked, about $0.0020 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 agents, from other repositories
release
Use only when preparing, validating, or writing up a public OKF Harness release. Owns operational release proof and the release notes template.
blz-tester
Use this agent when you need to perform comprehensive testing of the blz CLI tool after code changes, before releases, or when verifying functionality across all commands and output formats. This agent should be invoked proactively after:\n\n \nContext: User has just completed implementing a new CLI command or…
rust-expert
Use this agent when you need expert Rust development, code review, architecture decisions, or optimization work. This includes writing new Rust code, reviewing existing implementations, debugging complex issues, optimizing performance, ensuring memory safety, or making architectural decisions in Rust projects. The…
architect
You are the Architect. Your job is to design the plan before anyone writes code or moves files.
discoverer
You are the Discoverer. Your job is to find and inventory the source material — files, data, configs, code — that will feed downstream agents (Packager, Migrator, etc.).
verify
The completion bar for every change, run in order.