Idea
assist ships custom lint checks for conventions that oxlint doesn't cover. We deliberately did not port these (our lint check is plain oxlint) — capturing them here as potential future built-ins.
What assist has
From staff0rd/assist:
oxlint-rules/filenameConvention.ts — a custom oxlint rule enforcing that a file is named after its main export (e.g. updateWorkerCapacity.ts for updateWorkerCapacity).
assist lint (src/commands/lint/lint/) — bespoke ts-morph checks for "conventions not enforced by oxlint":
checkFileNames.ts / runFileNameCheck.ts — the filename convention.
fixFileNameViolations.ts / renameExports.ts / applyMoves.ts — auto-fix: rename the file and rewrite all imports across the project.
runImportExtensionCheck.ts — check import extensions (e.g. require/forbid explicit .ts/.js).
createLintProject.ts — ts-morph project setup.
Possible built-ins for verifyx
filename-convention — file name must match its primary export; with a fix mode that renames + updates imports.
import-extensions — enforce a consistent import-extension policy.
Notes / design
- Would be native checks. We'd implement on the TypeScript compiler API (like our other native checks) rather than pulling in
ts-morph as a dependency — though the rename-and-update-imports fix is exactly what ts-morph is good at, so that's a real dependency trade-off to weigh (a fix mode may justify ts-morph; a check-only mode probably doesn't).
- Fits the fix/check model: check mode reports; fix mode renames/rewrites (destructive — guard accordingly).
- filename-convention needs a config knob for the naming rule (kebab vs camel, index files, etc.).
Status
Parked. Not scheduled.
Idea
assist ships custom lint checks for conventions that oxlint doesn't cover. We deliberately did not port these (our
lintcheck is plain oxlint) — capturing them here as potential future built-ins.What assist has
From staff0rd/assist:
oxlint-rules/filenameConvention.ts— a custom oxlint rule enforcing that a file is named after its main export (e.g.updateWorkerCapacity.tsforupdateWorkerCapacity).assist lint(src/commands/lint/lint/) — bespoke ts-morph checks for "conventions not enforced by oxlint":checkFileNames.ts/runFileNameCheck.ts— the filename convention.fixFileNameViolations.ts/renameExports.ts/applyMoves.ts— auto-fix: rename the file and rewrite all imports across the project.runImportExtensionCheck.ts— check import extensions (e.g. require/forbid explicit.ts/.js).createLintProject.ts— ts-morph project setup.Possible built-ins for verifyx
filename-convention— file name must match its primary export; with a fix mode that renames + updates imports.import-extensions— enforce a consistent import-extension policy.Notes / design
ts-morphas a dependency — though the rename-and-update-imports fix is exactly what ts-morph is good at, so that's a real dependency trade-off to weigh (a fix mode may justify ts-morph; a check-only mode probably doesn't).Status
Parked. Not scheduled.