Source profileQuality 78/100

jackchuka/skills/gh-oss-release-prep/SKILL.md

gh-oss-release-prep

Systematic OSS release preparation checklist. Use when preparing a repository for open-source publishing, making a project public, or ensuring a repo meets OSS standards. Triggers: "prepare for OSS", "ready to publish", "make this public", "OSS checklist", "scan repo for publish", "open source this", "/oss-release-prep"

Source repository stars
15
Declared platforms
0
Static risk flags
2
Last source update
2026-07-28
Source checked
2026-07-28

Decision brief

What it does—and where it fits

Systematic workflow to prepare a repository for open-source publishing. Covers code quality, licensing, documentation, CI, and release readiness.

Best for

  • Use when preparing a repository for open-source publishing, making a project public, or ensuring a repo meets OSS standards.

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/jackchuka/skills --skill "gh-oss-release-prep"
Safe inspection promptEditorial

Inspect the Agent Skill "gh-oss-release-prep" from https://github.com/jackchuka/skills/blob/7b0b33f68b8f11522e43622e5cb3bacd802999d2/gh-oss-release-prep/SKILL.md at commit 7b0b33f68b8f11522e43622e5cb3bacd802999d2. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Step 0: Classify the Project

    Before starting, determine the project type — this affects which steps apply:

    Before starting, determine the project type — this affects which steps apply:This classification drives decisions in Steps 3-6. Don't suggest goreleaser for a library. Don't skip install instructions for a binary.
  2. 02

    Step 1: Repository Scan

    Scan the repo and a sibling repo (for conventions):

    Read the project structure (directories, key files)Check for existing README, LICENSE, CONTRIBUTING, CODEOFCONDUCTIdentify the primary language and build system
  3. 03

    Step 2: License & Dependency Audit

    1. Identify the intended license (check sibling repos first, default: MIT) 2. Check all dependencies for license compatibility: - Direct dependencies: list each with its license - Flag any copyleft (GPL, AGPL) dependencies that conflict with the chosen license 3. If attribution…

    Identify the intended license (check sibling repos first, default: MIT)Check all dependencies for license compatibility:Direct dependencies: list each with its license
  4. 04

    Step 3: README Quality Check

    Evaluate and improve the README:

    Required sections (create if missing):Project name and tagline (concise, memorable)What it does (1-2 sentences)
  5. 05

    Step 4: Code Quality Review

    1. Copy linter config from sibling repo if missing (.golangci.yml, .eslintrc, etc.) 2. Run linters and fix all issues before proceeding: - Go: golangci-lint run ./... — fix errcheck, unused, etc. - Node/TS: check package.json scripts for lint commands 3. Ensure public API docume…

    Copy linter config from sibling repo if missing (.golangci.yml, .eslintrc, etc.)Run linters and fix all issues before proceeding:Go: golangci-lint run ./... — fix errcheck, unused, etc.

Permission review

Static risk signals and limitations

Reads files

low · line 28

The documentation asks the agent to read local files, directories, or repositories.

Scan the repo and a sibling repo (for conventions):

Reads files

low · line 35

The documentation asks the agent to read local files, directories, or repositories.

**Scan a sibling repo** for: LICENSE, .gitignore, linter config, .github/workflows, .goreleaser.yaml

Writes files

medium · line 57

The documentation asks the agent to create, modify, or delete local files.

If attribution is required, create or update a NOTICES file

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score78/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars15SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
jackchuka/skills
Skill path
gh-oss-release-prep/SKILL.md
Commit
7b0b33f68b8f11522e43622e5cb3bacd802999d2
License
MIT
Collected
2026-07-28
Default branch
main
View the original SKILL.md

OSS Release Preparation

Systematic workflow to prepare a repository for open-source publishing. Covers code quality, licensing, documentation, CI, and release readiness.

Key Principle: Convention Reuse

Before creating any file from scratch, check the user's sibling repositories for existing conventions. Users maintain consistency across their repos — reuse their LICENSE text, .golangci.yml, .gitignore, .github/workflows, .goreleaser.yaml, etc. from a recent, well-maintained repo.

