agentleFS
bntvllntbntvllnt/agent-skills/oss-readiness/SKILL.md

oss-readiness

Skill16 starsChanged 8 months agoMITView on GitHub

Open-source/public release readiness gate. Audit repos for OSS basics, scaffold missing public-release files, generate llms.txt + llms-full.txt, validate CI, and sync version references. Triggers: "oss", "/oss", "open source readiness", "release readiness", "public release", "go public", "oss audit", "llms.txt", "generate llms", "version bump docs", "scaffold OSS files", "release title", "release messaging", "release notes", "announcement quality".

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 1

    1. JuanMarchetto/agent-skills★ 5same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository9 other files it gives its agents.

The file

We split this skill into the rules it gives an agent

7 rules. About 0 are common, 5 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈5

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Keep AGENTS.md as the canonical agent-instructions file when one is scaffolded.

    line 26
  2. Very specific:

    Treat harness-specific files such as CLAUDE.md, .cursorrules, .windsurfrules, codex.md, or .opencode/config as optional aliases/mirrors — …

    line 27
  3. Distinctive:

    Use placeholders in generated files.

    line 28
  4. Distinctive:

    Never invent maintainer contact channels.

    line 29
  5. Distinctive:

    Use either natural language or shorthand.

    line 45
  6. Distinctive:

    If a value is unknown, keep the placeholder or omit the optional block.

    line 76
  7. Very specific:

    All scaffold templates live in templates/.

    line 222

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

OSS Readiness — Public Release Gate

Audit a repository for open-source release basics. Scaffold missing public docs/templates. Generate AI-friendly docs (llms.txt, llms-full.txt). Validate CI. Sync version references.

Portability Rules

This skill must stay harness-agnostic and maintainer-agnostic:

  • Accept natural-language prompts and slash-command shorthand as equivalent entry points.
  • Keep AGENTS.md as the canonical agent-instructions file when one is scaffolded.
  • Treat harness-specific files such as CLAUDE.md, .cursorrules, .windsurfrules, codex.md, or .opencode/config as optional aliases/mirrors — never the only supported path.
  • Use placeholders in generated files. Never hardcode links, social handles, org names, or contact methods from this repository.
  • Never invent maintainer contact channels. If the project does not provide one, leave a clear placeholder or omit the optional section.

Required Capabilities

CapabilityUsed ForRequiredFallback
File read/write/editAudit and scaffold docs/templatesYes—
Shell accessgit/gh/grep/find-based checksRecommendedManual file inspection
gitRepo metadata, tags, tracked-file checksRecommendedFilesystem-only audit
ghGitHub metadata, PR/issue/security settingsOptionalReport as unchecked/manual
node or pythonManifest/version extraction helpersOptionalGrep/parse text manually

The skill still works without shell tooling. Shell commands are accelerators, not requirements.

Entry Points

Use either natural language or shorthand. Route both to the same workflow.

IntentExample promptsRoute
Full auditaudit OSS readiness, /ossreferences/checklist.md
Scaffold missing filesscaffold missing OSS files, /oss fixreferences/checklist.md
Generate LLM docsgenerate llms.txt, /oss llmsreferences/llms-generation.md
Sync version refsbump stale version refs in docs, /oss bumpreferences/version-sync.md
Validate CIcheck OSS CI readiness, /oss cireferences/ci-validation.md
Review release title / notes / announcement framingaudit release messaging, is this a good OSS release title?references/release-messaging.md

Template Variables

Scaffolded files should use these placeholders until the target repo values are known:

PlaceholderMeaning
{REPO_NAME}Repository/project name
{ORG} / {REPO}Git hosting owner + repo slug
{DESCRIPTION}One-line project description
{LICENSE_TYPE}Chosen OSS license
{PRIMARY_BRANCH}Default branch name
{PROJECT_REPO_URL}Canonical source repository URL
{PROJECT_HOMEPAGE}Public project or docs homepage
{COMMUNITY_SUPPORT_URL}Support/discussion channel
{SECURITY_REPORTING_URL}Private vulnerability reporting channel
{CODE_OF_CONDUCT_CONTACT}Contact path for conduct reports
{MAINTAINER_NAME}Maintainer or org display name
{MAINTAINER_URL}Maintainer/org profile or homepage
{MAINTAINER_CONTACT_URL}Optional generic contact page/social/profile

If a value is unknown, keep the placeholder or omit the optional block. Never substitute repo-specific defaults from this skill repository.

Stack Detection

Detect project type to customize audit logic:

# Package manager / language hints
IS_NPM=$(test -f package.json && echo true || echo false)
IS_CARGO=$(test -f Cargo.toml && echo true || echo false)
IS_PYTHON=$(test -f pyproject.toml -o -f setup.py && echo true || echo false)
IS_GO=$(test -f go.mod && echo true || echo false)

