Files
voicebox/biome.jsonc
T
Jamie Pine 02fa924b42 chore: move biome config to biome.jsonc and baseline existing violations
biome.json is strict JSON; the jsonc extension allows the annotations
on the baseline entries. Rules that currently fail are downgraded to
warn with a note against issue #421 — restore each to error as its
occurrences are fixed. files.experimentalScannerIgnores keeps the
scanner out of .worktrees/ so a local worktree's own config can't
conflict with the root one.

Also fixes the handful of auto-fixable errors (unused imports in docs/
and landing/, @ts-expect-error over @ts-ignore). bun run lint is now
green: 0 errors, 96 warnings visible as debt.
2026-07-26 23:16:30 -07:00

85 lines
2.2 KiB
JSON

{
"$schema": "https://biomejs.dev/schemas/2.3.12/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true
},
"files": {
// Local git worktrees carry their own root biome.json; keep the scanner
// out so they don't conflict with this one.
"experimentalScannerIgnores": [".worktrees"]
},
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 100
},
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"a11y": {
"useButtonType": "warn",
// Baseline (issue #421): interactive-div patterns in the dictation
// pill and chord picker.
"noStaticElementInteractions": "warn",
"useFocusableInteractive": "warn",
"useSemanticElements": "warn",
"useAriaPropsSupportedByRole": "warn",
"useKeyWithClickEvents": "warn",
"noLabelWithoutControl": "warn",
"useAriaPropsForRole": "warn"
},
"correctness": {
"noUnusedVariables": "warn",
"noUnusedImports": "error",
"useExhaustiveDependencies": "warn",
"useHookAtTopLevel": "error",
// Existing-violation baseline (issue #421); restore to error as
// occurrences are fixed. Counts as of 2026-07-26.
"noInnerDeclarations": "warn"
},
"suspicious": {
"noDoubleEquals": "error",
"noExplicitAny": "warn",
"noUnknownAtRules": "off",
// Baseline (issue #421): 16 array-index keys, 2 iterable-callback
// returns, 1 then-property.
"noArrayIndexKey": "warn",
"useIterableCallbackReturn": "warn",
"noThenProperty": "warn"
},
"style": {
"useFilenamingConvention": "off",
"noNonNullAssertion": "off"
}
}
},
"javascript": {
"formatter": {
"quoteStyle": "single",
"jsxQuoteStyle": "double",
"trailingCommas": "all",
"semicolons": "always",
"arrowParentheses": "always"
}
},
"json": {
"formatter": {
"trailingCommas": "none"
}
},
"css": {
"parser": {
"cssModules": false,
"allowWrongLineComments": false,
"tailwindDirectives": true
},
"linter": {
"enabled": true
}
}
}