mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-07-01 09:29:38 +02:00
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>
This commit is contained in:
parent
cf12defcd8
commit
0746d7ffd5
109 changed files with 951 additions and 611 deletions
95
ts/biome.json
Normal file
95
ts/biome.json
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
{
|
||||
"$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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue