Review Repo for Openness
Announce: "I'm using git-repo-prep:review to audit this repo for openness."
Setup
Create a TodoWrite checklist for all audit categories:
- Secrets scan
- Personal info scan
- License check
- Documentation check
- Gitignore check
- CI/CD check
- Metadata check
- Present findings and summary
Mark each task in_progress before starting, completed immediately after.
Scope
This is an openness audit, not a code quality review. Stay focused on what matters for making the repo public. Do NOT comment on error handling, architecture, performance, code style, test coverage quality, or design patterns.
Ecosystem Detection
Detect the ecosystem to tailor checks:
| File |
Ecosystem |
package.json |
Node.js |
pyproject.toml / setup.py / setup.cfg |
Python |
Cargo.toml |
Rust |
go.mod |
Go |
*.csproj / *.sln |
.NET |
Gemfile |
Ruby |
pom.xml / build.gradle |
Java/Kotlin |
Audit Categories
Scan every category below. Classify each finding as Critical, Recommended, or Nice-to-have using the severity definitions in this table exactly. Do not invent your own categories, and do not upgrade or downgrade severity — use the column where the issue appears.
| Category |
Critical |
Recommended |
Nice-to-have |
| Secrets |
API keys, passwords, tokens, .env committed |
.env in gitignore |
git history scan |
| Personal info |
Real names/emails in source code |
Author field review |
Username cleanup |
| License |
No LICENSE file |
Mismatch between LICENSE file and package metadata; no license section in README |
License headers in source files |
| Documentation |
No README or empty README |
Missing install/usage sections |
CONTRIBUTING.md, SECURITY.md, CLAUDE.md |
| Gitignore |
Sensitive files tracked/committed |
Missing common patterns for ecosystem |
IDE/OS files |
| CI/CD |
— |
No CI pipeline; no tests at all (CI cannot function) |
No dependabot, no hooks, no coverage |
| Metadata |
— |
No repo URL in package metadata |
Missing engine/version, keywords, description |
Scanning Process
Work through each category in order.
1. Secrets
- Grep source files for patterns:
sk_live, sk_test, ghp_, AKIA, password\s*=, secret\s*=, token\s*=, api_key, -----BEGIN.*PRIVATE KEY, connection strings with embedded credentials.
- Check for
.env files in the repo (any level).
- Check
.gitignore for .env and .env.* exclusion patterns.
- Look for
.pem, .key, or credential files.
2. Personal Info
- Check author fields in package metadata (
package.json author, pyproject.toml authors, Cargo.toml authors).
- Grep for email patterns (
\b\S+@\S+\.\S+\b) in source files (not node_modules, not vendor, not lock files).
- Look for hardcoded usernames in config or source (
DEFAULT_USER, AUTHOR, usernames in URLs or paths).
3. License
This is the most commonly missed area. Check all three locations and compare:
- LICENSE file — Does it exist? What license does it contain?
- Package metadata — What does the
license field say in package.json / pyproject.toml / Cargo.toml?
- README — Is there a license section? Does it name the same license?
Flag any mismatch between these three. Flag if any location is missing.
4. Documentation
- README: Does it exist? Is it non-empty? Does it have: project description, installation/getting started, usage, license section?
- CONTRIBUTING.md: Present or missing?
- SECURITY.md: Present or missing?
5. Gitignore
- Does
.gitignore exist?
- Compare against ecosystem best practices:
- Node.js:
node_modules/, .env, dist/, coverage/
- Python:
__pycache__/, *.pyc, .env, *.egg-info/, dist/, .venv/
- Rust:
target/, .env
- Go:
vendor/ (if not vendoring), .env
- General:
.env, .env.*, *.log, .DS_Store, *.pem, *.key
- Check if any sensitive files are already tracked by git (
git ls-files for .env, credentials, keys).
6. CI/CD
- Look for
.github/workflows/, .gitlab-ci.yml, Jenkinsfile, .circleci/, etc.
- Check for Dependabot config (
.github/dependabot.yml) or Renovate (renovate.json).
7. Metadata
Check ecosystem-specific metadata completeness:
- Node.js:
repository, engines, keywords, description in package.json
- Python:
[project.urls], classifiers, requires-python, keywords, description in pyproject.toml
- Rust:
repository, keywords, categories, description in Cargo.toml
- Go: module path matches repo URL, package doc comment
Presenting Findings
Present findings conversationally — do NOT write a report file.
Group by severity, starting with the most urgent:
- Critical — issues that must be fixed before going public
- Recommended — issues that should be addressed for a quality release
- Nice-to-have — improvements for polish
For each finding:
- Describe the issue concisely.
- Explain why it matters for openness (one sentence).
- Offer to fix it right now.
Summary
End with a tally: "X critical, Y recommended, Z nice-to-have findings."
If critical findings exist, recommend addressing them before release. If none, say the repo looks ready and suggest tackling recommended items for polish.
1---2name: review3description: Use when auditing a codebase for openness, checking for secrets, missing docs, or gaps before public release. Re-runnable at any point.4---56# Review Repo for Openness78Announce: "I'm using git-repo-prep:review to audit this repo for openness."910## Setup1112Create a TodoWrite checklist for all audit categories:13141. Secrets scan152. Personal info scan163. License check174. Documentation check185. Gitignore check196. CI/CD check207. Metadata check218. Present findings and summary2223Mark each task in_progress before starting, completed immediately after.2425## Scope2627This is an **openness audit**, not a code quality review. Stay focused on what matters for making the repo public. Do NOT comment on error handling, architecture, performance, code style, test coverage quality, or design patterns.2829## Ecosystem Detection3031Detect the ecosystem to tailor checks:3233| File | Ecosystem |34|------|-----------|35| `package.json` | Node.js |36| `pyproject.toml` / `setup.py` / `setup.cfg` | Python |37| `Cargo.toml` | Rust |38| `go.mod` | Go |39| `*.csproj` / `*.sln` | .NET |40| `Gemfile` | Ruby |41| `pom.xml` / `build.gradle` | Java/Kotlin |4243## Audit Categories4445Scan every category below. Classify each finding as **Critical**, **Recommended**, or **Nice-to-have** using the severity definitions in this table exactly. Do not invent your own categories, and do not upgrade or downgrade severity — use the column where the issue appears.4647| Category | Critical | Recommended | Nice-to-have |48|----------|----------|-------------|--------------|49| Secrets | API keys, passwords, tokens, .env committed | .env in gitignore | git history scan |50| Personal info | Real names/emails in source code | Author field review | Username cleanup |51| License | No LICENSE file | Mismatch between LICENSE file and package metadata; no license section in README | License headers in source files |52| Documentation | No README or empty README | Missing install/usage sections | CONTRIBUTING.md, SECURITY.md, CLAUDE.md |53| Gitignore | Sensitive files tracked/committed | Missing common patterns for ecosystem | IDE/OS files |54| CI/CD | — | No CI pipeline; no tests at all (CI cannot function) | No dependabot, no hooks, no coverage |55| Metadata | — | No repo URL in package metadata | Missing engine/version, keywords, description |5657## Scanning Process5859Work through each category in order.6061### 1. Secrets6263- Grep source files for patterns: `sk_live`, `sk_test`, `ghp_`, `AKIA`, `password\s*=`, `secret\s*=`, `token\s*=`, `api_key`, `-----BEGIN.*PRIVATE KEY`, connection strings with embedded credentials.64- Check for `.env` files in the repo (any level).65- Check `.gitignore` for `.env` and `.env.*` exclusion patterns.66- Look for `.pem`, `.key`, or credential files.6768### 2. Personal Info6970- Check author fields in package metadata (`package.json` author, `pyproject.toml` authors, `Cargo.toml` authors).71- Grep for email patterns (`\b\S+@\S+\.\S+\b`) in source files (not node_modules, not vendor, not lock files).72- Look for hardcoded usernames in config or source (`DEFAULT_USER`, `AUTHOR`, usernames in URLs or paths).7374### 3. License7576This is the most commonly missed area. Check all three locations and compare:77781. **LICENSE file** — Does it exist? What license does it contain?792. **Package metadata** — What does the `license` field say in package.json / pyproject.toml / Cargo.toml?803. **README** — Is there a license section? Does it name the same license?8182Flag any mismatch between these three. Flag if any location is missing.8384### 4. Documentation8586- **README**: Does it exist? Is it non-empty? Does it have: project description, installation/getting started, usage, license section?87- **CONTRIBUTING.md**: Present or missing?88- **SECURITY.md**: Present or missing?8990### 5. Gitignore9192- Does `.gitignore` exist?93- Compare against ecosystem best practices:94 - Node.js: `node_modules/`, `.env`, `dist/`, `coverage/`95 - Python: `__pycache__/`, `*.pyc`, `.env`, `*.egg-info/`, `dist/`, `.venv/`96 - Rust: `target/`, `.env`97 - Go: `vendor/` (if not vendoring), `.env`98 - General: `.env`, `.env.*`, `*.log`, `.DS_Store`, `*.pem`, `*.key`99- Check if any sensitive files are already tracked by git (`git ls-files` for `.env`, credentials, keys).100101### 6. CI/CD102103- Look for `.github/workflows/`, `.gitlab-ci.yml`, `Jenkinsfile`, `.circleci/`, etc.104- Check for Dependabot config (`.github/dependabot.yml`) or Renovate (`renovate.json`).105106### 7. Metadata107108Check ecosystem-specific metadata completeness:109110- **Node.js**: `repository`, `engines`, `keywords`, `description` in `package.json`111- **Python**: `[project.urls]`, `classifiers`, `requires-python`, `keywords`, `description` in `pyproject.toml`112- **Rust**: `repository`, `keywords`, `categories`, `description` in `Cargo.toml`113- **Go**: module path matches repo URL, package doc comment114115## Presenting Findings116117Present findings conversationally — do NOT write a report file.118119Group by severity, starting with the most urgent:1201211. **Critical** — issues that must be fixed before going public1222. **Recommended** — issues that should be addressed for a quality release1233. **Nice-to-have** — improvements for polish124125For each finding:126- Describe the issue concisely.127- Explain why it matters for openness (one sentence).128- Offer to fix it right now.129130## Summary131132End with a tally: "**X critical, Y recommended, Z nice-to-have** findings."133134If critical findings exist, recommend addressing them before release. If none, say the repo looks ready and suggest tackling recommended items for polish.