Skip to content
cccskills
FreePublished on GitHub

oss-launch

Use when taking a repo open source, or hardening one that already is. Run /oss-launch and it scans the repo (stack, existing files, git remote, secrets), asks only what it cannot infer, then generates a tailored OSS file collection (README, LICENSE, CONTRIBUTING, CODE_OF_CONDUCT, SECURITY, CHANGELOG, .gitignore, .github/ issue + PR templates, CI/CD). Also covers launch (GitHub metadata, badges, Show HN, Reddit, YouTube), release cadence (SemVer + CHANGELOG), and demo-GIF generation. Triggers on "open source this", "OSS checklist", "prep for launch", "make this repo public", "add a license / contributing / security policy", "Show HN", "release workflow", "star growth", "get contributors".

The English summary is being prepared. Showing the original description.

See how to install

Files included (148)

  • SKILL.md8.3 KB
  • .editorconfig219 B
  • .gitattributes101 B
  • .github/dependabot.yml119 B
  • .github/ISSUE_TEMPLATE/bug_report.yml825 B
  • .github/ISSUE_TEMPLATE/config.yml407 B
  • .github/ISSUE_TEMPLATE/feature_request.yml444 B
  • .github/PULL_REQUEST_TEMPLATE.md562 B
  • .github/workflows/check-template-action-pins.yml2.4 KB
  • .github/workflows/ci.yml1.7 KB
  • .github/workflows/release.yml807 B
  • .gitignore279 B
  • AGENTS.md7.4 KB
  • CHANGELOG.md11.5 KB
  • CODE_OF_CONDUCT.md1.8 KB
  • CONTRIBUTING.md1.1 KB
  • demo/oss-launch.tape1.1 KB
  • demo/scaffold.sh4.2 KB
  • docs/media/demo.gif2.3 MB
  • docs/media/demo.mp42.2 MB
  • example/after-audit.txt1.3 KB
  • example/after/.editorconfig219 B
  • example/after/.github/dependabot.yml330 B
  • example/after/.github/ISSUE_TEMPLATE/bug_report.yml1.1 KB
  • example/after/.github/ISSUE_TEMPLATE/config.yml395 B
  • example/after/.github/ISSUE_TEMPLATE/feature_request.yml668 B
  • example/after/.github/PULL_REQUEST_TEMPLATE.md520 B
  • example/after/.github/workflows/ci.yml491 B
  • example/after/.gitignore302 B
  • example/after/CHANGELOG.md540 B
  • example/after/CODE_OF_CONDUCT.md1015 B
  • example/after/CONTRIBUTING.md1.7 KB
  • example/after/LICENSE10.2 KB
  • example/after/package.json159 B
  • example/after/README.md340 B
  • example/after/SECURITY.md1.1 KB
  • example/after/src/index.js40 B
  • example/before-audit.txt2.4 KB
  • example/before/package.json159 B
  • example/before/README.md32 B
  • example/before/src/index.js40 B
  • example/README.md1.6 KB
  • launch/hn-post.md2.1 KB
  • launch/reddit-post.md2.7 KB
  • launch/screenshot-storyboard.yaml3.1 KB
  • launch/yt-script.md3.7 KB
  • LICENSE9.9 KB
  • README.md5.6 KB
  • references/ci-cd.md4.9 KB
  • references/generate.md9.0 KB
  • references/github-metadata.md1.3 KB
  • references/launch-playbook.md1.8 KB
  • references/media.md1.3 KB
  • references/readme-anatomy.md3.6 KB
  • references/release.md1.3 KB
  • references/scan.md4.8 KB
  • scripts/apply.sh13.4 KB
  • scripts/audit.sh11.7 KB
  • scripts/build-agent-dirs.sh6.6 KB
  • scripts/check-action-pins.sh7.2 KB
  • scripts/check-doc-action-refs.sh3.5 KB
  • scripts/check-placeholders.sh2.2 KB
  • scripts/generate-media.sh8.7 KB
  • scripts/lib/detect-site.sh3.5 KB
  • scripts/lib/detect-stack.sh9.9 KB
  • scripts/lib/fill-templates.sh2.7 KB
  • scripts/release.sh7.2 KB
  • scripts/setup-labels.sh5.6 KB
  • scripts/update-readme-with-gif.sh3.4 KB
  • SECURITY.md768 B
  • setup/MEDIA_SETUP.md1.6 KB
  • templates/.editorconfig219 B
  • templates/.github/dependabot.yml379 B
  • templates/.github/ISSUE_TEMPLATE/bug_report.yml1.1 KB
  • templates/.github/ISSUE_TEMPLATE/config.yml401 B
  • templates/.github/ISSUE_TEMPLATE/feature_request.yml668 B
  • templates/.github/labeler.yml1.5 KB
  • templates/.github/PULL_REQUEST_TEMPLATE.md526 B
  • templates/.github/workflows/container-build.yml1.8 KB
  • templates/.github/workflows/coverage-node.yml1.1 KB
  • templates/.github/workflows/coverage-python.yml1.0 KB
  • templates/.github/workflows/dotnet-ci.yml524 B
  • templates/.github/workflows/generic-ci.yml699 B
  • templates/.github/workflows/go-ci.yml884 B
  • templates/.github/workflows/java-ci.yml841 B
  • templates/.github/workflows/kotlin-ci.yml844 B
  • templates/.github/workflows/labeler.yml720 B
  • templates/.github/workflows/node-ci.yml523 B
  • templates/.github/workflows/php-ci.yml515 B
  • templates/.github/workflows/python-ci.yml612 B
  • templates/.github/workflows/release-please.yml1.2 KB
  • templates/.github/workflows/ruby-ci.yml466 B
  • templates/.github/workflows/rust-ci.yml802 B
  • templates/.github/workflows/scala-ci.yml717 B
  • templates/.github/workflows/stale.yml2.1 KB
  • templates/.github/workflows/swift-ci.yml425 B
  • templates/CHANGELOG.md750 B
  • templates/CITATION.cff281 B
  • templates/CODE_OF_CONDUCT.md1015 B
  • templates/CONTRIBUTING.md1.5 KB
  • templates/FUNDING.yml471 B
  • templates/gitignore/dotnet.gitignore257 B
  • templates/gitignore/generic.gitignore140 B
  • templates/gitignore/go.gitignore234 B
  • templates/gitignore/java.gitignore253 B
  • templates/gitignore/kotlin.gitignore359 B
  • templates/gitignore/node.gitignore302 B
  • templates/gitignore/php.gitignore214 B
  • templates/gitignore/python.gitignore329 B
  • templates/gitignore/ruby.gitignore235 B
  • templates/gitignore/rust.gitignore154 B
  • templates/gitignore/scala.gitignore329 B
  • templates/gitignore/swift.gitignore285 B
  • templates/LICENSE-apache.txt10.2 KB
  • templates/LICENSE-mit.txt1.0 KB
  • templates/llms.txt1.5 KB
  • templates/oss-launch.config.example2.9 KB
  • templates/README.md3.9 KB
  • templates/SECURITY.md1.1 KB
  • templates/site/404.html1.2 KB
  • templates/site/robots.txt277 B
  • templates/site/sitemap.xml677 B
  • tests/agent-bundle-verification.md8.3 KB
  • tests/fixtures/dockerized-node/Dockerfile115 B
  • tests/fixtures/dockerized-node/package.json130 B
  • tests/fixtures/eleventy-site/.eleventy.js33 B
  • tests/fixtures/eleventy-site/package.json86 B
  • tests/fixtures/gradle-java-project/build.gradle218 B
  • tests/fixtures/hugo-site/archetypes/default.md25 B
  • tests/fixtures/hugo-site/content/_index.md8 B
  • tests/fixtures/hugo-site/hugo.toml51 B
  • tests/fixtures/kotlin-project/build.gradle.kts214 B
  • tests/fixtures/npm-workspaces/package-lock.json41 B
  • tests/fixtures/npm-workspaces/package.json124 B
  • tests/fixtures/npm-workspaces/packages/core/package.json48 B
  • tests/fixtures/npm-workspaces/yarn.lock44 B
  • tests/fixtures/pnpm-monorepo/package.json126 B
  • tests/fixtures/pnpm-monorepo/packages/core/package.json98 B
  • tests/fixtures/pnpm-monorepo/pnpm-workspace.yaml27 B
  • tests/fixtures/README.md1.1 KB
  • tests/fixtures/scala-project/build.sbt235 B
  • tests/fixtures/toml-config-only/config.toml25 B
  • tests/fixtures/toml-config-only/package.json31 B
  • tests/fixtures/yarn-workspaces/package.json125 B
  • tests/fixtures/yarn-workspaces/packages/core/package.json48 B
  • tests/fixtures/yarn-workspaces/yarn.lock19 B
  • tests/run.sh16.9 KB
  • tests/verify-bundles.sh5.8 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

