Releases: Pupok462/open-geo
Release list
v0.4.1 — composable agent skill
open-geo can now act as a data-producing skill inside another agent workflow instead of requiring
the dashboard to be the handoff surface.
Added
- Portable run artifacts. Every completed skill run exports
open-geo.run-artifact.v1throughpython -m pipeline.artifact: run metadata, target, metrics
by lens, qualitative summaries, decoded per-query captures, top-domain statistics, and the
matching GEO-readiness audit in one atomic UTF-8 JSON file. - Agent-workflow mode.
--output datais now the default and starts no FastAPI/Vite servers.
--artifact-outlets a parent research, SEO, reporting, or content workflow choose the handoff
path and continue from the versioned JSON contract. - Cross-agent packaging. AgentsMesh is the canonical source for the skill and its workers;
adapters are generated for Claude Code, Codex CLI, Cursor, and Gemini CLI.
Changed
- The installed skill bootstraps its Python runtime on first use (
scripts/setup.sh --minimal)
instead of stopping with manual clone/setup instructions. Dashboard dependencies are installed
only whendashboardorbothis requested. - The plugin and all four localized READMEs now lead with the one-request outcome and the
composable agent-workflow boundary. A visible, logged-in browser remains the honest capture
prerequisite; API/headless data is still never substituted.
Validation
- Python CI: pytest + branch coverage gate passed.
- Frontend CI: Vitest + coverage gate passed.
- AgentsMesh adapters and Claude plugin manifest validation passed.
v0.3.1 — README rework, project page, structured data
Documentation and discoverability release. No changes to capture, metrics or the data contract.
Added
- A comparison section in the README explaining what open-geo, a hosted monitoring service and a DIY API/scraping script are each built for, plus an "At a glance" fact table.
- An expanded FAQ: what GEO is, which engines are supported, whether capture uses the API or the real UI, audit versus continuous monitoring, and URL-prefix targets.
- A project page under
docs/(GitHub Pages) carryingSoftwareApplicationandFAQPagestructured data, plusllms.txtand arobots.txtthat explicitly admits AI search crawlers. - This changelog.
Changed
- The README opens with a direct definition of what open-geo is and how it measures, in all four languages (English, Русский, 中文, العربية).
Fixed
- The plugin manifests pointed
homepageat a domain that does not resolve; they now point at the repository.
Engines today: Google AI Overview, ChatGPT, Claude, Gemini, Yandex Alice / Нейро, DeepSeek — all live-validated. Perplexity has a playbook awaiting its first live-validation run.
Full changelog: v0.3.0...v0.3.1
v0.3.0 — repeat runs, weekly trend, combined multi-engine PDF
Added
- Repeat runs —
--repeat Rcaptures the same question set R times as R ordinary runs sharing
one group. The dashboard reads a group as one measurement: metrics are aggregated across repeats
and every KPI card shows a min–max spread instead of a run-over-run delta, so an unstable
number is visible as unstable. - Weekly trend rollup — a "By run / By week" toggle on the trend chart (ISO weeks).
- Combined multi-engine PDF —
report.generate --engines all(and the dashboard's Download PDF
in compare mode) exports one document: an engines side-by-side table, then a chapter per engine.
Engines are never blended into a single cross-engine score. - Cross-engine comparison panel — an "All engines — compare" option showing every captured
engine of a brand side by side, with click-through into a single engine.
Changed
- KPI cards now follow the selected lens instead of always showing the blended
allrow, and carry
a general/branded/comparative distribution bar, because the three query types have different
expected appearance rates and the blended average misleads on its own.
v0.1.0 — first public release
The first tagged release of open-geo — an MIT-licensed GEO (Generative Engine Optimization) visibility tracker that runs as a Claude Code skill and reads AI answers the way a logged-in human sees them: in a real browser, from the rendered page.
Highlights
- Five capture engines, each driven by a natural-language playbook (
engines/<engine>.md), not CSS selectors: Google AI Overview, ChatGPT search, Claude search, Gemini, and Yandex Alice/Neuro — all with a grounded-answer gate so an ungrounded reply never inflates the numbers. - An honest visibility funnel —
cited ⊆ in sources ⊆ answered— six auditable metrics per lens (general / branded / comparative), qualitative per-lens sentiment, and a top-domains leaderboard of who actually owns the answer space. No composite index by design. - Question harvesting (opt-in) — recon subagents gather real, signal-grounded user queries (autocomplete, PAA, forums, reviews) and an adversarial skeptic prunes them; every shipped query carries provenance. Bring-your-own CSV stays first-class.
- Durable pipeline — Pydantic v2 contract, SQLite (WAL) multi-brand time series, idempotent incremental ingest, crash-safe run resume.
- Deliverables — a FastAPI + React dashboard and a dark-themed PDF report, both localized (EN/RU/ZH/AR, RTL-aware PDF with bundled fonts).
Notable fixes in this release
normalize_domainno longer mis-parses URLs with@in the path (Medium/YouTube handle pages) — the funnel and leaderboard credit the right domains.QueryCapturenow also enforces "a cited target is a source" at validation time.- Missing-table guards no longer swallow unrelated database errors.
Full contract and formulas: pipeline/INTERFACES.md. Sample PDF: assets/sample-report-example.pdf.
🤖 Generated with Claude Code