skills/geo-optimizer/SKILL.md
This skill should be used when the user asks to "audit for AI visibility", "optimize for ChatGPT", "check GEO readiness", "analyze hedge density", "generate agentfacts", "check if my site works with AI search", "test LLM crawlability", "check discovery gap", or mentions Generative Engine Optimization, AI crawlers, Perplexity discoverability, or NANDA protocol.
npx skillsauth add b-open-io/prompts geo-optimizerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generative Engine Optimization (GEO) for AI search visibility.
For background on what GEO is, how it differs from SEO, and the research behind it, see
README.md.
# Run full GEO audit
python3 ${CLAUDE_SKILL_DIR}/scripts/audit-geo.py https://example.com
# Check HTML size and JS dependency
curl -sI https://example.com | grep -i content-length
# Check hedge density of your content
python3 ${CLAUDE_SKILL_DIR}/scripts/check-hedge-density.py --url https://example.com/blog/post
# Or analyze text directly
python3 ${CLAUDE_SKILL_DIR}/scripts/check-hedge-density.py --text "Your content here"
# Generate AgentFacts schema for your domain
python3 ${CLAUDE_SKILL_DIR}/scripts/generate-agentfacts.py \
--domain example.com \
--agent-name "Example Service" \
--capabilities text,image \
--output /.well-known/agent-facts
Measures uncertainty language in content. Target: <0.2%
Hedge words to avoid:
See: references/hedge-density.md
Maximum: 1MB raw HTML. Above this threshold:
Check with: curl -sI URL | grep content-length
See: references/technical-visibility.md
AI crawlers vary in JavaScript rendering:
If your content requires JS to display, you're invisible to ~40% of AI crawlers.
See: references/discovery-strategies.md
The NANDA protocol provides machine-readable metadata for AI agent discovery. Place at /.well-known/agent-facts:
{
"@context": "https://nanda.dev/ns/agent-facts/v1",
"id": "nanda:example.com",
"agent_name": "urn:agent:example:com",
"endpoints": {
"static": ["https://api.example.com/v1/agent"]
},
"capabilities": {
"modalities": ["text"],
"authentication": {
"methods": ["oauth2", "jwt"]
}
},
"trust": {
"certification": "self-attested",
"human_oversight": "true"
}
}
See: references/agentfacts-schema.md
A complete GEO audit covers:
Technical Visibility
Content Authority
Discovery Strategy
Agent Infrastructure
| Script | Purpose |
|--------|---------|
| audit-geo.py | Full GEO audit for a URL |
| check-hedge-density.py | Analyze content confidence |
| generate-agentfacts.py | Create NANDA-compliant schema |
| File | Contents |
|------|----------|
| hedge-density.md | Confidence scoring methodology |
| agentfacts-schema.md | NANDA protocol specification |
| technical-visibility.md | Crawler behavior & limits |
| discovery-strategies.md | Startup vs incumbent approaches |
# Full audit with report
python3 ${CLAUDE_SKILL_DIR}/scripts/audit-geo.py https://mysite.com --output report.md
# Quick hedge check
python3 ${CLAUDE_SKILL_DIR}/scripts/check-hedge-density.py --url https://mysite.com/about
# Generate AgentFacts for SaaS
python3 ${CLAUDE_SKILL_DIR}/scripts/generate-agentfacts.py \
--domain myapp.com \
--agent-name "MyApp AI" \
--capabilities text \
--auth oauth2,apikey
development
This skill should be used when the user asks to "design a business card", "make a printable PDF", "render HTML to PDF", "generate a postcard", "build print collateral", "set up an HTML print pipeline", or needs help with bleed, safe areas, font embedding, or QR generation for print. Provides a Playwright-based pipeline with multiple bundled templates and theme variants for business cards (minimal, watercolor light, watercolor dark) and instructions for adding new templates.
tools
Get recent tweets from an X/Twitter user. Use when user asks "what has @username posted", "recent tweets from", "user's X posts", "show timeline for", "what is @user saying". Requires X_BEARER_TOKEN.
data-ai
Get X/Twitter user profile by username. Use when user asks "who is @username", "get X profile", "lookup Twitter user", "find X account", "user details", "follower count for". Requires X_BEARER_TOKEN.
data-ai
Search recent X/Twitter posts by query. Returns RAW TWEETS (last 7 days). Use when user asks "search X for", "find tweets about", "what are people saying about", "Twitter search", "raw tweets about". For AI summaries/sentiment, use x-research instead. Requires X_BEARER_TOKEN.