$npx -y skills add indranilbanerjee/contentforge --skill cf-analyticsTrack content quality scores, pipeline timing, and compliance trends with insights and alerts.
| 1 | # Content Analytics Dashboard |
| 2 | |
| 3 | Track ContentForge production quality, pipeline timing, brand-specific patterns, and compliance trends over configurable time periods with automated insights and alert flags. |
| 4 | |
| 5 | ## When to Use |
| 6 | |
| 7 | Use `/contentforge:cf-analytics` when you need: |
| 8 | - **Quality trend visibility** — Are scores improving or declining over time? |
| 9 | - **Pipeline performance audit** — Which phases are slowest? Where are bottlenecks? |
| 10 | - **Brand comparison** — Which brands consistently score highest/lowest? |
| 11 | - **Content type analysis** — Are articles scoring better than whitepapers? |
| 12 | - **Compliance monitoring** — Citation rates, brand adherence, loop frequency |
| 13 | - **Capacity planning** — Average throughput for estimating batch timelines |
| 14 | |
| 15 | **For real-time batch monitoring**, use the Progress Tracker (built into `/contentforge:batch-process`). |
| 16 | **For individual content production**, use [`/contentforge:create-content`](../../commands/create-content.md). |
| 17 | |
| 18 | ## What This Command Does |
| 19 | |
| 20 | 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. |
| 21 | |
| 22 | **Process Flow:** |
| 23 | |
| 24 | 1. **Load Data** — Read tracking records from the brand's tracking backend (Google Sheets / Airtable / local JSON) |
| 25 | 2. **Filter & Parse** — Apply time period, brand, content type, and metric focus filters |
| 26 | 3. **Calculate Aggregates** — Average scores, trends, percentiles, phase timing breakdowns |
| 27 | 4. **Detect Outliers** — Flag data points beyond 2.0 standard deviations from mean |
| 28 | 5. **Generate Insights** — Identify patterns, correlations, and improvement opportunities |
| 29 | 6. **Present Dashboard** — Render ASCII analytics display with charts and recommendations |
| 30 | 7. **Alert Check** — Evaluate alert rules and surface any triggered flags |
| 31 | |
| 32 | ## Required Inputs |
| 33 | |
| 34 | **Optional (all have defaults):** |
| 35 | - **Time Period** — `7` | `30` | `90` days (default: `30`) |
| 36 | - **Brand Filter** — Filter to specific brand (default: all brands) |
| 37 | - **Content Type Filter** — `article` | `blog` | `whitepaper` | `faq` | `research_paper` (default: all types) |
| 38 | - **Metric Focus** — `quality` | `timing` | `compliance` | `citations` (default: `quality`) |
| 39 | |
| 40 | ## How to Use |
| 41 | |
| 42 | ### Default Dashboard (Last 30 Days, All Brands) |
| 43 | ``` |
| 44 | /contentforge:cf-analytics |
| 45 | ``` |
| 46 | |
| 47 | ### Specific Time Period |
| 48 | ``` |
| 49 | /contentforge:cf-analytics --period=90 |
| 50 | ``` |
| 51 | |
| 52 | ### Brand-Specific Analysis |
| 53 | ``` |
| 54 | /contentforge:cf-analytics --brand=AcmeMed --period=30 |
| 55 | ``` |
| 56 | |
| 57 | ### Content Type Focus |
| 58 | ``` |
| 59 | /contentforge:cf-analytics --type=whitepaper --period=90 |
| 60 | ``` |
| 61 | |
| 62 | ### Metric-Specific Deep Dive |
| 63 | ``` |
| 64 | /contentforge:cf-analytics --focus=timing --period=30 |
| 65 | ``` |
| 66 | |
| 67 | ### Combined Filters |
| 68 | ``` |
| 69 | /contentforge:cf-analytics --brand=AcmeMed --type=article --focus=quality --period=90 |
| 70 | ``` |
| 71 | |
| 72 | ## Data Sources |
| 73 | |
| 74 | ### Data source: the brand's tracking backend |
| 75 | |
| 76 | ContentForge's Output Manager (Phase 8) logs every completed piece to the backend configured in the brand profile (`tracking.backend`): |
| 77 | |
| 78 | - **`google_sheets`** — rows in the configured Google Sheet (read via `scripts/sheets-tracker.py`) |
| 79 | - **`airtable`** — records in the configured Airtable base (read via `scripts/airtable-tracker.py`) |
| 80 | - **`local`** — `tracking.json` under `~/.claude-marketing/{brand-slug}/tracking/` (read via `scripts/local-tracker.py`) |
| 81 | |
| 82 | All three backends share the same record schema: |
| 83 | |
| 84 | | Column | Type | Description | |
| 85 | |--------|------|-------------| |
| 86 | | requirement_id | string | Unique content ID (REQ-001) | |
| 87 | | title | string | Content title | |
| 88 | | brand | string | Brand profile used | |
| 89 | | content_type | enum | article, blog, whitepaper, faq, research_paper | |
| 90 | | word_count | integer | Final word count | |
| 91 | | quality_score | float | Composite score (0-10) | |
| 92 | | content_quality | float | Dimension score (0-10) | |
| 93 | | citation_integrity | float | Dimension score (0-10) | |
| 94 | | brand_compliance | float | Dimension score (0-10) | |
| 95 | | seo_performance | float | Dimension score (0-10) | |
| 96 | | readability | float | Dimension score (0-10) | |
| 97 | | processing_time_min | float | Total pipeline time in minutes | |
| 98 | | phase_1_time | float | Research phase duration | |
| 99 | | phase_2_time | float | Fact-check phase duration | |
| 100 | | phase_3_time | float | Drafting phase duration | |
| 101 | | phase_4_time | float | Validation phase duration | |
| 102 | | phase_5_time | float | Structuring phase duration | |
| 103 | | phase_6_time | float | SEO phase duration | |
| 104 | | phase_6_5_time | float | Humanizer phase duration | |
| 105 | | phase_7_time | float | Reviewer phase duration | |
| 106 | | phase_8_time | float | Output phase duration | |
| 107 | | loops_used | integer | Total feedback loops triggered | |
| 108 | | loop_details | string | Which loops fir |