T-RREG-lint-configs-that-do-nothing
State: closed/done · Impact: high · Complexity: small
Three classes of lint config in this repo are present, look configured, and do
nothing. Three apps name their oxlint config a filename oxlint does not
auto-discover; learn_web’s eslint config throws on load because it imports a
file that does not exist; and nine packages carry biome scripts with no
biome.json anywhere in the repo. Each reads as “linted” at a glance and is
not, which is the same failure this effort has been closing everywhere else.
| Location | Role today |
|---|---|
apps/agentpants/src-nuxt/oxlint.json | Not an auto-discovered oxlint filename, and "lint": "eslint . && oxlint ." passes no -c — so the rules and ignorePatterns are ignored |
apps/legacy-polish/src-nuxt/oxlint.json | Same |
solutions/ontological/desktop/src-nuxt/oxlint.json | Same |
apps/pumice/src-nuxt/.oxlintrc.json | The only one named correctly; this is the shape the other three should have |
solutions/augmented/apps/learn_web/eslint.config.mjs | require('../../lint-config.json') — solutions/augmented/lint-config.json does not exist anywhere in the repo, so the config throws and bun run lint cannot run |
packages/ts/json-canvas-core/package.json | biome lint/format/check scripts, biome NOT in dependencies — the scripts cannot run |
packages/ts/json-canvas-vue/package.json | Same |
packages/ts/json-canvas-vue/demo/package.json | Same |
solutions/augmented/packages/ts/{books,context,entity,hierarchy,logging,utils}/package.json | biome scripts and the dependency, but no biome.json exists anywhere — they run on biome’s defaults, not a declared house style |
Proposed
Section titled “Proposed”Every lint config in the repo either does what it says or is gone.
The three oxlint files are renamed so oxlint reads them. learn_web’s config
resolves — and since the file it wants is precisely the shared ignore list
T-BBYP-shared-eslint-oxlint-layer introduces, it points there rather than at
a resurrected one-off. The biome scripts are removed: there is no biome.json
in the repo, no decision record adopting biome, and three of the nine cannot
execute at all.
Approach
Section titled “Approach”git mvthe threeoxlint.jsonfiles to.oxlintrc.json. Verify oxlint actually reads them afterwards — the observable signal isno-consolefiring, since it is in the configs but not in oxlint’s default set.- Check whether honouring those configs surfaces new findings. The rules are
warn, and oxlint exits 0 on warnings without--deny-warnings, so thelintscripts should stay green; confirm rather than assume, and fix or record whatever appears. - Delete the
biomescripts from all ninepackage.jsonfiles, and drop@biomejs/biomefrom the six that declare it. - Fix
learn_web/eslint.config.mjs. If T-BBYP-shared-eslint-oxlint-layer has landed, import the shared ignores from it; if this task goes first, inline the ignore list and leave a note pointing at T-BBYP. - Regenerate
bun.lock. Six workspace manifests declare the biome dependency, so removing it is a lockfile change too.
Files to touch
Section titled “Files to touch”| Location | Kind | Change |
|---|---|---|
apps/agentpants/src-nuxt/oxlint.json | delete | renamed to .oxlintrc.json |
apps/legacy-polish/src-nuxt/oxlint.json | delete | renamed to .oxlintrc.json |
solutions/ontological/desktop/src-nuxt/oxlint.json | delete | renamed to .oxlintrc.json |
solutions/augmented/apps/learn_web/eslint.config.mjs | modify | stop importing a file that does not exist |
packages/ts/json-canvas-core/package.json | modify | drop the dead biome scripts |
packages/ts/json-canvas-vue/package.json | modify | drop the dead biome scripts |
solutions/augmented/packages/ts/ | modify | drop biome scripts and the dependency across the six packages |
Acceptance criteria
Section titled “Acceptance criteria”- AC-1: In each of the three renamed apps, a file containing
console.logis reported byoxlint .— it is not today, which is the proof the config was being ignored. - AC-2:
bun run lintcompletes insolutions/augmented/apps/learn_webinstead of throwing on a missing module. - AC-3:
grep -r '"biome' --include=package.jsonreturns nothing outsidenode_modules. - AC-4: Every app’s existing
lintscript still exits 0.
Out of scope
Section titled “Out of scope”- Adding lint coverage to the ~20
packages/ts/*that have none. That is new coverage rather than repair, and belongs to whatever decision follows T-BBYP-shared-eslint-oxlint-layer. - Adopting biome deliberately. If it is wanted, it needs a decision entity and a checked-in config; this task only removes scripts that cannot work.
- The 17 eslint errors that appear in
learn_webonce its config loads (unused vars and explicitany, acrosslayers/andscripts/). They are pre-existing app-code problems that were invisible only because the linter could not start. Nothing in CI runs:lint, so they gate nothing today; fixing them is app work, not config repair. solutions/augmented/apps/augmented-books/docs/code-quality.md, which documents thelint-config.json+biome.jsonpair this task’s debris came from. That app is excluded from the workspace and the doc describes a layout this repo no longer has.
Dependencies
Section titled “Dependencies”- Soft ordering with T-BBYP-shared-eslint-oxlint-layer:
learn_web’s config wants a shared ignore list, which is exactly what that task creates. Either order works; taking T-BBYP first avoids writing a throwaway inline list.
Discovery context
Section titled “Discovery context”All three classes turn out to be one artifact. augmented-books/docs/code-quality.md
documents a Biome + ESLint setup built around a root lint-config.json and a
biome.json, and names learn_web/eslint.config.mjs as one of the configs
that imports the former. Neither file exists in this repo: when augmented was
folded in and augmented-books was excluded from the workspace, the shared
config never came with it. What was left behind is a config importing a ghost
and nine manifests scripting a linter that was never configured here.
The oxlint finding was proven, not inferred: the same config file under both
names, against the same probe, gives 1 warning across 95 rules as oxlint.json
and 2 across 96 as .oxlintrc.json, with no-console firing only in the
second. learn_web’s missing import was found by reading the config while
auditing the nine eslint files.