agentleFS
ucsandmanucsandman/claude-skills/launch/SKILL.md

launch

Skill5 starsChanged 2 months agoMITView on GitHub

Take a developed project end-to-end through launch — domain, hosting, payments, email infra, algorithm-researched copy, and multi-platform distribution — with zero copy-paste. Trigger on "launch <project>", "ship <project>", "take <project> live", or "/launch <dir>".

  • Reads credentials

66 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use add-policy, tool-rename-deprecation and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • OpenCortexIDESkill

    add-policy

    Use when adding, modifying, or reviewing VS Code configuration policies. Covers the full policy lifecycle from registration to export to platform-specific artifacts. Run on ANY change that adds a `policy:` field to a configuration property.

    Also in 4 projects that use this

  • gitpod-ioSkill

    tool-rename-deprecation

    Ensure renamed built-in tool references preserve backward compatibility. Use when renaming a toolReferenceName, tool set referenceName, or any tool identifier. Run on ANY change to tool registration code. Covers legacyToolReferenceFullNames for tools and legacyFullNames for tool sets.

    Also in 4 projects that use this

  • CesarjoquinSkill

    competitors

    When the user wants to create competitor comparison or alternative pages for SEO and sales enablement. Also use when the user mentions 'alternative page,' 'vs page,' 'competitor comparison,' 'comparison page,' '[Product] vs [Product],' '[Product] alternative,' 'competitive landing pages,' 'how do we compare to X,' 'battle card,' or 'competitor teardown.' Use this for any content that positions your product against competitors. Covers four formats: singular alternative, plural alternatives, you vs competitor, and competitor vs competitor. For sales-specific competitor docs, see sales-enablement.

    Also in 12 projects that use this

  • CesarjoquinSkill

    paywalls

    When the user wants to create or optimize in-app paywalls, upgrade screens, upsell modals, or feature gates. Also use when the user mentions "paywall," "upgrade screen," "upgrade modal," "upsell," "feature gate," "convert free to paid," "freemium conversion," "trial expiration screen," "limit reached screen," "plan upgrade prompt," "in-app pricing," "free users won't upgrade," "trial to paid conversion," or "how do I get users to pay." Use this for any in-product moment where you're asking users to upgrade. Distinct from public pricing pages (see cro) — this focuses on in-product upgrade moments where the user has already experienced value. For pricing decisions, see pricing.

    Also in 9 projects that use this

  • riggyzSkill

    attribution

    Attribution rules for issues, pull requests, work items, reviews, and comments created or edited by the agent in GitHub, Linear, Azure DevOps, or similar collaboration systems. Use when creating, commenting on, reviewing, or modifying external tracker content.

    Also in 6 projects that use this

  • coreyhaines31Skill

    conversion-tracking

    Set up, audit, verify, or fix website conversion tracking. Use when the conversion is a form submission, booked meeting, chat, phone call, signup, or purchase; when conversions must reach Google Ads, Meta, GA4, LinkedIn, TikTok, or Microsoft Ads; when the work involves GTM tags and dataLayer events, pixels, the Conversions API (CAPI), Enhanced Conversions, server-side tagging, or gclid and fbclid capture; or when the user reports conversion problems like "conversions stopped", "double counting", "spend but no conversions", "GA4 and Google Ads don't match", or an Unverified or Inactive status. Covers lead gen and ecommerce. Always fire on confirmed success, never the submit click; verify a test conversion arrives; diagnose before changing anything; offer free and native paths alongside paid ones and disclose partner tools. For tracking plans and UTMs, see analytics. For attribution models, see attribution. For campaigns and bidding, see ads. For CRM lead-stage design, see revops.

    Also in 3 projects that use this

  • +4 more from Cesarjoquin

The file

We split this skill into the rules it gives an agent

