skills/oss-ready/SKILL.md
Transform a project into a professional open-source repository by adding LICENSE, README, CONTRIBUTING, CODE_OF_CONDUCT, SECURITY, and GitHub issue/PR templates. Don't use for documentation overhauls, landing-page generation, or registry publishing.
npx skillsauth add luongnv89/skills oss-readyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Transform a project into a professional open-source repository with standard community files and GitHub templates.
Before creating/updating/deleting files in an existing repository, sync the current branch with remote:
branch="$(git rev-parse --abbrev-ref HEAD)"
git fetch origin
git pull --rebase origin "$branch"
If the working tree is not clean, stash first, sync, then restore:
git stash push -u -m "pre-sync"
branch="$(git rev-parse --abbrev-ref HEAD)"
git fetch origin && git pull --rebase origin "$branch"
git stash pop
If origin is missing, pull is unavailable, or rebase/stash conflicts occur, stop and ask the user before continuing.
Before making any changes:
feat/, feature/, etc.)feat/oss-readyIdentify:
README.md - Enhance with:
CONTRIBUTING.md - Include:
LICENSE - Default to MIT unless specified. Copy from assets/LICENSE-MIT.
CODE_OF_CONDUCT.md - Use Contributor Covenant. Copy from assets/CODE_OF_CONDUCT.md.
SECURITY.md - Vulnerability reporting process. Copy from assets/SECURITY.md.
Copy from assets/.github/:
ISSUE_TEMPLATE/bug_report.mdISSUE_TEMPLATE/feature_request.mdPULL_REQUEST_TEMPLATE.mddocs/
├── ARCHITECTURE.md # System design, components
├── DEVELOPMENT.md # Dev setup, debugging
├── DEPLOYMENT.md # Production deployment
└── CHANGELOG.md # Version history
Update package file based on tech stack:
package.json - name, description, keywords, repository, licensepyproject.toml or setup.pyCargo.tomlgo.mod + README badgesVerify comprehensive patterns for the tech stack.
After completion, show:
After completing each major step, output a status report in this format:
◆ [Step Name] ([step N of M] — [context])
··································································
[Check 1]: √ pass
[Check 2]: √ pass (note if relevant)
[Check 3]: × fail — [reason]
[Check 4]: √ pass
[Criteria]: √ N/M met
____________________________
Result: PASS | FAIL | PARTIAL
Adapt the check names to match what the step actually validates. Use √ for pass, × for fail, and — to add brief context. The "Criteria" line summarizes how many acceptance criteria were met. The "Result" line gives the overall verdict.
◆ Analysis (step 1 of 4 — project profiling)
··································································
Language detected: √ pass — TypeScript (primary)
Project type identified: √ pass — CLI tool
Existing docs found: √ pass — README.md (partial), no LICENSE
[Criteria]: √ 3/3 met
____________________________
Result: PASS
◆ Core Files (step 2 of 4 — community standards)
··································································
README created: √ pass — enhanced with badges, examples
LICENSE added: √ pass — MIT from assets/LICENSE-MIT
CONTRIBUTING written: √ pass — branching strategy included
CODE_OF_CONDUCT added: × fail — assets/CODE_OF_CONDUCT.md missing
[Criteria]: √ 3/4 met
____________________________
Result: PARTIAL
◆ GitHub Setup (step 3 of 4 — issue and PR templates)
··································································
Issue templates created: √ pass — bug_report.md, feature_request.md
PR template created: √ pass — PULL_REQUEST_TEMPLATE.md
[Criteria]: √ 2/2 met
____________________________
Result: PASS
◆ Documentation (step 4 of 4 — docs structure)
··································································
ARCHITECTURE written: √ pass — system components documented
CHANGELOG created: √ pass — version history initialized
Metadata updated: √ pass — package.json keywords, license, repo
[Criteria]: √ 3/3 met
____________________________
Result: PASS
The skill is complete when every item below can be verified with test -f, grep, or a quick visual check. Treat this as a checklist the agent must assert before reporting success.
LICENSE exists at repo root and contains a valid SPDX identifier (e.g., MIT, Apache-2.0). Verify: grep -E "MIT License|Apache License" LICENSE.README.md exists, is at least 40 lines, and includes sections for Installation, Usage, and License. Verify: grep -iE "^#+ (install|usage|license)" README.md | wc -l returns >= 3.CONTRIBUTING.md exists and references the issue tracker plus a branching/PR workflow. Verify: grep -iE "issue|pull request|branch" CONTRIBUTING.md.CODE_OF_CONDUCT.md exists and mentions the Contributor Covenant. Verify: grep -i "contributor covenant" CODE_OF_CONDUCT.md.SECURITY.md exists and lists at least one vulnerability-reporting contact (email or form URL). Verify: grep -E "@|https?://" SECURITY.md..github/ISSUE_TEMPLATE/bug_report.md and .github/ISSUE_TEMPLATE/feature_request.md both exist with YAML frontmatter (name:, about:)..github/PULL_REQUEST_TEMPLATE.md exists and contains a checklist (- [ ])..gitignore exists and excludes the language-appropriate build/temp artefacts (e.g., node_modules/, dist/, __pycache__/, target/).package.json, pyproject.toml, Cargo.toml, or go.mod) declares license, description, and repository fields where the format supports them.After a successful run on a TypeScript CLI project that started with only a partial README.md, the agent emits a final report shaped like this:
◆ OSS Ready summary (4 of 4 steps complete)
··································································
Files created:
√ LICENSE (MIT)
√ CONTRIBUTING.md (33 lines)
√ CODE_OF_CONDUCT.md (Contributor Covenant 2.1)
√ SECURITY.md (reporting via [email protected])
√ .github/ISSUE_TEMPLATE/bug_report.md
√ .github/ISSUE_TEMPLATE/feature_request.md
√ .github/PULL_REQUEST_TEMPLATE.md
√ docs/ARCHITECTURE.md, DEVELOPMENT.md, DEPLOYMENT.md, CHANGELOG.md
Files updated:
√ README.md (+ Quick Start, Usage, License badge)
√ package.json (license, repository, keywords)
√ .gitignore (added dist/, .env)
Acceptance criteria: √ 10/10 met
Manual review needed:
- Confirm SECURITY.md contact email is monitored
- Add real maintainer names to CODE_OF_CONDUCT enforcement section
____________________________
Result: PASS
The agent must list the manual-review items explicitly so the user can finish what cannot be automated. Assert that the file tree printed by the agent matches what is actually on disk before declaring PASS.
The skill should detect and handle these inputs explicitly rather than fail silently:
package.json files — update only the root metadata file unless the user names a sub-package.CODE_OF_CONDUCT.md or SECURITY.md — diff against the template; only append a missing section, never replace user content..github/ workflows or templates — preserve them; merge only the missing files.Templates in assets/:
LICENSE-MIT - MIT license templateCODE_OF_CONDUCT.md - Contributor CovenantSECURITY.md - Security policy template.github/ISSUE_TEMPLATE/bug_report.md.github/ISSUE_TEMPLATE/feature_request.md.github/PULL_REQUEST_TEMPLATE.mddocumentation
Manage software releases end-to-end: bump version, generate changelog, tag, push, GitHub release, publish to PyPI/npm. Use when user asks to ship, cut a release, tag a version, or list changes since last tag. Skip routine commits and marketplace publishing.
development
Review UI for usability issues using Steve Krug's principles and produce a scannable report. Use when asked for a usability audit, UX review, or UI feedback on screenshots, URLs, or code. Don't use for visual/brand design critique, accessibility (WCAG) audits, or backend/API review.
development
Validate app/startup ideas with market, feasibility, commercial, and open-source competitor analysis. Use when asked to evaluate, validate, or score a product idea. Don't use for PRDs, go-to-market plans, or investor decks.
testing
Install local-first security hardening: pre-commit secret detection, offline dependency scans, static analysis, reports, and gated free CI. Use when hardening repos or adding security hooks. Don't use for incident response or cloud security reviews.