Official agent skill

Open-Source Release Readiness

by trailofbits in trailofbits/skills

Walks a repository through release readiness before it goes public: secrets audit, licensing, documentation, CI and language-specific packaging.

OfficialCC-BY-SA-4.0Auto-check passedDevelopment

Install Open-Source Release Readiness

skills CLI
$ npx skills add trailofbits/skills --skill open-sourcing -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install trailofbits/skills open-sourcing --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/trailofbits/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/open-sourcing/skills/open-sourcing .claude/skills/open-sourcing && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
open-sourcing
GitHub stars
7.4k
Token cost
~2.6k tokens
SKILL.md length
1,272 words
Files
11 (incl. scripts, references)
Skills in repo
79
Repo updated
First seen
Licence
CC-BY-SA-4.0

At a glance

Walks a repository through release readiness before it goes public: secrets audit, licensing, documentation, CI and language-specific packaging.

  • Works in 9 steps: Detect the organization profile → Audit for secrets — before anything else → Run the readiness check → …
  • Making a private repository public
  • SKILL.md covers When to Use, When NOT to Use, Workflow and Final Review, plus 1 more section
  • Runs Shell scripts from its folder; calls bash, git and gitleaks

What it does

The aim is a repository an outsider can build, use and contribute to, with nothing sensitive shipped. Steps run in order. First, scripts/detect_org.sh inspects git remotes and recent committer emails and prints a profile: if it says trailofbits, the agent reads that reference for license policy, publishing accounts and process notes, and if it says generic, it carries on with the general guidance. You can correct a wrong detection.

The secrets audit comes next because its result changes everything after it. A repository that has ever held secrets should not simply be made public, since rewriting history is error-prone and does not reach forks, caches or CI artifacts, so the usual fix is a fresh repository and a privately archived original. The agent asks about past secrets, scans full history with gitleaks or trufflehog, checks Actions logs, releases, issues, pull requests and the wiki, and enables GitHub secret scanning and push protection afterwards. Later steps use references on licensing and packaging for C and C++, Go, JavaScript, Python, Ruby and Rust, plus scripts/check_readiness.sh.

When your agent uses it

  • Making a private repository public
  • Auditing an existing public repository for release quality
  • Choosing a license for a project
  • Setting up packaging, versioning and release automation before a public launch

Example prompts

  • “Prepare this private repository for a public release.”
  • “Check whether this repo has ever contained secrets before I make it public.”
  • “Which license should I choose for this library?”
  • “Set up versioning and release automation for the Python package ahead of launch.”

Requirements

  • A git repository to review
  • gitleaks or trufflehog for scanning history, if available

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. Detect the organization profile
  2. Audit for secrets — before anything else
  3. Run the readiness check
  4. Documentation
  5. Licensing
  6. Tests and CI
  7. Repository settings
  8. Releases and versioning
  9. Language-specific practices

What it can do on your machine

Read from SKILL.md and the folder at commit 82fe822. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • bash
    • git
    • gitleaks

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com
    • semver.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Open-Source Release Readiness loads about 2.6k tokens when it runs, and up to ~8.4k if it reads all its reference files. Until then it costs about 103 tokens; SKILL.md has 1,272 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~103
When it runs · the whole SKILL.md, loaded when a task matches
~2.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~8.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from trailofbits/skills at commit 82fe822, republished under its CC-BY-SA-4.0 licence (© trailofbits). 1,272 words, ~2,603 tokens.

