RepoDoctorrepo health
Grades tests, docs, TypeScript strictness, npm scripts, CI, Docker and hygiene. You get a 0–100 score and a fix for every point lost.
repodoctor scan ./
Eight checks for JavaScript and TypeScript projects in one install. They catch the migration that locks a table, the env var nobody documented, and the import that breaks your architecture.
$ npx @wealthometer/devdoctor check
Each check is its own command, and they all run together with devdoctor check. Every problem comes with a file, a line number and a one-line fix.
Grades tests, docs, TypeScript strictness, npm scripts, CI, Docker and hygiene. You get a 0–100 score and a fix for every point lost.
repodoctor scan ./
Finds dropped columns, NOT NULL without a default, and indexes built without CONCURRENTLY, before they lock production. Works with PostgreSQL migrations from SQL, Prisma, Drizzle and Knex.
migraguard check --since origin/main
Write chained requests in YAML, with environments, JSON Schema checks and response-time limits. Results come out as a table or JUnit.
pulseapi run ./api-tests
Finds duplicate versions; unused, undeclared and outdated packages; heavy dependency trees; and import cycles. Prints graphs as Mermaid or Graphviz.
depscope analyze
Compares .env, .env.example, your Zod schema, the code, Docker Compose and CI. Reports never show a secret's value.
envdoctor check --schema src/env.ts
Suggests Conventional Commit messages from staged changes, lints them, writes changelogs, and blocks keys and .env files from being committed.
commitsmith suggest
You declare layers and the imports they're allowed. It catches imports that cross the line, deep imports into a module's internals, and circular imports.
archwatch check
Reads JSON, logfmt and plain-text logs and groups the errors into a short list. Shows which exceptions keep coming back and when they spike.
loglens analyze ./logs/app.log
Add one step to your workflow. Problems show up inline in the PR through GitHub code scanning, and the job fails before anything risky merges.
--since origin/main skips migrations that already ran.--fail-on warning to be strict, or none to only report.# .github/workflows/checks.yml on: pull_request permissions: contents: read security-events: write jobs: devdoctor: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: { fetch-depth: 0 } - uses: actions/setup-node@v4 with: { node-version: 22 } - run: npm ci - run: npx @wealthometer/devdoctor check -f sarif -o dd.sarif --fail-on none - uses: github/codeql-action/upload-sarif@v3 with: { sarif_file: dd.sarif } - run: npx @wealthometer/devdoctor check - run: npx migraguard check --since origin/main
0All clear1Problems at or above --fail-on2Usage or config errorEvery check works out of the box. When you want rules of your own, put them in devdoctor.config.json, which comes with a JSON Schema for editor autocomplete.
{
"archwatch": {
"layers": {
"domain": "src/domain/**",
"infra": "src/infra/**",
"ui": "src/ui/**"
},
"rules": [
{ "from": "domain", "allow": [] },
{ "from": "ui", "disallow": ["infra"] }
]
},
"envdoctor": { "schema": "src/env.ts" },
"migraguard": { "pgVersion": 16 },
"repodoctor": { "minScore": 80 }
}
It takes seconds and changes nothing in your repo.
$ npx @wealthometer/devdoctor check