How to find conventions:

  1. Look at sibling directories (e.g., ls ../) for other repos by the same user
  2. Pick a recently-updated repo with similar characteristics (same language, similar type)
  3. Copy config files, adapting only what's project-specific (binary name, module path)

Step 0: Classify the Project

Before starting, determine the project type — this affects which steps apply:

TypeHas main.go / binary outputNeeds goreleaserNeeds package registry
CLI tool / binaryYesYesHomebrew tap, etc.
Library / moduleNoNogo get / npm / PyPI
Both (tool + importable pkg)YesYesBoth

This classification drives decisions in Steps 3-6. Don't suggest goreleaser for a library. Don't skip install instructions for a binary.

Step 1: Repository Scan

Scan the repo and a sibling repo (for conventions):

  1. Read the project structure (directories, key files)
  2. Check for existing README, LICENSE, CONTRIBUTING, CODE_OF_CONDUCT
  3. Identify the primary language and build system
  4. Check for any sensitive files (.env, credentials, API keys, internal URLs)
  5. Review .gitignore for completeness
  6. Scan a sibling repo for: LICENSE, .gitignore, linter config, .github/workflows, .goreleaser.yaml

Report findings as a checklist:

Repository Scan:
- [x/!] README.md exists
- [x/!] LICENSE file exists
- [x/!] .gitignore is comprehensive
- [x/!] .golangci.yml / linter config exists
- [x/!] .github/workflows exists (CI)
- [x/!] No sensitive files detected
- [x/!] No hardcoded internal URLs or secrets
- Reference repo for conventions: <sibling-repo-name>

Step 2: License & Dependency Audit

  1. Identify the intended license (check sibling repos first, default: MIT)
  2. Check all dependencies for license compatibility:
    • Direct dependencies: list each with its license
    • Flag any copyleft (GPL, AGPL) dependencies that conflict with the chosen license
  3. If attribution is required, create or update a NOTICES file
  4. Copy LICENSE from sibling repo, updating year if needed

Step 3: README Quality Check

Evaluate and improve the README:

  1. Required sections (create if missing):

    • Project name and tagline (concise, memorable)
    • What it does (1-2 sentences)
    • Installation instructions (adapt based on project type — go get for libraries, go install/brew for CLIs)
    • Quick start / basic usage
    • License
  2. Recommended sections (suggest if missing):

    • Features list
    • Configuration options
    • Contributing guidelines (or link to CONTRIBUTING.md)
  3. Quality checks:

    • Does the README match the actual CLI/API interface?
    • Are code examples up to date and runnable?
    • Is the installation method documented correctly?

Step 4: Code Quality Review

  1. Copy linter config from sibling repo if missing (.golangci.yml, .eslintrc, etc.)
  2. Run linters and fix all issues before proceeding:
    • Go: golangci-lint run ./... — fix errcheck, unused, etc.
    • Node/TS: check package.json scripts for lint commands
  3. Ensure public API documentation exists (exported functions/types have comments)
  4. Search for and remove TODO/FIXME comments that reference internal context
  5. Run tests, verify they pass

Step 5: CI/CD Setup

Copy CI configuration from sibling repo, adapting project-specific values:

For all projects:

  • Test + lint workflow (on push/PR)
  • Dependabot or Renovate config for dependency updates
  • License check workflow (on dependency changes)

For CLI tools / binaries only:

  • Release workflow with goreleaser (on tag push)
  • .goreleaser.yaml if missing

For libraries only:

  • No release workflow needed (tags are sufficient for go get / npm)

Step 6: Release Readiness Checklist

Present the final checklist (items vary by project type):

OSS Release Readiness:
- [ ] LICENSE file is correct and complete
- [ ] All dependency licenses are compatible
- [ ] README is comprehensive and accurate
- [ ] No secrets, internal URLs, or sensitive data in code
- [ ] .gitignore covers build artifacts, IDE files, OS files
- [ ] Linter config exists and passes with no errors
- [ ] CI workflows exist (test, lint, license check)
- [ ] Tests pass
- [ ] Version/tag strategy defined (semver)
- [ ] [CLI only] Release automation configured (goreleaser)
- [ ] [CLI only] Homebrew tap / package registry configured

For each unchecked item, provide the specific fix needed.

