⏳ This skill is pending AI review.
Scores will appear once the review pipeline completes.
content-creator
>
Choose how to use this skill
You do not need every option. Choose the path your AI client supports. The stable page stays the same; versioned files are immutable.
1. Native installer
This listing has no registered native installer command. Use the complete package or source fallback below, depending on what your client supports.
Do not guess an installer command or replace an existing version without reviewing the diff.
2. Complete package recommended
Download the ZIP when available. It includes SKILL.md plus the references, security notes and version metadata.
No complete ProSkills package is published for this listing yet.3. Prompt-only
Copy the prompt above when the agent can read the stable page or when you want to adopt the workflow without installing a skill.
Need only the instruction file?
Download SKILL.md only if your client requires a single file. The complete ZIP is safer for a full installation because it preserves the references and release context.
No path installs or executes anything by itself. Your agent still needs access to the project files. Before updating, compare the installed version and review the diff.
// RATINGS
// README
@ijonis/geo-lint
The first open-source linter for GEO (Generative Engine Optimization). Validates your content for AI search visibility -- then lets your AI agent fix it automatically.

Use with Claude Code
Install the geo-lint skill in one command:
curl -fsSL https://raw.githubusercontent.com/IJONIS/geo-lint/main/install.sh | bash
Then in any Claude Code session:
/geo-lint audit # Full sweep — find and fix all violations
/geo-lint fix <slug> # Fix a single content file
/geo-lint rules # Show all 97 rules with fix strategies
/geo-lint init # Set up geo-lint.config.ts for a new project
/geo-lint report # Generate a GEO/SEO health summary
The skill runs an autonomous lint-fix loop: scan your content, read structured violations, fix them using each violation's suggestion field, and re-lint until clean. Parallel subagents handle multiple files simultaneously.
Content Creation Pipeline
The install also adds /content-creator -- a self-configuring content pipeline that creates SEO & GEO-optimized content matched to your project:
/content-creator setup # Auto-discover your project + configure brand voice
/content-creator create # Create content with keyword research + validation
/content-creator voice # Analyze and adjust brand voice
/content-creator calendar # Plan monthly content calendar
/content-creator refresh # Update config when your project evolves
On first use, the skill scans your project to learn its framework, content schema, categories, and authors. It then asks a few questions about your brand voice and audience. From that point on, every piece of content is created with full project awareness and validated against geo-lint's 97 rules until clean -- zero manual intervention for mechanical quality.
Or paste this into any AI agent (Claude Code, Cursor, Windsurf, Copilot):
Run npx geo-lint --format=json, then fix every violation using each
violation's suggestion field. Re-run until the output is [].
Why this exists
I run multiple content-heavy sites and there was no deterministic way to validate whether my content was actually optimized -- not "probably fine," but actually checked against concrete rules. SEO linters exist, but they're either paid SaaS, not automatable, or completely ignore the structural patterns that AI search engines use when deciding what to cite.
So I built one. GEO (Generative Engine Optimization) is the practice of structuring content so it gets cited by ChatGPT, Perplexity, Google AI Overviews, and Gemini. Traditional SEO gets you into search result lists. GEO gets you cited in AI-generated answers. Both matter -- and no existing open-source tool checks for GEO.
The goal was simple: install one tool, point your AI agent at it, and walk away. The agent runs the linter, reads the JSON violations, fixes the content, re-lints until clean -- across an entire site, no manual input. One command, both SEO and GEO validated.
97 rules: 36 GEO, 34 SEO, 14 content quality, 10 technical, 3 i18n. Readability analysis inspired by Yoast SEO. We researched the current state of GEO and AEO to make sure the rules reflect what actually gets content cited -- not outdated advice.
Quick Start
npm install -D @ijonis/geo-lint
Create geo-lint.config.ts:
import { defineConfig } from '@ijonis/geo-lint';
export default defineConfig({
siteUrl: 'https://your-site.com',
contentPaths: [{
dir: 'content/blog',
type: 'blog',
urlPrefix: '/blog/',
}],
});
Run it:
npx geo-lint # Human-readable output
npx geo-lint --format=json # Machine-readable for AI agents
Works out of the box with .md/.mdx files. For Astro, HTML, or other formats, see Custom Adapters.
GEO in Action
Three examples of what GEO rules catch and how to fix them. See all 7 core GEO rules with examples.
geo-weak-lead-sentences
AI systems use the first sentence after a heading as the citation snippet. Filler openings get skipped.
Before:
## What is serverless computing?
In this section, we will take a closer look at serverless computing and
what it means for modern development teams.
After:
## What is serverless computing?
Serverless computing is a cloud execution model where the provider
dynamically allocates compute resources per request, eliminating the
need to provision or manage servers.
geo-low-citation-density
AI answers prefer citable claims backed by numbers. Vague statements get passed over.
Before:
Adopting TypeScript significantly reduces bugs in large codebases.
After:
Adopting TypeScript reduces production bugs by 38% in codebases
exceeding 50,000 lines of code, according to a 2023 study by
Microsoft Research.
geo-missing-table
Tables are highly structured and unambiguous -- ideal for AI extraction. Content with comparison tables is cited significantly more often than equivalent prose.
Before:
React is component-based and uses a virtual DOM. Vue is also
component-based but uses a reactivity system. Svelte compiles
components at build time.
After:
| Framework | Architecture | Bundle Size | Learning Curve |
|-----------|------------------|-------------|----------------|
| React | Virtual DOM | 42 KB | Moderate |
| Vue | Reactivity proxy | 33 KB | Low |
| Svelte | Compile-time | 1.6 KB | Low |
All 97 Rules
| Category | Rules | Severity Mix | Focus |
|---|---|---|---|
| SEO | 34 | 6 errors, 28 warnings | Titles, descriptions, headings, slugs, OG images, canonical URLs, keywords, links, schema, sameAs, service pages |
| Content | 14 | 2 errors, 12 warnings | Word count, readability, dates, categories, jargon density, repetition, vocabulary diversity, transition words, sentence variety |
| Technical | 10 | 3 errors, 7 warnings | Broken links, image files, trailing slashes, external URLs, performance, feeds, llms.txt |
| i18n | 3 | 0 errors, 3 warnings | Translation pairs, locale metadata |
| GEO | 36 | 0 errors, 36 warnings | AI citation readiness: E-E-A-T signals, content structure, freshness, RAG optimization, author entity type |
See the complete rule reference with descriptions and severity for every rule.
Works With
AI agents: Claude Code, Cursor, Windsurf, GitHub Copilot -- any agent that can run shell commands and edit files
Content formats: Markdown and MDX out of the box. Astro, HTML, Nuxt, any CMS via custom adapters
Build tools: Runs in any CI pipeline. JSON output for programmatic consumption
Runtime: Node.js >= 18. Zero peer dependencies
Agent-First Design
This linter is deterministic -- same content in, same violations out, every time. Your AI agent provides the creativity to fix the content; geo-lint provides the guardrails to verify it's correct. The loop runs until violations hit zero.
Claude Code Plugin
Install the skill and use /geo-lint audit to validate and fix your entire content directory automatically. The skill runs the full lint-fix loop with parallel subagents -- one per file. See [
// HOW IT'S BUILT
KEY FILES