spawn/biome.json
A 54fc5f3ff3
fix(ci): remove stale paths from biome check, extend biome to .claude/ (#3123)
Remove .claude/scripts/ and .claude/skills/setup-spa/ from lint.yml biome step
(biome.json includes filter already excluded them — 0 files processed).

Add .claude/**/*.ts to biome.json includes with linter disabled override,
so .claude/ TypeScript gets formatting coverage without triggering GritQL
plugin violations (no-try-catch etc.) that don't apply to standalone hooks.

Agent: pr-maintainer

Co-authored-by: B <6723574+louisgv@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 11:29:27 +07:00

145 lines
3.5 KiB
JSON

{
"$schema": "https://biomejs.dev/schemas/2.4.4/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true,
"defaultBranch": "main"
},
"files": {
"ignoreUnknown": false,
"includes": ["packages/**/*.ts", ".claude/**/*.ts"]
},
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 120
},
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"complexity": {
"useLiteralKeys": "off",
"noForEach": "off",
"noUselessSwitchCase": "off"
},
"style": {
"noNonNullAssertion": "off",
"useNodejsImportProtocol": "error",
"useTemplate": "off",
"useBlockStatements": "error",
"noParameterAssign": "off",
"useConst": "error",
"useDefaultParameterLast": "error",
"useSelfClosingElements": "error",
"useSingleVarDeclarator": "error",
"noUnusedTemplateLiteral": "error",
"useNumberNamespace": "error",
"noInferrableTypes": "error",
"noUselessElse": "error",
"useImportType": {
"level": "error",
"options": {
"style": "separatedType"
}
}
},
"correctness": {
"noUnusedImports": "error",
"noUnusedVariables": "error",
"noUnusedFunctionParameters": "warn",
"noInnerDeclarations": "error"
},
"suspicious": {
"noExplicitAny": "warn",
"noAssignInExpressions": "error",
"noFallthroughSwitchClause": "error",
"noDoubleEquals": "error",
"noExtraNonNullAssertion": "error",
"noTemplateCurlyInString": "off",
"noImplicitAnyLet": "error",
"noGlobalIsNan": "error",
"noGlobalIsFinite": "error",
"noControlCharactersInRegex": "off"
},
"performance": {
"recommended": true,
"noAccumulatingSpread": "error"
},
"security": {
"recommended": true
}
}
},
"javascript": {
"formatter": {
"expand": "always",
"arrowParentheses": "always",
"quoteStyle": "double",
"trailingCommas": "all",
"semicolons": "always",
"bracketSpacing": true,
"bracketSameLine": false
}
},
"overrides": [
{
"includes": ["packages/cli/src/__tests__/**"],
"linter": {
"rules": {
"suspicious": {
"noExplicitAny": "off",
"noImplicitAnyLet": "off",
"noAssignInExpressions": "off"
},
"correctness": {
"noUnusedVariables": "off",
"noUnusedFunctionParameters": "off"
}
}
}
},
{
"includes": [".claude/**"],
"linter": {
"enabled": false
}
}
],
"plugins": [
"./lint/no-type-assertion.grit",
"./lint/no-typeof-string-number.grit",
"./lint/no-try-catch.grit",
"./lint/no-try-finally.grit",
"./lint/no-ts-enum.grit"
],
"assist": {
"actions": {
"source": {
"organizeImports": {
"level": "on",
"options": {
"groups": [
{
"type": true
},
":BLANK_LINE:",
{
"type": false
},
[":NODE:"],
":BLANK_LINE:",
["!@openrouter/**"],
":BLANK_LINE:",
["@openrouter/**"],
":BLANK_LINE:",
":ALIAS:"
]
}
}
}
}
}
}