Download SKILL.mdSave it as .claude/skills/open-sourcing/SKILL.md (or your agent's skills folder). This skill also uses 10 other files; get the full folder from GitHub.
name
open-sourcing
description
This skill should be used when the user asks to "open source this project", "prepare this repository for public release", "make this repo public", "check open-source readiness", "choose a license for this project", or "set up release automation" ahead of a public launch. Provides a release-readiness workflow covering secrets hygiene, licensing, documentation, CI, and language-specific packaging.

Open-Sourcing a Repository

Prepare a repository for public release so that an outsider with no prior context can build, use, and contribute to it — and so that nothing sensitive ships with it. Work through the steps in order; the secrets audit comes first because its outcome (keeping vs. recreating the repository) affects everything after it.

When to Use

  • Making a private repository public
  • Auditing an existing public repository for release quality ("make it official")
  • Choosing a license for a project
  • Setting up packaging, versioning, or release automation ahead of a public launch

When NOT to Use

  • Routine development on an already-released project (no release event)
  • Auditing third-party code for vulnerabilities (use a security-review skill)
  • Publishing a package from a repository that will stay private — only the release-management steps apply; skip the rest

Workflow

Step 1: Detect the organization profile
sh
bash {baseDir}/scripts/detect_org.sh

The script inspects git remotes and recent committer emails, and prints a profile name. If it prints trailofbits, read references/trailofbits.md now and apply its license policy, publishing accounts, and process notes throughout the remaining steps. If it prints generic, proceed with the generic guidance alone. If the user says the detection is wrong, trust the user.

Step 2: Audit for secrets — before anything else

A repository that has ever contained secrets (API keys, credentials, client data) should not be flipped public. History rewriting is error-prone and does not reach forks, caches, or CI artifacts. The reliable fix is a fresh repository: copy the current tree over, commit, and archive the old repository privately.

  1. Ask whether the project ever handled secrets or client-confidential material. For a security consultancy's tooling, also ask whether test fixtures or example data came from client engagements.
  2. Scan the full history with a dedicated tool if available — gitleaks git . or trufflehog git file://. — rather than eyeballing.
  3. Check beyond the git tree: GitHub Actions logs and artifacts, old releases, issue and PR history, and the repository wiki all become public with the repository.
  4. After going public, enable GitHub secret scanning and push protection in the repository settings.

Reject these rationalizations — this is the one step that cannot be fixed after publication:

  • "The key was revoked, so the history is fine." Revoked credentials still leak infrastructure names, internal URLs, and patterns attackers use for targeting.
  • "We'll rewrite history with git-filter-repo." Rewrites miss forks, clones, caches, and CI artifacts; the fresh-repository approach does not.
  • "It's only test data." Fixtures derived from client engagements or production systems are confidential regardless of how they are labeled.
Step 3: Run the readiness check
sh
bash {baseDir}/scripts/check_readiness.sh

The script prints a checklist of presence indicators (README, LICENSE, CONTRIBUTING, SECURITY.md, CI, tests, semver tags, ...) and warns about tracked files that commonly contain secrets. Treat unchecked items as discussion prompts, not hard failures — a research prototype does not need everything a flagship library needs. Walk through the gaps with the user and fix the ones that matter for this project.

Step 4: Documentation

The README is the project's front door. Confirm it explains:

  • What the project is and what problem it solves (first paragraph)
  • How to install it — package manager, container image, or build from source; a fresh-clone build must work using only what is in the repository
  • How to use it — at least one concrete, copy-pasteable example
  • How to contribute — inline or via CONTRIBUTING.md
  • The license — a short section naming it

Also add:

  • SECURITY.md with vulnerability-reporting instructions (a contact address or GitHub private vulnerability reporting). For security tooling this is table stakes.
  • API documentation, built and hosted (GitHub Pages via CI is the usual route), linked from the README and the repository website field. See the language references below for per-ecosystem doc tooling.
  • A code of conduct if the project expects outside contributors.
Step 5: Licensing

No license means not open source, regardless of visibility. Read references/licensing.md for selection criteria and mechanics. The short version:

  1. Apply the organization's policy if one was detected in Step 1.
  2. Otherwise: Apache 2.0 as the permissive default, AGPLv3 when private modification by competitors is a real concern, Creative Commons for non-code artifacts.
  3. Add the LICENSE file, set SPDX identifiers in package metadata, state the license in the README, and verify all three agree.
Show full SKILL.md (575 more words)Show less
Step 6: Tests and CI
  • Confirm the test suite exists and passes; a public repository with a failing default branch signals abandonment.
  • Ensure CI runs the tests on every PR, across the supported language-version and platform matrix.
  • Enforce formatting and linting in CI (per-language tooling in the references below), so style debates never reach review.
  • Respect existing tooling. Do not replace a working formatter, linter, or type checker as part of open-sourcing. If it lags the current generation (the language references name the current tools), warn the maintainer and let them decide; only when a category is missing entirely — no type checker, no formatter — add the current default.
  • Consider a coverage gate that fails CI when coverage drops.
  • Harden the workflows themselves before they become public attack surface:
    • Pin third-party actions to full commit SHAs; enable Dependabot for github-actions so pins stay current.
    • Set least-privilege permissions: blocks (start from permissions: {}).
    • Audit with zizmor .github/workflows/ and lint with actionlint.
Step 7: Repository settings
  • Branch protection on the default branch: no force pushes, PRs required. Prefer rulesets for new repositories; classic branch protection remains supported.
  • Merge protection: required status checks so PRs cannot merge with failing tests.
  • Dependabot or Renovate for dependency and Actions updates. Group updates to cut PR noise, and set a cooldown window (e.g., 7 days) so freshly published — and occasionally hijacked — versions age before adoption.
  • .editorconfig so contributors' editors agree on whitespace basics.
  • Labels: create them as soon as more than one issue or PR needs one; prefixes for facets scale well (C: component, P: platform). See blight's labels for a worked example.
Step 8: Releases and versioning
  • Tag every release vX.Y.Z, following semver; use -rc.N / -pre.N suffixes for release candidates and prereleases.
  • Make releases CI-driven: pushing a tag (or publishing a GitHub Release) triggers build, packaging, and upload with no manual steps. A release should be git tag vX.Y.Z && git push origin vX.Y.Z.
  • Publish packages under an organization-owned account, not a personal one, and use trusted publishing (OIDC) instead of long-lived tokens wherever the index supports it.
Step 9: Language-specific practices

Identify the project's languages from its marker files and read the matching reference for packaging, publishing, and quality tooling:

Marker fileReference
pyproject.toml, setup.pyreferences/python.md — defers to the modern-python skill for tooling
CMakeLists.txt, Makefile (C/C++)references/c-cpp.md
Cargo.tomlreferences/rust.md
go.modreferences/go.md
package.jsonreferences/javascript.md
Gemfile, *.gemspecreferences/ruby.md

For other ecosystems, apply the cross-cutting principles: reproducible builds from a fresh clone, CI-driven releases, trusted publishing or organization-owned accounts, and license metadata in the package manifest.

Final Review

Before the visibility switch is flipped, verify from an outsider's perspective:

  1. Clone into a clean directory and follow the README's build instructions verbatim — do they work with no tribal knowledge?
  2. Re-run {baseDir}/scripts/check_readiness.sh and confirm the remaining gaps are deliberate choices, stated to the user.
  3. Confirm the secrets audit (Step 2) actually happened; it is the one step that cannot be fixed after publication.

Making the repository public is then a repository-settings change. Pair the release with an announcement where the organization has a process for one.

Additional Resources

Reference Files
Scripts
  • scripts/detect_org.sh — prints the organization profile (trailofbits or generic) from git remotes and committer emails
  • scripts/check_readiness.sh — prints presence indicators for release-readiness files and flags tracked files that commonly hold secrets

© trailofbits, CC-BY-SA-4.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 10 other files (scripts, references) in plugins/open-sourcing/skills/open-sourcing of trailofbits/skills.

  • SKILL.md
  • references/c-cpp.md
  • references/go.md
  • references/javascript.md
  • references/licensing.md
  • references/python.md
  • references/ruby.md
  • references/rust.md
  • references/trailofbits.md
  • scripts/check_readiness.sh
  • scripts/detect_org.sh

Open the folder on GitHubat commit 82fe822

Compare with similar skills

Open-Source Release Readiness next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Open-Source Release Readiness compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Open-Source Release Readiness this skilltrailofbits/skills7.4k—~2.6kAutomated safety check: PassCC-BY-SA-4.0
Contributor PR Review Checklistdifferent-ai/openwork24k—~2.3kAutomated safety check: PassCustom licence
Contributor-First PR MergeHKUDS/OpenHarness16k1 repos~847Automated safety check: PassMIT
Mole Release Notes Publishertw93/Mole69k—~1.9kAutomated safety check: PassGPL-3.0
Pre-Release PR Triagejamiepine/voicebox57k—~3.1kAutomated safety check: PassMIT
Ansible Backport Creatoransible/ansible71k—~1.2kAutomated safety check: PassGPL-3.0

Similar skills

  • Contributor PR Review Checklist

    different-ai/openwork

    Checklist for reviewing pull requests from forks before approval: DCO sign-offs on every commit, CLA for ee/ paths, and whether the change is safe to merge.

    24k GitHub stars~2.3k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.

    16k GitHub starsUsed in 1 repo~847 tokens
    DevelopmentAuto-check passed
  • Publishes curated, bilingual release notes for an existing Mole version tag with gh release edit, including contributor thanks and reactions, after the release workflow finishes.

    69k GitHub stars~1.9k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Pre-Release PR Triage

    jamiepine/voicebox

    Sorts a backlog of open pull requests into must-merge, candidate, superseded and deferred, writes a triage doc and works the merge loop before a release.

    57k GitHub stars~3.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Creates backports of a merged Ansible devel pull request onto the right stable branches by cherry-picking its merge commit onto new backport branches.

    71k GitHub stars~1.2k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Audits open GitHub issues, categorizes them, flags duplicates and linked PRs in three phases, with optional deep analysis and comments posted only after validation.

    83k GitHub stars~3k tokensUpdated yesterday
    DevelopmentAuto-check: notes

More from trailofbits/skills

All 79 skills in this repo
  • CodeQL Security Scan

    trailofbits/skills

    Official

    Scans a codebase for vulnerabilities with CodeQL's data flow and taint tracking in run-all or important-only modes, including data extensions for project-specific sources and sinks.

    7.4k GitHub stars~4.6k tokensUpdated 5 days ago
    Auto-check: notes
  • Code Graph Mermaid Diagrams

    trailofbits/skills

    Official

    Generates Mermaid diagrams from Trailmark code graphs, including call graphs, class hierarchies, module dependency maps, complexity heatmaps and attack surface data flows.

    7.4k GitHub stars~1.7k tokensUpdated 5 days ago
    Auto-check passed
  • Trailmark Graph Evolution

    trailofbits/skills

    Official

    Compares Trailmark code graphs at two snapshots, such as commits, tags or directories, to surface attack paths, blast radius and taint changes that text diffs miss.

    7.4k GitHub stars~3.4k tokensUpdated 5 days ago
    Auto-check passed
  • Let Fate Decide

    trailofbits/skills

    Official

    Draws a 12 Houses tarot spread to break ties when a request is vague or casually delegated, then reads the cards to pick the next step.

    7.4k GitHub stars~2.5k tokensUpdated 5 days ago
    Auto-check: notes
  • Semgrep Security Scan

    trailofbits/skills

    Official

    Detects languages, proposes rulesets for approval, then runs the approved Semgrep scan across a codebase and merges the output into one SARIF file.

    7.4k GitHub stars~3.7k tokensUpdated 5 days ago
    Auto-check: notes
  • Burp Suite Project Parser

    trailofbits/skills

    Official

    Searches and extracts data from Burp Suite project files on the command line: regex searches over responses, audit findings, proxy history and site map data.

    7.4k GitHub starsUsed in 3 repos~4.2k tokens
    Auto-check: notes

Works with

Questions about Open-Source Release Readiness

What does Open-Source Release Readiness do?

Walks a repository through release readiness before it goes public: secrets audit, licensing, documentation, CI and language-specific packaging. The aim is a repository an outsider can build, use and contribute to, with nothing sensitive shipped. Steps run in order.

When should I use Open-Source Release Readiness?

Open-Source Release Readiness fits situations like: making a private repository public; auditing an existing public repository for release quality; choosing a license for a project; setting up packaging, versioning and release automation before a public launch.

How do I install Open-Source Release Readiness in Claude Code?

Run `npx skills add trailofbits/skills --skill open-sourcing -a claude-code`. Or copy the skill folder (plugins/open-sourcing/skills/open-sourcing in trailofbits/skills) into .claude/skills/open-sourcing in your project. Claude Code loads it when a task matches its description.

How do I install Open-Source Release Readiness in Codex?

Run `npx skills add trailofbits/skills --skill open-sourcing -a codex`. Or copy the skill folder (plugins/open-sourcing/skills/open-sourcing in trailofbits/skills) into .agents/skills/open-sourcing in your project. Codex loads it when a task matches its description.

Can I use Open-Source Release Readiness in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add trailofbits/skills --skill open-sourcing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/open-sourcing, .gemini/skills/open-sourcing, .github/skills/open-sourcing and .opencode/skills/open-sourcing in your project.

What does Open-Source Release Readiness need to run?

Going by SKILL.md and its folder, Open-Source Release Readiness needs a shell for the scripts in its folder and the command-line tools its instructions call (bash, git and gitleaks). Our summary lists: A git repository to review; gitleaks or trufflehog for scanning history, if available.

Does Open-Source Release Readiness access the network?

SKILL.md names 2 domains. As links in the text: github.com and semver.org. This is read from the text; nothing was executed.

Is Open-Source Release Readiness safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Open-Source Release Readiness use?

Open-Source Release Readiness is published under the CC-BY-SA-4.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Open-Source Release Readiness use?

About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5.8k tokens, read only when the agent opens those files.

What are the alternatives to Open-Source Release Readiness?

Skills that share tags, products or a category with Open-Source Release Readiness: Contributor PR Review Checklist (different-ai/openwork, 24k stars), Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars), Mole Release Notes Publisher (tw93/Mole, 69k stars) and Pre-Release PR Triage (jamiepine/voicebox, 57k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Open-Source Release Readiness?

trailofbits (a GitHub organization, an official publisher) maintains it in trailofbits/skills, which has 7,400 GitHub stars. The repository holds 79 skills in this directory. The repository was last updated on October 2, 2026.

Source: trailofbits/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.