Most developers have a gut feeling about whether their repo is "production-ready." The problem is that gut feeling is unreliable. A project with great test coverage might have no README. A project with a beautiful README might commit secrets to Git. A project with CI might use unpinned dependencies that break on the next upstream release.
Today we're shipping a tool that replaces gut feelings with a structured, reproducible score.
ShipDocs' Production Readiness Audit reads any public GitHub, GitLab, or Bitbucket repo and scores it 0–100 across five categories that actually matter to teams shipping code in production:
- Documentation — README, LICENSE, CHANGELOG, CONTRIBUTING guide
- Dev Environment —
.gitignore, lint config,.editorconfig, type-checking setup - CI / Testing — CI workflow configured, tests present, Dockerfile present
- Secrets Hygiene —
.env.examplepresent, no secrets committed to the repo - Dependencies — dependency manifest present, some dependencies pinned
Paste a repo URL at shipdocs.sh/tools/audit and get the full breakdown in under 10 seconds.
What the scores mean
| Score | Rating | What it signals |
|---|---|---|
| 80–100 | Production-ready | The repo has the docs, CI, and hygiene markers of a mature open-source project. |
| 60–79 | Solid | Most fundamentals are in place. A few missing pieces keep it from being production-ready. |
| 40–59 | Promising | Found some good signals, but several production fundamentals are missing. |
| 0–39 | Needs work | This project is missing many of the docs, CI, and hygiene markers maintainers expect. |
Real examples
We ran the audit on a few popular repos to show what the output looks like:
React (facebook/react)
- Score: 92 (Production-ready)
- Strong documentation (README, CHANGELOG, CONTRIBUTING), comprehensive CI via GitHub Actions, extensive test suites,
.gitignorepresent, dependencies pinned viapackage.json. The only ding: no.editorconfigat root.
Express.js (expressjs/express)
- Score: 85 (Solid)
- Excellent docs and CI, tests present, LICENSE file. Minor gaps: no CHANGELOG at root, no
.editorconfig, some devDependencies use caret ranges rather than exact pins.
A random side-project repo (hypothetical)
- Score: 34 (Needs work)
- Has a README and
.gitignore, but no LICENSE, no CI, no tests, no Dockerfile, dependencies are all unpinned, and there's a.envfile with anAPI_KEYcommitted to the repo.
How it works
Unlike generic code-quality tools that run linters, the ShipDocs audit is purely heuristic — it reads the file tree and content, not the running code. This means:
- No execution — we don't run your tests or build your project. We scan the files.
- No dependencies — we don't
npm installorpip installanything. The audit works even if the repo's dependencies are broken. - Fast — the whole thing completes in 5–10 seconds because there's no build step.
- Language-agnostic — the same five categories apply whether you're shipping Go, Python, TypeScript, Rust, or Java.
The audit uses the same file indexer that powers ShipDocs' documentation engine. It clones the repo, filters to source + config files, and runs a deterministic scoring function over the file tree. The scores are not AI-generated — they're computed from hard rules so the same repo always gets the same score. The summary text is written by a small LLM (Llama 3.1 8B via OpenRouter) to make the result human-readable.
Why these five categories?
We picked categories that correlate with real operational pain in production:
Documentation matters because the person on-call at 2 AM is not the person who wrote the code. If there's no README explaining what the service does, the on-call engineer is reading source code under pressure.
Dev Environment matters because inconsistent formatting and missing type checks create noise in code review. Teams that can't agree on tabs-vs-spaces waste time on style nits instead of architecture.
CI / Testing matters because manual deployment is a source of human error. A repo with no tests is a repo where every refactor is a potential production incident.
Secrets Hygiene matters because committed secrets are the fastest way to a security incident. Even if you rotate the key later, it's in the Git history forever.
Dependencies matters because unpinned dependencies are ticking time bombs. A minor upstream update that breaks your build on a Friday afternoon is not a fun way to end the week.
Private repos too
The free tool works on public repos only. If you connect a private repo to ShipDocs (Starter plan and up), the Production Readiness Audit shows up as a button inside your project's docs page. It reads the already-indexed source files and runs the same scoring function. Paid users also get:
- The audit on every project — not just one-off checks
- Historical tracking — see how your score changes over time as you improve the repo
- Actionable fixes — ShipDocs can generate the missing pieces for you (README, Dockerfile, CI workflow stubs) based on the actual code
Try it now
Paste any public repo URL. No signup, no API key, no credit card. Rate-limited to 5 runs per IP per 10 minutes.
The ShipDocs free tools lineup
The Production Readiness Audit joins four other free tools that work on any public repo:
- AI README Generator — complete README.md from source files
- AI Dockerfile Generator — production-ready Dockerfile from source files
- Repo Complexity Score — 0-100 score with file count, lines, languages, dependencies
- Explain Repo in a Tweet — one tweet or 4-tweet thread based on the actual code
- Production Readiness Audit — 0-100 score across docs, CI, tests, secrets, dependencies
All five tools are built on the same repo indexer that powers ShipDocs' paid documentation and chat product. The free tier is our way of letting you taste the quality of the analysis before signing up.
Try them, share the results, and if you want this for your private repos too, get started.
