Biome rules
| Rule | Catches | Enable via |
|---|---|---|
| noReExportAll | export * from |
@house-rules/rules/biome |
| noExcessiveLinesPerFile | Files over 300 lines (warn) | @house-rules/rules/biome |
| noNonNullAssertion | ! non-null assertions |
@house-rules/rules/biome |
| useFilenamingConvention | Files not kebab-case or export | @house-rules/rules/biome |
| Formatter | indentWidth 2, lineWidth 100, indentStyle space | @house-rules/rules/biome |
Biome preset
Section titled “Biome preset”From packages/rules/docs/biome.md.
Import path: @house-rules/rules/biome
It is drunk-cat-stack’s biome.json without the files block: formatter on (spaces, indent 2, line width 100), assist off, and the linter with preset: "none" plus four rules.
| Rule | Level |
|---|---|
performance/noReExportAll |
error |
style/noNonNullAssertion |
error |
style/useFilenamingConvention (kebab-case or export) |
error |
style/noExcessiveLinesPerFile (300 lines, blank lines counted) |
warn |
{ "$schema": "https://biomejs.dev/schemas/2.5.14/schema.json", "extends": ["@house-rules/rules/biome"], "files": { "includes": ["**", "!!node_modules", "!!dist", "!!coverage", "!!generated", "!!.agent_sources"] }}Biome resolves the specifier through this package’s exports map. The preset file is biome/preset.json, not biome.json, because Biome treats a nested file named biome.json as a second root config.
Why files stays in the consumer
Section titled “Why files stays in the consumer”Biome does not merge files.includes from an extended config with the consumer’s. When the consumer sets files.includes, the preset’s list is dropped. A consumer that added one exclude would silently lose the rest. So the preset leaves files out, and each repository lists its own excludes. Globs in the consumer’s list resolve against the consumer’s root.
Tested against
Section titled “Tested against”Biome 2.5.14. A test extends the preset from a symlinked install, checks a clean file passes, and checks that export *, a non-null assertion and a PascalCase file name each fail by rule name.