{"id":50678802,"url":"https://github.com/sjh9714/oss-launch-lint","last_synced_at":"2026-06-08T17:03:56.643Z","repository":{"id":359906668,"uuid":"1247964875","full_name":"sjh9714/oss-launch-lint","owner":"sjh9714","description":"Audit whether a GitHub repo is ready for an ethical open-source launch.","archived":false,"fork":false,"pushed_at":"2026-05-24T03:55:48.000Z","size":51,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-24T04:28:34.711Z","etag":null,"topics":["cli","developer-tools","github","launch","maintainer-tools","open-source","oss","release-checklist","typescript"],"latest_commit_sha":null,"homepage":"https://github.com/sjh9714/oss-launch-lint","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sjh9714.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-05-24T02:31:47.000Z","updated_at":"2026-05-24T03:55:52.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/sjh9714/oss-launch-lint","commit_stats":null,"previous_names":["sjh9714/oss-launch-lint"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/sjh9714/oss-launch-lint","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjh9714%2Foss-launch-lint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjh9714%2Foss-launch-lint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjh9714%2Foss-launch-lint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjh9714%2Foss-launch-lint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sjh9714","download_url":"https://codeload.github.com/sjh9714/oss-launch-lint/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjh9714%2Foss-launch-lint/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34071668,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","developer-tools","github","launch","maintainer-tools","open-source","oss","release-checklist","typescript"],"created_at":"2026-06-08T17:03:54.253Z","updated_at":"2026-06-08T17:03:56.638Z","avatar_url":"https://github.com/sjh9714.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# oss-launch-lint\n\n[![CI](https://github.com/sjh9714/oss-launch-lint/actions/workflows/ci.yml/badge.svg)](https://github.com/sjh9714/oss-launch-lint/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n\nFind the launch gaps that make people leave your GitHub repo in the first 20 seconds.\n\n`oss-launch-lint` is a tiny CLI for maintainers, indie developers, students, and AI-assisted builders who have working code but want the repository to feel ready before sharing it.\n\n## Why it is useful\n\nMany useful repos lose visitors because the README, install path, license, CI status, or contribution path is unclear. This tool checks the boring-but-important launch details, generates concrete next actions, suggests GitHub topics, and can scaffold missing community files without overwriting your work.\n\n## What you get\n\n```text\nScore: 72/100\n\nFail:\n- No LICENSE file\n- No issue templates\n- README missing install instructions\n\nWarn:\n- CI exists but does not run tests\n- package.json missing useful keywords\n\nNext actions:\n1. Add LICENSE\n2. Add .github/ISSUE_TEMPLATE/bug_report.md\n3. Add a copy-paste quickstart command\n```\n\n## Installation\n\nRun without installing:\n\n```bash\nnpx oss-launch-lint@latest .\n```\n\nOr install globally:\n\n```bash\nnpm install -g oss-launch-lint\noss-launch-lint .\n```\n\nFrom a source checkout:\n\n```bash\ngit clone https://github.com/sjh9714/oss-launch-lint.git\ncd oss-launch-lint\nnpm install\nnpm run build\nnode bin/oss-launch-lint --help\n```\n\n## Quickstart\n\nAudit the current repository and write launch assets:\n\n```bash\nnpx oss-launch-lint@latest . --output launch-report.md --promotion-output promotion-copy.md\n```\n\nPrint JSON for automation:\n\n```bash\nnpx oss-launch-lint@latest . --json --no-promotion\n```\n\nPreview missing launch-readiness files without writing anything:\n\n```bash\nnpx oss-launch-lint@latest . --fix --dry-run --no-promotion\n```\n\nCreate missing scaffold files after confirmation:\n\n```bash\nnpx oss-launch-lint@latest . --fix --no-promotion\n```\n\nUse in CI-style checks:\n\n```bash\nnpx oss-launch-lint@latest . --fail-under 80 --github-step-summary --no-promotion\n```\n\nTry the included demo fixture:\n\n```bash\nnode bin/oss-launch-lint tests/fixtures/demo-repo --output tmp/demo-report.md --promotion-output tmp/demo-promotion.md\n```\n\n## Example output\n\nTerminal summary:\n\n```text\nLaunch report written to launch-report.md\nPromotion copy written to promotion-copy.md\nScore: 95/100 (9 pass, 1 warn, 0 fail)\n```\n\nGenerated report excerpt:\n\n```markdown\n# Launch Readiness Report\n\n## Score: 95/100\n\nPass: 9 | Warn: 1 | Fail: 0\n\n## Suggested GitHub topics\n\nopen-source, github, developer-tools, cli, typescript, nodejs\n```\n\n`--fix` reports show the improvement after scaffolding:\n\n```text\n## Fix summary\n\nScore before fix: 5/100\nScore after fix: 58/100\nScaffold: 7 written, 0 skipped\n```\n\n## What it checks\n\n- README presence and launch-critical section headings\n- License, contributing guide, code of conduct, security policy, and changelog\n- GitHub Actions workflow with meaningful `run:` verification commands\n- Issue templates\n- Package metadata and test script\n- Topic suggestions from files, README text, and package keywords\n- Release checklist and ethical launch note\n\nScores are weighted so launch-critical gaps, such as a missing README, license, CI, or test command, count more than nice-to-have launch polish.\n\n## Safe scaffolding\n\n`--fix` can scaffold practical launch-readiness files:\n\n- `CONTRIBUTING.md`\n- `SECURITY.md`\n- `CODE_OF_CONDUCT.md`\n- `CHANGELOG.md`\n- `.github/ISSUE_TEMPLATE/bug_report.md`\n- `.github/ISSUE_TEMPLATE/feature_request.md`\n- `.github/workflows/oss-launch-lint.yml`\n\nSafety rules:\n\n- `--fix --dry-run` prints what would be created and writes nothing.\n- `--fix` asks for confirmation before writing.\n- `--fix --yes` skips the prompt for automation.\n- Existing files are never overwritten unless `--force` is explicitly provided.\n\nThe workflow scaffold uses `npx oss-launch-lint@latest` so other repositories can add a launch-readiness gate without cloning this source repository.\n\n## GitHub Actions\n\n`oss-launch-lint` can act as a launch-readiness quality gate:\n\n```bash\nnpx oss-launch-lint@latest . --fail-under 80 --github-step-summary --no-promotion\n```\n\nSee [docs/github-actions.md](docs/github-actions.md) for a copy-paste GitHub Actions workflow.\n\n## CLI options\n\n```text\noss-launch-lint [repoPath] [options]\n\nOptions:\n  --output \u003cfile\u003e             Markdown report path (default: launch-report.md)\n                              Use - to print the Markdown report to stdout\n  --promotion-output \u003cfile\u003e   Promotion copy path (default: promotion-copy.md)\n  --json                      Print documented JSON to stdout\n  --no-promotion              Do not write promotion-copy.md\n  --fix                       Scaffold missing launch-readiness files\n  --dry-run                   With --fix, preview scaffold actions without writing files\n  --yes                       With --fix, skip the interactive confirmation prompt\n  --force                     With --fix, overwrite scaffold targets that already exist\n  --fail-under \u003cscore\u003e        Exit non-zero if the readiness score is below score\n  --github-step-summary       Append the Markdown report to $GITHUB_STEP_SUMMARY\n  --version, -v               Print version\n  --help, -h                  Show help\n```\n\n## JSON shape\n\n```ts\n{\n  score: number;\n  summary: { pass: number; warn: number; fail: number };\n  checks: Array\u003c{\n    id: string;\n    title: string;\n    status: \"pass\" | \"warn\" | \"fail\";\n    message: string;\n    recommendation?: string;\n  }\u003e;\n  topics: string[];\n  nextActions: string[];\n}\n```\n\n## Demo and screenshots\n\nFor a quick text demo, run the fixture command above and open `tmp/demo-report.md`. The `--fix` example above shows the current before/after flow that should become the visual demo. For a visual demo, record the same commands with your terminal recorder of choice and show the generated report scrolling below the command output.\n\n## Development\n\n```bash\nnpm install\nnpm test\nnpm run lint\nnpm run build\nnpm run format:check\n```\n\n## Roadmap\n\n- Expand `--fix` with language-specific templates.\n- Add more language-specific package metadata checks.\n- Add a terminal GIF or screenshot asset for the README.\n\n## Contributing\n\nIssues and pull requests are welcome. Please read [CONTRIBUTING.md](CONTRIBUTING.md), run the verification commands above, and keep promotion-related features ethical and non-spammy.\n\n## Support\n\nOpen a GitHub issue with the repo type you audited, the command you ran, and the confusing output. Please do not share secrets, private tokens, or unreleased security details in public issues.\n\nMaintained by [@sjh9714](https://github.com/sjh9714).\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsjh9714%2Foss-launch-lint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsjh9714%2Foss-launch-lint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsjh9714%2Foss-launch-lint/lists"}