Skip to content
Content
Skill

/cf-analytics

Show content analytics: quality-score trends, slowest pipeline phase and alerts over 7-90 days. \"how is production going\"

From plugin
contentforge
3222 skills13 agents9 commands

Claude Code

$ npx -y skills add indranilbanerjee/contentforge --skill cf-analytics --agent claude-code

SKILL.md

cf-analytics.SKILL.md
name: cf-analytics
description: "Show content analytics: quality-score trends, slowest pipeline phase and alerts over 7-90 days. \"how is production going\""
effort: low
argument-hint: "[--period 7|30|90] [--brand <name>] [--type <content-type>] [--focus quality|timing|compliance|citations]"

Content Analytics Dashboard

> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).

Track ContentForge production quality, pipeline timing, brand-specific patterns, and compliance trends over configurable time periods with automated insights and alert flags.

When to Use

Use `/contentforge:cf-analytics` when you need:

  • **Quality trend visibility** — Are scores improving or declining over time?
  • **Pipeline performance audit** — Which phases are slowest? Where are bottlenecks?
  • **Brand comparison** — Which brands consistently score highest/lowest?
  • **Content type analysis** — Are articles scoring better than whitepapers?
  • **Compliance monitoring** — Citation rates, brand adherence, loop frequency
  • **Capacity planning** — Average throughput for estimating batch timelines

**For real-time batch monitoring**, use the Progress Tracker (built into `/contentforge:batch-process`). **For individual content production**, use [`/contentforge:create-content`](../../commands/create-content.md).

What This Command Does

Loads historical production data from the brand's configured tracking backend (Google Sheets, Airtable, or local — see `tracking.backend` in the brand profile), calculates aggregate metrics across configurable dimensions, identifies statistical outliers and concerning trends, generates an ASCII dashboard with actionable recommendations, and flags alerts when performance degrades.

**Process Flow:**

1. **Load Data** — Read tracking records from the brand's tracking backend (Google Sheets / Airtable / local JSON) 2. **Filter & Parse** — Apply time period, brand, content type, and metric focus filters 3. **Calculate Aggregates** — Average scores, trends, percentiles, phase timing breakdowns 4. **Detect Outliers** — Flag data points beyond 2.0 standard deviations from mean 5. **Generate Insights** — Identify patterns, correlations, and improvement opportunities 6. **Present Dashboard** — Render ASCII analytics display with charts and recommendations 7. **Alert Check** — Evaluate alert rules and surface any triggered flags

Required Inputs

**Optional (all have defaults):**

  • **Time Period** — `7` | `30` | `90` days (default: `30`)
  • **Brand Filter** — Filter to specific brand (default: all brands)
  • **Content Type Filter** — `article` | `blog` | `whitepaper` | `faq` | `research_paper` | `video_script` | `case_study` | `newsletter` (default: all types)
  • **Metric Focus** — `quality` | `timing` | `compliance` | `citations` (default: `quality`)

How to Use

Default Dashboard (Last 30 Days, All Brands)

/contentforge:cf-analytics

Specific Time Period

/contentforge:cf-analytics --period=90

Brand-Specific Analysis

/contentforge:cf-analytics --brand=AcmeMed --period=30

Content Type Focus

/contentforge:cf-analytics --type=whitepaper --period=90

Metric-Specific Deep Dive

/contentforge:cf-analytics --focus=timing --period=30

Combined Filters

/contentforge:cf-analytics --brand=AcmeMed --type=article --focus=quality --period=90

Data Sources

Data source: the brand's tracking backend

ContentForge's Output Manager (Phase 8) logs every completed piece to the backend configured in the brand profile (`tracking.backend`):

  • **`google_sheets`** — rows in the configured Google Sheet (read via `scripts/sheets-tracker.py`)
  • **`airtable`** — records in the configured Airtable base (read via `scripts/airtable-tracker.py`)
  • **`local`** — `tracking.json` under `~/.claude-marketing/{brand-slug}/tracking/` (read via `scripts/local-tracker.py`)

All three backends share the same record schema:

| Column | Type | Description | |--------|------|-------------| | requirement_id | string | Unique content ID (REQ-001) | | title | string | Content title | | brand | string | Brand profile used | | content_type | enum | article, blog, whitepaper, faq, research_paper, video_script, case_study, newsletter | | word_count | integer | Final word count | | quality_score | float | Composite score (0-10) | | content_quality | float | Dimension score (0-10) | | citation_integrity | float | Dimension score (0-10) | | brand_compliance | float | Dimension score (0-10) | | seo_performance | float | Dimension score (0-10) | | readability | float | Dimension score (0-10) | | processing_time_min | float | Total pipeline time in minutes | | phase_1_time | float | Research phase duration | | phase_2_time | float | Fact-check phase duration | | phase_3_time | float | Drafting phase duration | | phase_4_time | float | Validation phase duration | | phase_5_time | float | Structuring phase duration | | phase_6_time | float | SEO phase duration | | phase_6_5_time | float | Humanizer phase duration | | phase_7_time | float | Reviewer phase duration | | phase_8_time | float | Output phase duration | | loops_used | integer | Total feedback loops triggered | | loop_details | string | Which loops fired (e.g., "P4>P3 x1, P7>P5 x1") | | citations_count | integer | Number of citations in final output | | broken_links | integer | Broken links detected (should be 0) | | completed_at | datetime | Completion timestamp | | output_url | string | Google Drive link to .docx |

Default when no cloud backend is configured

The `local` backend is the default: tracking data lives at

~/.claude-marketing/{brand-slug}/tracking/tracking.json

Switch backends anytime with `/contentforge:cf-switch-backend` (migration is additive and idempotent).

What Happ

Read more
@indranilbanerjee
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.

3222 skills13 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
32
Star history of indranilbanerjee/contentforge on GitHub, a chart by star-history.com

Other skills on contentforge.

More skills from other plugins.

prompt-lookup

prompt-lookup

Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…

@gh-f@gh-fInstall Skill
ppt-master

ppt-master

AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…

@hugohe3@hugohe3Install Skill
morph-ppt

morph-ppt

Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…

officecli12d33k
@iofficeai@iofficeaiInstall Skill

Questions about cf-analytics.

Which coding agents can use cf-analytics?
cf-analytics installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.