Add geo-gap-fixer GTM Intelligence skill (LLM GEO gap audit) - #43
Conversation
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds a new geo-gap-fixer skill that probes multiple LLMs with buyer-intent prompts, analyzes brand visibility/citations/sentiment, and generates a 5-section GEO audit report; also registers the skill in the repo skill registry and updates the root skills list/count.
Changes:
- Added a 3-step pipeline: probe LLMs → analyze responses → build markdown/JSON reports.
- Added reference docs for prompt templates, scoring rubric, and sample output format.
- Registered
geo-gap-fixerinpackages/cli/registry.jsonand updated root README skill count/list.
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
| skills/geo-gap-fixer/scripts/probe_llms.py | New LLM probing CLI with provider adapters, retries, and raw response persistence |
| skills/geo-gap-fixer/scripts/analyze_results.py | New analysis pipeline: mentions/rank/sentiment/citations/framing → analysis.json |
| skills/geo-gap-fixer/scripts/build_report.py | New markdown + JSON report generator with 5 required sections |
| skills/geo-gap-fixer/references/scoring_rubric.md | Documents how metrics are computed and thresholds used |
| skills/geo-gap-fixer/references/prompt_templates.md | Defines default prompt templates used by probing script |
| skills/geo-gap-fixer/references/output_format.md | Sample output for generated report |
| skills/geo-gap-fixer/package.json | Skill metadata for OpenDirectory |
| skills/geo-gap-fixer/config.example.json | Sample configuration for running the skill |
| skills/geo-gap-fixer/SKILL.md | Agent/runbook instructions for executing the pipeline |
| skills/geo-gap-fixer/README.md | User-facing documentation and quickstart |
| skills/geo-gap-fixer/.gitignore | Ignores runtime outputs and local secrets |
| skills/geo-gap-fixer/.env.example | Documents required env vars for providers |
| packages/cli/registry.json | Registers the new skill and updates some existing registry entries |
| README.md | Updates skill count/badge and adds geo-gap-fixer to the skills table |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Greptile SummaryThis PR adds
Confidence Score: 5/5Safe to merge — this is a self-contained new skill addition with no changes to shared infrastructure beyond registry/count metadata updates. All three Python scripts are new files with no impact on existing skills. The previously identified crash-level and logic bugs have been fixed. The remaining findings are consistency improvements (temperature settings, Google system instruction) that affect audit reproducibility but do not cause failures or data corruption. skills/geo-gap-fixer/scripts/probe_llms.py — the provider adapter inconsistencies (temperature, Google system instruction) are worth tightening before the first real audit run. Important Files Changed
Sequence DiagramsequenceDiagram
participant User
participant probe as probe_llms.py
participant OpenAI
participant Anthropic
participant Google
participant Perplexity
participant analyze as analyze_results.py
participant report as build_report.py
User->>probe: python probe_llms.py --config config.json
probe->>probe: load_config() + generate_prompts()
loop For each prompt x provider
probe->>OpenAI: "chat.completions.create (temp=0.0)"
probe->>Anthropic: messages.create (no temp set)
probe->>Google: generate_content (system prompt concatenated)
probe->>Perplexity: chat.completions.create (no temp/max_tokens)
end
probe-->>User: data/raw_responses.json
User->>analyze: python analyze_results.py
analyze->>analyze: find_mentions() / compute_rank() / compute_sentiment()
analyze->>analyze: share_of_voice + wins/losses + citation_gaps
analyze-->>User: data/analysis.json
User->>report: python build_report.py
report->>report: build_share_of_voice() + build_loss_log()
report->>report: build_competitor_language() + build_citation_gaps()
report->>report: build_action_plan() - Critical / High / Growth
report-->>User: report/geo_audit_report.md + .json
Reviews (6): Last reviewed commit: "chore: rebase geo gap fixer and refresh ..." | Re-trigger Greptile |
|
All Copilot and Greptile comments have been addressed in code and marked resolved, and both checks (Greptile Review + PR Validation) are green. This should be ready to merge from my side. |
|
Thanks for adding the geo-gap-fixer skill @ajaycodesitbetter . The architecture separating probing, analysis, and reporting is excellent Please address the following issues before merging:
Please let me know once these are updated. |
bdb2583 to
8e26ee8
Compare
|
All four points addressed in |
|
cool, seems good to me! |
This PR adds geo-gap-fixer, a GTM Intelligence skill that audits how often LLMs recommend a brand vs competitors and turns those visibility gaps into a GEO content backlog (FAQs, comparison pages, alternatives, authority targets).
What this skill does
Files added
skills/geo-gap-fixer/README.mdskills/geo-gap-fixer/SKILL.mdskills/geo-gap-fixer/.env.exampleskills/geo-gap-fixer/package.jsonskills/geo-gap-fixer/config.example.jsonskills/geo-gap-fixer/scripts/probe_llms.pyskills/geo-gap-fixer/scripts/analyze_results.pyskills/geo-gap-fixer/scripts/build_report.pyskills/geo-gap-fixer/references/prompt_templates.mdskills/geo-gap-fixer/references/scoring_rubric.mdskills/geo-gap-fixer/references/output_format.mdskills/geo-gap-fixer/.gitignoreHow I tested
python -m py_compile scripts/probe_llms.py scripts/analyze_results.py scripts/build_report.pypython -c "import json; json.load(open('package.json')); json.load(open('config.example.json'))"pnpm exec tsx scripts/update-readme.tspnpm exec tsx scripts/update-contributing.tspnpm exec tsx scripts/build-registry.tsnpx "@opendirectory.dev/skills" install geo-gap-fixer --target opencode(success)