# Library/package vs app (heuristics)
# npm: package.json has "main" or "exports"
# cargo: Cargo.toml has [lib]
# python: pyproject has build metadata / published package info
# go: cmd/ often implies app; library repos may omit it

Checklist Summary (23 items)

BLOCKING (12) — must fix before public release

#ItemSeverity
1LICENSE fileBLOCKING
2README.md existsBLOCKING
3README.md quality (H1, desc, install, usage, license)BLOCKING
4CONTRIBUTING.mdBLOCKING
5.gitignoreBLOCKING
6No secrets in repoBLOCKING
7CI: tests runBLOCKING
8CI: lint runsBLOCKING
9GitHub description setBLOCKING
10CHANGELOG.md with version entryBLOCKING
11llms.txt existsBLOCKING
12llms-full.txt existsBLOCKING

WARN (11) — recommended

#ItemSeverity
13GitHub topics/tagsWARN
14AGENTS.mdWARN
15Harness-specific agent-instruction aliasesWARN
16SECURITY.mdWARN
17CODE_OF_CONDUCT.mdWARN
18Issue templatesWARN
19PR templateWARN
20CI: publish workflow (libraries)WARN
21docs/ folderWARN
22Version in docs matches packageWARN
23No TODO/FIXME in public src/WARN

Full detection logic + fix actions → references/checklist.md

Scoring

SCORE = (blocking_pass / blocking_total) * 70 + (warn_pass / warn_total) * 30

A = score >= 90 AND 0 blocking failures
B = score >= 75 AND 0 blocking failures
C = score >= 60 (some blocking failures)
D = score >= 40
F = score < 40

Any blocking failure caps grade at C maximum.

Audit Output Format

═══════════════════════════════════════════════════════════════
 OSS READINESS — {org}/{repo}
 Version: {version} | Type: {npm|cargo|pip|go|app}
 Grade: {A-F} | Score: {0-100}
═══════════════════════════════════════════════════════════════

 BLOCKING
 ┌────────────────────────────────┬──────────┬───────────────────────┐
 │ Item                           │ Status   │ Note                  │
 ├────────────────────────────────┼──────────┼───────────────────────┤
 │ LICENSE                        │ PASS     │ MIT detected          │
 │ README.md                      │ WARN     │ Missing: usage, API   │
 │ llms.txt                       │ FAIL     │ Not found             │
 └────────────────────────────────┴──────────┴───────────────────────┘

 RECOMMENDED
 ┌────────────────────────────────┬──────────┬───────────────────────┐
 │ AGENTS.md                      │ FAIL     │ Not found             │
 │ Agent aliases                  │ WARN     │ AGENTS.md only        │
 └────────────────────────────────┴──────────┴───────────────────────┘

 BLOCKING failures: 2 — must fix before public release
 Warnings: 1 — recommended

 Run `scaffold missing OSS files` or `/oss fix` to scaffold missing files.
 Run `generate llms.txt` or `/oss llms` to create llms docs.
═══════════════════════════════════════════════════════════════

Scaffold Order

1. Detect stack (npm/cargo/python/go/app)
2. Run full checklist → identify missing items
3. Present: "Missing N BLOCKING + M WARN items. Scaffold all? [all / blocking only / pick]"
4. For each item:
   a. LICENSE → ask user for license type (MIT/Apache-2.0/ISC/GPL-3.0/BSD-3-Clause)
   b. README.md → scaffold from template placeholders
   c. CONTRIBUTING.md → fill template with repo + branch strategy
   d. SECURITY.md → fill template with repo + reporting channel placeholders
   e. CODE_OF_CONDUCT.md → fill Contributor Covenant template + conduct contact placeholder
   f. AGENTS.md → analyze repo, generate canonical instructions file
   g. Optional aliases → ask which harness aliases to create from AGENTS.md
   h. llms.txt + llms-full.txt → route to llms generation flow
   i. Issue templates → create .github/ISSUE_TEMPLATE/
   j. PR template → create .github/pull_request_template.md
   k. GitHub description/topics → update via `gh` when available
   l. CI workflows → generate starter workflow(s) based on stack
5. Report scaffolded files
6. Suggest re-running the audit before commit/push

Error Handling

ErrorResponse
Not a git repo"Not a git repository. OSS audit requires a repo."
Private repoWorks but warns: "Repo is private. Audit shows readiness for going public."
No package managerSkip version-specific checks, note in output
gh unavailable/auth missingContinue filesystem checks; mark GitHub metadata as manual
Maintainer contact unknownKeep placeholder or omit optional contact block

References

  • Checklist — full detection + fix logic for all 23 items
  • LLMs Generation — llms.txt + llms-full.txt algorithm
  • Version Sync — version detection + doc bumping
  • CI Validation — CI pipeline rules + starter workflows
  • Release Messaging — title, opening-summary, and announcement-quality rubric for public OSS releases

Templates

All scaffold templates live in templates/. Keep them generic and placeholder-driven.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.