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".
含まれるファイル(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(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
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.xmlorbuild.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 / existingLICENSE). - 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:
| Ask | Only 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) orLICENSE-mit.txt. llms.txtalways (it indexes the project, not a site). Add404.html,robots.txtandsitemap.xmlfromtemplates/site/only when a static-site or docs framework is clearly present (detect_site_frameworkinscripts/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):
| Module | Reference | Tool |
|---|---|---|
| README anatomy (50-star vs 1000-star) | references/readme-anatomy.md | - |
| GitHub metadata: topics, description, badges, star-ask | references/github-metadata.md | gh repo edit |
| CI/CD baseline + when to add each workflow | references/ci-cd.md | templates/.github/workflows/ |
| Release: SemVer + CHANGELOG + tag + GH release + npm/pypi | references/release.md | scripts/release.sh |
| Standard GitHub labels | - | scripts/setup-labels.sh <owner/repo> |
| Demo GIF / screenshot generation | references/media.md, setup/MEDIA_SETUP.md | scripts/generate-media.sh, scripts/update-readme-with-gif.sh |
| Launch playbook: Show HN, Reddit, YouTube, star growth | references/launch-playbook.md | launch/* |
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
LICENSEswap. - README prose is agent-only. The headless path (
scripts/apply.sh) intentionally skips generatingREADME.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 +
.gitignoretemplates cover Node/Python/Rust/Go/PHP/.NET/Ruby/Java/Swift; an unlisted stack needs a manual template add (seeCONTRIBUTING.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-launchscaffolds governance files, not UI. If the repo being launched is a frontend/design project, pairing it with thecomponentsskill'sTASTE.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 repooss-launchdoesn't touch. Optional, unrelated to this skill's own scope.
Scripts
| Script | Purpose | Args |
|---|---|---|
audit.sh | Gap checklist with relative fix hints | [REPO_PATH] (default .) |
apply.sh | Headless scaffold: no agent loop, config file instead of Q&A | <target-dir> [--config <file>] |
build-agent-dirs.sh | Emit ready-to-copy skill dirs per harness (Claude, Codex, Cursor, Gemini, Windsurf, Aider) | [output-dir] (default dist/) |
release.sh | SemVer bump + CHANGELOG + tag + GH release | patch|minor|major|x.y.z |
setup-labels.sh | Create standard OSS labels via gh | [owner/repo] |
generate-media.sh | Playwright screenshots + ffmpeg GIF | --storyboard YAML or --url URL |
update-readme-with-gif.sh | Insert 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.
レビュー
まだレビューはありません。使ってみた感想をお寄せください。