@geoql/oxlint-plugin-vue-doctor
v1.0.0
Published
oxlint JS plugin for Vue 3 anti-patterns and AI-slop detection. Pairs with oxlint's built-in vue plugin via jsPlugins. TypeScript, ESM.
Maintainers
Readme
@geoql/oxlint-plugin-vue-doctor
oxlint JS plugin holding the Vue 3 script-level rules that
@geoql/doctor-coreruns.
This package is a rule pack, not a tool. It's the jsPlugins half of the script pass: a set of oxlint JS-plugin rules that fire against the <script> / <script setup> ESTree oxlint extracts from .vue files. doctor-core generates the .oxlintrc.json that loads this plugin and wires it in automatically, so you don't install or configure it directly. Run @geoql/vue-doctor and these rules come along for free.
What's in here
Script-level Vue rules across four categories. Template-shaped rules (v-for/:key, v-if+v-for) live in doctor-core's in-process template pass instead, because oxlint never hands JS plugins the template AST.
| Category | Rules |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| ai-slop | em-dash strings, destructuring props/reactive without toRefs, non-null assertions on .value, explicit imports of auto-imported Vue APIs |
| composition | typed defineProps, prefer <script setup> for new files |
| reactivity | watch without cleanup, shallowRef for large data, readonly for injected values |
| performance | defineAsyncComponent on route components |
To see every rule with its id, severity, and preset membership, run vue-doctor list-rules (or filter, e.g. vue-doctor list-rules --source doctor --category ai-slop).
Install
npm i @geoql/oxlint-plugin-vue-doctorPublished on npm and JSR at v0.1.0 with provenance. ESM-only, TypeScript. oxlint is a peer dependency. Most people never add this dependency themselves; doctor-core resolves it for you.
Scope
Vue 3 only. Severity levels are error | warn | info.
Architecture
See docs/SPEC.md §10 for how the JS plugin co-loads with oxlint's native vue plugin and why the script and template rules live in different passes.
License
MIT © Vinayak Kulkarni
