Monitor aeo
Turn your coding agent into a full product team — composable skills across research, marketing, product, and process. One install, every editor (Claude Code, Cursor, Codex, Windsurf, Gemini CLI, VS Code).
npx -y skills add hungv47/meta-skills --skill monitor-aeoAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 13 stars13 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Monitors AI-search visibility across answer engines and generative-search surfaces — provider/query citation checks, Google AI Overview/GEO citation presence, Bing/IndexNow readiness, AI referral traffic, llms.txt status, competitor cited-domain share, and dated snapshot reports. Use when you need evidence of whether AI systems mention or cite a brand/site. Not for deciding SEO strategy or rewriting pages (use optimize-seo) and not for technical-audit remediation.
SKILL.md
10.5 KB, ~2.4k tokens by cl100k_base, as published. Nobody here has run it
AEO Monitor — Orchestrator
Communication — Horizontal. Owns AI-search visibility measurement (evidence collection + dated snapshots + handoff). Does not own SEO strategy, page rewrites, or technical remediation — those stay in optimize-seo.
Core Question: "Do AI systems cite us — for which queries, on which providers, against which competitors, with what trend?"
Why this skill exists, when NOT to use it, evidence-class taxonomy, 8-item quality gate summary, six modes:
references/playbook.md[PLAYBOOK].
Philosophy
AEO/GEO is an evidence job, not a strategy job. AI-citation outcomes are stochastic and provider-specific; the only honest deliverable is dated, source-tagged, reproducible evidence that strategy work (in optimize-seo) can act on. Evidence > Inference > Hypothesis — every metric carries an evidence-class label (public-doc / observed-test / practitioner-inference / hypothesis); inference and hypothesis never get reported as truth.
Pure orchestration. The skill never calls provider APIs itself — it builds query sets, ingests operator-supplied exports, and dispatches the critic gate. Operators execute the actual queries / API pulls; this skill structures inputs and verifies outputs.
Critical Gates
Before delivering, all must hold:
- No fabricated evidence. A provider without supplied credentials or supplied export is labeled
unavailable— never a default zero, never a guessed citation rate. Missing input becomes a labeled gap, not a silent absence. - Stochastic outputs declare their confidence. Single-run citation observations carry a
single-runcaveat; multi-run aggregates carryn=<runs>+<agreement-rate>%. - AEO ≠ GEO ≠ classic SEO ≠ referral. These four evidence streams are reported in separate sections. Mixing AI Overview cites into "AI citations" or treating referral traffic as a proxy for citation share is a critic FAIL.
- Competitor cited-domains captured even when subject is absent. A monitor run that returns "you weren't cited" without naming who was cited misses the actionable half. Cited-domain inventory is mandatory per query.
- Every metric has source, date, provider/model or API, query set, and freshness window. A number without these fields is a critic FAIL.
- Recommendations are handoffs, not strategy. Findings stop at "evidence shows X gap"; the prescription goes in
handoff-optimize-seo.mdand runs throughoptimize-seo.
Before Starting
Per references/_shared/before-starting-check.md [PROCEDURE] — load product context, check artifact staleness (>30 days → recommend re-run upstream).
| Artifact | Source | Required? |
|---|---|---|
icp-research.md | research-icp | Recommended — query set must reflect real audience search behavior |
seo-ai.md / seo-audit.md | optimize-seo | Optional — informs which queries the strategy expects to win |
Prior docs/forsvn/artifacts/marketing/aeo-monitor/[slug]/snapshots/ | this skill | Optional — enables trend mode in full-report |
Pre-Dispatch
Canonical Pre-Dispatch: references/_shared/pre-dispatch-protocol.md [PROCEDURE].
Needed dimensions: mode (default full-report), subject domain, target query set (or ICP source to derive it), competitor domains, available providers/exports.
Query-set design (Layer 0, locked). Pre-Dispatch produces a balanced, locked query-set.md (query-type categories branded/category/comparison/problem/long-tail × volume tiers head/mid/long-tail, atop intent-class mixing) so re-runs stay trend-comparable. Design contract: references/procedures/pre-dispatch.md § "Query-set design".
Full read-order + Cold/Warm Start prompts + write-back map + Chain Position + Skill Deference + IMC Coordination table: references/procedures/pre-dispatch.md [PROCEDURE].
Mode Resolution
Per references/_shared/mode-resolver.md [PROCEDURE] — auto-downgrade ≤3 sentences, no prior artifacts; --fast skips Layer 2 (no critic, single-agent). --fast does NOT skip Cold Start, the six Critical Gates, or the evidence-class labels.
Session execution profile (single-vs-multi): inherit per references/_shared/execution-policy.md.
Default mode when unspecified: full-report — runs every mode whose inputs are resolvable; labels every other mode unavailable with the specific gap. One dated snapshot per run; single-mode runs are opt-in.
Agent Manifest
8 sub-agents across three layers (Layer 0 sequential pre-checks + Layer 1 parallel ingestors + Layer 2 sequential report→critic). Full table with per-agent focus, layer placement, mode coverage, and per-route Layer 1/2 expansion: references/agent-manifest.md [PROCEDURE].
Routing — Mode-Based Dispatch
Default is full-report (snapshot is the primary job). Single-mode runs are opt-in.
| Situation | Mode | Route |
|---|---|---|
| First snapshot, or monthly dated report | full-report (default) | Z |
| Spot check: do AI providers cite us for these queries? | ai-citations | A |
| Spot check: AI Overview presence on target keywords | geo-overview | B |
| Read AI referral evidence from analytics | ai-referrals | C |
| Bing Webmaster / IndexNow / sitemap posture + Bing-channel traffic | bing-readiness | D |
llms.txt / llms-full.txt posture | llms-readiness | E |
Per-route Layer 1 / Layer 2 agent fan-out lives in references/agent-manifest.md § "Per-route expansion". Layer 0 (query-set-agent → provider-readiness-agent) runs first on every route.
Full pre-writing object schema, 8-step Multi-Agent Dispatch flow, Single-Agent Fallback, --fast execution path: references/procedures/dispatch-mechanics.md [PROCEDURE].
Artifact Contract
Output path: docs/forsvn/artifacts/marketing/aeo-monitor/[slug]/ (a directory):
docs/forsvn/artifacts/marketing/aeo-monitor/[slug]/
report.md # dated report (this run)
query-set.md # the locked query × provider matrix used this run
handoff-optimize-seo.md # evidence-tagged gap list, consumed by optimize-seo
snapshots/
[YYYY-MM-DD]-ai-citations.json
[YYYY-MM-DD]-geo-overview.json
[YYYY-MM-DD]-ai-referrals.json
[YYYY-MM-DD]-readiness.json
[slug] = kebab-cased subject domain (e.g., example-com for example.com). Snapshot files are written only when their mode (or full-report) ran.
Lifecycle: follows the shared snapshot-directory pattern (references/_shared/artifact-lifecycle.md [PROCEDURE]): snapshots append-only (one set per date), report.md / query-set.md / handoff-optimize-seo.md rewritten in place (prior copies in git). Trend computation reads snapshots/*.json.
Frontmatter (REQUIRED on report.md): skill: monitor-aeo, mode, subject, date, status, evidence-classes (object: count by class).
Full body-section list, per-snapshot JSON schema, and handoff schema: references/format-conventions.md [PROCEDURE].
Anti-Patterns
references/anti-patterns.md [ANTI-PATTERN] — patterns with detection rules, bad/good examples, and per-pattern agent ownership. Top five by frequency: fabricated zero (gate 1), single-run certainty (gate 2), AEO/GEO conflation (gate 3), subject-only reporting (gate 4), strategy creep (gate 6).
Durable Rules (protected)
<!-- SLOW_UPDATE_START --> <!-- No pinned rules yet. Populate via the slow-update workflow (see references/slow-update-fence.md). Each pinned rule must (a) be procedural not instance-specific, (b) be earned from a regression or critic-flagged failure, (c) cite the artifact / decision record that justified pinning. --> <!-- SLOW_UPDATE_END -->Completion Status
Every run ends with explicit status:
- DONE — selected mode executed end-to-end, every evidence cell labeled with class + provenance, critic PASS within 2 cycles, handoff written
- DONE_WITH_CONCERNS — analysis delivered with labeled provider gaps (credentials missing, export incomplete, single-run only); every gap named with the specific input that would resolve it
- BLOCKED — query set un-derivable (no ICP source AND no operator-supplied queries) OR subject domain not supplied; state exactly what's blocked + what unblocks
- NEEDS_CONTEXT — operator invoked a single-mode route whose inputs are entirely missing (e.g.,
ai-citationswith zero provider exports); recommendfull-reportto capture whatever evidence is available, or state which exports to supply
Next Step
Hand handoff-optimize-seo.md to optimize-seo for strategy + page-rewrite work. Re-run on cadence (monthly default) to extend the trend series.
Worked Example
End-to-end Route Z walkthrough (Pre-Dispatch → Layer 0 → parallel Layer 1 → merge → critic PASS → deliver → handling missing providers → --fast variant): references/examples/aeo-walkthrough.md [EXAMPLE].
References
- Playbook:
references/playbook.md[PLAYBOOK] - Agent manifest:
references/agent-manifest.md[PROCEDURE] - Format:
references/format-conventions.md[PROCEDURE] - Anti-patterns:
references/anti-patterns.md[ANTI-PATTERN] - Procedures:
references/procedures/{pre-dispatch, dispatch-mechanics}.md[PROCEDURE] - Example:
references/examples/aeo-walkthrough.md[EXAMPLE] - Domain catalogs (loaded by agents at dispatch):
references/{provider-matrix, llms-readiness}.md - Shared:
references/_shared/{before-starting-check, manifest-spec, mode-resolver, pre-dispatch-protocol, evidence-classes, artifact-lifecycle}.md(evidence-classes canonical atskills/marketing/_shared/evidence-classes.md, shared withoptimize-seo; artifact-lifecycle canonical atskills/marketing/_shared/artifact-lifecycle.md) - Agents: 8 sub-agents in
agents/— seereferences/agent-manifest.md.critic-agent.mdholds the canonical 8-item quality gate + Rewrite Routing Table.
What ships with it: 31 files
297.0 KB alongside SKILL.md, 5 of them executable
agents/
- citation-monitor-agent.md6.5 KB
- critic-agent.md8.3 KB
- geo-monitor-agent.md6.3 KB
- provider-readiness-agent.md6.5 KB
- query-set-agent.md8.1 KB
- readiness-agent.md9.0 KB
- report-agent.md8.1 KB
- traffic-monitor-agent.md6.7 KB
references/
- agent-manifest.md3.2 KB
- anti-patterns.md6.8 KB
- examples/aeo-walkthrough.md17.1 KB
- format-conventions.md8.9 KB
- llms-readiness.md6.6 KB
- playbook.md6.8 KB
- procedures/dispatch-mechanics.md7.8 KB
- procedures/pre-dispatch.md10.5 KB
- provider-matrix.md6.7 KB
- _shared/artifact-lifecycle.md3.9 KB
- _shared/before-starting-check.md9.8 KB
- _shared/evidence-classes.md12.0 KB
- _shared/execution-policy.md7.0 KB
- _shared/manifest-spec.md29.2 KB
- _shared/meter-instrumentation.md5.0 KB
- _shared/mode-resolver.md11.0 KB
- _shared/pre-dispatch-protocol.md20.2 KB
scripts/
- bootstrap-experience.tsruns3.6 KB
- forsvn-hosted.tsruns4.3 KB
- lib/hosted-api.tsruns8.7 KB
- lib/path-parser.tsruns11.6 KB
- manifest-sync.tsruns33.1 KB
- routing.yaml3.6 KB