v2.4.0 — Guided onboarding (/ads start) + continuous coach (/ads next)
The first-run UX gap is closed. New users now have a clear entry point that walks them from cold install to a working audit pipeline, and a recurring loop (/ads audit → /ads next → fix → re-audit) that always knows exactly what to do next. v2.4.0 is purely additive on top of v2.3.x — no breaking changes to the audit pipeline, agents, or JSON contract.
Quick start
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/Hainrixz/claude-ads/main/install.sh | bash# Windows
irm https://raw.githubusercontent.com/Hainrixz/claude-ads/main/install.ps1 | iexThen in Claude Code:
/ads start
The wizard captures your context (industry, monthly spend, primary goal, active platforms), walks you through OAuth setup one platform at a time with live verification calls between steps, and persists everything to ~/.claude-ads/profile.json. No future /ads command ever re-asks. When you're done it suggests /ads audit.
After your audit, type /ads next for the ranked top 3 fixes plus a step-by-step walk-through of #1.
What's new
Added
/ads start— guided 5-phase wizard (skills/ads-start/SKILL.md):- Phase A: detect first-run vs re-entry; subcommands
edit,status,reset. - Phase B: 4-question context intake (industry, spend bracket, primary goal, active platforms) saved one-at-a-time.
- Phase C: per-platform connection wizard — MCP / Direct API / Manual / Skip → step-by-step verified walkthrough (1 step → wait for "done" → live test call → diagnose error → cap retries at 3).
- Phase D: optional Zernio signup + Meta for Developers account walkthrough.
- Phase E: prints the exact next command to type (never auto-invokes).
- Phase A: detect first-run vs re-entry; subcommands
/ads next— continuous coach (skills/ads-next/SKILL.md):- Auto-persists new cwd audits to
~/.claude-ads/history/. - Ranks every Quick Win / Critical / FAIL / WARNING by
severity × effort_inverse × platform_budget_shareusing your profile's spend mix. - Regression detection — if Meta drops 78 → 71 since your last audit, that's flagged as Priority 0 above the Top 3.
- Optional step-by-step walk-through of fixing #1 — same verified loop as
/ads start. - Subcommands:
show(top 10, no prompt),compare(full diff between two most-recent audits per platform),walk(skip prompt, fix #1 immediately).
- Auto-persists new cwd audits to
- Persistence at
~/.claude-ads/—profile.json+history/index.json+ per-audit snapshots. Validates against new schemasads/references/profile-schema.jsonandads/references/audit-history-schema.json. Secrets are never stored — tokens / API keys live in env vars; the profile recordsapi_key_present: true/false. scripts/profile.py— pure-stdlib CLI:init / get / set / save-audit / compare / reset. Exit code 2 on missing profile signals first-run to the orchestrator.- 5 step-by-step setup references (each ≤200 lines, identical Goal / Do this / Expect to see / On error structure):
setup-meta.md— claude.ai Facebook MCP / Direct API / Manual exports.setup-google.md— cohnen MCP / Direct API (dev-token + OAuth refresh-token flow) / Manual exports.setup-tiktok.md— AdsMCP / Direct API (auth-code exchange) / Manual exports.setup-zernio.md— signup, free tier highlight, API key creation, dry-run verification.setup-meta-developers.md— Meta for Developers account creation (phone verification, Business app type, Marketing API product).
Changed
ads/SKILL.mdorchestrator is now profile-aware. Every command runspython3 scripts/profile.py getfirst; on exit 2 it surfaces a one-line tip to run/ads startbut allows the user to proceed inline. Context Intake demoted to a fallback. Sub-Skills 17 → 19.CLAUDE.mdadds a new dev rule: "Any new user-facing command must check~/.claude-ads/profile.jsonfor context before asking inline."- README EN + ES — Quick Start leads with
/ads start. New "Continuous coaching:/ads next" section. FAQ adds Q&A about profile location, reset, multi-machine sync. - install.sh / install.ps1 — post-install message rewritten to lead with
/ads start. Agent count corrected (3 audit + 4 creative, not 6). - uninstall.sh / uninstall.ps1 — also clean
ads-startandads-nextfrom~/.claude/skills/. Profile + history at~/.claude-ads/is intentionally not touched by uninstall; the script prints a note explaining how to wipe it manually.
What stays unchanged
- The JSON output contract (
audit-output-schema.json) —/ads nextconsumes exactly the v2.3.x shape. - The 7 agents — audit-google, audit-meta, audit-tiktok + 4 creative pipeline. Untouched.
- The 3 base platforms — no scope changes. v2.4.0 is purely UX.
- All existing
/adscommands work without a profile. The wizard is recommended-but-optional. - No external dependencies added.
scripts/profile.pyis stdlib-only.
Tests
- 166 passed, 5 skipped on Python 3.9 local. CI matrix runs the same on 3.10–3.12.
tests/test_profile_schema.pynew — validates both new JSON schemas + round-tripsprofile.pythrough init/set/get/save-audit/compare/reset against an isolatedHOME=tmp_path.
Migration from v2.3.x
Plug-and-play. Just run the new installer:
curl -fsSL https://raw.githubusercontent.com/Hainrixz/claude-ads/main/install.sh | bashOr, on existing installs, the next /ads <anything> you run will surface a one-line tip about /ads start. Old commands work as before either way.
Full diff: v2.3.1...v2.4.0
🤖 Generated with Claude Code