Files
trailofbits__skills/plugins/open-sourcing
Evan Sultanik 0cb5f95840 Add open-sourcing plugin (#202)
* Add open-sourcing plugin

Skill for preparing a repository for public release, generalized from
the internal open-sourcing guide. Generic workflow (secrets audit,
licensing, docs, CI, release automation) with a Trail of Bits policy
overlay loaded via git-remote/committer-email detection. Includes
per-language packaging references and readiness-check scripts.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Modernize open-sourcing skill to current toolchain practice

Align guidance with the current cookiecutter-python toolchain and 2026
ecosystem state, verified against primary sources: respect-existing-
tooling principle (warn on stale toolchains, adopt modern defaults only
when absent), SLSA provenance job in the PyPI release workflow, ty
pre-1.0 pinning caveat, uv audit/interrogate, rulesets wording,
Dependabot grouping and cooldown, and a new JavaScript/TypeScript
reference covering npm trusted publishing.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Dan Guido <dan@trailofbits.com>
2026-07-29 17:07:28 -04:00
..
2026-07-29 17:07:28 -04:00

open-sourcing

Prepares a repository for public open-source release.

Based on Trail of Bits' internal open-sourcing guide, generalized for any project. Covers the full path from private repository to public release:

  • Secrets hygiene first: full-history scanning, the fresh-repository rule for repos that ever held credentials, and the non-git surfaces (Actions logs, releases, wikis) that go public with the code
  • Licensing: selection criteria (permissive vs. copyleft vs. Creative Commons), SPDX metadata consistency, and fork/relicensing rules
  • Documentation and community files: README contents, CONTRIBUTING, SECURITY.md, code of conduct
  • CI and repository settings: required checks, branch protection, Dependabot/Renovate, workflow hardening (SHA pinning, least-privilege permissions, zizmor)
  • Release automation: semver tagging, CI-driven releases, trusted publishing
  • Language-specific packaging references for Python, C/C++, Rust, Go, JavaScript/TypeScript, and Ruby

Organization detection

The skill detects Trail of Bits repositories (via git remotes in the trailofbits/lifting-bits/crytic GitHub organizations, or @trailofbits.com committer emails) and applies the company's license policy and publishing conventions on top of the generic workflow. All other repositories get the generic guidance. Only public information is included in the Trail of Bits profile; internal process details remain in internal documentation.

Usage

Ask Claude to:

  • "Prepare this repository for public release"
  • "Open source this project"
  • "Is this repo ready to be made public?"
  • "Help me choose a license for this project"
  • "Set up release automation before we publish this"

Contents

skills/open-sourcing/
├── SKILL.md                    # Release-readiness workflow
├── references/
│   ├── licensing.md            # License selection and mechanics
│   ├── trailofbits.md          # Trail of Bits policy overlay
│   ├── python.md               # Publishing (defers to modern-python skill)
│   ├── c-cpp.md                # CMake, sanitizers, clang tooling, vcpkg
│   ├── rust.md                 # cargo, crate lints, crates.io
│   ├── go.md                   # Module layout, golangci-lint, goreleaser
│   ├── javascript.md           # package.json metadata, npm trusted publishing
│   └── ruby.md                 # Bundler, RuboCop, RubyGems
└── scripts/
    ├── detect_org.sh           # Organization profile detection
    └── check_readiness.sh      # Release-readiness indicators