geo-lint CLAUDE.md

geo-lint CLAUDE.md is an instructions file for coding agents from IJONIS/geo-lint. It costs 2,571 tokens per session, scanned A, original, MIT.

A command-line and programmable checker for written content, including Markdown and MDX files. SEO means making content easier for search engines to find, while GEO means adapting content for generative AI search systems.

In plain words
What is it for?
Checking Markdown, MDX, and adapted Astro, HTML, or Nuxt content for SEO and GEO rules, especially in automated fix-and-check workflows.
Why use it?
Agents need a repeatable way to find content problems, fix them, and check the result again. The linter reports rule violations in a format both people and agents can use.

Instructions file

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 instructions/ijonis/geo-lint/claude-md
Clone the repo
git clone --depth 1 https://github.com/IJONIS/geo-lint

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 geo-lint CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/ijonis/geo-lint/claude-md.svg)](https://agentmods.dev/instructions/ijonis/geo-lint/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/ijonis/geo-lint/claude-md"><img src="https://agentmods.dev/badge/instructions/ijonis/geo-lint/claude-md.svg" alt="Measured on agentmods" height="20"></a>
Per session 2,571 This file is loaded in full into every session.
When invoked 2,571 The same file — it is already loaded in full.
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.02571 $0.02571
Opus 5 $0.01286 $0.01286
Sonnet 5 $0.00514 $0.00514
Haiku 4.5 $0.00257 $0.00257

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

Security

Grade A, and why

geo-lint CLAUDE.md 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.

CLAUDE.md · 250 lines

How it starts

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

CLAUDE.md — geo-lint

This file gives AI agents the context needed to work in this repository and to run the iterative lint-fix loop on content.

What this project is

@ijonis/geo-lint is a CLI and programmatic linter for content. It validates SEO and GEO (Generative Engine Optimization) rules and outputs structured violations that agents consume, fix, and re-lint.

Out of the box it scans Markdown/MDX files. For other formats (Astro, HTML, Nuxt, etc.), a small custom adapter script maps the content into the same shape -- see Workflow C below.

The primary use case is agentic: run the linter, read violations, fix the content, re-lint until clean.

Local dev commands

npm ci                   # Install dependencies (always use ci, not install)
npm run build            # Compile TypeScript to dist/
npm run dev              # Watch mode build
npm test                 # Run all tests
npm run typecheck        # Type-check without emitting
npm run test:coverage    # Tests with coverage report

Running the linter

# Human-readable output with ANSI colors
npx geo-lint --root=.

# Machine-readable JSON — use this in all agentic workflows
npx geo-lint --format=json --root=.

# List every rule with its fix strategy
npx geo-lint --rules

JSON output shape

Each violation is an object in a flat array:

{
  "file": "blog/my-post",
  "field": "body",
  "rule": "geo-no-question-headings",
  "severity": "warning",
  "message": "Only 1/5 headings are question-formatted",
  "suggestion": "Rephrase some headings as questions to improve LLM snippet extraction.",
  "line": 12
}

Key fields:

  • file — content slug, not the full path. Resolve to content/<type>/<file>.mdx on disk.
  • suggestion — plain-language fix instruction. Follow it directly when editing the file.
  • severity — fix error violations first; they produce a non-zero exit code.
  • fixStrategy — rule-level fix pattern, available via npx geo-lint --rules.

An empty array [] means zero violations — the content is clean.

Read the full file on GitHub · 250 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 · 250 lines · 2,571 tokens per session scan A b1b2af20047f

Subscribe to this mod's changes

geo-lint CLAUDE.md is an instructions file published in the GitHub repository IJONIS/geo-lint (39 stars, last pushed 5mo ago), licensed MIT. It adds 2,571 tokens to every session, about $0.0129 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-30.