Package Exports
- projscan
- projscan/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (projscan) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
projscan
Instant codebase insights — doctor, x-ray, and architecture map for any repository.
Install · Quick Start · Commands · Full Guide
Why?
Every time you clone a new repo, join a new team, or revisit an old project, you face the same questions:
- What language and framework is this?
- Is there linting? Testing? Formatting?
- What's the project structure?
- Are the dependencies healthy?
Answering these manually takes 10-30 minutes of poking through config files and directories.
projscan answers all of this in one command, in under 2 seconds.
$ projscan doctor
Project Health Report
──────────────────────────────────────────
Health Score: C (67/100)
Found 3 warnings, 2 info
Issues Detected
──────────────────────────────────────────
⚠ No ESLint configuration
⚠ No Prettier configuration
⚠ No test framework detected
ℹ Missing .editorconfig
ℹ README is nearly empty
Run projscan fix to auto-fix 4 issues.And it doesn't just report problems — it fixes them:
$ projscan fix -y
✔ Installed ESLint with TypeScript support
✔ Installed Prettier with sensible defaults
✔ Installed Vitest with sample test
✔ Created .editorconfigInstall
npm install -g projscanOr run directly without installing:
npx projscanQuick Start
Run inside any repository:
projscan # Full project analysis
projscan doctor # Health check
projscan fix # Auto-fix detected issues
projscan ci # CI health gate (exits 1 on low score)
projscan diff # Compare health against a baseline
projscan diagram # Architecture visualization
projscan structure # Directory treeFor a comprehensive walkthrough, see the Full Guide.
Commands
| Command | Description |
|---|---|
projscan analyze |
Full analysis — languages, frameworks, dependencies, issues |
projscan doctor |
Health check — missing tooling, architecture smells, security risks |
projscan fix |
Auto-fix issues (ESLint, Prettier, Vitest, .editorconfig) |
projscan ci |
CI pipeline health gate — exits 1 if score below threshold |
projscan diff |
Compare current health against a saved baseline |
projscan explain <file> |
Explain a file's purpose, imports, exports, and issues |
projscan diagram |
ASCII architecture diagram of your project |
projscan structure |
Directory tree with file counts |
projscan dependencies |
Dependency analysis — counts, risks, recommendations |
projscan badge |
Generate a health score badge for your README |
To see all commands and options, run:
projscan --helpOutput Formats
All commands support --format for different output targets:
projscan analyze --format json # Machine-readable JSON
projscan doctor --format markdown # Markdown for docs/PRsFormats: console (default), json, markdown
Options
| Flag | Description |
|---|---|
--format <type> |
Output format: console, json, markdown |
--verbose |
Enable debug output |
--quiet |
Suppress non-essential output |
-V, --version |
Show version |
-h, --help |
Show help |
Health Score
Every projscan doctor run calculates a health score (0–100) and letter grade:
| Grade | Score | Meaning |
|---|---|---|
| A | 90–100 | Excellent — project follows best practices |
| B | 80–89 | Good — minor improvements possible |
| C | 70–79 | Fair — several issues to address |
| D | 60–69 | Poor — significant issues found |
| F | < 60 | Critical — major issues need attention |
Generate a badge for your README:
projscan badgeThis outputs a shields.io badge URL and markdown snippet you can paste into your README.
What It Detects
Languages: TypeScript, JavaScript, Python, Go, Rust, Java, Ruby, C/C++, PHP, Swift, Kotlin, and 20+ more
Frameworks: React, Next.js, Vue, Nuxt, Svelte, Angular, Express, Fastify, NestJS, Vite, Tailwind CSS, Prisma, and more
Issues:
- Missing linting (ESLint) and formatting (Prettier) configuration
- Missing test framework
- Missing
.editorconfig - Large utility directories (architecture smell)
- Excessive, deprecated, or wildcard-versioned dependencies
- Missing lockfile
- Committed
.envfiles and private keys (security) - Hardcoded secrets — AWS keys, GitHub tokens, Slack tokens, generic passwords (security)
- Missing
.envin.gitignore(security)
Performance
- 5,000 files analyzed in under 1.5 seconds
- 20,000 files analyzed in under 3 seconds
- Zero network requests — everything runs locally
- 4 runtime dependencies — minimal footprint
CI/CD Integration
Use projscan ci to gate your pipelines:
projscan ci --min-score 70 # Exits 1 if score < 70
projscan ci --min-score 80 --format json # JSON output for parsingGitHub Actions
Copy the included workflow template to your project:
cp .github/projscan-ci.yml .github/workflows/projscan.ymlThis runs health checks on every push/PR and posts a markdown health report as a PR comment. See .github/projscan-ci.yml for the full workflow.
Tracking Health Over Time
Save a baseline and compare later:
projscan diff --save-baseline # Save current score
# ... make changes ...
projscan diff # Compare against baseline
projscan diff --format markdown # Markdown diff for PRsUse Cases
- Onboarding: Understand any codebase in seconds, not hours
- Code reviews: Run
projscan doctor --format markdownand paste into PRs - CI/CD: Use
projscan cito enforce health standards in your pipeline - Security: Catch committed secrets and
.envfiles before they reach production - Consulting: Quickly assess client projects before diving in
- Maintenance: Track health trends with
projscan diffacross releases
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
License
MIT