ads-next
Skill102 starsChanged 6 months agoMITView on GitHub
Continuous coach. Reads the most recent <platform>-audit-results.json files (cwd + ~/.claude-ads/history/), ranks Quick Wins and Critical Issues by impact × ease using the user's saved spend mix, surfaces the top 3 next actions, and optionally walks the user through fixing the #1 right now. Detects regressions vs the previous audit (score drops, new failures) and flags them as Priority 0. Use when user says next, what should I do, recommend, fix, suggest, what's next, qué sigue, recomienda, próximo paso.
1 other project uses a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- oivanfelipe/claude-skillsedited, first seen Nov 8, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 1
- oivanfelipe/claude-skills★ 099% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository21 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- adsSkill
- ads-auditSkill
- ads-budgetSkill
- ads-competitorSkill
- ads-concienciaSkill
- ads-createSkill
- ads-creativeSkill
- ads-dnaSkill
- ads-generateSkill
- ads-googleSkill
- ads-landingSkill
- ads-mathSkill
- ads-metaSkill
- ads-photoshootSkill
- ads-planSkill
- ads-publishSkill
- ads-startSkill
- ads-testSkill
- ads-tiktokSkill
- ads-updateSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
16 rules. About 0 are common, 6 are distinctive, and 10 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
10
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 31
Never invent issues: If no audits are found in cwd or history, print the exact command to generate one (/ads audit or platform-specific) …
- Very specific: line 39
Search for *-audit-results.json files in this order, newest first:
- Distinctive: line 48
Must parse as JSON.
- Very specific: line 49
Must include platform, health_score, checks.
- Very specific: line 52
If a file fails validation, skip it and print a single WARNING: skipped <path> (<reason>) line.
- Very specific: line 55
If zero valid audits found but python3 scripts/conciencia.py list returns active campaigns, skip to Phase 3 with only the CON-* items.
- Distinctive: line 58
If zero valid audits found and no awareness files:
- Distinctive: line 105
If profile lists 1 active platform, share = 1.0 for that platform.
- Very specific: line 106
If profile lists 2 or 3, share = 1 / n baseline.
- Distinctive: line 110
If profile is empty, fall back to equal weight.
- Very specific: line 112
Business-outcome items (from
/ads conciencia): Run python3 scripts/conciencia.py list, then show <key> for each active offline campaign, … - Very specific: line 181
If show subcommand: print top 10 instead, no prompt, exit.
- Very specific: line 211
If no reference matches, use the check's own recommendation field as the only source.
- Distinctive: line 223
After the action, ask if the user wants to proceed to action #2.
- Very specific: line 265
No audits anywhere → print one-liner suggesting /ads audit, exit.
- Distinctive: line 266
All audits failed validation → print the warnings collected and exit.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
<!-- Portions Copyright (c) 2026 Enrique Rocha (@soyenriquerocha) - see LICENSE for original authors · tododeia.com · id er-fd4fa55b -->Continuous coaching: what to fix next
/ads next turns audits into a stream of small, ordered, verified actions.
It's the second half of the seguimiento loop: /ads start connects, /ads
audit measures, /ads next coaches.
Subcommand routing
| Arg | Behavior |
| (none) | Default — Discover → Rank → Top 3 → offer to walk through #1. |
show | Discover → Rank → print top 10 → exit (no walk-through prompt — good for client reports). |
compare | Print full delta between the two most-recent audits per platform via python3 scripts/profile.py compare <p>. |
walk | Skip the prompt — go straight to walking the user through the top action. |
Core rules
- Read the profile first.
python3 scripts/profile.py get— if exit 2, suggest/ads startand exit (a coach with no context is just guessing). - One action at a time during walk-through. Same step-by-step verified
loop as
/ads startPhase C.3. - Never invent issues. If no audits are found in cwd or history, print
the exact command to generate one (
/ads auditor platform-specific) and exit.
Phase 1 — Discover audit JSON
Search for *-audit-results.json files in this order, newest first:
<cwd>— current working directory. Glob*-audit-results.json.~/.claude-ads/history/— the persistent log. Read~/.claude-ads/history/index.jsonand resolve files for the most recent audit per platform.
Validate each file:
- Must parse as JSON.
- Must include
platform,health_score,checks. platformmust be one ofmeta,google,tiktok.
If a file fails validation, skip it and print a single WARNING:
skipped <path> (<reason>) line. Don't abort the run.
If zero valid audits found but python3 scripts/conciencia.py list
returns active campaigns, skip to Phase 3 with only the CON-* items.
If zero valid audits found and no awareness files:
No audits yet. Run one first:
/ads audit — full multi-platform
/ads <meta|google|tiktok> — single platform deep-diveThen exit.
Phase 2 — Persist any new audits to history
For each audit file discovered in cwd that is NEWER than the most recent
entry for that platform in ~/.claude-ads/history/index.json (compare
generated_at), copy it to history via:
python3 scripts/profile.py save-audit <path>This is what builds the multi-session memory — every audit run from anywhere on disk eventually ends up in the history index.
Phase 3 — Rank items by impact × ease
Pool every quick_win, every critical_issue, and every check with
result in (FAIL, WARNING) across all valid audits. Deduplicate by
(platform, check_id) — if a check appears in both critical_issues and
checks, treat as one item using the critical metadata.
For each item, compute an impact score:
severity_weight = { critical: 5.0, high: 3.0, medium: 1.5, low: 0.5 }[severity]
effort_inverse = 1 / (fix_time_minutes + 1) # default fix_time = 30 if null
budget_share = platform_budget_share(platform) # see below
impact = severity_weight × effort_inverse × budget_share × 100platform_budget_share — derive from the user's profile + audit
account_id presence:
- If profile lists 1 active platform, share = 1.0 for that platform.
- If profile lists 2 or 3, share =
1 / nbaseline. Then bump the platform that the user spends most on (usemonthly_spend_usd÷ platform count as the rough prior; if the user has set per-platform spend in the future, use that instead) by +0.1 (cap at 0.8). - If profile is empty, fall back to equal weight.
Business-outcome items (from /ads conciencia). Run
python3 scripts/conciencia.py list, then show <key> for each active
offline campaign, and add these items to the pool (platform = the campaign's
platform, check_id = CON-<rule>; rules and wording in
ads/references/conciencia.md):
| Rule | Condition (cumulative metrics) | severity | fix_time |
CON-LOSS | cost_per_close > campaign ticket_value | critical | 30 |
CON-JUNK | junk_rate > 0.5 | high | 30 |
CON-DROP | trend.close_rate < 0 and latest close_rate < half the previous | high | 30 |
CON-GAP | platform_vs_real < 0.6 | medium | 30 |
CON-BLIND | campaign registered with 0 check-ins, or a lead/message campaign in an audit with no awareness file | low | 5 |
Each finding cites the numbers and the check-in count, e.g. "% basura 62 %
(31 / 50 conversaciones, 2 check-ins)". Never create a CON-* item from a
null metric other than CON-BLIND.
Sort all items by impact descending.
Phase 4 — Regression detection (Priority 0)
For each platform with ≥2 audits in history, run:
python3 scripts/profile.py compare <platform>Inspect the JSON output:
score_delta < -5→ PRIORITY 0 alert appended at the top of the ranked list. Format:⚠ <Platform> health dropped from <prev>/100 (<prev_grade>) → <new>/100 (<new_grade>) since your last audit. New issues: <comma list of new_issues> Resolved: <comma list of resolved_issues>score_delta > +5→ success line at the very bottom of the output:🎉 <Platform> health improved <delta>+ points since last audit. Keep going.
Regressions take precedence over normal Quick Wins. They appear ABOVE the Top 3 list, with their own header.
Phase 5 — Output the top 3
Default subcommand prints:
Next actions (ranked by impact × ease for your $XXX/mo across <platforms>):
1. [<platform> · <check_id> · <severity>] <name>
Finding: <finding>
Recommendation: <recommendation>
Estimated fix: <fix_time_minutes> min · Impact: <impact rounded>
Reference: <reference file if known, e.g. tracking-meta.md>
2. [...]
3. [...]
(Run `/ads next show` to see the top 10. `/ads next compare` for full audit delta.)If show subcommand: print top 10 instead, no prompt, exit.
Phase 6 — Walk-through (default and walk subcommands)
AskUserQuestion:
"Want me to walk you through fixing #1 right now?"
Options: Yes — step by step · Show me #2 instead · Exit, I'll handle it.
On Yes:
Determine the reference file for this check_id based on its platform and category. Lookup table:
Platform Category prefix Reference file meta Tracking / Pixel / CAPI tracking-meta.mdmeta Creative / fatigue meta-audit.md(Creative section — covers M28 fatigue)meta Structure / Budget meta-audit.mdgoogle Tracking / Conversion tracking-google.mdgoogle Bidding / Structure google-audit.mdgoogle Quality Score / Keywords google-audit.mdtiktok Tracking / Events API tracking-tiktok.mdtiktok Creative / Spark tiktok-audit.mdtiktok Structure tiktok-audit.mdany CON-*(business outcome)conciencia.md(reading table) —CON-BLINDwalks through/ads conciencia registrarIf no reference matches, use the check's own
recommendationfield as the only source.Step-by-step loop (same pattern as
/ads startPhase C.3):- Print step 1: Goal · Do this · Expect to see · How I'll verify.
AskUserQuestion:Done — verify now·Hit an error·Pause.- On
Done: run the verification (re-call the relevant MCP tool / API script) and confirm the check now passes. If it does → ✓, move to step 2. If not → diagnose, retry. - Cap at 3 attempts per step.
- After the action, ask if the user wants to proceed to action #2.
On Show me #2 instead: re-enter Phase 6 with index 2.
On Exit: print:
Run
/ads auditafter you've fixed this to update your score, then/ads nextagain for the new top 3.
Phase 7 — Save state
At the end:
python3 scripts/profile.py set last_command "/ads next"
python3 scripts/profile.py set last_command_at "$(date -u +%FT%TZ)"The history index updates itself when /ads audit runs next — /ads next
itself doesn't add to history (it only reads + acts).
Compare mode (/ads next compare)
For each platform with ≥2 history entries:
python3 scripts/profile.py compare <platform>Print the full diff for each: score delta, grade change, new issues, resolved issues, file timestamps. No ranking, no walk-through prompt — this is the audit changelog view.
Error handling
- Profile missing → print one-liner suggesting
/ads start, exit. - No audits anywhere → print one-liner suggesting
/ads audit, exit. - All audits failed validation → print the warnings collected and exit.
- During walk-through: if 3 retries fail, log to console "Skipped
<check_id> — come back to this with
/ads next walklater" and ask whether to try #2.
Output contract
/ads next produces NO files. It is purely interactive coaching plus
side-effects on ~/.claude-ads/history/ (via save-audit) and the profile's
last_command* fields. It reads ~/.claude-ads/conciencia/ but never writes
check-ins — that is /ads conciencia's job.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

