@mikuexe/lint
v0.1.0
Published
One AI-strict lint CLI for Benjamin's JavaScript, TypeScript, React, CLI, and package projects.
Downloads
63
Maintainers
Readme
miku-lint
One universal AI-strict lint CLI for all projects in dev-in-an-ai-age.
It is intentionally one command, not project-specific configs.
miku-lint check
miku-lint check --mode fast
miku-lint check --mode full
miku-lint check --all --mode standard
miku-lint check --ciWhat it runs
| Mode | Checks |
|---|---|
| fast | ESLint universal config + TypeScript typecheck |
| standard | fast + Fallow production unused-code/dependency check |
| full | standard + Fallow full codebase intelligence + React Doctor when React is detected + publint/attw for publishable packages |
| ci | strict CI variant: ESLint max warnings 0, Fallow audit, React Doctor for React, publish checks |
Universal ESLint policy
The bundled config includes:
typescript-eslintstrict typed rules whentsconfig.jsonexists.- Perfectionist
recommended-naturalpreset — all Perfectionist rules under one preset. - React Hooks + React Refresh.
- JSX accessibility rules.
- Testing Library, Jest-DOM, Vitest rules.
- TanStack Query rules.
- Node/security rules.
- no-unsanitized DOM/XSS rules.
- regexp safety rules.
- no-secrets warning.
- SonarJS/unicorn complexity/readability rules.
- JSON/YAML parser support.
Why Perfectionist preset
Perfectionist covers sorting/ordering for imports, named imports, exports, objects, types, enums, JSX props, classes, maps, sets, union/intersection types, and more.
This CLI uses:
perfectionist.configs['recommended-natural']Policy: do not also enable import/order, sort-imports, or Prettier import sorting. Perfectionist owns ordering.
Fallow / React Doctor policy
Fallow is the primary codebase-shape gate:
Fallow = unused deps/files/exports + duplication + cycles + complexity + health
React Doctor = React-specific agent-friendly diagnosis/scoreKnip was removed because Fallow covers the same unused deps/files/exports gate and more.
Default Fallow usage by mode:
| Mode | Fallow invocation |
|---|---|
| standard | fallow --production |
| full | fallow |
| ci | fallow audit when a git repository is available |
Use --fallow ...args or repeated --fallow-arg to access any Fallow CLI option directly.
All-project usage
From ~/Documents/sites.nosync/dev-in-an-ai-age:
node miku-lint/src/cli.mjs check --all --mode standardAfter publishing/installing:
miku-lint check --all --mode standardSkipping checks
miku-lint check --mode full --skip react-doctor
miku-lint check --mode ci --skip fallow,attwPassing Fallow options
miku-lint forwards any trailing arguments after --fallow to the Fallow step, so Fallow's full CLI surface stays available without wrapping every flag one by one.
miku-lint check --mode full --fallow --format json --score --trend
miku-lint check --mode ci --fallow --changed-since origin/main --fail-on-issuesFor scripts where trailing args are awkward, repeat --fallow-arg:
miku-lint check --mode full --fallow-arg --format --fallow-arg jsonValid skips:
eslint,typecheck,fallow,react-doctor,publint,attwNotes
--allscans child directories forpackage.jsonand skipsnode_modules,dist,opensrc,worktrees, etc.- React Doctor only runs when React is detected in dependencies.
- Publish checks only run when package metadata suggests a publishable package (
exports,files,bin,publishConfig, orprivate: false). - The universal ESLint config is intentionally strict; ratchet warnings to errors after the first cleanup pass.
Local verification
npm install
npm run check:syntax
node src/cli.mjs check . --mode fast
node src/cli.mjs check . --mode standard
node src/cli.mjs check . --mode full
node src/cli.mjs check . --mode ci
npm run verify:modes