Not in the top 1,000 by GitHub stars
geoly-ai/geo-skills
GEO skills for OpenClaw, including site audit, llms-txt optimization, schema generation and more.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
geo-ai-plugin-builder/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → fa042a4919b1
No earlier version was observed for comparison.
geo-bulk-processor/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → fa042a4919b1
No earlier version was observed for comparison.
geo-citation-writer/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → fa042a4919b1
No earlier version was observed for comparison.
geo-competitor-scanner/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → fa042a4919b1
No earlier version was observed for comparison.
geo-content-optimizer/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → fa042a4919b1
No earlier version was observed for comparison.
geo-content-publisher/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → fa042a4919b1
No earlier version was observed for comparison.
geo-conversion-optimizer/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → fa042a4919b1
No earlier version was observed for comparison.
geo-fact-checker/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → fa042a4919b1
No earlier version was observed for comparison.
geo-hallucination-checker/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → fa042a4919b1
No earlier version was observed for comparison.
geo-human-editor/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → fa042a4919b1
No earlier version was observed for comparison.
geo-llms-txt/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → fa042a4919b1
No earlier version was observed for comparison.
geo-local-optimizer/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → fa042a4919b1
No earlier version was observed for comparison.
geo-metrics-tracker/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → fa042a4919b1
No earlier version was observed for comparison.
geo-multilingual-optimizer/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → fa042a4919b1
No earlier version was observed for comparison.
geo-multimodal-tagger/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → fa042a4919b1
No earlier version was observed for comparison.
geo-prompt-researcher/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → fa042a4919b1
No earlier version was observed for comparison.
geo-report-builder/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → fa042a4919b1
No earlier version was observed for comparison.
geo-schema-gen/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → fa042a4919b1
No earlier version was observed for comparison.
geo-sentiment-optimizer/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → fa042a4919b1
No earlier version was observed for comparison.
geo-site-audit/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → fa042a4919b1
No earlier version was observed for comparison.
geo-som-strategist/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → fa042a4919b1
No earlier version was observed for comparison.
geo-structured-writer/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → fa042a4919b1
No earlier version was observed for comparison.
geo-studio/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → fa042a4919b1
No earlier version was observed for comparison.
geo-template-library/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
fa042a4919b1 → fa042a4919b1
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → fa042a4919b1
No earlier version was observed for comparison.
Heat
0.3- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- geo-ai-plugin-builder
geo-ai-plugin-builder - geo-bulk-processor
geo-bulk-processor - geo-citation-writer
geo-citation-writer - geo-competitor-scanner
geo-competitor-scanner - geo-content-optimizer
geo-content-optimizer - geo-content-publisher
geo-content-publisher - geo-conversion-optimizer
geo-conversion-optimizer - geo-fact-checker
geo-fact-checker - geo-hallucination-checker
geo-hallucination-checker - geo-human-editor
geo-human-editor - geo-llms-txt
geo-llms-txt - geo-local-optimizer
geo-local-optimizer - geo-metrics-tracker
geo-metrics-tracker - geo-multilingual-optimizer
geo-multilingual-optimizer - geo-multimodal-tagger
geo-multimodal-tagger - geo-prompt-researcher
geo-prompt-researcher - geo-report-builder
geo-report-builder - geo-schema-gen
geo-schema-gen - geo-sentiment-optimizer
geo-sentiment-optimizer - geo-site-audit
geo-site-audit - geo-som-strategist
geo-som-strategist - geo-structured-writer
geo-structured-writer - geo-studio
geo-studio - geo-template-library
geo-template-library
How it works
geo-ai-plugin-builder
When your agent uses it
Master orchestrator for turning high-value GEO content and capabilities into AI plugins/tools across ChatGPT, Claude, Perplexity, Gemini and other ecosystems. Use this skill whenever the user mentions building, designing, packaging, or standardizing AI plugins/tools around their content, APIs, or GEO assets, or wants to move from being passively cited to actively embedded inside AI workflows.
What it loads into context
Frontmatter
94 tokensAlways available to the agent
SKILL.md
2,120 tokensWhen the skill is activated
Reference documents
1,250 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use this skill
- Mindset and principles
- High-level workflow
- Information to ask from the user
- Output formats
- GEO-specific guidance
- Using bundled scripts and references
- Example use cases
- Working style
Scripts executed separately
scripts/plugin_blueprint_generator.py
Files
SKILL.mdcore9,969 bytesevals/evals.jsonasset2,097 bytesreferences/geo-ai-plugin-patterns.mddoc5,699 bytesscripts/plugin_blueprint_generator.pyruns8,494 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgeo-bulk-processor
When your agent uses it
GEO bulk processing engine for large-scale, multi-page content optimization. Use this skill whenever the user mentions bulk GEO changes, batch content updates, large websites, sitemaps, content libraries, or needs to process many URLs/documents in one workflow, not just a single page.
What it loads into context
Frontmatter
68 tokensAlways available to the agent
SKILL.md
2,123 tokensWhen the skill is activated
Reference documents
1,398 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- When to use this skill
- High-level workflow
- Input formats and expectations
- Output expectations
- Use of bundled resources
- Style and collaboration guidelines
Scripts executed separately
scripts/geo_bulk_pipeline.py
Files
SKILL.mdcore9,942 bytesevals/evals.jsonasset2,150 bytesreferences/bulk_pipelines.mddoc6,410 bytesscripts/geo_bulk_pipeline.pyruns4,837 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgeo-citation-writer
When your agent uses it
Write AI-citable content in proven formats including FAQ pages, definition articles ("What is X?"), comparison guides (A vs B), how-to guides, and original data/statistics roundups. Creates content optimized for ChatGPT, Perplexity, Gemini, and Claude citations. Use whenever the user mentions writing content for AI citations, creating FAQ pages, writing definition articles, building comparison content, making how-to guides, or generating statistics roundups that AI will reference.
What it loads into context
Frontmatter
104 tokensAlways available to the agent
SKILL.md
1,794 tokensWhen the skill is activated
Reference documents
730 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Start
- The 5 High-Citation Formats
- Format Selection Guide
- Content Generation Tools
- Writing Best Practices
- See Also
Scripts executed separately
scripts/generate_content.py
Files
SKILL.mdcore7,295 bytesSKILL.mdcore7,295 bytesSKILL.mdcore7,295 bytesSKILL.mdcore7,295 bytesSKILL.mdcore7,295 bytesSKILL.mdcore7,295 bytesevals/evals.jsonasset984 bytesreferences/ai-vocabulary.mddoc3,076 bytesscripts/generate_content.pyruns1,120 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgeo-competitor-scanner
When your agent uses it
Analyze competitor GEO (Generative Engine Optimization) strategies by examining their content structure, Schema markup, llms.txt, and AI citation signals. Benchmark your brand against competitors and identify strategic gaps and opportunities. Use whenever the user mentions scanning competitor GEO strategies, comparing AI search performance, analyzing competitor content for AI citations, finding GEO gaps, or wants to understand how competitors win AI citations.
What it loads into context
Frontmatter
87 tokensAlways available to the agent
SKILL.md
1,341 tokensWhen the skill is activated
Reference documents
2,811 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Start
- Scan Dimensions
- Research Workflow
- Scoring System
- Output Report
- Advanced Usage
- See Also
Scripts executed separately
scripts/scan_competitors.py
Files
SKILL.mdcore5,625 bytesSKILL.mdcore5,625 bytesSKILL.mdcore5,625 bytesSKILL.mdcore5,625 bytesSKILL.mdcore5,625 bytesSKILL.mdcore5,625 bytesevals/evals.jsonasset1,058 bytesreferences/scan-methodology.mddoc7,154 bytesreferences/scoring-rubric.mddoc2,854 bytesscripts/scan_competitors.pyruns9,727 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgeo-content-optimizer
When your agent uses it
Rewrite and restructure content to maximize AI citation rates across ChatGPT, Perplexity, Gemini, and Google AI. Optimizes articles, product pages, landing pages, and FAQs for GEO (Generative Engine Optimization). Use whenever the user mentions optimizing content for AI search, rewriting for AI citations, making content GEO-friendly, improving AI visibility, or wants their content to appear in ChatGPT/Claude/Perplexity answers. Also trigger for requests about citation optimization, AI-readable content structure, or fixing content that AI isn't citing.
What it loads into context
Frontmatter
115 tokensAlways available to the agent
SKILL.md
1,466 tokensWhen the skill is activated
Reference documents
10,439 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Start
- The GEO Citation Framework
- Content Types
- Optimization Checklist
- The 8 Optimization Rules
- Output Format
- Advanced Usage
- See Also
Scripts executed separately
scripts/analyze_content.pyscripts/optimize_content.py
Files
SKILL.mdcore6,521 bytesSKILL.mdcore6,521 bytesSKILL.mdcore6,521 bytesSKILL.mdcore6,521 bytesSKILL.mdcore6,521 bytesSKILL.mdcore6,521 bytesSKILL.mdcore6,521 bytesevals/evals.jsonasset1,853 bytesreferences/citation-framework.mddoc8,024 bytesreferences/content-types.mddoc9,767 bytesreferences/examples.mddoc13,383 bytesreferences/optimization-rules.mddoc12,718 bytesscripts/analyze_content.pyruns12,557 bytesscripts/optimize_content.pyruns7,425 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgeo-content-publisher
When your agent uses it
End-to-end GEO content publishing and distribution orchestrator. Use this skill whenever the user mentions publishing or distributing GEO-optimized content across multiple channels (blog, docs, landing pages, social, newsletter, app updates, etc.), wants to turn one core piece into many channel-specific variants, or wants to make new or updated content highly visible to AI crawlers and generative engines. Always consider this skill when the user combines content optimization, multi-platform distribution, and AI search visibility in the same request.
What it loads into context
Frontmatter
119 tokensAlways available to the agent
SKILL.md
3,222 tokensWhen the skill is activated
Reference documents
1,612 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use this skill
- Relationship to other GEO skills
- High-level workflow
- Output format
- Examples of triggering prompts
Scripts executed separately
scripts/generate_channel_plan.pyscripts/generate_page_structure_snippet.py
Files
SKILL.mdcore14,131 bytesSKILL.mdcore14,131 bytesevals/evals.jsonasset2,021 bytesreferences/publishing-templates.mddoc6,716 bytesscripts/generate_channel_plan.pyruns2,376 bytesscripts/generate_page_structure_snippet.pyruns2,699 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgeo-conversion-optimizer
When your agent uses it
GEO conversion optimization engine that balances AI citation readiness with real user conversion. Use this skill whenever the user wants content that both ranks well in AI answers and actually drives sign-ups, leads, purchases, or other business outcomes, not just “SEO/GEO for its own sake”.
What it loads into context
Frontmatter
67 tokensAlways available to the agent
SKILL.md
2,394 tokensWhen the skill is activated
Reference documents
1,417 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- When to use this skill
- High-level workflow
- Input and output expectations
- Use of bundled resources
- Style and collaboration guidelines
Scripts executed separately
scripts/conversion_blueprints.py
Files
SKILL.mdcore11,070 bytesevals/evals.jsonasset2,574 bytesreferences/conversion_playbook.mddoc6,861 bytesscripts/conversion_blueprints.pyruns5,432 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgeo-fact-checker
When your agent uses it
GEO-focused fact-checking and evidence collection assistant for written content. Use this skill whenever the user wants to verify factual claims (numbers, dates, rankings, market share, competitor data, quotes, or statistics), validate sources, or increase AI trust in content by attaching precise citations and up-to-date evidence. Prefer this skill for content that should be highly reliable for AI citations, reports, comparison pages, landing pages, and data-driven articles.
What it loads into context
Frontmatter
105 tokensAlways available to the agent
SKILL.md
4,716 tokensWhen the skill is activated
Reference documents
2,373 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use this skill
- Available tools and references
- High-level workflow
- Output formatting guidelines
- Example (brief, schematic)
- When to use this skill
- Available tools and references
- High-level workflow
- Output formatting guidelines
- Example (brief, schematic)
Scripts executed separately
scripts/claim_extractor.py
Files
SKILL.mdcore21,932 bytesSKILL.mdcore21,932 bytesSKILL.mdcore21,932 bytesSKILL.mdcore21,932 bytesSKILL.mdcore21,932 bytesSKILL.mdcore21,932 bytesSKILL.mdcore21,932 bytesevals/evals.jsonasset3,098 bytesreferences/claim-types.mddoc4,501 bytesreferences/fact-checking-patterns.mddoc6,202 bytesscripts/claim_extractor.pyruns4,248 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgeo-hallucination-checker
When your agent uses it
Detect and annotate hallucinations, unsupported claims, fabricated studies, and incorrect conclusions in text so that AI only cites verifiable, trustworthy content. Use this skill whenever the user asks you to fact-check, validate sources, check for hallucinations, or ensure that generated content is grounded in real evidence, even if they do not explicitly use the word "hallucination".
What it loads into context
Frontmatter
92 tokensAlways available to the agent
SKILL.md
2,152 tokensWhen the skill is activated
Reference documents
1,163 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- When to use this skill
- Inputs this skill supports
- Core workflow
- Constraints and safety rules
- How this skill interacts with other GEO skills
- Output format summary
Scripts executed separately
scripts/hallucination_checker.py
Files
SKILL.mdcore10,044 bytesSKILL.mdcore10,044 bytesSKILL.mdcore10,044 bytesevals/evals.jsonasset2,500 bytesreferences/hallucination_guide.mddoc5,243 bytesscripts/hallucination_checker.pyruns3,921 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgeo-human-editor
When your agent uses it
Audit and rewrite content to remove AI-generated feel by stripping markdown artifacts, eliminating AI vocabulary patterns, flagging hallucination risks, and restoring natural human voice. Use whenever the user mentions content sounding like AI, removing AI tone, making content more human, checking for AI feel, fixing mechanical writing patterns, or scanning for hallucinations and unverified claims in content.
What it loads into context
Frontmatter
80 tokensAlways available to the agent
SKILL.md
1,255 tokensWhen the skill is activated
Reference documents
68 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Start
- The 5 Dimensions
- Human Voice Scale
- Humanization Tool
- Workflow
- Output Format
- Integration
- See Also
Scripts executed separately
scripts/humanize_content.py
Files
SKILL.mdcore4,911 bytesSKILL.mdcore4,911 bytesSKILL.mdcore4,911 bytesevals/evals.jsonasset435 bytesreferences/human-voice-checklist.mddoc270 bytesscripts/humanize_content.pyruns945 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgeo-llms-txt
When your agent uses it
Generate, validate, and optimize llms.txt files for AI crawler accessibility. Creates structured markdown files that help AI platforms (ChatGPT, Perplexity, Gemini, Claude) understand site structure and prioritize content for citation. Use whenever the user mentions creating an llms.txt file, optimizing llms.txt, making their site AI-crawler friendly, helping AI understand their website, building AI-readable site documentation, or wants to improve visibility in AI search engines.
What it loads into context
Frontmatter
102 tokensAlways available to the agent
SKILL.md
1,019 tokensWhen the skill is activated
Reference documents
5,285 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Start
- What is llms.txt?
- Standard Format
- Generation Methods
- Validation
- Quality Criteria
- Output Formats
- Advanced Usage
- Deployment
- See Also
Scripts executed separately
scripts/generate_llms_txt.pyscripts/validate_llms_txt.py
Files
SKILL.mdcore4,278 bytesSKILL.mdcore4,278 bytesSKILL.mdcore4,278 bytesSKILL.mdcore4,278 bytesSKILL.mdcore4,278 bytesSKILL.mdcore4,278 bytesSKILL.mdcore4,278 bytesSKILL.mdcore4,278 bytesSKILL.mdcore4,278 bytesSKILL.mdcore4,278 bytesevals/evals.jsonasset1,274 bytesreferences/examples.mddoc12,751 bytesreferences/quality-guide.mddoc5,608 bytesreferences/standard.mddoc4,168 bytesscripts/generate_llms_txt.pyruns12,380 bytesscripts/validate_llms_txt.pyruns7,719 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgeo-local-optimizer
When your agent uses it
Local business-focused GEO optimization orchestrator for AI-powered local search. Use this skill whenever the user mentions local shops, clinics, restaurants, service providers, offline stores, franchise locations, or service areas and wants to rank better in AI answers or map-style results for queries like "near me", city/area + service, or landmark-based searches. Always consider this skill when the request combines GEO, local SEO, maps/listings, store pages, reviews, or service areas, even if the user does not explicitly say "GEO" or "local SEO".
What it loads into context
Frontmatter
132 tokensAlways available to the agent
SKILL.md
3,869 tokensWhen the skill is activated
Reference documents
1,611 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use this skill
- Relationship to other GEO skills
- Local AI search mindset
- High-level workflow
- Output format
- Example triggering prompts (for reference)
Scripts executed separately
scripts/generate_local_page_outline.py
Files
SKILL.mdcore17,593 bytesevals/evals.jsonasset2,268 bytesreferences/local-page-templates.mddoc6,669 bytesscripts/generate_local_page_outline.pyruns2,943 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgeo-metrics-tracker
When your agent uses it
Real-time GEO metrics monitoring and alerting orchestrator. Use this skill whenever the user wants to track, visualize, and react to AI GEO performance metrics over time — especially AIGVR (AI-generated visibility rate), SoM (Share of Model), AI citation volume, and related indicators across ChatGPT, Perplexity, Gemini, Claude, SGE, and other generative engines. Prefer this skill whenever the request goes beyond a static report and instead focuses on ongoing dashboards, time-series tracking, anomaly detection (sudden spikes/drops), or building an internal “GEO metrics command center.” It is designed to complement `geo-report-builder` by turning one-off analyses into a continuous monitoring system.
What it loads into context
Frontmatter
166 tokensAlways available to the agent
SKILL.md
3,586 tokensWhen the skill is activated
Reference documents
1,736 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use this skill
- Relationship to other GEO skills
- Core concepts & metrics
- High-level workflow
Scripts executed separately
scripts/generate_metrics_schema.py
Files
SKILL.mdcore15,877 bytesevals/evals.jsonasset2,010 bytesreferences/metrics-templates.mddoc8,379 bytesscripts/generate_metrics_schema.pyruns5,097 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgeo-multilingual-optimizer
When your agent uses it
Multilingual GEO content adaptation and alignment orchestrator. Use this skill whenever the user mentions translating, localizing, or adapting GEO-focused content across multiple languages or regions, wants AI models to consistently cite the same brand or page in different languages, or needs to diagnose why non-English AI answers diverge from their canonical English (or other source-language) content. Always consider this skill when GEO and AI citation goals explicitly involve more than one language, locale, or market.
What it loads into context
Frontmatter
116 tokensAlways available to the agent
SKILL.md
3,158 tokensWhen the skill is activated
Reference documents
1,204 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use this skill
- Relationship to other GEO skills
- High-level workflow
- Output format
- Examples of triggering prompts
Scripts executed separately
scripts/multilingual_terminology_helper.py
Files
SKILL.mdcore14,299 bytesSKILL.mdcore14,299 bytesSKILL.mdcore14,299 bytesSKILL.mdcore14,299 bytesSKILL.mdcore14,299 bytesSKILL.mdcore14,299 bytesSKILL.mdcore14,299 bytesSKILL.mdcore14,299 bytesevals/evals.jsonasset2,137 bytesreferences/multilingual-geo-guidelines.mddoc5,329 bytesscripts/multilingual_terminology_helper.pyruns3,507 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgeo-multimodal-tagger
When your agent uses it
Generate AI-optimized Alt Text, file names, captions, and Schema markup for images, videos, and audio assets. Improves AI discoverability on Google Lens, ChatGPT Vision, and Perplexity. Use whenever the user mentions optimizing images for AI, writing Alt Text, generating video Schema, tagging assets for AI discoverability, or making images visible in ChatGPT Vision and Google Lens.
What it loads into context
Frontmatter
91 tokensAlways available to the agent
SKILL.md
951 tokensWhen the skill is activated
Reference documents
69 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Start
- Why Multimodal Matters
- Image Optimization
- Video Optimization
- Audio/Podcast Optimization
- Asset Optimization Tool
- Scoring
Scripts executed separately
scripts/optimize_asset.py
Files
SKILL.mdcore3,757 bytesSKILL.mdcore3,757 bytesSKILL.mdcore3,757 bytesevals/evals.jsonasset346 bytesreferences/asset-guide.mddoc287 bytesscripts/optimize_asset.pyruns758 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgeo-prompt-researcher
When your agent uses it
Discover high-value AI search prompts your target audience uses on ChatGPT, Perplexity, Gemini, and Claude. Research and generate comprehensive prompt lists for GEO (Generative Engine Optimization) strategy, including discovery, comparison, how-to, definition, and recommendation prompts. Use whenever the user mentions researching AI search queries, finding GEO prompts, building prompt monitoring lists, understanding what people ask AI about their brand/category, or wants to identify AI search opportunities for their product/service.
What it loads into context
Frontmatter
105 tokensAlways available to the agent
SKILL.md
1,569 tokensWhen the skill is activated
Reference documents
7,150 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Start
- Why Prompt Research Matters
- The 5 Prompt Types
- Research Methodology
- Output Format
- Advanced Usage
- Tools & Resources
- See Also
Scripts executed separately
scripts/research_prompts.py
Files
SKILL.mdcore6,579 bytesSKILL.mdcore6,579 bytesSKILL.mdcore6,579 bytesSKILL.mdcore6,579 bytesSKILL.mdcore6,579 bytesSKILL.mdcore6,579 bytesevals/evals.jsonasset1,910 bytesreferences/examples.mddoc8,637 bytesreferences/platform-guide.mddoc6,206 bytesreferences/prompt-taxonomy.mddoc7,857 bytesreferences/prompt-templates.mddoc6,518 bytesscripts/research_prompts.pyruns11,138 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgeo-report-builder
When your agent uses it
Build comprehensive GEO performance reports with executive summaries, platform breakdowns, competitive analysis, and strategic action plans. Use whenever the user mentions creating GEO reports, analyzing AI search performance, building performance dashboards, or generating insights from GEO metrics.
What it loads into context
Frontmatter
54 tokensAlways available to the agent
SKILL.md
1,073 tokensWhen the skill is activated
Reference documents
63 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Report Structure
- Report Builder Tool
- Input Data Format
- Output Example
Scripts executed separately
scripts/build_report.py
Files
SKILL.mdcore3,754 bytesSKILL.mdcore3,754 bytesevals/evals.jsonasset365 bytesreferences/structure-guide.mddoc237 bytesscripts/build_report.pyruns907 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgeo-schema-gen
When your agent uses it
Generate complete, validated Schema.org JSON-LD markup for any content type to boost AI citation rates. Creates structured data for Organization, FAQPage, Article, BlogPosting, Product, HowTo, BreadcrumbList, WebSite, VideoObject, and ImageObject schemas. Use whenever the user mentions adding schema markup, generating structured data, creating JSON-LD, implementing Schema.org, optimizing for rich snippets, or wants to improve how AI understands and cites their content. Also trigger for requests about Organization schema, FAQ schema, Article markup, Product schema, or any structured data implementation.
What it loads into context
Frontmatter
123 tokensAlways available to the agent
SKILL.md
1,309 tokensWhen the skill is activated
Reference documents
9,743 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Start
- Why Schema Matters for GEO
- Supported Schema Types
- Generation Methods
- Validation
- Implementation
- Advanced Usage
- Output Formats
- Schema Hierarchy
- See Also
Scripts executed separately
scripts/batch_generate.pyscripts/generate_schema.pyscripts/validate_schema.py
Files
SKILL.mdcore5,789 bytesSKILL.mdcore5,789 bytesSKILL.mdcore5,789 bytesSKILL.mdcore5,789 bytesSKILL.mdcore5,789 bytesSKILL.mdcore5,789 bytesSKILL.mdcore5,789 bytesSKILL.mdcore5,789 bytesSKILL.mdcore5,789 bytesSKILL.mdcore5,789 bytesSKILL.mdcore5,789 bytesevals/evals.jsonasset2,232 bytesreferences/examples.mddoc12,371 bytesreferences/field-reference.mddoc8,717 bytesreferences/google-guidelines.mddoc4,728 bytesreferences/schema-types.mddoc9,445 bytesscripts/batch_generate.pyruns6,027 bytesscripts/generate_schema.pyruns13,585 bytesscripts/validate_schema.pyruns8,905 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgeo-sentiment-optimizer
When your agent uses it
Audit and optimize brand messaging to improve how AI platforms portray your brand. Fix negative AI sentiment signals and strengthen positive brand associations through content optimization. Use whenever the user mentions AI saying negative things about their brand, improving AI brand portrayal, auditing content for sentiment signals, fixing brand perception in AI search, or strengthening brand voice for GEO.
What it loads into context
Frontmatter
77 tokensAlways available to the agent
SKILL.md
943 tokensWhen the skill is activated
Reference documents
126 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Start
- How AI Sentiment is Formed
- Sentiment Audit
- Rewrite Rules
- Tools
- Output Format
Scripts executed separately
scripts/audit_sentiment.py
Files
SKILL.mdcore4,159 bytesSKILL.mdcore4,159 bytesSKILL.mdcore4,159 bytesSKILL.mdcore4,159 bytesevals/evals.jsonasset387 bytesreferences/sentiment-signals.mddoc585 bytesscripts/audit_sentiment.pyruns1,050 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgeo-site-audit
When your agent uses it
Run a structured 29-point GEO (Generative Engine Optimization) readiness audit on any website. Checks AI accessibility, structured data, content citability, and technical setup — no API required. Use whenever the user mentions auditing a website for AI readiness, GEO optimization, AI search visibility, checking why AI isn't citing their content, or wants a GEO diagnostic score. Also trigger for requests about llms.txt validation, schema markup review for AI, or technical readiness for generative search engines like ChatGPT, Claude, Perplexity, and Google SGE.
What it loads into context
Frontmatter
120 tokensAlways available to the agent
SKILL.md
722 tokensWhen the skill is activated
Reference documents
4,649 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Start
- What Gets Audited
- Scoring
- Output Formats
- Advanced Usage
- Troubleshooting
- See Also
Scripts executed separately
scripts/batch_audit.pyscripts/geo_audit.py
Files
SKILL.mdcore3,037 bytesSKILL.mdcore3,037 bytesSKILL.mdcore3,037 bytesSKILL.mdcore3,037 bytesSKILL.mdcore3,037 bytesevals/evals.jsonasset995 bytesreferences/checklist.mddoc7,927 bytesreferences/integrations.mddoc4,089 bytesreferences/schemas.mddoc2,165 bytesreferences/scoring.mddoc2,591 bytesscripts/batch_audit.pyruns3,657 bytesscripts/geo_audit.pyruns26,551 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgeo-som-strategist
When your agent uses it
Build strategic roadmaps to grow brand's Share of Model (SoM) in AI-generated responses. Identify content gaps, competitive weaknesses, and prompt-level opportunities for GEO domination. Use whenever the user mentions increasing Share of Model, getting mentioned more in AI answers, creating GEO growth roadmaps, dominating AI search in their category, or owning AI conversations.
What it loads into context
Frontmatter
81 tokensAlways available to the agent
SKILL.md
921 tokensWhen the skill is activated
Reference documents
71 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Start
- What is Share of Model (SoM)?
- 4-Pillar Strategy Framework
- Strategy Builder Tool
- 90-Day Roadmap Template
- Output Format
Scripts executed separately
scripts/build_strategy.py
Files
SKILL.mdcore3,590 bytesSKILL.mdcore3,590 bytesSKILL.mdcore3,590 bytesevals/evals.jsonasset370 bytesreferences/framework.mddoc247 bytesscripts/build_strategy.pyruns1,322 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgeo-structured-writer
When your agent uses it
Format any content into AI-readable structured formats that maximize citation probability. Converts unstructured text into GEO-optimized layouts using headers, FAQs, tables, and definition blocks. Use whenever the user mentions reformatting content for AI search, structuring articles for AI citations, converting text to GEO-friendly format, adding FAQs and headers, or making pages AI-readable.
What it loads into context
Frontmatter
81 tokensAlways available to the agent
SKILL.md
951 tokensWhen the skill is activated
Reference documents
80 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- The 6-Layer Structure Stack
- 6 Formatting Rules
- Restructuring Tool
- Output Format
- Before/After Example
Scripts executed separately
scripts/structure_content.py
Files
SKILL.mdcore3,887 bytesSKILL.mdcore3,887 bytesevals/evals.jsonasset336 bytesreferences/structure-stack.mddoc278 bytesscripts/structure_content.pyruns1,102 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgeo-studio
When your agent uses it
Master GEO content orchestrator that understands user goals and intelligently routes tasks across specialized GEO skills. Automatically selects the right workflow from strategy and audit to content creation, optimization, and human editing. Use as the default starting point for any GEO-related task including creating GEO content, ranking in AI search, auditing content for AI visibility, building GEO strategies, writing AI-citable articles, or when unsure which specific GEO skill to use.
What it loads into context
Frontmatter
92 tokensAlways available to the agent
SKILL.md
1,640 tokensWhen the skill is activated
Reference documents
90 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- How It Works
- Intent Recognition
- Workflow Paths
- Chaining Rules
- Opening Question
- Progress Updates
- Available Skills
- Output Contract
- Example Requests
- Typical Workflows
Scripts executed separately
scripts/orchestrate.py
Files
SKILL.mdcore6,972 bytesevals/evals.jsonasset484 bytesreferences/workflow-paths.mddoc390 bytesscripts/orchestrate.pyruns986 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgeo-template-library
When your agent uses it
Standardized GEO template library for AI-citable content. Use this skill whenever the user mentions creating, reusing, or standardizing templates for GEO-optimized content (FAQ pages, definition articles, comparison guides, how-to guides, statistics roundups, landing pages, and similar formats), or wants cross-team consistency and speed in producing AI-citable content. Always consider this skill when the user asks for "a template" or "reusable structure" for GEO content, even if they do not explicitly mention GEO or AI citations.
What it loads into context
Frontmatter
125 tokensAlways available to the agent
SKILL.md
2,255 tokensWhen the skill is activated
Reference documents
1,667 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use this skill
- Relationship to other GEO skills
- High-level workflow
- Output format
- Example triggering prompts (for reference)
Scripts executed separately
scripts/render_templates.pyscripts/template_selector.py
Files
SKILL.mdcore10,135 bytesevals/evals.jsonasset2,423 bytesreferences/template-skeletons.mddoc6,851 bytesscripts/render_templates.pyruns1,723 bytesscripts/template_selector.pyruns2,398 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubSkills included
- geo-ai-plugin-builder
- geo-bulk-processor
- geo-citation-writer
- geo-competitor-scanner
- geo-content-optimizer
- geo-content-publisher
- geo-conversion-optimizer
- geo-fact-checker
- geo-hallucination-checker
- geo-human-editor
- geo-llms-txt
- geo-local-optimizer
- geo-metrics-tracker
- geo-multilingual-optimizer
- geo-multimodal-tagger
- geo-prompt-researcher
- geo-report-builder
- geo-schema-gen
- geo-sentiment-optimizer
- geo-site-audit
- geo-som-strategist
- geo-structured-writer
- geo-studio
- geo-template-library
Repository facts
- License
- No license detected
- Created
- Feb 23, 2026
- Last pushed
- Mar 10, 2026
- Forks
- 4
- Open issues
- 0
- Project activity
- Slowing
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 7, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 71 notes
geo-citation-writer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedgeo-citation-writer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedgeo-citation-writer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedgeo-citation-writer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedgeo-citation-writer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedgeo-competitor-scanner/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedgeo-competitor-scanner/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedgeo-competitor-scanner/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedgeo-competitor-scanner/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedgeo-competitor-scanner/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedgeo-content-optimizer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedgeo-content-optimizer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedgeo-content-optimizer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedgeo-content-optimizer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedgeo-content-optimizer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedgeo-content-optimizer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedgeo-content-publisher/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedgeo-fact-checker/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedgeo-fact-checker/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedgeo-fact-checker/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 542 network referencesin 24 files: geo-schema-gen/references/examples.md:8 geo-llms-txt/references/examples.md:21 geo-schema-gen/references/schema-types.md:25 and 21 more
- No hidden or obfuscated text
- No instruction overrides
- 31 executable scriptsin 31 files: geo-ai-plugin-builder/scripts/plugin_blueprint_generator.py:1 geo-bulk-processor/scripts/geo_bulk_pipeline.py:1 geo-citation-writer/scripts/generate_content.py:1 and 28 more
- No access to secrets
- No requests to vote in Hot
Show all 573 signals by file
geo-ai-plugin-builder/references/geo-ai-plugin-patterns.md
- Network accessline 43
{ "label": "Implement automated campaign reporting", "url": "https://example.com/docs/auto-reporting" - Network accessline 44
"label": "Implement automated campaign reporting", "url": "https://example.com/docs/auto-reporting" } - Network accessline 45
"url": "https://example.com/docs/auto-reporting" - Network accessline 116
"name": "Marathon Pro Runner", "reason": "Best for neutral runners doing high weekly mileage.", "url": "https://example.com/products/shoe_123" - Network accessline 117
"reason": "Best for neutral runners doing high weekly mileage.", "url": "https://example.com/products/shoe_123" } - Network accessline 118
"url": "https://example.com/products/shoe_123" - Network accessline 186
"title": "Marketing Analytics Basics", "snippet": "An overview of attribution models and ROAS.", "url": "https://example.com/docs/analytics-basics" - Network accessline 187
"snippet": "An overview of attribution models and ROAS.", "url": "https://example.com/docs/analytics-basics" } - Network accessline 188
"url": "https://example.com/docs/analytics-basics"
geo-ai-plugin-builder/scripts/plugin_blueprint_generator.py
- Executable scriptline 1
Executable file
geo-bulk-processor/scripts/geo_bulk_pipeline.py
- Executable scriptline 1
Executable file
geo-citation-writer/scripts/generate_content.py
- Executable scriptline 1
#!/usr/bin/env python3
geo-competitor-scanner/SKILL.md
geo-competitor-scanner/references/scan-methodology.md
geo-competitor-scanner/scripts/scan_competitors.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 23
def __init__(self, domain, timeout=10): self.domain = domain.replace('https://', '').replace('http://', '').rstrip('/') self.base_url = f"https://{self.domain}" - Network accessline 24
self.domain = domain.replace('https://', '').replace('http://', '').rstrip('/') self.base_url = f"https://{self.domain}" self.timeout = timeout - Network accessline 25
self.base_url = f"https://{self.domain}" - Network accessline 35
def fetch(self, path=''): - Network accessline 37
url = urljoin(self.base_url, path) try: resp = requests.get(url, timeout=self.timeout, allow_redirects=True) - Network accessline 38
try: resp = requests.get(url, timeout=self.timeout, allow_redirects=True) return resp - Network accessline 39
resp = requests.get(url, timeout=self.timeout, allow_redirects=True) - Network accessline 49
llms = self.fetch('/llms.txt') - Network accessline 56
robots = self.fetch('/robots.txt') - Network accessline 71
home = self.fetch('/') - Network accessline 117
home = self.fetch('/') - Network accessline 147
home = self.fetch('/') - Network accessline 156
about = self.fetch('/about') - Network accessline 181
comp_pages = [] for path in comp_paths: resp = self.fetch(path) - Network accessline 182
for path in comp_paths: resp = self.fetch(path) if resp and resp.status_code == 200: - Network accessline 183
resp = self.fetch(path) - Network accessline 188
about = self.fetch('/about') - Network accessline 189
whatis = self.fetch('/what-is')
geo-content-optimizer/scripts/analyze_content.py
- Executable scriptline 1
#!/usr/bin/env python3
geo-content-optimizer/scripts/optimize_content.py
- Executable scriptline 1
#!/usr/bin/env python3
geo-content-publisher/references/publishing-templates.md
- Network accessline 159
{ "@context": "https://schema.org", - Network accessline 160
"@context": "https://schema.org", - Network accessline 162
"headline": "TITLE HERE", "description": "1–2 sentence summary of the article.", "url": "https://example.com/path", - Network accessline 163
"description": "1–2 sentence summary of the article.", "url": "https://example.com/path", "author": { - Network accessline 164
"url": "https://example.com/path", - Network accessline 172
"logo": { "@type": "ImageObject", "url": "https://example.com/logo.png" - Network accessline 173
"@type": "ImageObject", "url": "https://example.com/logo.png" } - Network accessline 174
"url": "https://example.com/logo.png" - Network accessline 176
}, "datePublished": "2025-01-01", "mainEntityOfPage": "https://example.com/path" - Network accessline 177
"datePublished": "2025-01-01", "mainEntityOfPage": "https://example.com/path" } - Network accessline 178
"mainEntityOfPage": "https://example.com/path" - Network accessline 185
{ "@context": "https://schema.org", - Network accessline 186
"@context": "https://schema.org",
geo-content-publisher/scripts/generate_channel_plan.py
- Executable scriptline 1
Executable file
geo-content-publisher/scripts/generate_page_structure_snippet.py
- Executable scriptline 1
Executable file
geo-conversion-optimizer/scripts/conversion_blueprints.py
- Executable scriptline 1
Executable file
geo-fact-checker/scripts/claim_extractor.py
- Executable scriptline 1
Executable file
geo-hallucination-checker/scripts/hallucination_checker.py
- Executable scriptline 1
Executable file
geo-human-editor/scripts/humanize_content.py
- Executable scriptline 1
#!/usr/bin/env python3
geo-llms-txt/SKILL.md
- Network accessline 152
https://[your-domain]/llms.txt
geo-llms-txt/references/examples.md
- Network accessline 21
- [Payments](https://stripe.com/payments): Accept payments online and in-person with unified APIs - Network accessline 22
- [Billing](https://stripe.com/billing): Subscription management and invoicing for SaaS companies - Network accessline 23
- [Connect](https://stripe.com/connect): Marketplace and platform payments with automated payouts - Network accessline 24
- [Identity](https://stripe.com/identity): ID verification with document scanning and biometric checks - Network accessline 28
- [API Reference](https://stripe.com/docs/api): Complete REST API documentation with code examples - Network accessline 29
- [Quickstart](https://stripe.com/docs/quickstart): Set up your first payment in 5 minutes - Network accessline 30
- [Webhooks](https://stripe.com/docs/webhooks): Event-driven architecture for payment notifications - Network accessline 31
- [Testing](https://stripe.com/docs/testing): Test card numbers and sandbox environment guide - Network accessline 35
- [Stripe Sessions](https://stripe.com/sessions): Annual conference recordings and presentations - Network accessline 36
- [Engineering Blog](https://stripe.com/blog/engineering): Technical deep-dives on distributed systems - Network accessline 37
- [Atlas](https://stripe.com/atlas): Company incorporation service for global startups - Network accessline 41
- [About Stripe](https://stripe.com/about): Company history, mission, and leadership team - Network accessline 42
- [Careers](https://stripe.com/jobs): Engineering, product, and business roles worldwide - Network accessline 43
- [Press](https://stripe.com/newsroom): News, media kit, and brand assets - Network accessline 44
- [Support](https://support.stripe.com): Help center, documentation search, and contact options - Network accessline 65
- [Getting Started](https://react.dev/learn): Interactive tutorial for React beginners - Network accessline 66
- [Thinking in React](https://react.dev/learn/thinking-in-react): Mental model for component-based architecture - Network accessline 67
- [Hooks](https://react.dev/reference/react): useState, useEffect, and custom hooks reference - Network accessline 68
- [Components](https://react.dev/reference/react/components): Built-in components and APIs - Network accessline 72
- [Server Components](https://react.dev/blog/2023/03/22/react-server-components): Rendering React on the server - Network accessline 73
- [Concurrent Features](https://react.dev/blog/2022/03/29/react-v18): Suspense, transitions, and automatic batching - Network accessline 74
- [Performance](https://react.dev/learn/render-and-commit): Optimization techniques and profiling tools - Network accessline 75
- [Testing](https://react.dev/learn/thinking-in-react#step-5-add-inverse-data-flow): Testing components and hooks - Network accessline 79
- [Next.js](https://nextjs.org): Full-stack React framework with SSR and static generation - Network accessline 80
- [React Native](https://reactnative.dev): Build native mobile apps with React - Network accessline 81
- [Redux](https://redux.js.org): State management for complex applications - Network accessline 82
- [React Router](https://reactrouter.com): Declarative routing for single-page applications - Network accessline 86
- [GitHub](https://github.com/facebook/react): Source code, issues, and pull requests - Network accessline 87
- [Discord](https://discord.gg/react): Community chat and help channels - Network accessline 88
- [Blog](https://react.dev/blog): Release notes, RFCs, and team announcements - Network accessline 89
- [Conf](https://react.dev/community/conferences): Upcoming React conferences and meetups - Network accessline 109
- [Wool Runners](https://www.allbirds.com/products/mens-wool-runners): Everyday sneakers made from merino wool - Network accessline 110
- [Tree Runners](https://www.allbirds.com/products/mens-tree-runners): Lightweight shoes from eucalyptus fiber - Network accessline 111
- [Tree Dashers](https://www.allbirds.com/products/mens-tree-dashers): Performance running shoes with SweetFoam soles - Network accessline 112
- [Wool Loungers](https://www.allbirds.com/products/mens-wool-loungers): Slip-on style for casual wear - Network accessline 116
- [Materials](https://www.allbirds.com/pages/sustainability): Wool, tree fiber, sugarcane, and recycled packaging explained - Network accessline 117
- [Carbon Footprint](https://www.allbirds.com/pages/carbon-footprint): Real-time carbon labeling for every product - Network accessline 118
- [Climate Neutral](https://www.allbirds.com/pages/climate-neutral): Carbon offset programs and regenerative agriculture - Network accessline 119
- [Sustainability Report](https://www.allbirds.com/pages/sustainability-report): Annual impact assessment and goals - Network accessline 123
- [Size Guide](https://www.allbirds.com/pages/size-guide): Foot measuring tips and fit recommendations - Network accessline 124
- [Care Instructions](https://www.allbirds.com/pages/care): How to wash and maintain wool and tree shoes - Network accessline 125
- [Returns](https://www.allbirds.com/pages/returns): 30-day no-questions-asked return policy - Network accessline 126
- [Store Locator](https://www.allbirds.com/pages/stores): Find physical retail locations - Network accessline 130
- [Our Story](https://www.allbirds.com/pages/about): Founders, mission, and company history - Network accessline 131
- [Materials Innovation](https://www.allbirds.com/pages/materials-innovation): SweetFoam, Trino, and future materials - Network accessline 132
- [Careers](https://www.allbirds.com/pages/careers): Jobs in design, engineering, and retail - Network accessline 133
- [Press](https://www.allbirds.com/pages/press): Media coverage, press releases, and brand assets - Network accessline 153
- [World](https://www.nytimes.com/section/world): International news and foreign correspondents - Network accessline 154
- [U.S.](https://www.nytimes.com/section/us): National politics, policy, and breaking news - Network accessline 155
- [Politics](https://www.nytimes.com/section/politics): Congress, White House, and elections - Network accessline 156
- [Business](https://www.nytimes.com/section/business): Markets, economy, and corporate news - Network accessline 157
- [Tech](https://www.nytimes.com/section/technology): Silicon Valley, AI, and digital culture - Network accessline 158
- [Science](https://www.nytimes.com/section/science): Research discoveries and climate coverage - Network accessline 162
- [Investigations](https://www.nytimes.com/news-event/nyt-investigations): Long-form investigative journalism - Network accessline 163
- [The Daily](https://www.nytimes.com/column/the-daily): Daily news podcast with Michael Barbaro - Network accessline 164
- [Opinion](https://www.nytimes.com/section/opinion): Editorials, guest essays, and columnist commentary - Network accessline 165
- [Cooking](https://cooking.nytimes.com): 20,000+ recipes with advanced search and meal planning - Network accessline 166
- [Games](https://www.nytimes.com/crosswords): Wordle, Crossword, Spelling Bee, and Connections - Network accessline 167
- [Wirecutter](https://www.nytimes.com/wirecutter): Product reviews and buying guides - Network accessline 171
- [About](https://www.nytco.com/company): Corporate information, leadership, and diversity data - Network accessline 172
- [Careers](https://www.nytco.com/careers): Journalism, tech, and business opportunities - Network accessline 173
- [Ethical Standards](https://www.nytco.com/ethical-journalism): Editorial standards and corrections policy - Network accessline 174
- [Contact](https://help.nytimes.com/hc/en-us): Customer support and subscription help - Network accessline 195
- [Deployments](https://vercel.com/docs/concepts/deployments/overview): Git-connected deployment with automatic HTTPS - Network accessline 196
- [Preview Environments](https://vercel.com/docs/concepts/deployments/preview-deployments): Unique URLs for every pull request - Network accessline 197
- [Edge Network](https://vercel.com/docs/concepts/edge-network/overview): Global CDN with 100+ locations - Network accessline 198
- [Serverless Functions](https://vercel.com/docs/concepts/functions/serverless-functions): Node.js, Python, Go, and Ruby API routes - Network accessline 199
- [Storage](https://vercel.com/storage): KV, Postgres, and Blob storage for serverless apps - Network accessline 203
- [Next.js](https://nextjs.org/docs): React framework with SSR, static generation, and API routes - Network accessline 204
- [Nuxt](https://nuxt.com/docs): Vue framework with auto-routing and server-side rendering - Network accessline 205
- [SvelteKit](https://kit.svelte.dev/docs): Svelte framework with filesystem-based routing - Network accessline 206
- [Astro](https://docs.astro.build): Content-focused static site generator - Network accessline 207
- [Remix](https://remix.run/docs): Full-stack web framework with nested routing - Network accessline 211
- [Getting Started](https://vercel.com/docs/getting-started-with-vercel): Import a project and deploy in 2 minutes - Network accessline 212
- [Environment Variables](https://vercel.com/docs/concepts/projects/environment-variables): Secure secrets management - Network accessline 213
- [Custom Domains](https://vercel.com/docs/concepts/projects/custom-domains): Connect your own domain with automatic SSL - Network accessline 214
- [Analytics](https://vercel.com/docs/concepts/analytics): Web Vitals and visitor insights - Network accessline 218
- [Security](https://vercel.com/security): SOC 2 Type II, GDPR, and compliance certifications - Network accessline 219
- [Support](https://vercel.com/docs/concepts/enterprise/support): Priority support with SLA guarantees - Network accessline 220
- [SSO](https://vercel.com/docs/concepts/enterprise/sso): SAML 2.0 and SCIM provisioning - Network accessline 221
- [IP Allowlist](https://vercel.com/docs/concepts/enterprise/ip-allowlisting): Restrict deployments to corporate networks - Network accessline 225
- [Blog](https://vercel.com/blog): Platform updates, case studies, and engineering posts - Network accessline 226
- [Changelog](https://vercel.com/changelog): New features and improvements - Network accessline 227
- [Discord](https://discord.gg/vercel): Community support and showcase - Network accessline 228
- [GitHub](https://github.com/vercel): Open source projects including Next.js and Turborepo - Network accessline 245
- [Features](https://taskflow.io/features): Kanban boards, sprint planning, and GitHub sync - Network accessline 246
- [Pricing](https://taskflow.io/pricing): Free for 3 users, $12/user for teams - Network accessline 247
- [Integrations](https://taskflow.io/integrations): GitHub, Slack, and Figma connections - Network accessline 248
- [API Docs](https://docs.taskflow.io): REST API for custom integrations - Network accessline 252
- [Blog](https://taskflow.io/blog): Remote work best practices and product updates - Network accessline 253
- [Help Center](https://help.taskflow.io): Setup guides and troubleshooting - Network accessline 257
- [About](https://taskflow.io/about): Mission and founding story - Network accessline 258
- [Contact](https://taskflow.io/contact): Support email and live chat
geo-llms-txt/references/standard.md
- Network accessline 25
https://example.com/llms.txt - Network accessline 83
- [Page Title](https://example.com/page): Description of what this page covers - Network accessline 88
- Link text = page title (not URL) - One-line description after colon - Full URLs (including https://) - Network accessline 90
- Full URLs (including https://)
geo-llms-txt/scripts/generate_llms_txt.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 25
def __init__(self, domain, timeout=10): self.domain = domain.replace('https://', '').replace('http://', '').rstrip('/') self.base_url = f"https://{self.domain}" - Network accessline 26
self.domain = domain.replace('https://', '').replace('http://', '').rstrip('/') self.base_url = f"https://{self.domain}" self.timeout = timeout - Network accessline 27
self.base_url = f"https://{self.domain}" - Network accessline 32
def fetch(self, path='', full_url=None): - Network accessline 34
url = full_url or urljoin(self.base_url, path) try: resp = requests.get(url, timeout=self.timeout, allow_redirects=True) - Network accessline 35
try: resp = requests.get(url, timeout=self.timeout, allow_redirects=True) if resp.status_code == 200: - Network accessline 36
resp = requests.get(url, timeout=self.timeout, allow_redirects=True) - Network accessline 93
resp = self.fetch(full_url=url) - Network accessline 108
for path in ['/sitemap.xml', '/sitemap_index.xml', '/sitemap-index.xml']: resp = self.fetch(path) - Network accessline 109
resp = self.fetch(path) - Network accessline 229
if not brand_name: home = self.fetch('/') - Network accessline 230
home = self.fetch('/') - Network accessline 243
about = self.fetch('/about') - Network accessline 347
print(f"\n✅ Generated llms.txt: {args.output}", file=sys.stderr) print(f" Place this file at: https://{args.domain}/llms.txt", file=sys.stderr) - Network accessline 348
print(f" Place this file at: https://{args.domain}/llms.txt", file=sys.stderr)
geo-llms-txt/scripts/validate_llms_txt.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 158
for title, url in sample: try: resp = requests.head(url, timeout=10, allow_redirects=True) - Network accessline 159
try: resp = requests.head(url, timeout=10, allow_redirects=True) if resp.status_code != 200: - Network accessline 160
resp = requests.head(url, timeout=10, allow_redirects=True)
geo-local-optimizer/scripts/generate_local_page_outline.py
- Executable scriptline 1
Executable file
geo-metrics-tracker/scripts/generate_metrics_schema.py
- Executable scriptline 1
Executable file
geo-multilingual-optimizer/SKILL.md
- Network accessline 136
| Language / Locale | Market Role | Depth of Localization | Target GEO URL | Notes | |-------------------|------------|------------------------|----------------------------|------------------------------- - Network accessline 137
|-------------------|------------|------------------------|----------------------------|-------------------------------| | en-US | Primary | Full | https://example.com/en-us | Canonical source - Network accessline 138
| en-US | Primary | Full | https://example.com/en-us | Canonical source | - Network accessline 139
| en-GB | Secondary | Light | https://example.com/en-gb | Shares content with en-US | - Network accessline 140
| es-ES | Primary | Full | https://example.com/es-es | Local examples, EU compliance | - Network accessline 141
| es-MX | Primary | Full | https://example.com/es-mx | LATAM focus |
geo-multilingual-optimizer/scripts/multilingual_terminology_helper.py
- Executable scriptline 1
Executable file
geo-multimodal-tagger/SKILL.md
- Network accessline 59
{ "@context": "https://schema.org", - Network accessline 60
"@context": "https://schema.org", - Network accessline 62
"name": "AIGVR Score Dashboard", "description": "Dashboard showing brand visibility scores across AI platforms", "contentUrl": "https://example.com/images/dashboard.jpg", - Network accessline 63
"description": "Dashboard showing brand visibility scores across AI platforms", "contentUrl": "https://example.com/images/dashboard.jpg", "author": { - Network accessline 64
"contentUrl": "https://example.com/images/dashboard.jpg", - Network accessline 87
{ "@context": "https://schema.org", - Network accessline 88
"@context": "https://schema.org", - Network accessline 90
"name": "How to Optimize for AI Search", "description": "Complete guide to GEO strategies...", "thumbnailUrl": "https://example.com/thumbs/geo-guide.jpg", - Network accessline 91
"description": "Complete guide to GEO strategies...", "thumbnailUrl": "https://example.com/thumbs/geo-guide.jpg", "uploadDate": "2024-01-15", - Network accessline 92
"thumbnailUrl": "https://example.com/thumbs/geo-guide.jpg", - Network accessline 93
"uploadDate": "2024-01-15", "duration": "PT12M30S", "contentUrl": "https://example.com/videos/geo-guide.mp4" - Network accessline 94
"duration": "PT12M30S", "contentUrl": "https://example.com/videos/geo-guide.mp4" } - Network accessline 95
"contentUrl": "https://example.com/videos/geo-guide.mp4"
geo-multimodal-tagger/scripts/optimize_asset.py
- Executable scriptline 1
#!/usr/bin/env python3
geo-prompt-researcher/scripts/research_prompts.py
- Executable scriptline 1
#!/usr/bin/env python3
geo-report-builder/scripts/build_report.py
- Executable scriptline 1
#!/usr/bin/env python3
geo-schema-gen/SKILL.md
- Network accessline 66
python scripts/generate_schema.py --type Article --url https://example.com/blog/post - Network accessline 109
<script type="application/ld+json"> { "@context": "https://schema.org", - Network accessline 110
{ "@context": "https://schema.org", "@type": "Organization", - Network accessline 111
"@context": "https://schema.org", - Network accessline 121
1. **Schema.org Validator**: https://validator.schema.org - Network accessline 122
2. **Google Rich Results Test**: https://search.google.com/test/rich-results - Network accessline 123
3. **JSON-LD Playground**: https://json-ld.org/playground/ - Network accessline 130
❌ **Wrong:** Using `http://schema.org` (insecure) - Network accessline 131
✅ **Right:** Using `https://schema.org` (secure)
geo-schema-gen/evals/evals.json
- Network accessline 35
"id": 6, "name": "batch-generate-from-sitemap", "prompt": "Generate schemas for all pages in our sitemap at https://example.com/sitemap.xml", - Network accessline 36
"name": "batch-generate-from-sitemap", "prompt": "Generate schemas for all pages in our sitemap at https://example.com/sitemap.xml", "expected_output": "Multiple schema files generated based on detected page types (Article, Prod - Network accessline 37
"prompt": "Generate schemas for all pages in our sitemap at https://example.com/sitemap.xml",
geo-schema-gen/references/examples.md
- Network accessline 8
{ "@context": "https://schema.org", - Network accessline 9
"@context": "https://schema.org", - Network accessline 12
"@type": "Organization", "name": "Vercel", "url": "https://vercel.com", - Network accessline 13
"name": "Vercel", "url": "https://vercel.com", "logo": "https://assets.vercel.com/image/upload/v1662130559/front/vercel-logo.svg", - Network accessline 14
"url": "https://vercel.com", - Network accessline 15
"logo": "https://assets.vercel.com/image/upload/v1662130559/front/vercel-logo.svg", - Network accessline 16
"description": "Cloud platform for frontend developers and serverless deployment", "sameAs": [ "https://twitter.com/vercel", - Network accessline 17
"sameAs": [ "https://twitter.com/vercel", "https://github.com/vercel", - Network accessline 18
"https://twitter.com/vercel", - Network accessline 19
"https://github.com/vercel", - Network accessline 20
"https://linkedin.com/company/vercel" - Network accessline 29
"@type": "WebSite", "name": "Vercel", "url": "https://vercel.com", - Network accessline 30
"name": "Vercel", "url": "https://vercel.com", "potentialAction": { - Network accessline 31
"url": "https://vercel.com", - Network accessline 32
"potentialAction": { "@type": "SearchAction", "target": "https://vercel.com/docs/search?query={search_term_string}", - Network accessline 33
"@type": "SearchAction", "target": "https://vercel.com/docs/search?query={search_term_string}", "query-input": "required name=search_term_string" - Network accessline 34
"target": "https://vercel.com/docs/search?query={search_term_string}", - Network accessline 45
{ "@context": "https://schema.org", - Network accessline 46
"@context": "https://schema.org", - Network accessline 59
"priceCurrency": "USD", "priceValidUntil": "2024-12-31", "availability": "https://schema.org/InStock", - Network accessline 60
"priceValidUntil": "2024-12-31", "availability": "https://schema.org/InStock", "description": "Per user, per month" - Network accessline 61
"availability": "https://schema.org/InStock", - Network accessline 85
{ "@context": "https://schema.org", - Network accessline 86
"@context": "https://schema.org", - Network accessline 99
"logo": { "@type": "ImageObject", "url": "https://assets.vercel.com/logo.png" - Network accessline 100
"@type": "ImageObject", "url": "https://assets.vercel.com/logo.png" } - Network accessline 101
"url": "https://assets.vercel.com/logo.png" - Network accessline 113
"position": 1, "name": "Docs", "item": "https://nextjs.org/docs" - Network accessline 114
"name": "Docs", "item": "https://nextjs.org/docs" }, - Network accessline 115
"item": "https://nextjs.org/docs" - Network accessline 119
"position": 2, "name": "Getting Started", "item": "https://nextjs.org/docs/getting-started" - Network accessline 120
"name": "Getting Started", "item": "https://nextjs.org/docs/getting-started" } - Network accessline 121
"item": "https://nextjs.org/docs/getting-started" - Network accessline 136
{ "@context": "https://schema.org", - Network accessline 137
"@context": "https://schema.org", - Network accessline 139
"name": "Sony WH-1000XM5 Wireless Headphones", "image": [ "https://example.com/images/headphones-1x1.jpg", - Network accessline 140
"image": [ "https://example.com/images/headphones-1x1.jpg", "https://example.com/images/headphones-4x3.jpg", - Network accessline 141
"https://example.com/images/headphones-1x1.jpg", - Network accessline 142
"https://example.com/images/headphones-4x3.jpg", - Network accessline 143
"https://example.com/images/headphones-16x9.jpg" - Network accessline 182
"offers": { "@type": "Offer", "url": "https://example.com/products/sony-wh1000xm5", - Network accessline 183
"@type": "Offer", "url": "https://example.com/products/sony-wh1000xm5", "price": "379.99", - Network accessline 184
"url": "https://example.com/products/sony-wh1000xm5", - Network accessline 186
"priceCurrency": "USD", "priceValidUntil": "2024-12-31", "availability": "https://schema.org/InStock", - Network accessline 187
"priceValidUntil": "2024-12-31", "availability": "https://schema.org/InStock", "seller": { - Network accessline 188
"availability": "https://schema.org/InStock", - Network accessline 223
{ "@context": "https://schema.org", - Network accessline 224
"@context": "https://schema.org", - Network accessline 231
"@type": "Product", "name": "Sony WH-1000XM5", "url": "https://example.com/products/sony-wh1000xm5" - Network accessline 232
"name": "Sony WH-1000XM5", "url": "https://example.com/products/sony-wh1000xm5" } - Network accessline 233
"url": "https://example.com/products/sony-wh1000xm5" - Network accessline 240
"@type": "Product", "name": "Bose QuietComfort Ultra", "url": "https://example.com/products/bose-qc-ultra" - Network accessline 241
"name": "Bose QuietComfort Ultra", "url": "https://example.com/products/bose-qc-ultra" } - Network accessline 242
"url": "https://example.com/products/bose-qc-ultra" - Network accessline 256
{ "@context": "https://schema.org", - Network accessline 257
"@context": "https://schema.org", - Network accessline 260
"description": "The most powerful rocket ever built reaches space for the first time", "image": [ "https://example.com/images/spacex-launch-16x9.jpg", - Network accessline 261
"image": [ "https://example.com/images/spacex-launch-16x9.jpg", "https://example.com/images/spacex-launch-4x3.jpg", - Network accessline 262
"https://example.com/images/spacex-launch-16x9.jpg", - Network accessline 263
"https://example.com/images/spacex-launch-4x3.jpg", - Network accessline 264
"https://example.com/images/spacex-launch-1x1.jpg" - Network accessline 270
"@type": "Person", "name": "Sarah Johnson", "url": "https://example.com/authors/sarah-johnson" - Network accessline 271
"name": "Sarah Johnson", "url": "https://example.com/authors/sarah-johnson" } - Network accessline 272
"url": "https://example.com/authors/sarah-johnson" - Network accessline 278
"logo": { "@type": "ImageObject", "url": "https://example.com/logo.png" - Network accessline 279
"@type": "ImageObject", "url": "https://example.com/logo.png" } - Network accessline 280
"url": "https://example.com/logo.png" - Network accessline 290
{ "@context": "https://schema.org", - Network accessline 291
"@context": "https://schema.org", - Network accessline 293
"headline": "10 Advanced TypeScript Patterns for React Developers", "description": "Learn advanced TypeScript techniques to improve your React code quality", "image": "https://example.com/images/typescript-react.jpg", - Network accessline 294
"description": "Learn advanced TypeScript techniques to improve your React code quality", "image": "https://example.com/images/typescript-react.jpg", "datePublished": "2024-02-20", - Network accessline 295
"image": "https://example.com/images/typescript-react.jpg", - Network accessline 299
"@type": "Person", "name": "Alex Chen", "url": "https://example.com/authors/alex-chen", - Network accessline 300
"name": "Alex Chen", "url": "https://example.com/authors/alex-chen", "jobTitle": "Senior Frontend Engineer", - Network accessline 301
"url": "https://example.com/authors/alex-chen", - Network accessline 309
"@type": "Organization", "name": "DevBlog", "logo": "https://example.com/logo.png" - Network accessline 310
"name": "DevBlog", "logo": "https://example.com/logo.png" }, - Network accessline 311
"logo": "https://example.com/logo.png" - Network accessline 327
{ "@context": "https://schema.org", - Network accessline 328
"@context": "https://schema.org", - Network accessline 330
"name": "The Golden Spoon", "image": [ "https://example.com/restaurant-exterior.jpg", - Network accessline 331
"image": [ "https://example.com/restaurant-exterior.jpg", "https://example.com/dining-room.jpg" - Network accessline 332
"https://example.com/restaurant-exterior.jpg", - Network accessline 333
"https://example.com/dining-room.jpg" - Network accessline 347
}, "telephone": "+1-415-555-0123", "url": "https://goldenspoon.example.com", - Network accessline 348
"telephone": "+1-415-555-0123", "url": "https://goldenspoon.example.com", "menu": "https://goldenspoon.example.com/menu", - Network accessline 349
"url": "https://goldenspoon.example.com", - Network accessline 350
"menu": "https://goldenspoon.example.com/menu", - Network accessline 380
{ "@context": "https://schema.org", - Network accessline 381
"@context": "https://schema.org", - Network accessline 409
{ "@context": "https://schema.org", - Network accessline 410
"@context": "https://schema.org", - Network accessline 415
"@type": "Organization", "name": "Frontend Masters", "sameAs": "https://frontendmasters.com" - Network accessline 416
"name": "Frontend Masters", "sameAs": "https://frontendmasters.com" }, - Network accessline 417
"sameAs": "https://frontendmasters.com" - Network accessline 430
"price": "39", "priceCurrency": "USD", "availability": "https://schema.org/InStock" - Network accessline 431
"priceCurrency": "USD", "availability": "https://schema.org/InStock" } - Network accessline 432
"availability": "https://schema.org/InStock" - Network accessline 444
{ "@context": "https://schema.org", - Network accessline 445
"@context": "https://schema.org", - Network accessline 448
"startDate": "2024-05-15T09:00:00-07:00", "endDate": "2024-05-17T18:00:00-07:00", "eventAttendanceMode": "https://schema.org/MixedEventAttendanceMode", - Network accessline 449
"endDate": "2024-05-17T18:00:00-07:00", "eventAttendanceMode": "https://schema.org/MixedEventAttendanceMode", "eventStatus": "https://schema.org/EventScheduled", - Network accessline 450
"eventAttendanceMode": "https://schema.org/MixedEventAttendanceMode", - Network accessline 451
"eventStatus": "https://schema.org/EventScheduled", - Network accessline 453
{ "@type": "VirtualLocation", "url": "https://reactconf.com/live" - Network accessline 454
"@type": "VirtualLocation", "url": "https://reactconf.com/live" }, - Network accessline 455
"url": "https://reactconf.com/live" - Network accessline 467
} ], "image": "https://reactconf.com/images/og-image.jpg", - Network accessline 468
], "image": "https://reactconf.com/images/og-image.jpg", "description": "The biggest React conference of the year featuring keynotes from the React core team", - Network accessline 469
"image": "https://reactconf.com/images/og-image.jpg", - Network accessline 471
"offers": { "@type": "Offer", "url": "https://reactconf.com/tickets", - Network accessline 472
"@type": "Offer", "url": "https://reactconf.com/tickets", "price": "899", - Network accessline 473
"url": "https://reactconf.com/tickets", - Network accessline 474
"price": "899", "priceCurrency": "USD", "availability": "https://schema.org/InStock", - Network accessline 475
"priceCurrency": "USD", "availability": "https://schema.org/InStock", "validFrom": "2024-01-01T00:00:00-07:00" - Network accessline 476
"availability": "https://schema.org/InStock", - Network accessline 484
"@type": "Organization", "name": "React Events LLC", "url": "https://reactconf.com" - Network accessline 485
"name": "React Events LLC", "url": "https://reactconf.com" } - Network accessline 486
"url": "https://reactconf.com" - Network accessline 498
{ "@context": "https://schema.org", - Network accessline 499
"@context": "https://schema.org", - Network accessline 502
"description": "Complete tutorial on building a production-ready app", "thumbnailUrl": [ "https://i.ytimg.com/vi/ABC123/maxresdefault.jpg", - Network accessline 503
"thumbnailUrl": [ "https://i.ytimg.com/vi/ABC123/maxresdefault.jpg", "https://i.ytimg.com/vi/ABC123/sddefault.jpg" - Network accessline 504
"https://i.ytimg.com/vi/ABC123/maxresdefault.jpg", - Network accessline 505
"https://i.ytimg.com/vi/ABC123/sddefault.jpg" - Network accessline 507
"uploadDate": "2024-01-15", "duration": "PT45M30S", "contentUrl": "https://www.youtube.com/watch?v=ABC123", - Network accessline 508
"duration": "PT45M30S", "contentUrl": "https://www.youtube.com/watch?v=ABC123", "embedUrl": "https://www.youtube.com/embed/ABC123", - Network accessline 509
"contentUrl": "https://www.youtube.com/watch?v=ABC123", - Network accessline 510
"embedUrl": "https://www.youtube.com/embed/ABC123",
geo-schema-gen/references/field-reference.md
- Network accessline 39
{ "@context": "https://schema.org", - Network accessline 40
"@context": "https://schema.org", - Network accessline 43
"legalName": "Stripe, Inc.", "alternateName": "Stripe Payments", "url": "https://stripe.com", - Network accessline 44
"alternateName": "Stripe Payments", "url": "https://stripe.com", "logo": "https://stripe.com/img/logo.png", - Network accessline 45
"url": "https://stripe.com", - Network accessline 46
"logo": "https://stripe.com/img/logo.png", - Network accessline 80
], "sameAs": [ "https://twitter.com/stripe", - Network accessline 81
"sameAs": [ "https://twitter.com/stripe", "https://www.linkedin.com/company/stripe", - Network accessline 82
"https://twitter.com/stripe", - Network accessline 83
"https://www.linkedin.com/company/stripe", - Network accessline 84
"https://github.com/stripe", - Network accessline 85
"https://en.wikipedia.org/wiki/Stripe_(company)" - Network accessline 142
{ "@context": "https://schema.org", - Network accessline 143
"@context": "https://schema.org", - Network accessline 199
{ "@context": "https://schema.org", - Network accessline 200
"@context": "https://schema.org", - Network accessline 202
"name": "Acme Noise-Canceling Headphones", "image": [ "https://acme.com/images/headphones-1x1.jpg", - Network accessline 203
"image": [ "https://acme.com/images/headphones-1x1.jpg", "https://acme.com/images/headphones-4x3.jpg", - Network accessline 204
"https://acme.com/images/headphones-1x1.jpg", - Network accessline 205
"https://acme.com/images/headphones-4x3.jpg", - Network accessline 206
"https://acme.com/images/headphones-16x9.jpg" - Network accessline 220
"offers": { "@type": "Offer", "url": "https://acme.com/headphones", - Network accessline 221
"@type": "Offer", "url": "https://acme.com/headphones", "price": "299.99", - Network accessline 222
"url": "https://acme.com/headphones", - Network accessline 224
"priceCurrency": "USD", "priceValidUntil": "2024-12-31", "availability": "https://schema.org/InStock", - Network accessline 225
"priceValidUntil": "2024-12-31", "availability": "https://schema.org/InStock", "seller": { - Network accessline 226
"availability": "https://schema.org/InStock", - Network accessline 267
{ "@context": "https://schema.org", - Network accessline 268
"@context": "https://schema.org", - Network accessline 301
"name": "Mix the dough", "text": "Combine 500g flour and 350g water. Mix until no dry flour remains.", "url": "https://example.com/sourdough#step1" - Network accessline 302
"text": "Combine 500g flour and 350g water. Mix until no dry flour remains.", "url": "https://example.com/sourdough#step1" }, - Network accessline 303
"url": "https://example.com/sourdough#step1" - Network accessline 307
"name": "Fold the dough", "text": "Perform stretch and folds every 30 minutes for 2 hours.", "url": "https://example.com/sourdough#step2" - Network accessline 308
"text": "Perform stretch and folds every 30 minutes for 2 hours.", "url": "https://example.com/sourdough#step2" } - Network accessline 309
"url": "https://example.com/sourdough#step2" - Network accessline 328
### URL Requirements - Must be absolute (https://...) - Network accessline 329
- Must be absolute (https://...)
geo-schema-gen/references/google-guidelines.md
- Network accessline 115
<script type="application/ld+json"> { "@context": "https://schema.org", - Network accessline 116
{ "@context": "https://schema.org", "@type": "Article", - Network accessline 117
"@context": "https://schema.org", - Network accessline 125
- Must be in `<head>` or `<body>` - Must be valid JSON - Must use https://schema.org (not http) - Network accessline 126
- Must be valid JSON - Must use https://schema.org (not http) - Each schema type on its own (no mixing Article and Product in one object) - Network accessline 127
- Must use https://schema.org (not http) - Network accessline 132
1. **Rich Results Test**: https://search.google.com/test/rich-results - Network accessline 136
2. **Schema Markup Validator**: https://validator.schema.org
geo-schema-gen/references/schema-types.md
- Network accessline 25
{ "@context": "https://schema.org", - Network accessline 26
"@context": "https://schema.org", - Network accessline 27
"@type": "Organization", "name": "Acme Corp", "url": "https://acme.com", - Network accessline 28
"name": "Acme Corp", "url": "https://acme.com", "logo": "https://acme.com/logo.png", - Network accessline 29
"url": "https://acme.com", - Network accessline 30
"logo": "https://acme.com/logo.png", - Network accessline 32
"foundingDate": "2015", "sameAs": [ "https://twitter.com/acme", - Network accessline 33
"sameAs": [ "https://twitter.com/acme", "https://linkedin.com/company/acme" - Network accessline 34
"https://twitter.com/acme", - Network accessline 35
"https://linkedin.com/company/acme" - Network accessline 67
{ "@context": "https://schema.org", - Network accessline 68
"@context": "https://schema.org", - Network accessline 69
"@type": "WebSite", "name": "Acme Documentation", "url": "https://docs.acme.com", - Network accessline 70
"name": "Acme Documentation", "url": "https://docs.acme.com", "potentialAction": { - Network accessline 71
"url": "https://docs.acme.com", - Network accessline 72
"potentialAction": { "@type": "SearchAction", "target": "https://docs.acme.com/search?q={search_term_string}", - Network accessline 73
"@type": "SearchAction", "target": "https://docs.acme.com/search?q={search_term_string}", "query-input": "required name=search_term_string" - Network accessline 74
"target": "https://docs.acme.com/search?q={search_term_string}", - Network accessline 105
{ "@context": "https://schema.org", - Network accessline 106
"@context": "https://schema.org", - Network accessline 111
"@type": "Person", "name": "Jane Smith", "url": "https://acme.com/team/jane" - Network accessline 112
"name": "Jane Smith", "url": "https://acme.com/team/jane" }, - Network accessline 113
"url": "https://acme.com/team/jane" - Network accessline 118
"logo": { "@type": "ImageObject", "url": "https://acme.com/logo.png" - Network accessline 119
"@type": "ImageObject", "url": "https://acme.com/logo.png" } - Network accessline 120
"url": "https://acme.com/logo.png" - Network accessline 123
"datePublished": "2024-01-15", "dateModified": "2024-01-20", "url": "https://acme.com/blog/schema-markup-guide" - Network accessline 124
"dateModified": "2024-01-20", "url": "https://acme.com/blog/schema-markup-guide" } - Network accessline 125
"url": "https://acme.com/blog/schema-markup-guide" - Network accessline 154
{ "@context": "https://schema.org", - Network accessline 155
"@context": "https://schema.org", - Network accessline 200
{ "@context": "https://schema.org", - Network accessline 201
"@context": "https://schema.org", - Network accessline 211
"price": "99.00", "priceCurrency": "USD", "availability": "https://schema.org/InStock", - Network accessline 212
"priceCurrency": "USD", "availability": "https://schema.org/InStock", "priceValidUntil": "2024-12-31" - Network accessline 213
"availability": "https://schema.org/InStock", - Network accessline 254
{ "@context": "https://schema.org", - Network accessline 255
"@context": "https://schema.org", - Network accessline 263
"name": "Identify content type", "text": "Determine if your content is an Article, Product, FAQ, etc.", "url": "https://example.com/guide#step1" - Network accessline 264
"text": "Determine if your content is an Article, Product, FAQ, etc.", "url": "https://example.com/guide#step1" }, - Network accessline 265
"url": "https://example.com/guide#step1" - Network accessline 269
"name": "Generate markup", "text": "Use a schema generator to create JSON-LD code", "url": "https://example.com/guide#step2" - Network accessline 270
"text": "Use a schema generator to create JSON-LD code", "url": "https://example.com/guide#step2" } - Network accessline 271
"url": "https://example.com/guide#step2" - Network accessline 299
{ "@context": "https://schema.org", - Network accessline 300
"@context": "https://schema.org", - Network accessline 305
"position": 1, "name": "Home", "item": "https://acme.com/" - Network accessline 306
"name": "Home", "item": "https://acme.com/" }, - Network accessline 307
"item": "https://acme.com/" - Network accessline 311
"position": 2, "name": "Products", "item": "https://acme.com/products" - Network accessline 312
"name": "Products", "item": "https://acme.com/products" }, - Network accessline 313
"item": "https://acme.com/products" - Network accessline 317
"position": 3, "name": "Pro Plan", "item": "https://acme.com/products/pro" - Network accessline 318
"name": "Pro Plan", "item": "https://acme.com/products/pro" } - Network accessline 319
"item": "https://acme.com/products/pro" - Network accessline 392
{ "@context": "https://schema.org", - Network accessline 393
"@context": "https://schema.org",
geo-schema-gen/scripts/batch_generate.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 23
try: resp = requests.get(sitemap_url, timeout=10) - Network accessline 24
resp = requests.get(sitemap_url, timeout=10) - Network accessline 75
soup = BeautifulSoup(html, 'html.parser') data = { "@context": "https://schema.org", - Network accessline 76
data = { "@context": "https://schema.org", "@type": schema_type, - Network accessline 77
"@context": "https://schema.org", - Network accessline 149
resp = requests.get(url, timeout=10)
geo-schema-gen/scripts/generate_schema.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 12
SCHEMA_TEMPLATES = { "Organization": { "@context": "https://schema.org", - Network accessline 13
"Organization": { "@context": "https://schema.org", "@type": "Organization", - Network accessline 14
"@context": "https://schema.org", - Network accessline 21
}, "WebSite": { "@context": "https://schema.org", - Network accessline 22
"WebSite": { "@context": "https://schema.org", "@type": "WebSite", - Network accessline 23
"@context": "https://schema.org", - Network accessline 32
}, "Article": { "@context": "https://schema.org", - Network accessline 33
"Article": { "@context": "https://schema.org", "@type": "Article", - Network accessline 34
"@context": "https://schema.org", - Network accessline 53
}, "BlogPosting": { "@context": "https://schema.org", - Network accessline 54
"BlogPosting": { "@context": "https://schema.org", "@type": "BlogPosting", - Network accessline 55
"@context": "https://schema.org", - Network accessline 74
}, "FAQPage": { "@context": "https://schema.org", - Network accessline 75
"FAQPage": { "@context": "https://schema.org", "@type": "FAQPage", - Network accessline 76
"@context": "https://schema.org", - Network accessline 79
}, "Product": { "@context": "https://schema.org", - Network accessline 80
"Product": { "@context": "https://schema.org", "@type": "Product", - Network accessline 81
"@context": "https://schema.org", - Network accessline 91
"price": "", "priceCurrency": "USD", "availability": "https://schema.org/InStock" - Network accessline 92
"priceCurrency": "USD", "availability": "https://schema.org/InStock" } - Network accessline 93
"availability": "https://schema.org/InStock" - Network accessline 95
}, "HowTo": { "@context": "https://schema.org", - Network accessline 96
"HowTo": { "@context": "https://schema.org", "@type": "HowTo", - Network accessline 97
"@context": "https://schema.org", - Network accessline 103
}, "BreadcrumbList": { "@context": "https://schema.org", - Network accessline 104
"BreadcrumbList": { "@context": "https://schema.org", "@type": "BreadcrumbList", - Network accessline 105
"@context": "https://schema.org", - Network accessline 108
}, "VideoObject": { "@context": "https://schema.org", - Network accessline 109
"VideoObject": { "@context": "https://schema.org", "@type": "VideoObject", - Network accessline 110
"@context": "https://schema.org", - Network accessline 117
}, "LocalBusiness": { "@context": "https://schema.org", - Network accessline 118
"LocalBusiness": { "@context": "https://schema.org", "@type": "LocalBusiness", - Network accessline 119
"@context": "https://schema.org", - Network accessline 152
if schema_type in ["Organization", "WebSite"]: template["name"] = input("Organization/Site name: ").strip() template["url"] = input("Website URL (https://...): ").strip() - Network accessline 154
template["url"] = input("Website URL (https://...): ").strip() - Network accessline 290
resp = requests.get(url, timeout=10) - Network accessline 374
elif args.output == "markdown": json_str = json.dumps(schema, indent=2) result = f"## {args.type} Schema\n\n```json\n{json_str}\n```\n\n**Implementation:** Paste inside `<head>` tag\n\n**Validation:** Test at https://validat - Network accessline 375
json_str = json.dumps(schema, indent=2) result = f"## {args.type} Schema\n\n```json\n{json_str}\n```\n\n**Implementation:** Paste inside `<head>` tag\n\n**Validation:** Test at https://validator.schema.org" else: - Network accessline 376
result = f"## {args.type} Schema\n\n```json\n{json_str}\n```\n\n**Implementation:** Paste inside `<head>` tag\n\n**Validation:** Test at https://validator.schema.org"
geo-schema-gen/scripts/validate_schema.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 50
if isinstance(context, str): if context == "http://schema.org": - Network accessline 51
if context == "http://schema.org": - Network accessline 52
self.warnings.append("@context uses HTTP (should be HTTPS)") elif context != "https://schema.org": self.warnings.append(f"Unexpected @context value: {context}") - Network accessline 53
elif context != "https://schema.org":
geo-sentiment-optimizer/scripts/audit_sentiment.py
- Executable scriptline 1
#!/usr/bin/env python3
geo-site-audit/references/checklist.md
- Network accessline 22
curl -s https://example.com/robots.txt | grep -iE "(gptbot|claudebot|perplexity|google-extended|ccbot)" - Network accessline 25
### 1.2 llms.txt file exists at root **What to check:** - File accessible at `https://example.com/llms.txt` - Network accessline 26
**What to check:** - File accessible at `https://example.com/llms.txt` - Returns HTTP 200 - Network accessline 27
- File accessible at `https://example.com/llms.txt` - Network accessline 61
curl -s https://example.com/ | grep -i "<p>\|</p>\|<h1>\|<article>" | wc -l - Network accessline 157
### 2.9 Schema validates without errors **How to verify:** - Test at https://validator.schema.org/ - Network accessline 158
**How to verify:** - Test at https://validator.schema.org/ - No critical errors - Network accessline 159
- Test at https://validator.schema.org/ - Network accessline 163
### 2.10 @context is https://schema.org - Network accessline 164
**What to check:** - `"@context": "https://schema.org"` (not http://) - Consistent across all JSON-LD blocks - Network accessline 165
- `"@context": "https://schema.org"` (not http://) - Network accessline 286
curl -I https://example.com/nonexistent-page-12345
geo-site-audit/references/integrations.md
- Network accessline 58
{ "slack": { "url": "https://hooks.slack.com/services/...", - Network accessline 59
"slack": { "url": "https://hooks.slack.com/services/...", "threshold": 20 - Network accessline 60
"url": "https://hooks.slack.com/services/...", - Network accessline 62
}, "teams": { "url": "https://outlook.office.com/webhook/...", - Network accessline 63
"teams": { "url": "https://outlook.office.com/webhook/...", "threshold": 20 - Network accessline 64
"url": "https://outlook.office.com/webhook/...",
geo-site-audit/scripts/batch_audit.py
- Executable scriptline 1
#!/usr/bin/env python3
geo-site-audit/scripts/geo_audit.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 25
def __init__(self, domain, timeout=10, delay=0, user_agent=None): self.domain = domain.replace('https://', '').replace('http://', '').rstrip('/') self.base_url = f"https://{self.domain}" - Network accessline 26
self.domain = domain.replace('https://', '').replace('http://', '').rstrip('/') self.base_url = f"https://{self.domain}" self.timeout = timeout - Network accessline 27
self.base_url = f"https://{self.domain}" - Network accessline 43
def fetch(self, path='', full_url=None): - Network accessline 46
try: time.sleep(self.delay) resp = requests.get(url, headers=self.headers, timeout=self.timeout, allow_redirects=True) - Network accessline 47
time.sleep(self.delay) resp = requests.get(url, headers=self.headers, timeout=self.timeout, allow_redirects=True) return resp - Network accessline 48
resp = requests.get(url, headers=self.headers, timeout=self.timeout, allow_redirects=True) - Network accessline 55
resp = self.fetch('/robots.txt') - Network accessline 73
resp = self.fetch('/llms.txt') - Network accessline 80
resp = self.fetch('/llms.txt') - Network accessline 96
start = time.time() resp = self.fetch('/') - Network accessline 97
resp = self.fetch('/') - Network accessline 108
resp = self.fetch('/') - Network accessline 119
resp = self.fetch('/') - Network accessline 128
resp = self.fetch('/') - Network accessline 139
resp = self.fetch('/') - Network accessline 148
resp = self.fetch('/sitemap.xml') - Network accessline 152
robots = self.fetch('/robots.txt') - Network accessline 159
resp = self.fetch('/') - Network accessline 171
resp = self.fetch('/') - Network accessline 180
resp = self.fetch('/') - Network accessline 189
resp = self.fetch('/') - Network accessline 201
for path in ['/faq', '/support', '/help']: resp = self.fetch(path) - Network accessline 202
resp = self.fetch(path) - Network accessline 209
for path in ['/blog', '/news', '/articles']: resp = self.fetch(path) - Network accessline 210
resp = self.fetch(path) - Network accessline 217
for path in ['/shop', '/products', '/store']: resp = self.fetch(path) - Network accessline 218
resp = self.fetch(path) - Network accessline 225
resp = self.fetch('/') - Network accessline 234
resp = self.fetch('/') - Network accessline 243
resp = self.fetch('/') - Network accessline 265
resp = self.fetch('/') - Network accessline 266
if not resp: return {"check": "@context uses HTTPS", "status": "fail", "notes": "Site unreachable"} if '"@context": "https://schema.org"' in resp.text: - Network accessline 267
return {"check": "@context uses HTTPS", "status": "fail", "notes": "Site unreachable"} if '"@context": "https://schema.org"' in resp.text: return {"check": "@context uses HTTPS", "status": "pass", "notes": "HTTPS context - Network accessline 268
if '"@context": "https://schema.org"' in resp.text: - Network accessline 269
return {"check": "@context uses HTTPS", "status": "pass", "notes": "HTTPS context"} if '"@context": "http://schema.org"' in resp.text: return {"check": "@context uses HTTPS", "status": "partial", "notes": "HTTP (should b - Network accessline 270
if '"@context": "http://schema.org"' in resp.text: - Network accessline 276
resp = self.fetch('/') - Network accessline 286
resp = self.fetch('/') - Network accessline 300
resp = self.fetch('/') - Network accessline 309
resp = self.fetch('/') - Network accessline 319
resp = self.fetch('/') - Network accessline 333
resp = self.fetch('/') - Network accessline 342
resp = self.fetch('/') - Network accessline 352
about = self.fetch('/about') - Network accessline 359
resp = self.fetch('/llms.txt') - Network accessline 370
try: http_resp = requests.get(f"http://{self.domain}", timeout=self.timeout, allow_redirects=False) - Network accessline 371
http_resp = requests.get(f"http://{self.domain}", timeout=self.timeout, allow_redirects=False) - Network accessline 380
resp = self.fetch('/') - Network accessline 389
resp = self.fetch('/') - Network accessline 400
resp = self.fetch('/') - Network accessline 411
resp = self.fetch('/') - Network accessline 421
resp = self.fetch('/this-page-does-not-exist-12345')
geo-som-strategist/scripts/build_strategy.py
- Executable scriptline 1
#!/usr/bin/env python3
geo-structured-writer/scripts/structure_content.py
- Executable scriptline 1
#!/usr/bin/env python3
geo-studio/scripts/orchestrate.py
- Executable scriptline 1
#!/usr/bin/env python3
geo-template-library/scripts/render_templates.py
- Executable scriptline 1
Executable file
geo-template-library/scripts/template_selector.py
- Executable scriptline 1
Executable file
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 500 facts
- Network access in code of documentationgeo-ai-plugin-builder/references/geo-ai-plugin-patterns.md:43Low confidence
- Network access in code of documentationgeo-ai-plugin-builder/references/geo-ai-plugin-patterns.md:44Low confidence
- Network access in code of documentationgeo-ai-plugin-builder/references/geo-ai-plugin-patterns.md:45Low confidence
- Network access in code of documentationgeo-ai-plugin-builder/references/geo-ai-plugin-patterns.md:116Low confidence
- Network access in code of documentationgeo-ai-plugin-builder/references/geo-ai-plugin-patterns.md:117Low confidence
- Network access in code of documentationgeo-ai-plugin-builder/references/geo-ai-plugin-patterns.md:118Low confidence
- Network access in code of documentationgeo-ai-plugin-builder/references/geo-ai-plugin-patterns.md:186Low confidence
- Network access in code of documentationgeo-ai-plugin-builder/references/geo-ai-plugin-patterns.md:187Low confidence
- Network access in code of documentationgeo-ai-plugin-builder/references/geo-ai-plugin-patterns.md:188Low confidence
- Executable script in prose of a file that runsgeo-ai-plugin-builder/scripts/plugin_blueprint_generator.py:1Low confidence
- Executable script in prose of a file that runsgeo-bulk-processor/scripts/geo_bulk_pipeline.py:1Low confidence
- Executable script in code of a file that runsgeo-citation-writer/scripts/generate_content.py:1High confidence
- Network access in code of the SKILL.mdgeo-competitor-scanner/SKILL.md:156High confidence
- Network access in code of the SKILL.mdgeo-competitor-scanner/SKILL.md:178High confidence
- Network access in prose of documentationgeo-competitor-scanner/references/scan-methodology.md:49Low confidence
- Network access in prose of documentationgeo-competitor-scanner/references/scan-methodology.md:51Low confidence
- Executable script in code of a file that runsgeo-competitor-scanner/scripts/scan_competitors.py:1High confidence
- Network access in code of a file that runsgeo-competitor-scanner/scripts/scan_competitors.py:23High confidence
- Network access in code of a file that runsgeo-competitor-scanner/scripts/scan_competitors.py:24High confidence
- Network access in code of a file that runsgeo-competitor-scanner/scripts/scan_competitors.py:25High confidence
- Network access in code of a file that runsgeo-competitor-scanner/scripts/scan_competitors.py:35High confidence
- Network access in code of a file that runsgeo-competitor-scanner/scripts/scan_competitors.py:37High confidence
- Network access in code of a file that runsgeo-competitor-scanner/scripts/scan_competitors.py:38High confidence
- Network access in code of a file that runsgeo-competitor-scanner/scripts/scan_competitors.py:39High confidence
- Network access in code of a file that runsgeo-competitor-scanner/scripts/scan_competitors.py:49High confidence
- Network access in code of a file that runsgeo-competitor-scanner/scripts/scan_competitors.py:56High confidence
- Network access in code of a file that runsgeo-competitor-scanner/scripts/scan_competitors.py:71High confidence
- Network access in code of a file that runsgeo-competitor-scanner/scripts/scan_competitors.py:117High confidence
- Network access in code of a file that runsgeo-competitor-scanner/scripts/scan_competitors.py:147High confidence
- Network access in code of a file that runsgeo-competitor-scanner/scripts/scan_competitors.py:156High confidence
- Network access in code of a file that runsgeo-competitor-scanner/scripts/scan_competitors.py:181High confidence
- Network access in code of a file that runsgeo-competitor-scanner/scripts/scan_competitors.py:182High confidence
- Network access in code of a file that runsgeo-competitor-scanner/scripts/scan_competitors.py:183High confidence
- Network access in code of a file that runsgeo-competitor-scanner/scripts/scan_competitors.py:188High confidence
- Network access in code of a file that runsgeo-competitor-scanner/scripts/scan_competitors.py:189High confidence
- Executable script in code of a file that runsgeo-content-optimizer/scripts/analyze_content.py:1High confidence
- Executable script in code of a file that runsgeo-content-optimizer/scripts/optimize_content.py:1High confidence
- Network access in code of documentationgeo-content-publisher/references/publishing-templates.md:159Low confidence
- Network access in code of documentationgeo-content-publisher/references/publishing-templates.md:160Low confidence
- Network access in code of documentationgeo-content-publisher/references/publishing-templates.md:162Low confidence
- Network access in code of documentationgeo-content-publisher/references/publishing-templates.md:163Low confidence
- Network access in code of documentationgeo-content-publisher/references/publishing-templates.md:164Low confidence
- Network access in code of documentationgeo-content-publisher/references/publishing-templates.md:172Low confidence
- Network access in code of documentationgeo-content-publisher/references/publishing-templates.md:173Low confidence
- Network access in code of documentationgeo-content-publisher/references/publishing-templates.md:174Low confidence
- Network access in code of documentationgeo-content-publisher/references/publishing-templates.md:176Low confidence
- Network access in code of documentationgeo-content-publisher/references/publishing-templates.md:177Low confidence
- Network access in code of documentationgeo-content-publisher/references/publishing-templates.md:178Low confidence
- Network access in code of documentationgeo-content-publisher/references/publishing-templates.md:185Low confidence
- Network access in code of documentationgeo-content-publisher/references/publishing-templates.md:186Low confidence
and 450 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md geo-ai-plugin-builder/SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md geo-ai-plugin-builder/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md geo-ai-plugin-builder/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md geo-ai-plugin-builder/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md geo-ai-plugin-builder/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md geo-ai-plugin-builder/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.