Step 7: Final Actions

  1. If all checks pass, confirm with user before any publishing steps
  2. Commit all changes in a single commit (or logical groups)
  3. Push and verify CI passes
  4. Suggest next steps:
    • Libraries: tag release, verify go get / npm install works
    • CLI tools: tag release, verify goreleaser produces artifacts, update Homebrew tap

Common Issues

  • Missing linter config: Copy from sibling repo — don't create from scratch
  • Missing CI workflows: Copy from sibling repo — adapt binary name and module path only
  • Goreleaser for a library: Don't add it. Libraries don't need binary releases.
  • Missing .gitignore entries: Add OS-specific (.DS_Store), IDE-specific (.vscode/, .idea/), and language-specific entries
  • Internal references: Search for company-internal URLs, Slack channels, or employee names in code and docs
  • Inconsistent naming: Ensure the project name is consistent across README, package.json/go.mod, and CLI help text
  • Linter errors on first run: Fix them immediately — don't ship with lint failures. Common: errcheck (use _ = for intentionally ignored errors), unused imports, missing comments on exports.

Examples

Example 1: Go CLI tool

User: "prepare this for OSS"
Action:
1. Classify: CLI tool (has main.go)
2. Find sibling repo with .goreleaser.yaml for conventions
3. Scan repo structure, check for sensitive files
4. Copy LICENSE, .gitignore, .golangci.yml from sibling
5. Check go.mod dependencies for license compatibility
6. Ensure README matches `--help` output
7. Run golangci-lint, fix all errors
8. Copy .github/workflows (test, license, release) from sibling
9. Copy .goreleaser.yaml from sibling, update binary name
10. Present checklist, commit, push

Example 2: Go library

User: "make this repo public"
Action:
1. Classify: library (no main.go, no binary output)
2. Find sibling repo for conventions
3. Scan repo, check for sensitive files
4. Copy LICENSE, .gitignore, .golangci.yml from sibling
5. Check dependency licenses
6. Ensure README has go get install + usage examples
7. Run golangci-lint, fix all errors
8. Copy .github/workflows (test, license only — NO release/goreleaser)
9. Present checklist, commit, push

Example 3: Node.js library

User: "open source this"
Action:
1. Classify: library (no bin in package.json)
2. Find sibling repo for conventions
3. Scan for .env files, hardcoded URLs
4. Copy LICENSE, .gitignore from sibling
5. Check package.json dependencies' licenses
6. Ensure README has npm install + usage + API docs
7. Run configured lint/test scripts, fix issues
8. Copy .github/workflows from sibling (test only)
9. Present checklist, commit, push

Language References

Read the appropriate reference file for templates and conventions before creating config files:

  • Go: references/go-conventions.md — .golangci.yml, .gitignore, .github/workflows, .goreleaser.yaml, dependabot, errcheck fixes

Alternatives

Compare before choosing

Computed 9438,313

wshobson/agents

brand-landingpage

Brand-first landing page designer — runs a brand-identity interview (colors, typography, shape language), then generates and iterates on a polished landing page via Stitch with deployment-ready HTML. Use when the user asks to create, design, or build a landing page, homepage, or marketing page and has no established visual direction. Skip when they have a design mockup, need a dashboard or app UI, are working at component level, building a multi-page app, or restyling with known design tokens —

Computed 9037,126

github/awesome-copilot

swift-mcp-server-generator

Generate a complete Model Context Protocol server project in Swift using the official MCP Swift SDK package.

Computed 86234,327

affaan-m/ECC

git-workflow

Git workflow patterns including branching strategies, commit conventions, merge vs rebase, conflict resolution, and collaborative development best practices for teams of all sizes.

Computed 8424,265

openai/skills

chatgpt-apps

Build, scaffold, refactor, and troubleshoot ChatGPT Apps SDK applications that combine an MCP server and widget UI. Use when Codex needs to design tools, register UI resources, wire the MCP Apps bridge or ChatGPT compatibility APIs, apply Apps SDK metadata or CSP or domain settings, or produce a docs-aligned project scaffold. Prefer a docs-first workflow by invoking the openai-docs skill or OpenAI developer docs MCP tools before generating code.