Zero-dependency quality gate for JavaScript & TypeScript projects. One command to set up. One command to check your code.
Quality checks that work with your stack, not against it.
Built entirely on Node.js built-ins. Nothing in your supply chain to compromise. No dependency updates to chase.
npx fortress-system setup handles everything — package.json, git init, install, interactive wizard, pre-commit hook.
Only using 3 of 7 checks? Your score adapts. Disabled checks don't penalize you. A perfect 100 is always reachable.
19 built-in patterns catch AWS keys, GitHub tokens, Stripe secrets, JWTs, private keys, and more — before they hit version control.
Auto-configures CLAUDE.md, permissions, statusline, and two specialized AI agents for security audit and code review.
JSON output, exit codes, --ci flag. Drop fortress validate into any pipeline as a quality gate.
Each check is auto-detected and independently configurable.
| Check | What it does | Weight |
|---|---|---|
| TypeScript | Runs tsc --noEmit to catch type errors | 20 |
| Lint | Runs your linter (ESLint, Biome, Next.js) | 15 |
| Tests | Runs your test suite with proportional scoring | 25 |
| Content | Scans for TODOs, FIXMEs, forbidden patterns | 20 |
| Secrets | Detects hardcoded credentials (19 patterns) | 10 |
| Security | Runs npm audit for vulnerable dependencies | 10 |
| Build | Verifies your project builds successfully | 10 |
Run npx fortress-system setup in any JS/TS project. Fortress detects your framework, linter, test runner, and package manager automatically.
Run fortress quick as you work. The pre-commit hook catches issues before they reach your repo.
Run fortress deploy for a full quality gate. Score 95+ means deploy-ready. Track your trend with fortress trend.
Run fortress review to invoke security audit and code review agents via Claude Code. Optional but powerful.
Auto-detects and configures for your tools.
Next.js, React, Vue, Nuxt, Svelte, SvelteKit, Angular, Express, Fastify, Koa
Vitest, Jest, Mocha, Node.js built-in test runner
TypeScript, ESLint, Biome, npm, yarn, pnpm, bun
The setup wizard generates this for you. Tweak it however you want.
// Generated by `fortress init` — edit freely module.exports = { checks: { typescript: { enabled: true, command: 'npx tsc --noEmit', weight: 20, }, lint: { enabled: true, command: 'npx eslint .', weight: 15, }, test: { enabled: true, command: 'npx vitest run', weight: 25, }, secrets: { enabled: true, patterns: [ { regex: 'MYAPP_KEY_[A-Za-z0-9]{32}', label: 'MyApp API Key' }, ], allowlist: { 'tests/fixtures/': '*' }, weight: 10, }, // content, security, build — all auto-configured }, scoring: { deployThreshold: 95 }, };
fortress init but is entirely optional. The fortress review command gracefully skips with a helpful message if Claude Code isn't installed. All other commands work identically with or without it.
fortress quick, which skips the slower checks (security audit and build). Typical runs complete in under 2 seconds. If your test suite is fast, you'll barely notice it. You can also remove or customize the hook at any time — it's just a file at .git/hooks/pre-commit.
fortress validate --ci for pass/fail checks or fortress deploy --ci --json for deploy gates. The --ci flag disables colors and interactive prompts. Exit code 1 on failure, so your pipeline fails on quality issues. Works with GitHub Actions, GitLab CI, CircleCI, Jenkins, and any other CI system that runs Node.js.
node_modules bloat, no vulnerability alerts from transitive deps, and nothing in your supply chain that you don't control. The entire package ships at 45 KB.
fortress.config.js file is plain JavaScript — full control, no magic.
Takes 30 seconds to set up. Zero config required.
npx fortress-system setup