Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when the user wants to audit published content — pull channel data, classify winners and losers by percentile, find the pattern behind performance, and decide what to keep, kill, or scale. Trigger on 'content audit', 'audit our content', 'which content is working', 'content performance review', 'find the pattern in our posts', or 'evaluate last month's content'.
.claude/skills/minhnv0807-39-content-audit-global/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 22% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 211% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 92% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 345% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 233% | 0% |
An audit is not a judgment of the past. It is how you replicate winners and retire losers with evidence behind the decision. Every recommendation must attach to a specific action — never a general observation. Run it at least monthly; do not wait for the quarter to close.
Ask up to 4 questions before starting:
Without post-level data there is no audit. Walk the user through the exports in step 1 first.
| Channel | Source | Metrics to export | |---------|--------|-------------------| | Instagram | Instagram professional account insights or Meta Business Suite, post level | Reach, accounts engaged, saves, shares, profile visits, link clicks | | Facebook | Meta Business Suite, post level export | Reach, engagement, link clicks, shares, negative feedback | | TikTok | TikTok Analytics, Content tab | Views, average watch time, completion rate, shares, follows from video | | LinkedIn | LinkedIn page or creator analytics | Impressions, engagement rate, click-through, follower gain, reposts | | YouTube | YouTube Studio | Views, average view duration, impressions click-through rate, subscribers gained | | X | X analytics | Impressions, engagement rate, link clicks, profile visits | | Blog / site | GA4 — Explore report by landing page and source/medium | Sessions, engagement rate, average engagement time, key events, assisted conversions | | Email | Klaviyo, Mailchimp, or equivalent campaign report | Open rate, CTR, click-to-open rate, placed-order rate, unsubscribe rate | | Leads and revenue | CRM (HubSpot, Pipedrive) or store (Shopify) | Leads and orders attributed to content, by source |
One row per post: publish date, channel, format, pillar, funnel stage, hook type, primary metric, secondary metrics. If the classification columns (pillar, format, hook type) are missing, backfill them by hand from the content calendar (01-content-calendar-global).
Apply the split per channel and per group. A cross-channel ranking measures the channel, not the content.
For the winner set and the loser set separately, look for what they share:
| Axis | Question | |------|----------| | Pillar | Which pillar do the winners concentrate in? Which pillar produced no winner at all? | | Format | Video, carousel, static, text, long-form — which format wins on which channel? | | Hook type | Pain, curiosity, number, contrarian, result-first — which one holds attention? | | Publish time | Which slots produce winners? | | Length | Short or long — and does the answer differ by channel? |
Two or three sentences answering why the pattern works, checked against the customer insight file (09-customer-insight-global). Example of the right shape: "Videos with a number in the hook and a real face on camera hold completion far better than carousels — this audience trusts a person more than a designed asset."
A finding is a hypothesis grounded in data, not an impression.
40-next-content-plan-global and 19-ab-test-setup-global.For each metric record: this period / prior period / baseline / verdict.
Baselines to use:
references/benchmarks-global.md).references/benchmarks-global.md, adjusted for region tier, industry, and season before comparing.File name: content-audit-[brand]-[YYYYMMDD].md
markdown# Content Audit — [Period] — [Channels] ## I. Period overview | Item | Figure | |------|--------| | Posts published | | | Total reach / impressions | | | Average engagement rate | | | Leads attributed to content | | | Revenue attributed to content | | ## II. Classification ### WINNERS — top 20% | Post | Channel | Format | Pillar | Hook type | Standout metric | Why it worked (hypothesis) | |------|---------|--------|--------|-----------|-----------------|----------------------------| | | | | | | | | ### LOSERS — bottom 20% | Post | Channel | Format | Pillar | Hook type | Weak metric | Why it failed (hypothesis) | |------|---------|--------|--------|-----------|-------------|----------------------------| | | | | | | | | ### AVERAGE — middle 60% [2-3 sentences of general observation] ## III. Pattern analysis **Winner pattern:** [recurring pillar / format / hook / time / length] **Loser pattern:** [what the failures share] **Core finding:** [2-3 sentences — why it works, checked against customer insight] ## IV. Recommendations **Do now (next week):** 1. [Action + expected impact] **Stop:** 1. [What to retire — data reason] **Test next:** 1. [Hypothesis + how it will be measured] ## V. KPI comparison | Metric | This period | Prior period | Baseline | Verdict | |--------|-------------|--------------|----------|---------| | Instagram reach per post | | | trailing 3-month median | | | TikTok average completion rate | | | trailing 3-month median | | | LinkedIn engagement rate | | | trailing 3-month median | | | Email open rate | | | 22-27% median | | | Email CTR | | | 2.5-3.5% median | | | Leads from content | | | | |
13-data-analysis-global: pulling and cleaning the data before the audit, including connector and MCP setup.03-performance-eval-global: paid media evaluation — this audit covers organic.07-marketing-report-global: the audit result is an input to the monthly report.40-next-content-plan-global: run immediately after. An audit that does not produce a new plan was wasted effort.01-content-calendar-global: winners return to the calendar as base templates.09-customer-insight-global: check patterns against insight to explain why something worked.40-next-content-plan-global scheduled to run immediately after.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 37,354 | 31,703 | -15% | 1 | 1 | 0% | 5,906 | 7,218 | +22% | 0 | 0 | — |
case-02 | fail→fail | 40,035 | 33,527 | -16% | 1 | 1 | 0% | 6,434 | 7,704 | +20% | 0 | 0 | — |
case-03 | fail→fail | 50,534 | 41,222 | -18% | 1 | 1 | 0% | 8,333 | 8,875 | +7% | 0 | 0 | — |
case-04 | fail→pass | 13,357 | 16,658 | +25% | 1 | 1 | 0% | 1,374 | 4,269 | +211% | 0 | 0 | — |
case-05 | fail→pass | 17,673 | 15,355 | -13% | 1 | 1 | 0% | 2,159 | 4,141 | +92% | 0 | 0 | — |
case-06 | fail→pass | 5,502 | 11,901 | +116% | 1 | 1 | 0% | 998 | 4,438 | +345% | 0 | 0 | — |
case-07 | fail→pass | 11,289 | 16,617 | +47% | 1 | 1 | 0% | 1,240 | 4,124 | +233% | 0 | 0 | — |
case-08 | fail→pass | 14,896 | 22,403 | +50% | 1 | 1 | 0% | 2,650 | 5,505 | +108% | 0 | 0 | — |
case-09 | fail→fail | 19,449 | 8,403 | -57% | 1 | 1 | 0% | 2,804 | 3,684 | +31% | 0 | 0 | — |
case-10 | fail→fail | 11,823 | 13,225 | +12% | 1 | 1 | 0% | 2,186 | 4,626 | +112% | 0 | 0 | — |
case-11 | fail→fail | 11,848 | 8,635 | -27% | 1 | 1 | 0% | 2,230 | 4,029 | +81% | 0 | 0 | — |
case-12 | fail→fail | 7,248 | 7,465 | +3% | 1 | 1 | 0% | 1,373 | 3,552 | +159% | 0 | 0 | — |
case-21 | pass→fail | 43,210 | 13,610 | -69% | 1 | 1 | 0% | 8,238 | 4,772 | -42% | 0 | 0 | — |
case-13 | fail→fail | 14,727 | 11,060 | -25% | 1 | 1 | 0% | 2,344 | 3,984 | +70% | 0 | 0 | — |
case-14 | fail→fail | 8,020 | 10,612 | +32% | 1 | 1 | 0% | 1,649 | 4,487 | +172% | 0 | 0 | — |
case-15 | fail→fail | 28,261 | 31,133 | +10% | 1 | 1 | 0% | 5,220 | 8,374 | +60% | 0 | 0 | — |
case-16 | fail→pass | 16,206 | 13,259 | -18% | 1 | 1 | 0% | 2,696 | 4,541 | +68% | 0 | 0 | — |
case-17 | fail→pass | 1,313 | 7,535 | +474% | 1 | 1 | 0% | 209 | 3,450 | +1551% | 0 | 0 | — |
case-18 | pass→pass | 8,402 | 5,237 | -38% | 1 | 1 | 0% | 1,307 | 3,225 | +147% | 0 | 0 | — |
case-19 | fail→fail | 12,755 | 7,461 | -42% | 1 | 1 | 0% | 2,072 | 3,536 | +71% | 0 | 0 | — |
case-20 | pass→pass | 13,571 | 14,236 | +5% | 1 | 1 | 0% | 2,216 | 4,459 | +101% | 0 | 0 | — |
case-22 | pass→pass | 19,422 | 9,581 | -51% | 1 | 1 | 0% | 3,704 | 4,057 | +10% | 0 | 0 | — |
case-23 | pass→pass | 16,544 | 16,895 | +2% | 1 | 1 | 0% | 3,121 | 5,329 | +71% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +30 percentage points is the difference between those two pass rates over the 23 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.