Skip to content
Marketing
Skill

/ship-it

Ship a product end to end — render marketing assets with the marketing studio (/marketing), then run the launch/ flow (/launch) with videos attached to X, LinkedIn, Bluesky and YouTube posts. Run from the product's repo.

From plugin
marketing-studio
24415 skills
Install
$ npx -y skills add ucsandman/marketing-studio --skill ship-it --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/ship-it

Context preview

The summary Claude sees to decide when to auto-load this skill.

Ship a product end to end — render marketing assets with the marketing studio (/marketing), then run the launch/ flow (/launch) with videos attached to X, LinkedIn, Bluesky and YouTube posts. Run from the product's repo.

SKILL.md

ship-it.SKILL.md
name: ship-it
description: Ship a product end to end — render marketing assets with the marketing studio (/marketing), then run the launch/ flow (/launch) with videos attached to X, LinkedIn, Bluesky and YouTube posts. Run from the product's repo.

/ship-it — develop → public, one command

Run from the product repo you want to ship. Studio root = `${CLAUDE_SKILL_DIR}/../..` (rendering). Its launch CLI lives at `${CLAUDE_SKILL_DIR}/../../launch` (distribution) — run subcommands via `node "${CLAUDE_SKILL_DIR}/../../launch/dist/index.js" <cmd>` or `npx --prefix "${CLAUDE_SKILL_DIR}/../../launch" launch <cmd>`, from the product repo so its `.launch/` state lands there. This skill is the pipeline.

Steps

1. **Find the brand + kit.** Brand id = the product's brand in `${CLAUDE_SKILL_DIR}/../../brands/<id>.json` (ask only if ambiguous). Kit = `<product>/marketing/assets/<brand>/postkit/manifest.json`. 2. **Render if needed.** If the manifest is missing, run `/marketing` first (full pipeline, its own approval gates). If it exists, show its `generatedAt` and ask: reuse or re-render? Staleness is the user's judgment call, never a heuristic. 3. **Launch flow.** In the product repo, run the launch sequence — `launch init` (if no `.launch/launch.config.json`), then research, copy scaffold/fill, validate. Wire the kit: either set `postkitDir` in the config (the dashboard marketing tab does this with a picker) or pass `--kit "<product>/marketing/assets/<brand>/postkit"` to `launch post`. 4. **Dry-run, then post.** `launch post <dir> --all --dry-run` and show the user the previews — X and LinkedIn must show the video upload step. Live posting only after the user confirms, through the normal gates (ledger, validation, typed confirmation in the dashboard). 5. **Manual platforms.** TikTok / Shorts / Instagram are manual by design. Point the user at the dashboard marketing tab (Open folder per platform) or the kit's `POST.md` checklists. YouTube is NOT manual any more: `launch post --all --live` uploads to it whenever the three YOUTUBE_* keys are set. Uploads land private unless `YOUTUBE_PRIVACY` says otherwise -- say so out loud before any live run, and confirm it the same way as every other api-mode platform.

Rules

  • Never skip the dry-run step. Never post live without explicit user confirmation.
  • If the kit manifest promises a video whose file is missing, posting refuses — fix by re-running

`render-matrix.mjs <brand> --project <product> --production` and `build-postkit.mjs <brand> --project <product> --production`, not by unwiring the kit.

  • Live publishing remains blocked until the current media, production plan, per-row

evidence, and named full-film review are hash-bound and PASS. A dry run may preview an incomplete kit but never weakens the live gate.

  • Drafts own the copy; the kit contributes media. Do not paste kit captions over validated drafts.
Read more
Ships withmarketing-studio

An agent-driven local marketing studio. The bundled Claude Code plugin adds /marketing and /launch: the agent onboards your brand, films your app, writes the asset suite and review evidence into that product repo, then prepares guarded distribution to X,

Get the whole plugin
Stats
244
Stars
33
Forks
Active
Maintenance
JavaScript
Language
MIT
License
10d ago
Last commit
2mo ago
Created

Repo: ucsandman/marketing-studio

Other skills on marketing-studio.