$npx -y skills add AgriciDaniel/claude-ads --skill ads-auditRun a source-grounded paid-advertising audit for one or more of Google, Meta, YouTube, LinkedIn, TikTok, Microsoft, Apple, Amazon, Reddit, Pinterest, Snapchat, and X. Use for full ad checks, account health reviews, paid-media diagnostics, partial audits after authentication or wo
| 1 | # Paid Advertising Audit |
| 2 | |
| 3 | Produce a versioned JSON audit bundle first, then render human deliverables from |
| 4 | that bundle. Never aggregate prose-only worker reports or claim coverage for a |
| 5 | platform whose required worker, sources, inputs, or controls are missing. |
| 6 | |
| 7 | ## Procedure |
| 8 | |
| 9 | 1. Read the main `ads` operating contract and thinking framework. |
| 10 | 2. Create a run manifest with business context, date window, currency, timezone, |
| 11 | requested platforms, scopes, available data, and privacy classification. |
| 12 | 3. Normalize exports, screenshots, manual metrics, or authenticated reads into an |
| 13 | account snapshot. Preserve source lineage and mark missing fields. |
| 14 | 4. Discover active platforms. Confirm requested inactive or data-less platforms |
| 15 | rather than silently skipping them. |
| 16 | 5. Load each selected platform capability manifest, control registry, dated source |
| 17 | entries, benchmarks, and applicable policy material. |
| 18 | 6. Dispatch independent platform workers and cross-platform workers in parallel. |
| 19 | 7. Validate every result against the common finding schema. Retry one transient |
| 20 | failure; record all other failures and recovery hints. |
| 21 | 8. Run deterministic scoring. Do not calculate or repair scores in the prompt. |
| 22 | 9. Synthesize systemic findings across measurement, budget, creative, landing |
| 23 | pages, experimentation, policy, and regulatory exposure. |
| 24 | 10. Write one atomic run bundle and render the requested reports. |
| 25 | 11. Verify bundle completeness, citations, privacy, and render integrity. |
| 26 | |
| 27 | ## Platform workers |
| 28 | |
| 29 | Use a dedicated worker for every selected platform: |
| 30 | |
| 31 | - `audit-google` |
| 32 | - `audit-meta` |
| 33 | - `audit-youtube` |
| 34 | - `audit-linkedin` |
| 35 | - `audit-tiktok` |
| 36 | - `audit-microsoft` |
| 37 | - `audit-apple` |
| 38 | - `audit-amazon` |
| 39 | - `audit-reddit` |
| 40 | - `audit-pinterest` |
| 41 | - `audit-snapchat` |
| 42 | - `audit-x` |
| 43 | |
| 44 | Add cross-platform workers only when their inputs exist: |
| 45 | |
| 46 | - Tracking and attribution. |
| 47 | - Creative and landing-page quality. |
| 48 | - Budget, pacing, and financial viability. |
| 49 | - Platform policy, privacy, and regulation. |
| 50 | |
| 51 | ## Required finding fields |
| 52 | |
| 53 | Each worker returns conclusions, not files: |
| 54 | |
| 55 | ```json |
| 56 | { |
| 57 | "status": "ok", |
| 58 | "platform": "google", |
| 59 | "findings": [ |
| 60 | { |
| 61 | "control_id": "G-EXAMPLE", |
| 62 | "result": "pass|fail|unknown|not_applicable", |
| 63 | "severity": "critical|high|medium|info", |
| 64 | "confidence": "high|medium|low|none", |
| 65 | "source_classification": "evidence_based|practitioner|contested|folklore", |
| 66 | "observation": "What the supplied data demonstrates", |
| 67 | "evidence_refs": ["input:...", "source:..."], |
| 68 | "recommendation": "Decision-complete next action or null" |
| 69 | } |
| 70 | ], |
| 71 | "contradictions": [], |
| 72 | "missing_inputs": [], |
| 73 | "recovery_hints": [] |
| 74 | } |
| 75 | ``` |
| 76 | |
| 77 | Validate against the repository schema rather than relying on this illustrative |
| 78 | fragment when the installed schema is available. |
| 79 | |
| 80 | ## Completeness rules |
| 81 | |
| 82 | - `complete`: every requested required worker returned valid results and every |
| 83 | scored platform meets normal evidence coverage. |
| 84 | - `provisional`: all required workers returned, but one or more platforms have |
| 85 | 60-79% evidence coverage or stale non-critical evidence. |
| 86 | - `partial`: a required platform or cross-platform worker failed or was omitted. |
| 87 | - `insufficient_evidence`: a requested platform has less than 60% coverage. |
| 88 | |
| 89 | Never substitute feature awareness for account health. Optional, beta, premium, |
| 90 | ineligible, or unavailable features belong in an opportunity list and are unscored. |
| 91 | |
| 92 | For each optional or gated feature, check account, market, objective, and access |
| 93 | eligibility first. If unavailable or ineligible, record an `unscored_opportunity` |
| 94 | with the eligibility result and no health-score effect. Reject any request to |
| 95 | penalize health merely because a beta is unavailable. |
| 96 | |
| 97 | ## Required-worker failure and weighting |
| 98 | |
| 99 | A failed authentication or worker does not stop analysis of independent successful |
| 100 | platforms, but it changes the whole bundle to `partial`. Record the failed platform, |
| 101 | missing evidence, recovery hint, and no platform health score. Exclude its weight |
| 102 | from portfolio health; never assign zero, preserve a stale historical weight, or |
| 103 | include it in the denominator. Renormalize weights only among successfully scored |
| 104 | comparable platforms. If defensible remaining weights are unavailable, withhold |
| 105 | portfolio health rather than inventing weights. |
| 106 | |
| 107 | Example: when an all-platform audit succeeds except for Amazon authentication, |
| 108 | continue with the other platforms, mark Amazon failed/missing, exclude Amazon's |
| 109 | weight, label the bundle `partial`, and never call it complete. |
| 110 | |
| 111 | ## Synthesis boundaries |
| 112 | |
| 113 | Separate t |