Skip to content

Full Check ​

Runs all thirteen other commands in one sweep — each in its own already-safe, read-only mode — and shows one summary table instead of thirteen separate reports. Proposed after the rest of the command set was already built, as a quick way to get the whole picture before a commit without typing thirteen commands.

bash
devtoolz full-check [dir] [options]

Real output — a small package with a few real, unrelated problems scattered across it:

✖ strip-comments    1 found
✔ console-strip     clean
✖ dead-exports      1 found
✔ case-check        clean
✔ exports-doctor    clean
✔ readme-check      clean
✔ unused-deps       clean
✔ circular-imports  clean
✖ empty-catch       1 found
✔ todo-report       clean
✖ scripts-check     3 found
✔ orphan-tests      clean
✔ stale-ts-ignore   clean

9 clean, 4 found something — see `devtoolz <command> --help` for full detail on any of them.

The count next to each command counts individual findings — comments, statements, exports, whatever that command reports on — never files. strip-comments and console-strip are no exception, even though their own native report groups changes by file underneath.

Never applies anything ​

Three of the thirteen commands here (strip-comments, console-strip, case-check) can, on their own, write changes to disk with -y/--fix. full-check never passes either — every one of the thirteen runs the same way a plain invocation with neither flag would: report-only. There's nothing to preview or apply from full-check itself; run the specific command directly if you want to actually fix something it found.

One shared directory, no per-command flags ​

full-check takes a single [dir] (default .) and passes it to every command in whatever shape that command's own options expect — { paths: ['.'], cwd: dir } for most, { dir } for the handful that only take that. It doesn't try to forward --ext/--ignore/--tsconfig/etc. into each of the thirteen — that's a deliberate scope limit: full-check is for a quick, default-configuration sweep, not for reconfiguring every command at once. Run a command directly with its own flags for anything more specific.

stale-ts-ignore is the one command worth asking about ​

Every command here runs, in order — stale-ts-ignore last, since it's the only one that can turn a full-check into a genuinely slow run (a real project-wide typecheck, twice). Running devtoolz full-check with no flags in a real interactive terminal asks about it specifically before starting:

stale-ts-ignore runs a full project typecheck twice — this can take noticeably longer than the other commands on a large project.

  1) Run it anyway (full sweep)
  2) Skip it for this run

Choice [1/2, Enter = 1]:

Pressing Enter (or 1) runs it. 2 skips just that one command for this run. The question only appears in a real terminal, with no --skip/--json already answering it — piped output, CI, and --json all skip straight to running everything, same as pressing Enter would.

--skip stale-ts-ignore skips both the question and the command outright — the way to make this a fast, no-prompt sweep every time:

✖ strip-comments    1 found
✔ console-strip     clean
✖ dead-exports      1 found
✔ case-check        clean
✔ exports-doctor    clean
✔ readme-check      clean
✔ unused-deps       clean
✔ circular-imports  clean
✖ empty-catch       1 found
✔ todo-report       clean
✖ scripts-check     3 found
✔ orphan-tests      clean
⊘ stale-ts-ignore   skipped

8 clean, 4 found something, 1 skipped — see `devtoolz <command> --help` for full detail on any of them.

--no-prompt disables just the question, without skipping the command — useful for a script that already knows it wants the full sweep and doesn't want the (harmless, but pointless outside a real terminal) TTY check to matter.

A command that fails doesn't stop the sweep ​

Each of the thirteen runs independently — if one throws (a real crash, not just a finding) or can't find what it needs (no package.json, no tsconfig.json), that shows up as an error against that one command, and the rest still run and report normally.

Options ​

[dir] ​

Directory every command scans/reads from — the same one for all thirteen (default: .).

--skip <command> ​

Skip a command by name (repeatable) — valid names: strip-comments, console-strip, dead-exports, case-check, exports-doctor, readme-check, unused-deps, circular-imports, empty-catch, todo-report, scripts-check, orphan-tests, stale-ts-ignore.

--no-prompt ​

Don't ask about stale-ts-ignore even in an interactive terminal — runs it unless --skip already excludes it.

Example:

bash
devtoolz full-check                            # everything, asks about stale-ts-ignore in a real terminal
devtoolz full-check path/to/package             # a specific directory
devtoolz full-check --skip stale-ts-ignore      # fast sweep, no prompt, no typecheck
devtoolz full-check --json                      # machine-readable, no prompt