@calvin8miles/geo-lint
v0.1.0
Published
GEO (Generative Engine Optimization) linter — scores how well a site is discoverable and citable by AI coding agents. 24 rules, score 0–100.
Downloads
57
Maintainers
Readme
@synapse/geo-lint
24-rule GEO (Generative Engine Optimization) linter — scores how well a site or project is set up for AI coding agents to discover, understand, and recommend it. Returns a 0–100 Growth Score and a grade A–F.
import { lint, applyFixes } from "@synapse/geo-lint";
const report = await lint("https://example.com");
console.log(report.score, report.grade);
// or a local project path:
const local = await lint("./my-next-app");
const fixed = await applyFixes("./my-next-app");See the full 24-rule checklist or fetch
synapse://docs/geo-checklist from the MCP server for the live list.
Rule shape
Each rule exports:
{
id, number, title, description, category, weight, severity, autoFixable,
check(target): Promise<{ passed, evidence?, suggestion? }>,
fix?(target): Promise<{ applied, filesWritten[] }>,
}lint() runs all rules in parallel via Promise.all.
URL vs project targets
- URL: fetches the page +
robots.txt,sitemap.xml,llms.txt,llms-full.txt, and/.well-known/agent-answer.jsononce and reuses them across rules. - Project path: detects framework (Next / Astro / Vite / Remix / SvelteKit /
Nuxt / plain HTML), finds the build output, and runs rules against the
static output +
public/files.
