Skip to content

feat: offer the save-this-scan link on anonymous scans (0.6.0) - #5

Merged
mlava merged 1 commit into
mainfrom
feat/save-scan-cta
Jul 27, 2026
Merged

feat: offer the save-this-scan link on anonymous scans (0.6.0)#5
mlava merged 1 commit into
mainfrom
feat/save-scan-cta

Conversation

@mlava

@mlava mlava commented Jul 27, 2026

Copy link
Copy Markdown
Owner

Why

POST /api/scan returns a claim-bearing saveUrl to keyless callers (main repo PR #206), but the CLI dropped it. So agent-ready scan delivered a real result and then a dead end — no way for the user to keep it.

What changed

formatScan takes an optional saveUrl. When present the scan is anonymous and claimable, so saving it becomes the footer CTA:

  3 check(s) need attention.

  Save this scan to a free account — keeps it in your dashboard:
  https://agent-ready.dev/scan/abc123?claim=…&utm_source=cli_cta&utm_medium=terminal

Anonymous tier: 3 scans per 30 days. Pro adds 50 scans/month, 250-page depth, scan history and weekly monitoring.

One CTA, one link:

  • the save link replaces the pricing nudge rather than stacking with it
  • the quota note loses its competing /pricing URL but keeps the Pro facts
  • the bare report URL is suppressed — it's the same page minus the claim, so following it silently loses ownership

Keyed (Pro) scans are untouched: they already belong to an account, so the weekly-monitoring nudge stays.

Copy

Promises only what free actually grants. Score history and monitoring are both Pro-gated server-side (the API 403s a free user; the dashboard hides both panels), so offering them as reasons to sign up would break the promise at signup. A test asserts this.

Version drift fix

--version printed 0.5.1 while npm had 0.5.2 — nothing tied src/cli.ts VERSION to package.json. Both are now 0.6.0, with a sync guard mirroring the one agent-ready-mcp already has.

Verification

77 tests pass, typecheck clean, builds. Covers: link rendered, pricing nudge replaced, exactly one of our URLs, free-tier copy honest, and graceful fallback when the server issues no link (no CLAIM_SECRET).

🤖 Generated with Claude Code

POST /api/scan returns a claim-bearing `saveUrl` to keyless callers, but
the CLI dropped it — so `agent-ready scan` produced a real result and then
a dead end, with no way to keep it. Render it as the footer CTA.

One CTA, one link: the save link replaces the pricing nudge on anonymous
scans, and the quota note below it loses its competing /pricing URL while
keeping the Pro facts. The bare report URL is suppressed too — it is the
same page minus the claim, so following it silently loses ownership.

Keyed (Pro) scans are unchanged: they already belong to an account, so
monitoring stays the right next step.

Copy promises only what the free tier grants. Score history and monitoring
are both Pro-gated server-side, so naming them as reasons to create a free
account would break at signup.

Also fixes a drift that shipped in 0.5.2: `--version` printed 0.5.1,
because nothing tied src/cli.ts VERSION to package.json. A wrong version
misdirects every bug report, so both are now 0.6.0 with a sync guard
mirroring agent-ready-mcp's.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant