Performance Reporter
Aggregates SEO/GEO data, builds stakeholder reports, benchmarks goals/competitors, calculates ROI, and turns deltas into prioritized recommendations.
Quick Start
Create an SEO performance report for [domain] for [time period]
Generate an executive summary of SEO performance for [month/quarter]
Create a GEO visibility report for [domain]
Generate a content performance report
Skill Contract
Expected output: a delta summary, alert/report output, and a short handoff summary ready for memory/monitoring/.
- Reads: current and prior-period metrics across traffic/rankings/authority/content, report audience, date range, and any user-provided or tool data.
- Writes: a user-facing monitoring deliverable plus a reusable summary that can be stored under
memory/monitoring/.
- Promotes: significant changes, confirmed anomalies, follow-up actions, and pending decisions to
memory/open-loops.md.
- Done when: each in-scope section (traffic, rankings, GEO, authority, backlinks, content) is present or marked "Not yet evaluated"; every metric is source-tagged and compared to the prior period; and recommendations carry owner, priority, and expected impact.
- Primary next skill: use the
Next Best Skill below when a change needs action.
Handoff Summary
Emit the standard shape from skill-contract.md §Handoff Summary Format.
Data Sources
All integrations optional (see CONNECTORS.md). With tools connected, aggregates traffic from ~~analytics, search data from ~~search console, rankings/backlinks from ~~SEO tool, and AI visibility from ~~AI monitor. Without tools, ask user for analytics exports, Search Console data, ranking data, and KPIs.
Zero-dependency measurement loop: every reported change should come from a computed delta, not an eyeballed estimate. Store each reporting period's KPIs and let the ledger compute period-over-period movement: python3 "${CLAUDE_PLUGIN_ROOT}/scripts/connectors/ledger.py" record <domain> --source report --data '{"sessions": ..., "clicks": ..., ...}', then ledger.py diff <domain> --source report for the period delta and ledger.py trend <domain> --source report --field <kpi> for the trend line. Label every figure Measured / User-provided / Estimated accordingly, and attribute outcome movements against a control rather than to the latest change by default — see references/measurement-protocol.md. See scripts/connectors/README.md.
Decision Gates
Stop and ask the user when:
- No reporting period or comparison period can be determined and none is in context — offer: (1) last 30 days vs prior 30, (2) last calendar month vs prior month, (3) a custom range. A period comparison is required, not optional.
Continue silently (never stop for):
- A section's source data is missing — mark that section "Not yet evaluated" and proceed; do not fabricate the metric.
- Audience not stated — default to the executive template and note the assumption.
Instructions
When a user requests a performance report, use Report Output Templates and cover:
- Define Report Parameters — Domain, period, comparison period, report type, audience, focus areas, and data freshness.
- Create Executive Summary — Overall rating, wins, watch areas, required actions, metrics at a glance (traffic, rankings, conversions, DA/authority, AI citations), and SEO ROI; tag each metric Measured / User-provided / Estimated.
- Report Organic Traffic — Sessions, users, pageviews, engagement/bounce, trend visualization, source/device split, top pages, each figure source-tagged.
- Report Keyword Rankings — Position ranges, distribution change, top improvements/declines, SERP features. For raw position-by-position deltas, defer to rank-tracker rather than recomputing here.
- Report GEO/AI Performance — AI citation overview, citations by topic, GEO wins, and optimization opportunities.
- Report Domain Authority (CITE) — Include CITE dimension scores and veto status when available; otherwise mark "Not yet evaluated."
- Report Content Quality (CORE-EEAT) — Include average scores and trends when available; otherwise mark "Not yet evaluated."
- Report Backlinks — Link profile summary, acquisition trend, notable links, competitive position.
- Report Content Performance — Publishing summary, top content, content needing attention, and content ROI.
- Generate Recommendations — Immediate, short-term, and long-term actions with priority, owner, expected impact, and next-period goals.
- Compile Full Report — Add table of contents, appendix, data sources, methodology, and glossary.
Label every metric Measured (tool/export), User-provided, or Estimated (model inference); never present an estimate as measured; if a required metric is unavailable, mark it N/A — do not invent it. Likewise separate an observed change from a plausible explanation (corroborate before stating it as the cause), an optimization opportunity, and follow-up needing crawl/SERP/rank/audit — never report an unverified explanation as a confirmed cause.
Example
Sample output: an executive summary with overall status, metrics-at-a-glance for traffic/rankings/conversions/authority/AI citations, SEO ROI, and immediate/month/quarter actions with owners and dates.
Save Results
Ask "Save these results?" If yes, write to memory/monitoring/ — see Skill Contract §Save Results Template.
Reference Materials
- Report Output Templates — Compact starter blocks for all 11 report sections
- KPI Definitions — SEO/GEO metric definitions with benchmarks, thresholds, trend analysis, and attribution guidance
- Report Templates by Audience — Copy-ready templates for executive, marketing, technical, and client audiences
Next Best Skill
Recurring monitoring needed → alert-manager — turn reporting insights into ongoing monitoring rules. One-off report → Terminal. Visited-set rule applies per Skill Contract.
1---2name: performance-reporter-23description: Use when the user asks to "generate an SEO report" or "出月报"; builds multi-metric stakeholder reports and dashboards spanning traffic, rankings, authority, and content progress. Not for raw ranking deltas — use rank-tracker. SEO报告/绩效仪表盘4license: Apache-2.05---6
7# Performance Reporter
8
9Aggregates SEO/GEO data, builds stakeholder reports, benchmarks goals/competitors, calculates ROI, and turns deltas into prioritized recommendations.
10
11## Quick Start
12
13```text
14Create an SEO performance report for [domain] for [time period]
15Generate an executive summary of SEO performance for [month/quarter]
16Create a GEO visibility report for [domain]
17Generate a content performance report
18```
19
20## Skill Contract
21
22**Expected output**: a delta summary, alert/report output, and a short handoff summary ready for `memory/monitoring/`.
23
24- **Reads**: current and prior-period metrics across traffic/rankings/authority/content, report audience, date range, and any user-provided or tool data.
25- **Writes**: a user-facing monitoring deliverable plus a reusable summary that can be stored under `memory/monitoring/`.
26- **Promotes**: significant changes, confirmed anomalies, follow-up actions, and pending decisions to `memory/open-loops.md`.
27- **Done when**: each in-scope section (traffic, rankings, GEO, authority, backlinks, content) is present or marked "Not yet evaluated"; every metric is source-tagged and compared to the prior period; and recommendations carry owner, priority, and expected impact.
28- **Primary next skill**: use the `Next Best Skill` below when a change needs action.
29
30### Handoff Summary
31
32> Emit the standard shape from [skill-contract.md §Handoff Summary Format](../../references/skill-contract.md).
33
34## Data Sources
35
36All integrations optional (see [CONNECTORS.md](../../CONNECTORS.md)). With tools connected, aggregates traffic from ~~analytics, search data from ~~search console, rankings/backlinks from ~~SEO tool, and AI visibility from ~~AI monitor. Without tools, ask user for analytics exports, Search Console data, ranking data, and KPIs.
37
38**Zero-dependency measurement loop**: every reported change should come from a computed delta, not an eyeballed estimate. Store each reporting period's KPIs and let the ledger compute period-over-period movement: `python3 "${CLAUDE_PLUGIN_ROOT}/scripts/connectors/ledger.py" record <domain> --source report --data '{"sessions": ..., "clicks": ..., ...}'`, then `ledger.py diff <domain> --source report` for the period delta and `ledger.py trend <domain> --source report --field <kpi>` for the trend line. Label every figure Measured / User-provided / Estimated accordingly, and attribute outcome movements against a control rather than to the latest change by default — see [references/measurement-protocol.md](../../references/measurement-protocol.md). See [scripts/connectors/README.md](../../scripts/connectors/README.md).
39
40## Decision Gates
41
42**Stop and ask the user when:**
43- No reporting period or comparison period can be determined and none is in context — offer: (1) last 30 days vs prior 30, (2) last calendar month vs prior month, (3) a custom range. A period comparison is required, not optional.
44
45**Continue silently (never stop for):**
46- A section's source data is missing — mark that section "Not yet evaluated" and proceed; do not fabricate the metric.
47- Audience not stated — default to the executive template and note the assumption.
48
49## Instructions
50
51When a user requests a performance report, use [Report Output Templates](references/report-output-templates.md) and cover:
52
531. **Define Report Parameters** — Domain, period, comparison period, report type, audience, focus areas, and data freshness.
542. **Create Executive Summary** — Overall rating, wins, watch areas, required actions, metrics at a glance (traffic, rankings, conversions, DA/authority, AI citations), and SEO ROI; tag each metric Measured / User-provided / Estimated.
553. **Report Organic Traffic** — Sessions, users, pageviews, engagement/bounce, trend visualization, source/device split, top pages, each figure source-tagged.
564. **Report Keyword Rankings** — Position ranges, distribution change, top improvements/declines, SERP features. For raw position-by-position deltas, defer to rank-tracker rather than recomputing here.
575. **Report GEO/AI Performance** — AI citation overview, citations by topic, GEO wins, and optimization opportunities.
586. **Report Domain Authority (CITE)** — Include CITE dimension scores and veto status when available; otherwise mark "Not yet evaluated."
597. **Report Content Quality (CORE-EEAT)** — Include average scores and trends when available; otherwise mark "Not yet evaluated."
608. **Report Backlinks** — Link profile summary, acquisition trend, notable links, competitive position.
619. **Report Content Performance** — Publishing summary, top content, content needing attention, and content ROI.
6210. **Generate Recommendations** — Immediate, short-term, and long-term actions with priority, owner, expected impact, and next-period goals.
6311. **Compile Full Report** — Add table of contents, appendix, data sources, methodology, and glossary.
64
65Label every metric **Measured** (tool/export), **User-provided**, or **Estimated** (model inference); never present an estimate as measured; if a required metric is unavailable, mark it N/A — do not invent it. Likewise separate an **observed change** from a **plausible explanation** (corroborate before stating it as the cause), an **optimization opportunity**, and **follow-up** needing crawl/SERP/rank/audit — never report an unverified explanation as a confirmed cause.
66
67## Example
68
69Sample output: an executive summary with overall status, metrics-at-a-glance for traffic/rankings/conversions/authority/AI citations, SEO ROI, and immediate/month/quarter actions with owners and dates.
70
71## Save Results
72
73Ask "Save these results?" If yes, write to `memory/monitoring/` — see [Skill Contract](../../references/skill-contract.md) §Save Results Template.
74
75## Reference Materials
76
77- [Report Output Templates](references/report-output-templates.md) — Compact starter blocks for all 11 report sections
78- [KPI Definitions](references/kpi-definitions.md) — SEO/GEO metric definitions with benchmarks, thresholds, trend analysis, and attribution guidance
79- [Report Templates by Audience](references/report-templates.md) — Copy-ready templates for executive, marketing, technical, and client audiences
80
81## Next Best Skill
82
83Recurring monitoring needed → [alert-manager](../alert-manager/SKILL.md) — turn reporting insights into ongoing monitoring rules. One-off report → Terminal. Visited-set rule applies per [Skill Contract](../../references/skill-contract.md).