Skip to content
Content
Skill

/cf-audit

Audit an existing content library for freshness decay and coverage gaps — scores every piece 0-100 on age, statistic currency, link health, and citation recency, maps covered topics against target keywords, and produces a prioritized report: top refresh candidates, gap topics,

From plugin
contentforge
2822 skills13 agents9 commands
Install
$ npx -y skills add indranilbanerjee/contentforge --skill cf-audit --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/cf-audit

Context preview

The summary Claude sees to decide when to auto-load this skill.

Audit an existing content library for freshness decay and coverage gaps — scores every piece 0-100 on age, statistic currency, link health, and citation recency, maps covered topics against target keywords, and produces a prioritized report: top refresh candidates, gap topics,

SKILL.md

cf-audit.SKILL.md
name: cf-audit
description: "Audit an existing content library for freshness decay and coverage gaps — scores every piece 0-100 on age, statistic currency, link health, and citation recency, maps covered topics against target keywords, and produces a prioritized report: top refresh candidates, gap topics, retire candidates, and the exact follow-up commands. Triggers on \"/contentforge:cf-audit\", \"which content needs refreshing\", \"content health check\", \"what topics are we missing\", \"audit our blog library\". Reads inventory from a Google Drive folder, WordPress REST API, or CSV; pulls performance data only if Google Analytics/Search Console MCPs are connected. Audit only — refreshing happens via /contentforge:content-refresh and new pieces start at /contentforge:cf-brief."
argument-hint: "[content-path or URL]"
effort: medium

Content Library Audit

Audit your existing content library for freshness decay, coverage gaps, and optimization opportunities. The audit scores every piece for freshness, identifies content that needs refreshing, maps coverage gaps against keyword opportunities, and produces a prioritized action list with projected impact.

When to Use

Use `/contentforge:cf-audit` when:

  • You need a **quarterly or annual content health check** across your library
  • Search rankings are declining and you need to **identify which content to refresh first**
  • You want to find **coverage gaps** — topics your competitors rank for but you don't
  • You need to **prioritize refresh candidates** for `/contentforge:content-refresh` based on data
  • A new client wants an **audit before production** to avoid duplicating existing content
  • You're planning next quarter's content calendar and need to **balance new vs refresh**

**For refreshing specific pieces**, use `/contentforge:content-refresh` after the audit identifies candidates. **For producing new content** for identified gaps, use `/contentforge:cf-brief` then `/contentforge:create-content`.

All example blocks below are **SYNTHETIC EXAMPLES — fabricated for illustration**. Never reuse their numbers, titles, or URLs in real output.

What This Command Does

1. **Load Content Inventory** — Import content list from Google Drive folder, WordPress site, or CSV 2. **Freshness Scoring** — Score each piece 0-100 based on publication date, statistic currency, link health, and citation recency 3. **Coverage Gap Analysis** — Compare topics covered against keyword opportunities to find missing content 4. **Performance Analysis** — Pull traffic and engagement data if analytics are connected 5. **Prioritize Refresh Candidates** — Rank pieces by (high original value) + (low freshness score) to find the best ROI refreshes 6. **Generate Recommendations** — Produce actionable audit report with top 10 refresh candidates, coverage gaps, optimization recommendations, and projected impact

Required Inputs

**Content Source (one of):**

  • **Google Drive Folder URL** — Folder containing .docx files (e.g., `ContentForge Output/AcmeMed/`)
  • **WordPress Site URL** — WordPress REST API endpoint (e.g., `https://blog.acme.com`)
  • **CSV List** — CSV file with columns: `title`, `url`, `publish_date`, `content_type`, `word_count`

**Audit Scope:**

  • **freshness** — Freshness scoring and refresh candidate identification only
  • **gaps** — Coverage gap analysis only (compares your topics against keyword opportunities)
  • **both** (default) — Full audit: freshness scoring + coverage gap analysis

**Optional:**

  • **Time Threshold** — How many months old before content is considered "aging" (default: 12 months)
  • **Brand** — Filter audit to a specific brand (if multi-brand library)
  • **Target Keywords** — CSV of keywords to check coverage against (for gap analysis)

How to Use

Basic Usage (Google Drive)

/contentforge:cf-audit https://drive.google.com/drive/folders/ABC123

**Prompt:** "Audit scope? (freshness / gaps / both)"

WordPress Site Audit

/contentforge:cf-audit https://blog.acme.com --scope=both --threshold=12

CSV Inventory Audit

/contentforge:cf-audit content-inventory.csv --scope=freshness --threshold=6

Freshness-Only Audit

/contentforge:cf-audit https://drive.google.com/drive/folders/ABC123 --scope=freshness --threshold=18

Gap Analysis Only

/contentforge:cf-audit https://drive.google.com/drive/folders/ABC123 --scope=gaps --keywords=target-keywords.csv

What Happens

Step 1: Load Content Inventory (1-3 minutes)

Load content metadata from the specified source.

**From Google Drive:**

  • List all .docx files in the specified folder (and subfolders)
  • Extract metadata: title, publish date, word count, brand, content type
  • Read ContentForge quality scores from document properties (if originally produced by ContentForge)

**From WordPress:**

  • Call WordPress REST API (`/wp-json/wp/v2/posts?per_page=100`)
  • Extract: title, URL, publish date, modified date, word count, categories, tags
  • Paginate through all posts if >100

**From CSV:**

  • Parse CSV with required columns: title, url, publish_date
  • Optional columns: content_type, word_count, quality_score, brand

**Example Inventory Output:**

Content Inventory Loaded
================================================================

Source: Google Drive / ContentForge Output / AcmeMed
Total Pieces: 47
Content Types: 22 articles, 15 blogs, 6 whitepapers, 4 FAQs

Date Range: 2024-06-15 to 2026-07-20
  Published in last 6 months: 12 (26%)
  Published 6-12 months ago: 18 (38%)
  Published 12-24 months ago: 14 (30%)
  Published 24+ months ago: 3 (6%)

Brands: AcmeMed (32), AcmePharma (15)
Average Original Quality Score: 8.6/10
================================================================

Step 2: Freshness Scoring (3-5 minutes)

Score each piece 0-100 for freshness using four weighted factors.

**Freshness Score Formula:**

Freshness Score = (Age Score x 0.35) +
                  (Statistics Currency x 0.25) +
Read more
Ships withcontentforge

🌐 Read this in: English · हिन्दी · 中文 · 日本語 · 한국어 · Español · Português · العربية · اردو · தமிழ் · বাংলা · Русский You need to ship 30 articles this quarter that sound human, cite real sources, link into your funnel, and survive an editor who checks.

Get the whole plugin

Other skills on contentforge.