trustgraph/ts/biome.json
elpresidank 0746d7ffd5 feat(ts): add real quality gates — Biome lint + effect-law ratchet + class inventory
- biome.json (2.4.16, linter-only) wired as "lint" in all six packages
- scripts/check-effect-laws.ts: Effect-native law enforcement encoding the
  adapted beep-effect effect-first/schema-first laws (no native JSON/switch/
  sort/fetch/timers, no process.env, no throw new, no Effect.run* outside
  boundaries, no Schema-suffixed constants, no node:fs/path, AST-based
  pure-data interface detection per law 38/39)
- ratcheting baseline allowlist (95 entries / 290 findings) that must shrink
  to documented exemptions only; stale counts fail the gate
- root lint chains turbo lint + law check + native-class inventory
- fix all 163 initial Biome findings: import-type style, templates, two `any`s,
  ten non-null assertions (librarian getService gate, A.matchRight in atoms,
  ensureNode returning nodes, main.tsx mount guard)

Gates: lint, check:tsgo, build, test (force, 11 tasks) all green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 06:40:01 -05:00

95 lines
2.3 KiB
JSON

{
"$schema": "https://biomejs.dev/schemas/2.4.16/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true
},
"root": true,
"files": {
"includes": [
"packages/*/src/**",
"scripts/**",
"!**/node_modules",
"!**/dist",
"!**/.turbo",
"!**/__snapshots__"
]
},
"css": {
"parser": {
"tailwindDirectives": true
}
},
"formatter": {
"enabled": false
},
"assist": {
"enabled": false
},
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"security": {
"noGlobalEval": "error"
},
"a11y": {
"useFocusableInteractive": "off",
"useAriaPropsForRole": "off",
"useSemanticElements": "off",
"useKeyWithClickEvents": "off",
"noStaticElementInteractions": "off",
"noSvgWithoutTitle": "off",
"useButtonType": "off",
"noLabelWithoutControl": "off"
},
"complexity": {
"noBannedTypes": "off",
"noForEach": "off",
"noUselessFragments": "off"
},
"correctness": {
"noUnusedImports": "error",
"noUnusedVariables": "off",
"noUnusedFunctionParameters": "off",
"useExhaustiveDependencies": "off",
"useHookAtTopLevel": "off",
"useYield": "off",
"noChildrenProp": "off"
},
"performance": {
"noDelete": "off",
"noAccumulatingSpread": "off"
},
"suspicious": {
"noDebugger": "error",
"noExplicitAny": "error",
"noConfusingVoidType": "off",
"noAssignInExpressions": "off",
"noArrayIndexKey": "off",
"noDoubleEquals": "off",
"noThenProperty": "off",
"noRedeclare": "off"
},
"style": {
"noNonNullAssertion": "error",
"useImportType": {
"level": "error",
"options": {
"style": "separatedType"
}
},
"useAsConstAssertion": "error",
"useDefaultParameterLast": "error",
"useSelfClosingElements": "error",
"useSingleVarDeclarator": "error",
"useNumberNamespace": "error",
"noInferrableTypes": "error",
"noUselessElse": "error",
"noParameterAssign": "off",
"noUnusedTemplateLiteral": "off"
}
}
}
}