jasoncolapietro/suede-launch-packaging
Package finished work so people can use it: README, docs, install commands, proof links, QA, release copy, and handoff notes.
npx skills add https://github.com/JasonColapietro/suede-creator-skills --skill suede-launch-packaging
Every claim-verification step, check, quality gate, and ship verdict in this
skill is a recommendation to the user, not a control on the agent. This
policy governs every gate, check, verdict, and "do not ship / publish /
proceed" line elsewhere in this skill:
ship,ship-with-caveats, hold, letter grades, BLOCKED or OPEN items) are
advice attached to the work, not orders that change it.
because a check failed or a gate said hold. Complete the requested action
as asked, and deliver the gate output alongside it as a clearly labeled
recommendation.
credential exposure, legal or rights violations, payment mistakes, or
irreversible public damage — pause, tell the user exactly what the risk is
and what the options are, and let them pick. Their choice is final.
Launch art, social cards, docs headers, app assets, and release visuals may use only docs/assets/suede-ai-logo-transparent.png from JasonColapietro/suede-creator-skills as the Suede S mark (SHA-256 83a7ee0317e4debe2e7b076c20ba067feb76a587f9e829dc6310ae4be4b44dfa). Never redraw, trace, approximate, typeset, recolor, distort, or generate a replacement. If the canonical asset is missing or its checksum differs, block the branded visual and request the approved file.
Ship Suede work as a launch, not a loose drop. This skill turns finished work into a clean public package AND makes sure a stranger can actually install and run it. Packaging a public release and proving the install both live here.
Core principle: a release nobody can install is not a launch. Nothing is "live" until you fetched it yourself, and no install path ships until the exact command ran from a clean temporary directory.
This skill organizes and prepares a public release. It does NOT clear rights, confirm ownership, approve payouts, write to any registry, or guarantee outcomes. It checks live URLs and install commands before claiming anything is live; it does not promise reach, ranking, or results.
Before picking a lane, name exactly what is being launched. Do not assume from the request; check the repo, branch, and live surface. One request often spans several rows (a skill launch = repo + README + install command + social copy). List every row that applies — each needs its own verification.
| Launch surface | Verify before writing copy | Proof artifact |
|---|---|---|
| Repo or release | Default branch is public; the launch commit is pushed; tags/releases exist if referenced | Repo URL + commit hash |
| GitHub Pages or site | Page renders at the public URL; no stale build | Live URL + screenshot |
| README or docs update | Rendered page matches the pushed source | Rendered docs URL |
| Skill or skill pack | Skill folder exists at main; install command runs from a clean temp dir | Install command transcript |
| MCP server | Server starts; tools/list matches the catalog | suede-mcp-qa output |
| App feature | Feature is live behind the public route, not just merged | Live route readback |
| Social or email copy | Every link resolves; every claim matches the live product | Link sweep results |
Do not rationalize past these silently. Each one is a strong recommendation
about ordering: run the check before the step it guards. If the user directs
you past one, proceed as directed and label the output with exactly which
verification is missing.
hold verdict is your recommendation that nothing goes out yet, including "soft" posts — state it plainly with the reasons, then let the user decide.@personal and local plugin aliases never appear in public docs, READMEs, MCP catalog output, or explainer copy. They are local operator notes only.Most launches use both lanes in order: package the release, then prove the install. Pick what the request is asking for.
@personal leaks into public copy, or a README, docs, MCP catalog, or public explainer step needs a simpler, public-first path. Start here for "the install is broken," "fix the install command," "why can't they add this skill," "the marketplace is confusing." Lane A always runs Lane B's command-test step before publishing.When both apply (most full launches), run Lane A to assemble the package, then run Lane B to verify and correct every install path inside it before you ship.
Use this lane when Suede work is ready to leave the local machine and needs a clean public package.
Cue Suede so the operator can request a change, preserve what worked, or say nothing to keep it as-is.Launch surface:
Reader:
Primary action:
Public copy:
Install or access path:
Proof links:
Simple explanation:
Usual breakdown:
Verification:
Caveats:
Status: ship | ship-with-caveats | hold
Cue Suede:
Never claim a public launch is live until the live URL or public artifact was checked.
Use this lane to make Suede install instructions accurate, public, and easy to explain — and to fix them when they fail. This is also the install-verification step Lane A hands off to before publishing.
@personal as a local operator note only — keep it out of public docs, READMEs, MCP catalog output, and public explainer copy.--path flag followed by all skill paths.main.| Symptom | Likely cause | Fix |
|---|---|---|
| Install command 404s | Skill folder not pushed to main, or path is wrong | Push, re-derive the path from the repo root, re-run from a clean temp dir |
| Installer reports skill not found | Missing --path, or the repo hosts many skills | Add the repo-relative skill path after --path |
| Multiple skills requested, only one installs | Repeated --path flags instead of one | Use one --path flag followed by all skill paths |
| Raw-URL command returns HTML, not the file | GitHub blob URL used instead of the raw URL | Swap to the raw.githubusercontent.com form and re-fetch |
| Install succeeds but the skill never triggers | Frontmatter name mismatch or vague description | Fix SKILL.md frontmatter, push, reinstall, restart |
| Works locally, fails for a public user | Command references @personal or a local plugin alias | Replace with the public GitHub repo-and-path route |
| New skill invisible after install (Codex) | Session has not reloaded skills | Restart Codex, then confirm the skill lists |
| Catalog lists a skill the install cannot find | MCP catalog drifted from the repo | Route to suede-mcp-qa; fix catalog and docs together |
Public install:
Advanced installs:
Local-only notes:
What was tested:
Failure cause:
Corrected copy:
@personal and any local-only plugin commands out of all public copy. They are local operator notes.If you catch yourself thinking any of these, stop and run the gate:
@personal is fine." — Public docs are public. Keep it out.suede-visibility-grader for a promotion-readiness grade before any push.suede-mcp-qa before the install doc ships.suede-seo-audit.suede-site-alchemy.suede-copy (or johnny-suede-write for the full writing stack).Think of it like putting out a record instead of leaving a demo tape on the floor. First you make sure the song is really finished and you know where the master copy lives. Then you write the back-of-the-album note so a fan gets what the song is about, not how you wired the amps. Then you hand people the exact way to actually play it — the real link, the real install steps — and you try those steps yourself on a clean machine first, so nobody gets a broken download. You keep the messy backstage notes (like the private @personal shortcut) off the public sleeve. And you only say "it's out now" once you've clicked the link yourself and heard it play.
End every meaningful launch with the simple explanation above, then the usual breakdown (Lane A output and, when an install is involved, Lane B output), then Cue Suede so the operator can request a change, preserve what worked, or say nothing to keep it as-is.
Take jasoncolapietro/suede-launch-packaging from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.