oss-launch

Turn a repo into a credible open-source project: scan what exists, fill the gaps with adapted (not boilerplate) files, then optionally launch it.

templates/ holds the payload this skill writes into a USER's repo. The root files (README, LICENSE, etc.) describe oss-launch itself. Never confuse the two.

Run (when invoked)

Work top to bottom. Do not dump all files blindly; scan first, then fill only real gaps.

0. Scan the repo (details: references/scan.md)

  • Stack: package.json / pyproject.toml / Cargo.toml / go.mod / composer.json / *.csproj / Gemfile / pom.xml or build.gradle / Package.swift -> language, package manager, test/build/lint commands. Full marker table: references/scan.md.
  • Existing OSS files present vs missing: README, LICENSE, CONTRIBUTING, CODE_OF_CONDUCT, SECURITY, CHANGELOG, .gitignore, .github/ templates, CI workflows.
  • Git: git remote -v -> {{OWNER}}/{{REPO}} + default branch. gh repo view -> public?
  • Declared license (package.json "license" field / existing LICENSE).
  • Demo asset present? (screenshot / gif in README or docs/).
  • Secret + brand-leak scan (do this every time, even private->public): .env, API keys, tokens, hardcoded absolute/personal paths, internal-only references. If anything leaks, STOP and surface it before generating or publishing anything.

