wiki-lint

wiki-lint is a command for Claude Code from entropyeq/karpathy-plus. It costs 13 tokens per session (1,056 once invoked), scanned A, original, MIT.

A checker for a team wiki, which is a shared collection of project notes and documentation. It looks for outdated pages, broken links, missing log entries, overdue tasks, and differences between related information.

In plain words
What is it for?
Use it to review a wiki’s links, page freshness, task lists, logs, and main page entries, then decide which issues need attention.
Why use it?
It helps find wiki problems before people rely on incorrect or hard-to-follow documentation. It also records what the check found and what was fixed.

Command for Claude Code

Written for Claude Code: a Claude Code command (commands/*.md). Also seen: reads .claude/ paths; mentions CLAUDE.md; mentions Claude Code.

Good fit Use it to review a wiki’s links, page freshness, task lists, logs, and main page entries, then decide which issues need attention.

Compare 6 commands from other repositories ↓
Install with agentmods
npx agentmods add commands/entropyeq/karpathy-plus/wiki-lint
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.

Clone the repo
git clone --depth 1 https://github.com/entropyeq/karpathy-plus

Made for: Claude Code.

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

README.md
[![agentmods](https://agentmods.dev/badge/commands/entropyeq/karpathy-plus/wiki-lint.svg)](https://agentmods.dev/commands/entropyeq/karpathy-plus/wiki-lint)
Your own site
<a href="https://agentmods.dev/commands/entropyeq/karpathy-plus/wiki-lint"><img src="https://agentmods.dev/badge/commands/entropyeq/karpathy-plus/wiki-lint.svg" alt="Measured on agentmods" height="20"></a>
Per session 13 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,056 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
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.00013 $0.01056
Opus 5 $0.00006 $0.00528
Sonnet 5 $0.00003 $0.00211
Haiku 4.5 $0.00001 $0.00106

Measured 8d ago against content hash 305d624dcdef, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

wiki-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 8d 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.

runtime/commands/wiki-lint.md · 28 lines

How it starts

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

Run a comprehensive wiki lint pass. Follow each step in order.

A slash command runs in whatever directory the session happens to be in, so do not use bare relative paths — every path below is absolute under the wiki root.

  1. Resolve the wiki root and run the mechanical pass. Set WIKI to the path in ~/.claude/wiki-root if that file exists, else ~/knowledge/wiki (expand the ~ to the absolute home path), and use $WIKI/... throughout. Then run bash ~/.claude/hooks/wiki-lint-checks.sh and keep its output: it precomputes the deterministic facts (QUEUE, BROKEN-LINK, FRESHNESS, LOG-GAP, TASK, ROOT-ENTRY lines) that steps 1-8 consume — do not re-derive those by hand. (Script not installed? Derive the same facts manually and continue.) After each step, append one line to $WIKI/.lint-run recording what you did and what you found (e.g. step 3 broken-links: 2 found, 2 fixed). Start by truncating $WIKI/.lint-run.

The mechanical checks (link validity, freshness inputs, log gap, task collection, root listing) live in the script — same answer every run, no tokens spent re-deriving them. The judgment calls (which pages to update, whether a flagged item actually matters, what to fix vs surface) are yours and stay in the steps below.

  1. Process update queue. The QUEUE line says whether $WIKI/.update-queue has entries. If so, read each entry, determine which wiki pages need updating, update them, clear the queue.
  2. Freshness check. From the FRESHNESS lines: flag pages whose last_updated lags far behind their git activity, and project pages >1 week stale relative to their repo. (Mechanical inputs; the staleness call is yours.)
  3. Broken links. Fix each BROKEN-LINK line: auto-fix obvious renames, flag true orphans.
  4. Task aggregation. From the TASK lines: age via git blame if useful, write the top 10 to $WIKI/tasks-open.md.
  5. Log gap check. Flag if the LOG-GAP line shows the most recent $WIKI/log.md entry is >3 days old.
  6. Unprocessed sources. Skip unless your pages actually use a processed: frontmatter key — no shipped page does on a fresh install, so this no-ops until the convention appears. Once it does: flag files in $WIKI/sources/ without processed: true, older than 5 days.
  7. Log rotation. If $WIKI/log.md has entries older than 30 days, archive them to $WIKI/sources/log-archive-YYYY-MM.md.
  8. Root cleanliness. Check each ROOT-ENTRY line (the knowledge root's contents) against the approved bucket list in CLAUDE.md. Ask triage for anything loose: do it / defer it / kill it.
  9. Auto-memory drift check. Skip unless you have enabled Claude Code memory (the template does not scaffold it). If enabled: diff key facts between auto-memory and wiki, auto-fix obvious staleness.
  10. Plan reconciliation. Skip unless your plan pages actually carry a last_reconciled frontmatter key — no shipped page does on a fresh install. Once they do: for each $WIKI/plans/*.md, compare last_reconciled to last_updated of any referenced project and flag plans that predate their dependencies.
  11. Heartbeat. Write the current timestamp to $WIKI/.lint-heartbeat. Update the Last updated / Last lint heartbeat line in $WIKI/INDEX.md with the lint summary, and make sure its task pointer reads tasks-open.md.
  12. Report. Read $WIKI/.lint-run back verbatim, then present findings: auto-fixed (just report) and needs-attention (ask triage per item).
  13. Remote sync. cd "$WIKI" && ([ -z "$(git status --porcelain)" ] || (git add -A && git commit -m 'wiki-lint: auto-sync' && GIT_SSH_COMMAND='ssh -o BatchMode=yes -o ConnectTimeout=10' git push)). git status --porcelain (not git diff) is the dirty check so brand-new untracked pages count as changes too. BatchMode makes an SSH remote fail fast instead of hanging when no ssh-agent is loaded; an HTTPS remote with a credential helper avoids it entirely.

These steps grow as conventions actually appear. Following the repo's own rule, add a new check (or a new gated frontmatter key) only after its need has fired twice — don't pre-wire checks for keys no page uses yet.

Read the full file on GitHub · 28 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. 8d ago First seen · 28 lines · 13 tokens per session scan A 305d624dcdef

Subscribe to this mod's changes

wiki-lint is a command published in the GitHub repository entropyeq/karpathy-plus (5 stars, last pushed 1mo ago), licensed MIT. It adds 13 tokens to every session and 1,056 once invoked, about $0.0001 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.