3 rules. 0 are common, 2 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 60 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Verify test checkout end-to-end.

    line 56
  2. Distinctive:

    NEVER re-run a spend step (domain purchase, live Stripe) after a failure without a fresh approval gate — check the launch plan state and …

    line 99
  3. Very specific:

    No money, no posts, no sends — end to end.

    line 105

“Common” is measured: kept by at least 6 in 10 of the 60 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

/launch — full launch orchestration

You are orchestrating a product launch using two layers:

  • CLI (launch/, package @marketing-studio/launch) — everything deterministic: state, validation, posting providers, research fetchers, payload rendering. Run it as node "C:/Projects/animations/../dist/index.js" <cmd> (or launch <cmd> if linked) -- the CLI lives in this package, C:/Projects/animations/...
  • This session — everything generative or credentialed-through-MCP: DashClaw infra calls, WebSearch synthesis, draft copywriting, and the approval gates. The CLI never holds DashClaw credentials and never sends email/SMS.

Honesty rule: each step below is labeled [CLI] or [session]. Don't do session work by shelling out, and don't reimplement CLI work inline.

Target <dir> is the project directory being launched (sibling of the engine repo).

Humans can drive the same engine visually with launch ui (local dashboard, same gates — see docs/ui-dashboard.md); this skill remains the autonomous path.

Sequence

1. Intake [CLI]

launch init <dir> --domain <domain> --price <price> [--name --tagline --audience]

Pull flag values from the conversation. Read back <dir>/.launch/launch.config.json and confirm the summary with the user. Re-run with --force if they correct anything.

2. DashClaw setup [session]

  1. select_project (or create_project if this product has no DashClaw project yet).
  2. create_launch with declared_stack from the config — typically ["domain", "vercel", "stripe", "resend"].
  3. preflight_launch — validates every provider token BEFORE any money is spent. If it fails, STOP and present a remediation table (provider → failing check → fix); do not proceed to spend steps.

3. Domain [session] — 💰 SPEND GATE #1

  1. check_domain_availability for the config domain (and 2-3 alternatives if taken).
  2. Present price and alternatives to the user.
  3. SPEND GATE: ask the user for explicit approval with AskUserQuestion and WAIT for their answer. Never call purchase_domain without a fresh approval in this conversation. Record the approval decision via dashclaw_guard + dashclaw_record for the audit trail.
  4. On approval: purchase_domain. On decline: skip to step 4 using an already-owned domain or stop.

4. Hosting [session]

  1. create_vercel_project (link the product repo).
  2. create_vercel_deployment and poll get_vercel_deployment_status until READY.
  3. add_vercel_domain for the purchased domain.
  4. set_dns_records per Vercel's required records (A/CNAME from the add-domain response); verify with get_dns_records.
  5. Set any product env vars with set_vercel_env_var.

5. Payments [session] — 💰 SPEND GATE #2 (live mode)

Stripe best practices: create in TEST mode first, verify the full flow, then — and only then — recreate in live mode behind the gate.

  1. create_stripe_product + create_stripe_price (TEST mode) from config pricing.
  2. create_stripe_webhook pointing at the product's webhook endpoint; store the signing secret as a Vercel env var (set_vercel_env_var), never in the repo.
  3. Verify test checkout end-to-end.
  4. SPEND GATE: live mode creates real billable objects. Ask the user for explicit approval with AskUserQuestion and WAIT for their answer before recreating product/price/webhook in live mode. Audit via dashclaw_guard + dashclaw_record.

