ads-refresh — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ads-refresh (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Ask the user for:
/ads output in output/Walk the user through this if they haven't done it before:
Alternatively, for bulk export:
Minimum viable data: If the user can't export the full report, even Google's performance labels (Best / Good / Low / Learning) per headline are enough to make informed keep/replace decisions.
If the user cannot provide any performance data:
/ads-review audit framework to assess each headline/descriptionLoad and structure the data into a table:
| # | Asset Text | Type | Impressions | CTR | Label |
|-----|--------------------------|-------------|-------------|-------|----------|
| H1 | "Get Marketing Insights" | Headline | 12,400 | 3.8% | Best |
| H2 | "Try It Free Today" | Headline | 8,200 | 2.1% | Good |
| H3 | "Analytics Platform" | Headline | 1,100 | 0.9% | Low |
| ... | | | | | |
| D1 | "Turn data into..." | Description | 15,000 | 3.2% | Best || Bucket | Criteria | Action |
|---|---|---|
| Winners | Label: Best, or CTR >3%, high impressions | Keep — these are proven |
| Solid | Label: Good, or CTR 2–3%, decent impressions | Keep on light, consider on full |
| Weak | Label: Low, or CTR <1.5%, shown often | Replace — actively hurting CTR |
| Untested | Label: Learning, or <500 impressions | Replace — not contributing |
| Stale | Any asset unchanged for 8+ weeks, declining trend | Replace — even if formerly good |
Load context:
.claude/skills/brand-voice/SKILL.md.claude/skills/icp/SKILL.md.claude/skills/google-ads-rules/SKILL.mdBased on refresh intensity:
Light refresh:
Medium refresh:
Full refresh:
For all replacement headlines, check:
python .claude/skills/ads/validate.py output/<file>.csvSave refreshed version alongside the original for comparison:
output/rsa_[campaign]_[adgroup]_refreshed_[date].csv## Refresh Summary: [Campaign] / [Ad Group]
Intensity: [Light / Medium / Full]
Based on: [Performance data / Copy quality only]
### Performance Snapshot
- Total headlines analyzed: X
- Winners: X | Solid: X | Weak: X | Untested: X | Stale: X
- Best headline: "..." (X.X% CTR, XX,XXX impressions)
- Worst headline: "..." (X.X% CTR, XX,XXX impressions)
### Kept (X headlines, X descriptions)
- H1: "Headline text" — Winner, 3.8% CTR, 12K impr
- H5: "Headline text" — Solid, 2.4% CTR, 6K impr
- D1: "Description text" — Best, 3.2% CTR
### Replaced (X headlines, X descriptions)
| Slot | Was | Performance | Now | Why |
|------|------------------------|-------------------|--------------------------|------------------------|
| H3 | "Old headline" | Low, 0.9% CTR | "New headline" [28 ch] | Weak — replace |
| H7 | "Old headline" | 340 impr only | "New headline" [26 ch] | Untested — not shown |
| H11 | "Old headline" | Good but 10 weeks | "New headline" [29 ch] | Stale — rotate out |
| D3 | "Old description" | Low, 1.1% CTR | "New description" [87 ch]| Weak + no CTA |
### New Angles Introduced
- [Angle]: H9, H12 — testing urgency (gap in current set)
- [Angle]: H14 — question-based (diversifies the mix)
### Recommended Next Steps
- Upload refreshed CSV to Google Ads Editor
- Let new assets accumulate ≥1,000 impressions before next evaluation
- Next refresh suggested: [date based on cadence]For users who want to skip manual export, Claude Code can connect to Google Ads API via MCP server (e.g., Adspirer) to pull asset performance data automatically. Setup: add the MCP server config to .claude/settings.json. See README for details.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.