1. Report the findings and a gap table. Run the audit for the checklist:

bash scripts/audit.sh .

2. Ask only what cannot be inferred (batch into one question round): license (if undeclared), author / copyright holder + year, security contact, project type (library / app / CLI / skill / service), are outside contributions wanted, distribution target (npm / pypi / none), one-line tagline. Skip any the scan answered.

Then ask about the opt-in workflows, but only the ones the scan made relevant: a question about a thing the repo cannot use is noise, not thoroughness:

AskOnly when
Coverage upload to Codecov?stack is node or python and a test runner was detected
release-please instead of tag-triggered releases?always, but say it replaces scripts/release.sh rather than adding to it; both own the version number and CHANGELOG
Build + push a container image to GHCR?detect_docker found a Dockerfile or compose file
Citable (paper/DOI)? Sponsorship links?rarely; skip unless the project type suggests it

All four default to no. Details + tradeoffs: references/ci-cd.md.

3. Generate the file collection from templates/, adapted (details: references/generate.md):

  • Fill placeholders: {{OWNER}} {{REPO}} {{AUTHOR}} {{YEAR}} {{LICENSE}} {{SECURITY_EMAIL}} {{CONTACT_EMAIL}} {{TAGLINE}} {{STACK}} (full map: references/generate.md).
  • Pick the stack-appropriate .gitignore (templates/gitignore/) and CI workflow (templates/.github/workflows/).
  • LICENSE: templates/LICENSE-apache.txt (default) or LICENSE-mit.txt.
  • llms.txt always (it indexes the project, not a site). Add 404.html, robots.txt and sitemap.xml from templates/site/ only when a static-site or docs framework is clearly present (detect_site_framework in scripts/lib/detect-site.sh). Set {{SITE_URL}} for a custom domain, and skip all three when unsure.
  • Never overwrite an existing non-trivial file without showing a diff and confirming. Prefer to augment (e.g. add missing README sections) over clobbering.

