Skip to main content

biome-validator

Validate Biome 2.3+ configuration and detect outdated patterns. Ensures proper schema version, domains, assists, and recommended rules. Use before any linting work or when auditing existing projects.

معلومات المصدر

المستودع
shipshitdev/v0
آخر نشاط في المصدر
٢٣ يوليو ٢٠٢٦ في ١٦:٤١
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
١
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
3 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
biome-validator
description
Validate Biome 2.3+ configuration and detect outdated patterns. Ensures proper schema version, domains, assists, and recommended rules. Use before any linting work or when auditing existing projects.
metadata
{"version":"1.0.0","tags":"biome, linter, formatter, validation, code-quality"}
# Biome Validator Validates Biome 2.3+ configuration and prevents outdated patterns. Ensures type-aware linting, domains, and modern Biome features are properly configured. ## When This Activates - Setting up linting for a new project - Before any code quality work - Auditing existing Biome configurations - After AI generates biome.json - CI/CD pipeline validation ## Quick Start ```bash python3 scripts/validate.py --root . python3 scripts/validate.py --root . --strict ``` ## What Gets Checked ### 1. Biome Version & Schema **GOOD - Biome 2.3+:** ```json { "$schema": "https://biomejs.dev/schemas/2.3.12/schema.json" } ``` **BAD - Old schema:** ```json { "$schema": "https://biomejs.dev/schemas/1.9.0/schema.json" } ``` ### 2. Package Version ```json // GOOD: v2.3+ "@biomejs/biome": "^2.3.0" // BAD: v1.x or v2.0-2.2 "@biomejs/biome": "^1.9.0" ``` ### 3. Linter Configuration **GOOD - Biome 2.x:** ```json { "linter": { "enabled": true, "rules": { "recommended": true, "suspicious": { "noExplicitAny": "warn" } } } } ``` ### 4. Biome Assist (2.0+) **GOOD - Using assist:** ```json { "assist": { "actions": { "source": { "organizeImports": "on" } } } } ``` **BAD - Old organizeImports location:** ```json { "organizeImports": { "enabled": true } } ``` ### 5. Domains (2.0+) **GOOD - Using domains for framework-specific rules:** ```json { "linter": { "domains": { "react": "on", "next": "on" } } } ``` ### 6. Suppression Comments **GOOD - Biome 2.0+ comments:** ```typescript // biome-ignore lint/suspicious/noExplicitAny: legacy code // biome-ignore-all lint/style/useConst // biome-ignore-start lint/complexity // biome-ignore-end ``` **BAD - Wrong format:** ```typescript // @ts-ignore // Not Biome // eslint-disable // Wrong tool ``` ## Biome 2.3+ Features ### Type-Aware Linting Biome 2.0+ includes type inference without requiring TypeScript compiler: ```json { "linter": { "rules": { "correctness": { "noUndeclaredVariables": "error", "useAwaitThenable": "error" } } } } ``` ### Assist Actions ```json { "assist": { "actions": { "source": { "organizeImports": "on", "useSortedKeys": "on" } } } } ``` ### Multi-file Analysis Lint rules can query information from other files for more powerful analysis. ### Framework Domains ```json { "linter": { "domains": { "react": "on", // React-specific rules "next": "on", // Next.js rules "test": "on" // Testing framework rules } } } ``` ## Recommended Configuration ```json { "$schema": "https://biomejs.dev/schemas/2.3.12/schema.json", "assist": { "actions": { "source": { "organizeImports": "on" } } }, "linter": { "enabled": true, "rules": { "recommended": true, "complexity": { "noForEach": "off" }, "style": { "noNonNullAssertion": "off" }, "suspicious": { "noArrayIndexKey": "off", "noExplicitAny": "warn" }, "correctness": { "useAwaitThenable": "error", "noLeakedRender": "error" } }, "domains": { "react": "on", "next": "on" } }, "formatter": { "enabled": true, "indentStyle": "space", "indentWidth": 2, "lineWidth": 100 }, "javascript": { "formatter": { "quoteStyle": "single", "trailingCommas": "es5", "semicolons": "always" } }, "files": { "ignore": [ "node_modules", "dist", "build", ".next", "out", ".cache", ".turbo", "coverage" ] } } ``` ## Deprecated Patterns | Deprecated | Replacement (2.3+) | |------------|-------------------| | `organizeImports.enabled` | `assist.actions.source.organizeImports` | | Schema < 2.0 | Schema 2.3.11+ | | `@biomejs/biome` < 2.3 | `@biomejs/biome@latest` | | No domains config | Use `linter.domains` for frameworks | ## Validation Output ``` === Biome 2.3+ Validation Report === Package Version: @biomejs/biome@2.3.11 ✓ Configuration: ✓ Schema version: 2.3.11 ✓ Linter enabled with recommended rules ✓ Using assist.actions for imports ✗ No domains configured (consider enabling react, next) ✓ Formatter configured Rules: ✓ noExplicitAny: warn ✓ useAwaitThenable: error ✗ noLeakedRender not enabled (recommended) Summary: 2 issues found ``` ## Migration from ESLint ### Step 1: Install Biome ```bash bun remove eslint prettier eslint-config-* eslint-plugin-* bun add -D @biomejs/biome@latest ``` ### Step 2: Create biome.json ```bash bunx biome init ``` ### Step 3: Migrate rules ```bash bunx biome migrate eslint --write ``` ### Step 4: Update scripts ```json { "scripts": { "lint": "biome lint .", "lint:fix": "biome lint --write .", "format": "biome format --write .", "check": "biome check .", "check:fix": "biome check --write ." } } ``` ### Step 5: Remove old configs ```bash rm .eslintrc* .prettierrc* .eslintignore .prettierignore ``` ## VS Code Integration ```json // .vscode/settings.json { "editor.formatOnSave": true, "editor.defaultFormatter": "biomejs.biome", "editor.codeActionsOnSave": { "source.organizeImports.biome": "explicit", "quickfix.biome": "explicit" } } ``` ## CI/CD Integration ```yaml # .github/workflows/lint.yml - name: Validate Biome Config run: | python3 scripts/validate.py \ --root . \ --strict \ --ci - name: Lint run: bunx biome check --error-on-warnings . ``` ## Integration - `linter-formatter-init` - Sets up Biome from scratch - `nextjs-validator` - Validates Next.js (enable next domain) - `bun-validator` - Validates Bun workspace
عرض على GitHub