Agent skill · Audited from source
Content Decay Detector
skill · Affitor/affiliate-skillsMIT licenceAudited 15 Oct 2026 · source 2515ce9634da
Is it safe? Yes — SAFE, grade B (89/100). We read this skill's source at commit 2515ce9634da and found no filesystem, network or shell access and no hard-coded secrets. What it does: Monitor existing content for ranking drops and trigger refresh workflows. Triggers on: "check for content decay", "which content needs updating", "content refresh", "ranking drops", "traffic decline", "stale content",…
Cite
Cite this page
ModelsAtlas. “Content Decay Detector (Affitor/affiliate-skills)”. Retrieved 15 Oct 2026. https://modelsatlas.com/skills/affitor/content-decay-detector
Trust audit
Audit 0.4.1 · source read 15 Oct 2026
SAFE means nothing in the source contradicts what the skill says it does. Grade B is shared by 13,985 of 14,816 audited skills.
What the source does
- FilesystemNone observedNo reads or writes in the source
- NetworkNone observedNo outbound calls in the source
- ShellNone observedNo commands run in the source
- DependenciesPinnedNothing floats
- SecretsNone foundNo keys in source
Five audit layers
| Layer | What we check | Result | Findings |
|---|---|---|---|
L0 Provenance | Repo owner, licence, archive status, activity | PASS | 0 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | NA | 0 |
L2 Instructions | Prompt injection, authority framing, hidden directives | PASS | 0 |
L3 Inventory | The files and declarations match the source | PASS | 0 |
L4 Sandbox | Run in isolation and watch behaviour | SKIPPED why | 0 |
Gates applied: no behavioural pass.
Findings (0)
No findings at any severity. We re-audit when the source changes.
Audit 0.4.1 · source sha 2515ce9634da · 15 Oct 2026Report an issue or request a re-scan
Provenance
Who published it, and what the verdict is pinned to
- PublisherAffitor GitHub organizationOwner of the repository this skill is read from
- Source folderAffitor/affiliate-skills/skills/blog/content-decay-detectorThe exact folder we audited
- LicenceMITAs the repository states it
- Commit pinned for this verdict2515ce9634daA new audit runs when the source changes
- Repository statusNot archivedLast push 2 days ago
- Sandboxed runNot runSkills are read, not executed; layer L4 is skipped
What it tells the agent
Full source on GitHub ↗Its description: Monitor existing content for ranking drops and trigger refresh workflows. Triggers on: "check for content decay", "which content needs updating", "content refresh", "ranking drops", "traffic decline", "stale content",…
---
name: content-decay-detector
description: >
Monitor existing content for ranking drops and trigger refresh workflows.
Triggers on: "check for content decay", "which content needs updating", "content refresh",
"ranking drops", "traffic decline", "stale content", "content audit", "what to refresh",
"outdated content", "content performance check", "update old articles",
"declining rankings", "content maintenance", "refresh priority list",
"which articles are losing traffic", "SEO content audit".
license: MIT
version: "1.0.0"
tags: ["affiliate-marketing", "blogging", "seo", "content-writing", "content-audit", "decay"]
compatibility: "Claude Code, ChatGPT, Gemini CLI, Cursor, Windsurf, OpenClaw, any AI agent"
metadata:
author: affitor
version: "1.0"
stage: S3-Blog
---
# Content Decay Detector
Monitor existing content for ranking drops and generate a prioritized refresh queue. Refreshing decaying content is the highest-ROI SEO activity — it's faster and cheaper than creating new content, and recovering a lost position is easier than earning a new one.
## Stage
S3: Blog & SEO — Blog maintenance and optimization. This skill keeps your existing content competitive and prevents rankings from silently eroding.
## When to Use
- User has existing blog content and wants to check for decay
- User notices traffic declining on specific pages
- User asks "what content needs updating?"
- User says "content decay", "ranking drops", "stale content", "refresh", "content audit"
- Monthly maintenance check — should run every 30 days on active blogs
- After `seo-audit` reveals declining pages
## Input Schema
```yaml
site_url: string # REQUIRED — the site to audit
# e.g., "myblog.com", "example.com/blog"
content_list: object[] # OPTIONAL — specific pages to check
- url: string # Page URL
title: string # Page title
publish_date: string # Original publish date
last_updated: string # Last update date
target_keyword: string # Primary keyword
check_competitors: boolean # OPTIONAL — whether to check if competitors published fresher content
# Default: true
timeframe: string # OPTIONAL — "30d" | "90d" | "6m" | "1y"
# Default: "90d"
```
**Chaining from S6 seo-audit**: Use `declining_pages` as the `content_list`.
## Workflow
### Step 1: Gather Content Data
If `content_list` not provided:
1. `web_search`: `site:[site_url]` — discover indexed pages
2. Identify the top 15-20 most important pages (by topic relevance)
3. For each page, note: title, URL, apparent publish/update date
### Step 2: Check for Decay Signals
Read `shared/references/seo-strategy.md` for decay signals and refresh methodology.
For each page:
1. `web_search` for the page's target keyword — check current ranking position
2. Look for decay signals:
- **Outdated information**: Product features, pricing, dates mentioned
- **Competitor freshness**: Newer, better content published by competitors
- **Missing elements**: No images, no data, thin content compared to current SERP
- **Broken patterns**: "2023" in a title when it's 2025+, discontinued products mentioned
### Step 3: Score Decay Priority
For each decaying page, assign priority:
| Factor | Score | Criteria |
|---|---|---|
| Revenue impact | 1-5 | Contains affiliate links + had traffic = high revenue impact |
| Decay severity | 1-5 | Major outdated info = 5, minor = 1 |
| Fix effort | 1-5 (inverted) | Easy fix = 5, full rewrite = 1 |
| Competitor threat | 1-5 | Competitor published better version = 5 |
**Priority = Revenue × Decay × Fix_Ease × Competitor_Threat** (normalized)
### Step 4: Generate Refresh Instructions
For each page in priority order, specify:
1. **What's decayed** — specific outdated elements
2. **What to update** — concrete changes to make
3. **What to add** — new sections, data, or elements competitors have
4. **Internal linking** — new pages to link to/from since original publish
5. **Estimated effort** — time to refresh
### Step 5: Self-Validation
- [ ] Decay signals are evidence-based (not guesses)
- [ ] Priority ordering makes business sense (revenue-impacting first)
- [ ] Refresh instructions are specific and actionable
- [ ] Effort estimates are realistic
- [ ] Not recommending refreshes for content that's performing fine
## Output Schema
```yaml
output_schema_version: "1.0.0"
content_decay:
site: string
pages_analyzed: number
pages_decaying: number
total_refresh_effort: string # Estimated total hours
decaying_pages:
- url: string
title: string
priority: string # "P0-critical" | "P1-high" | "P2-medium" | "P3-low"
decay_signals: string[]
refresh_actions: string[]
estimated_effort: string
revenue_impact: string # "high" | "medium" | "low"
healthy_pages: string[] # Pages that don't need refresh
chain_metadata:
skill_slug: "content-decay-detector"
stage: "blog"
timestamp: string
suggested_next:
- "affiliate-blog-builder"
- "seo-audit"
- "internal-linking-optimizer"
- "keyword-cluster-architect"
```
## Output Format
```
## Content Decay Report: [Site]
### Summary
- **Pages analyzed:** XX
- **Pages decaying:** XX
- **Total refresh effort:** XX hours
- **Estimated traffic recovery:** XX%
### Priority Refresh Queue
#### P0 — Critical (do this week)
**[Page Title]** — [URL]
- Decay: [what's wrong]
- Action: [what to do]
- Effort: [time estimate]
- Impact: [expected result]
#### P1 — High (do this month)
[same structure]
#### P2 — Medium (schedule)
[same structure]
### Healthy Pages (no action needed)
- [Page] — still ranking, content fresh
- [Page] — recently updated
### Monthly Maintenance Schedule
- Week 1: Refresh P0 pages
- Week 2: Refresh P1 pages
- Week 3: Create new content for gaps found
- Week 4: Internal linking review
```
## Error HaExcerpt, first 6,000 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.
Install
Pinned to the audited commit 2515ce9
git clone https://github.com/Affitor/affiliate-skills git -C affiliate-skills checkout 2515ce9634da
The author documents no install command, so this uses the repository directly. Our verdict covers commit 2515ce9634da only.
Works in which agents?
What its own text says, not a test
| Agent | Status | More |
|---|---|---|
| Claude Code | Mentioned in its text, not tested | Skills for Claude Code · About Claude Code |
| Cursor | Mentioned in its text, not tested | Skills for Cursor · About Cursor |
| Gemini CLI | Mentioned in its text, not tested | Skills for Gemini CLI · About Gemini CLI |
| OpenClaw | Mentioned in its text, not tested | Skills for OpenClaw · About OpenClaw |
| Windsurf | Mentioned in its text, not tested | Skills for Windsurf · About Windsurf |
Audit history
Every audit, every source change
- ✓SAFE B 89 / 100
first audit · source
2515ce9634da
README badge
For maintainers · shows the latest audit
[](https://modelsatlas.com/skills/affitor/content-decay-detector/)
The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.
Similar skills
Affitor/affiliate-skills
Generate A/B test variants for affiliate content. Triggers on: "create A/B test", "test my headline", "optimize my CTA", "generate variants", "split test ideas", "improve click-through rate", "test my landing page…
Affitor/affiliate-skills
Write SEO-optimized affiliate blog articles, product reviews, comparison posts, listicles, and how-to guides. Triggers on: "write a blog post about", "review of [product]", "best [category] article", "comparison blog",…
Affitor/affiliate-skills
Research and evaluate affiliate programs to find the best ones to promote. Use this skill when the user asks anything about finding affiliate programs, comparing commission rates, evaluating affiliate opportunities,…
Affitor/affiliate-skills
Create a Linktree-style bio link hub page as a single self-contained HTML file. Triggers on: "create a bio link page", "make a linktree", "link in bio page", "bio link", "link hub", "create my link page", "all my links…
Affitor/affiliate-skills
Design exclusive bonus packages that make YOUR affiliate link the obvious choice. Triggers on: "create bonuses for", "bonus stack", "what bonuses should I offer", "bonus ideas for", "exclusive bonuses", "differentiate…
Affitor/affiliate-skills
Define a new category where your product wins by default. Reframe the buying decision. Triggers on: "create a category", "category design", "define my category", "category of one", "reframe the market", "position as…
Add this badge to your README
[](https://modelsatlas.com/skills/affitor/content-decay-detector/)
<a href="https://modelsatlas.com/skills/affitor/content-decay-detector/"><img src="https://modelsatlas.com/skills/affitor/content-decay-detector/badge.svg" alt="ModelsAtlas: SAFE B"></a>
Questions about Content Decay Detector
What does the Content Decay Detector skill do?
Is Content Decay Detector safe to install?
What can Content Decay Detector access on my machine?
Which assistants does Content Decay Detector work with?
How current is this page?
Sources
- github.com/Affitor/affiliate-skills/tree/main/skills/blog/conten — the audited source at commit 2515ce9634da and every finding aboveObserved · 15 Oct 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- What does the Content Decay Detector skill do?
- Is Content Decay Detector safe to install?
- What can Content Decay Detector access on my machine?