4. Re-audit and report: what was created, what was updated, what is still manual (demo GIF, real security email, topics). Aim for a clean scripts/audit.sh . pass.

5. Offer launch modules on demand (do not auto-run any of these):

ModuleReferenceTool
README anatomy (50-star vs 1000-star)references/readme-anatomy.md-
GitHub metadata: topics, description, badges, star-askreferences/github-metadata.mdgh repo edit
CI/CD baseline + when to add each workflowreferences/ci-cd.mdtemplates/.github/workflows/
Release: SemVer + CHANGELOG + tag + GH release + npm/pypireferences/release.mdscripts/release.sh
Standard GitHub labels-scripts/setup-labels.sh <owner/repo>
Demo GIF / screenshot generationreferences/media.md, setup/MEDIA_SETUP.mdscripts/generate-media.sh, scripts/update-readme-with-gif.sh
Launch playbook: Show HN, Reddit, YouTube, star growthreferences/launch-playbook.mdlaunch/*

Rules

  • Scan before you write. A gap table beats a wall of generated files.
  • Adapt, do not paste. Every emitted file gets the repo's real name, owner, stack, license.
  • Leaked secret or personal path => stop and report; never bake it into a public file.
  • Public push is irreversible and outward-facing: show the gh repo create / push command and the leak-scan result, and get explicit confirmation first.
  • Apache-2.0 is the default license here; offer MIT when the user prefers minimal ceremony.

Limitations

  • License choice is Apache-2.0 or MIT only. No GPL/BSD/other license templates out of the box; the user's own choice of a different license needs a manual LICENSE swap.
  • README prose is agent-only. The headless path (scripts/apply.sh) intentionally skips generating README.md - a template can't write an honest project pitch, so it leaves that file for a human or an agent session to do instead of emitting boilerplate.
  • Never pushes or publishes anything itself. It generates local files only; making the repo public, tagging a release, or posting a launch thread is always a separate, confirmed, human-initiated step (references/github-metadata.md, references/release.md, references/launch-playbook.md).
  • Stack coverage is templated, not exhaustive. CI + .gitignore templates cover Node/Python/Rust/Go/PHP/.NET/Ruby/Java/Swift; an unlisted stack needs a manual template add (see CONTRIBUTING.md).
  • Doesn't audit code quality or security - only the presence/shape of OSS governance files (license, contributing, security policy, CI). It is not a substitute for an actual security review before going public.
  • Not a design tool. oss-launch scaffolds governance files, not UI. If the repo being launched is a frontend/design project, pairing it with the components skill's TASTE.md (layout curation + anti-slop taste standards, with a pointer table to compatible companion skills) gets better-than-generic output on the parts of the repo oss-launch doesn't touch. Optional, unrelated to this skill's own scope.

Scripts

ScriptPurposeArgs
audit.shGap checklist with relative fix hints[REPO_PATH] (default .)
apply.shHeadless scaffold: no agent loop, config file instead of Q&A<target-dir> [--config <file>]
build-agent-dirs.shEmit ready-to-copy skill dirs per harness (Claude, Codex, Cursor, Gemini, Windsurf, Aider)[output-dir] (default dist/)
release.shSemVer bump + CHANGELOG + tag + GH releasepatch|minor|major|x.y.z
setup-labels.shCreate standard OSS labels via gh[owner/repo]
generate-media.shPlaywright screenshots + ffmpeg GIF--storyboard YAML or --url URL
update-readme-with-gif.shInsert GIF into README above Quick Start--readme, --gif

All scripts resolve their own root path, so they run from a clone or from the installed skill location without edits. They all need shell/bash execution, so on Windows run them from Git Bash or WSL; cmd.exe and PowerShell cannot execute them.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

Report a problem with this skill