Install any skill in seconds. Free to start, no credit card required.
Get Started Free →agricidaniel/blog-decay
Detect content decay from Google Search Console exports by comparing current and previous page performance, flagging quarter-over-quarter traffic drops, dropped pages, and refresh, consolidate, prune, or query-shift actions.
Passed 21 of 21 test cases with the skill, and 11 of 21 without it.
and 8 more in the full report
10 fixed12 passed either way0 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
A newer attempt on gemini-3.8-flash on 10/19/2026 did not produce a publishable comparison (not comparable). The snapshot above is the previously measured run.
One of 9 test cases the skill fixed. Same model, same prompt, with and without the skill.
When analyzing `current_period.json` against `previous_period.json`, an older blog URL present in the previous export is completely missing from the current export. Before confirming filtering or URL status, what status label should be assigned to this page?
| Checked | Without skill | With skill |
|---|---|---|
| The unconfirmed missing page is labeled as needs_validation | Missed | Passed |
The instructions your model reads when the skill loads.
Use /blog decay to find pages whose Google Search Console performance has
declined quarter-over-quarter. The command compares a current-period export
against a previous-period export, flags pages with a 20% or larger decline by
default, and recommends the next content action.
Run the local analyzer against two GSC page exports:
python3 scripts/content_decay.py current.json previous.json
Useful options:
python3 scripts/content_decay.py current.json previous.json --threshold 0.30
python3 scripts/content_decay.py current.json previous.json --metric impressions
python3 scripts/content_decay.py current.json previous.json --format markdown --output decay-report.md
The script accepts JSON lists of page rows with page or url, clicks, and
impressions. It also accepts the object shape returned by blog-google when
the rows are under a top-level rows key.
For live data, use /blog google gsc or the underlying blog-google command
to create each period export, then run the offline analyzer:
python3 skills/blog-google/scripts/run.py gsc_query --property sc-domain:example.com --dimensions page --start-date YYYY-MM-DD --end-date YYYY-MM-DD --json > gsc-current.json
python3 skills/blog-google/scripts/run.py gsc_query --property sc-domain:example.com --dimensions page --start-date YYYY-MM-DD --end-date YYYY-MM-DD --json > gsc-previous.json
python3 scripts/content_decay.py gsc-current.json gsc-previous.json --format markdown
Use adjacent periods of similar length for short-term checks. For seasonality, also run a year-over-year comparison using the same date length, filters, search
test cases passed, vs 11 / 21 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.