6. Email infra [session]

  1. create_resend_domain for the config domain.
  2. set_dns_records with the DKIM/SPF records from the response.
  3. verify_resend_domain (DNS propagation can take minutes — poll, don't fail fast).

7. Research [CLI + session]

  1. [CLI] launch research <dir> (live mode — keyless fetchers: x-algorithm README, Algolia Show HN winners, hunted.space, per-sub Reddit rules).
  2. [session] WebSearch synthesis per platform (queries from THINKING.md: "X algorithm ranking signals <month year>", "<month year> LinkedIn algorithm what's working", PH featuring criteria). Write the synthesis into each brief's ## Session research section — the CLI preserves that section on regeneration.
  3. [CLI] launch research <dir> --check must pass (all briefs fresh) before copy.

8. Copy [CLI + session]

  1. [CLI] launch copy <dir> --scaffold.
  2. [session] Fill every draft in <dir>/.launch/drafts/ with real copy written from the research briefs (hooks from Show HN winners, X thread structure, LinkedIn link-in-first-comment, per-sub Reddit angles, email/SMS from the announcement templates). Replace every {{placeholder}} including {{unsubscribeUrl}}.
  3. [CLI] launch copy <dir> --validate — loop fill→validate until exit 0.

9. 🚦 PUBLISH GATE [session]

Render EVERY draft (all platforms + the email HTML + SMS text) to the user in one review block. Ask for explicit approval with AskUserQuestion (multiSelect per-platform opt-out) and WAIT for the user's answer. Nothing is published until the user approves; platforms they deselect are skipped. Record the decision via dashclaw_record.

10. Distribute [CLI + session]

  1. [CLI] launch post <dir> --all --live — posts X, Bluesky, Facebook, LinkedIn, YouTube, Reddit via API; submits sitemap + URL inspection to Google; skips blocked providers with a summary; the posted-ledger makes re-runs idempotent.
  2. [CLI] Assisted platforms at their recommended times (from the briefs):
    • launch post <dir> --platform hackernews --assist --live — opens the prefilled Show HN submitlink, copies the maker comment. The HUMAN clicks submit.
    • launch post <dir> --platform producthunt --assist --live — writes .launch/out/producthunt-kit.md, opens the submit page, copies the tagline. Schedule per the kit (12:01 AM PT, low-competition day).
  3. [CLI] launch notify <dir> --channel email and --channel sms — renders artifacts + .launch/out/notify-payloads.json (consent-filtered).
  4. [session] For each payload entry: send_resend_email / send_twilio_sms with the exact input object. The CLI never sends.

11. Verify & report [CLI + session]

  1. [session] verify_launch + get_launch_status for the infra side.
  2. [CLI] launch status <dir> for the distribution side.
  3. Final report: live URL, posted links from the ledger, pending assisted steps, and the stats command (launch stats <dir> --platform producthunt --slug <slug>).

Failure handling

  • Any MCP failure: surface the error verbatim, consult get_launch_status, and fix forward.
  • NEVER re-run a spend step (domain purchase, live Stripe) after a failure without a fresh approval gate — check the launch plan state and the audit log first.
  • Posting failures: the ledger guarantees completed platforms are skipped on re-run; fix the failing provider (see launch doctor) and re-run launch post <dir> --all --live.
  • Credential problems: launch doctor --json gives provider → mode → fix hint; degrade blocked API platforms to assisted/manual instead of failing the launch.

Dry-run rehearsal (run this before any real launch)

No money, no posts, no sends — end to end. launch post is DRY-RUN BY DEFAULT now, so --dry-run below is optional (kept for back-compat) and --live is what actually publishes. --assist is the one exception: it opens a prefilled page and copies text but submits nothing, so it runs for real without --live.

launch init <dir> --domain <domain> --price <price>
launch research <dir> --offline
launch copy <dir> --scaffold
# fill drafts (session) …
launch copy <dir> --validate
launch post <dir> --all --dry-run        # prints exact request payloads, writes nothing
launch notify <dir> --channel email --dry-run
launch notify <dir> --channel sms --dry-run
launch status <dir>

Skip every DashClaw spend step during rehearsal (no purchase_domain, no live Stripe). The rehearsal is green when every command exits 0 and the drafts pass validation.

Credentials

Social API keys live in the engine repo's .env (template: .env.example, per-provider setup cost/time guides in docs/setup-<provider>.md, launch-day checklist in docs/launch-runbook.md). DashClaw infra credentials live with the DashClaw MCP server — this skill calls the tools, the CLI never sees those secrets.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.