react-doctor 0.2.14-dev.6e59f10 → 0.2.14-dev.75c1f99
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +48 -2
- package/dist/cli.js +2627 -388
- package/dist/index.d.ts +69 -9
- package/dist/index.js +754 -106
- package/dist/skills/doctor-explain/SKILL.md +75 -0
- package/dist/skills/react-doctor/SKILL.md +4 -0
- package/package.json +6 -2
package/README.md
CHANGED
|
@@ -27,6 +27,14 @@ npx react-doctor@latest
|
|
|
27
27
|
|
|
28
28
|
https://github.com/user-attachments/assets/07cc88d9-9589-44c3-aa73-5d603cb1c570
|
|
29
29
|
|
|
30
|
+
On a large repo, add `--experimental-parallel` to fan the scan out across your CPU cores:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npx react-doctor@latest --experimental-parallel
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
React Doctor's rules run as oxlint JS plugins, which are single-threaded per process, so the scan scales nearly linearly with the number of worker processes — typically 3–4x faster on large codebases. Pass `--experimental-parallel <n>` to cap the worker count, or set `REACT_DOCTOR_PARALLEL=<n>` (handy in CI). Diagnostics are identical to a serial run.
|
|
37
|
+
|
|
30
38
|
### 2. Install for agents
|
|
31
39
|
|
|
32
40
|
Once you have an audit, you can install the skill for your coding agent to learn from the issues and fix them in the future.
|
|
@@ -73,9 +81,23 @@ React Doctor scans the files changed in the pull request, emits inline annotatio
|
|
|
73
81
|
|
|
74
82
|
[Add GitHub Action →](https://github.com/marketplace/actions/react-doctor)
|
|
75
83
|
|
|
76
|
-
### 4. Configure rules in `
|
|
84
|
+
### 4. Configure rules in `doctor.config.ts`
|
|
77
85
|
|
|
78
|
-
|
|
86
|
+
Configure with a `doctor.config.ts` (or `.js`, `.mjs`, `.cjs`, `.json`, `.jsonc`) in your project root — or a `"reactDoctor"` key in `package.json`.
|
|
87
|
+
|
|
88
|
+
```ts
|
|
89
|
+
// doctor.config.ts
|
|
90
|
+
import type { ReactDoctorConfig } from "react-doctor/api";
|
|
91
|
+
|
|
92
|
+
export default {
|
|
93
|
+
lint: true,
|
|
94
|
+
rules: {
|
|
95
|
+
"react-doctor/no-array-index-as-key": "off",
|
|
96
|
+
},
|
|
97
|
+
} satisfies ReactDoctorConfig;
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Prefer JSON? Use `doctor.config.json` and point `$schema` at `https://react.doctor/schema/config.json` for autocomplete, hover docs, and typo warnings in any editor that understands JSON Schema (comments and trailing commas are allowed):
|
|
79
101
|
|
|
80
102
|
```jsonc
|
|
81
103
|
{
|
|
@@ -84,6 +106,30 @@ Point the `$schema` key at `https://react.doctor/schema/config.json` to get auto
|
|
|
84
106
|
}
|
|
85
107
|
```
|
|
86
108
|
|
|
109
|
+
Don't hand-edit if you'd rather not — the `rules` subcommands list, explain, and configure rules for you (they edit your `doctor.config.*` in place — including TS/JS, preserving formatting — or `package.json#reactDoctor`):
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
npx react-doctor@latest rules list # every rule + its effective severity
|
|
113
|
+
npx react-doctor@latest rules explain <rule> # why a rule matters and how to tune it
|
|
114
|
+
npx react-doctor@latest rules disable <rule> # turn a rule off
|
|
115
|
+
npx react-doctor@latest rules set <rule> warn # off | warn | error
|
|
116
|
+
npx react-doctor@latest rules category "React Native" off
|
|
117
|
+
npx react-doctor@latest rules ignore-tag design # skip a whole rule family
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Telemetry
|
|
121
|
+
|
|
122
|
+
The CLI reports crashes and basic run traces to [Sentry](https://sentry.io) to help us fix bugs. Events include the version, platform, Node version, how the CLI was invoked (which command, package manager, and whether it ran locally vs. CI vs. a coding agent), the detected project shape (framework, React version, TypeScript, project size — never the contents of your files), and de-minified stack traces.
|
|
123
|
+
|
|
124
|
+
Telemetry is **anonymized** before it leaves your machine: no IP address is collected, your hostname and machine name are stripped, your OS username is removed from every path (your home directory is replaced with `~`), captured local variables are dropped, and known secrets/API keys/emails are masked. No source code or diagnostic findings are sent.
|
|
125
|
+
|
|
126
|
+
Opt out at any time:
|
|
127
|
+
|
|
128
|
+
- `npx react-doctor@latest --no-score` disables Sentry entirely (crash reporting and tracing) for that run, alongside the hosted score API.
|
|
129
|
+
- `SENTRY_TRACES_SAMPLE_RATE=0` keeps crash reporting but turns off performance tracing.
|
|
130
|
+
|
|
131
|
+
Telemetry is also skipped automatically under test runs, and the programmatic `react-doctor/api` library never initializes Sentry. Advanced overrides: `SENTRY_DSN` (point at your own Sentry project), `SENTRY_ENVIRONMENT`, `SENTRY_RELEASE`, and `SENTRY_DEBUG=1`.
|
|
132
|
+
|
|
87
133
|
## Contributing
|
|
88
134
|
|
|
89
135
|
[Issues welcome!](https://github.com/millionco/react-doctor/issues)
|