Token导航 LogoToken导航TokenDH.com
前端设计需要联网unknown未标认证来源可访问许可证需确认审计未展示

biomeBiome 代码规范

Agent Skill

biome 用于补充前端设计相关能力,适合在 Local Agent 中需要让 Agent 承接前端设计相关任务时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

196

周安装

8

下载量

63
Local Agent

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:biome(Biome 代码规范)
来源仓库:https://smithery.ai
仓库路径:biome
安装命令:
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。当前暂无明确安装命令,请以来源页面说明为准。

简介

biome 用于补充前端设计相关能力,适合在 Local Agent 中需要处理前端设计任务时使用。

  • 它适用于代码规范检查、样式优化和组件结构整理等场景,可帮助提升前端质量。
  • 使用时应结合具体项目框架和风格指南,参考原始 README 了解支持的规则和操作方式。
  • 安装前需确认权限范围和维护状态,注意是否会触发联网、命令执行或文件读写操作。
  • biome 属于前端设计类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Biome Skill

When to Use

Use this skill when:

  • Setting up Biome for the first time
  • Configuring linting rules
  • Setting up formatting standards
  • Integrating with CI/CD
  • Fixing linting errors
  • Configuring import sorting
  • Setting up pre-commit hooks with Biome

Critical Patterns

Biome Configuration

ALWAYS use a single biome.json in monorepo root:

{
  "$schema": "https://biomejs.dev/schemas/1.4.1/schema.json",
  "organizeImports": {
    "enabled": true
  },
  "linter": {
    "enabled": true,
    "rules": {
      "recommended": true,
      "correctness": {
        "noUnusedVariables": "error",
        "useExhaustiveDependencies": "warn"
      },
      "style": {
        "noNonNullAssertion": "warn",
        "useImportType": "error"
      },
      "suspicious": {
        "noExplicitAny": "error",
        "noConsoleLog": "warn"
      }
    }
  },
  "formatter": {
    "enabled": true,
    "formatWithErrors": false,
    "indentStyle": "space",
    "indentWidth": 2,
    "lineWidth": 100
  },
  "javascript": {
    "formatter": {
      "quoteStyle": "single",
      "trailingComma": "es5",
      "semicolons": "asNeeded",
      "arrowParentheses": "asNeeded"
    }
  }
}

Import Organization

Biome organizes imports automatically:

// Before Biome
import { useState } from 'react'
import type { Quiz } from '@/types'
import { Button } from '@/components/ui/button'
import { calculateScore } from './utils'

// After Biome (organized)
import { useState } from 'react'

import { Button } from '@/components/ui/button'
import type { Quiz } from '@/types'

import { calculateScore } from './utils'

Order enforced by Biome:

  1. Side-effect imports
  2. External dependencies
  3. Internal absolute imports
  4. Relative imports
  5. Type-only imports (grouped separately)

Linting Rules for TypeScript

ALWAYS enable strict TypeScript rules:

{
  "linter": {
    "rules": {
      "suspicious": {
        "noExplicitAny": "error",
        "noUnsafeDeclarationMerging": "error"
      },
      "correctness": {
        "noUnusedVariables": "error",
        "useExhaustiveDependencies": "warn"
      },
      "style": {
        "useImportType": "error",
        "noNonNullAssertion": "warn"
      }
    }
  }
}

Formatter Configuration

Consistent formatting across packages:

{
  "formatter": {
    "indentWidth": 2,
    "lineWidth": 100,
    "indentStyle": "space"
  },
  "javascript": {
    "formatter": {
      "quoteStyle": "single",
      "semicolons": "asNeeded",
      "trailingComma": "es5",
      "arrowParentheses": "asNeeded"
    }
  }
}

Why these choices:

  • quoteStyle: "single" - Consistent with most JS projects
  • semicolons: "asNeeded" - Clean code, ASI-safe
  • trailingComma: "es5" - Better git diffs
  • arrowParentheses: "asNeeded" - Cleaner arrow functions
  • lineWidth: 100 - Balance readability and screen width

Code Examples

Package Scripts

Add to each package.json:

{
  "scripts": {
    "lint": "biome check .",
    "lint:fix": "biome check --apply .",
    "format": "biome format --write .",
    "format:check": "biome format .",
    "check": "biome check --apply ."
  }
}

Root package.json (runs on all packages):

{
  "scripts": {
    "lint": "turbo run lint",
    "lint:fix": "turbo run lint:fix",
    "format": "turbo run format",
    "format:check": "turbo run format:check"
  }
}

CI Integration

GitHub Actions example:

name: Code Quality

on: [push, pull_request]

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: pnpm/action-setup@v2
        with:
          version: 8
      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: 'pnpm'

      - run: pnpm install
      - run: pnpm lint
      - run: pnpm format:check

Pre-commit Hooks

Using husky + lint-staged:

// package.json
{
  "lint-staged": {
    "*.{ts,tsx,js,jsx}": [
      "biome check --apply --no-errors-on-unmatched"
    ]
  }
}
# .husky/pre-commit
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

pnpm lint-staged

Ignoring Files

biome.json:

{
  "files": {
    "ignore": [
      "node_modules",
      "dist",
      ".next",
      "build",
      "coverage",
      "*.config.js"
    ]
  }
}

VSCode Integration

.vscode/settings.json:

{
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "biomejs.biome",
  "editor.codeActionsOnSave": {
    "quickfix.biome": "explicit",
    "source.organizeImports.biome": "explicit"
  },
  "[typescript]": {
    "editor.defaultFormatter": "biomejs.biome"
  },
  "[typescriptreact]": {
    "editor.defaultFormatter": "biomejs.biome"
  }
}

Common Patterns

Fixing Common Issues

Issue: noExplicitAny errors

// ❌ Bad
function handleData(data: any) {
  return data.value
}

// ✅ Good
function handleData(data: unknown) {
  if (typeof data === 'object' && data !== null && 'value' in data) {
    return (data as { value: string }).value
  }
  throw new Error('Invalid data')
}

// ✅ Better with Zod
import { z } from 'zod'

const DataSchema = z.object({
  value: z.string(),
})

function handleData(data: unknown) {
  const parsed = DataSchema.parse(data)
  return parsed.value
}

Issue: noUnusedVariables

// ❌ Bad
function calculateScore(answers: Answer[], quizId: string) {
  return answers.filter(a => a.isCorrect).length
  // quizId is unused
}

// ✅ Good - remove unused param
function calculateScore(answers: Answer[]) {
  return answers.filter(a => a.isCorrect).length
}

// ✅ Good - prefix with _ if intentionally unused
function calculateScore(answers: Answer[], _quizId: string) {
  return answers.filter(a => a.isCorrect).length
}

Issue: useImportType

// ❌ Bad
import { Quiz } from '@/types'

const quiz: Quiz = { ... }

// ✅ Good
import type { Quiz } from '@/types'

const quiz: Quiz = { ... }

Auto-fix Workflow

# 1. Check issues
pnpm lint

# 2. Auto-fix what can be fixed
pnpm lint:fix

# 3. Format code
pnpm format

# 4. Check if there are remaining issues
pnpm lint

Commands Reference

# Check linting (no changes)
biome check .

# Check and auto-fix
biome check --apply .

# Format files (write)
biome format --write .

# Format files (check only)
biome format .

# Check specific files
biome check src/**/*.ts

# Run with detailed output
biome check --verbose .

# Check with specific config
biome check --config-path ./custom-biome.json .

Best Practices

ALWAYS:

  • Run biome check --apply before committing
  • Use noExplicitAny: "error" to prevent any types
  • Enable organizeImports for consistent import order
  • Configure pre-commit hooks to run Biome
  • Use single biome.json in monorepo root

NEVER:

  • Disable rules without documenting why
  • Use // @ts-ignore instead of // biome-ignore
  • Commit code that fails biome check
  • Mix Biome with other formatters (Prettier, ESLint)
  • Use any type (Biome will catch this)

Biome vs ESLint/Prettier

Why Biome:

  • Fast: 10-100x faster than ESLint
  • All-in-one: Linter + Formatter in one tool
  • Zero config: Works out of the box
  • TypeScript-first: Native TS support
  • Import sorting: Built-in organize imports

Migration from ESLint/Prettier:

  1. Remove ESLint and Prettier dependencies
  2. Remove .eslintrc.* and .prettierrc.* files
  3. Add biome.json configuration
  4. Update scripts to use Biome
  5. Update pre-commit hooks
  6. Update CI/CD pipelines

Monorepo Setup

Root biome.json (shared config):

{
  "$schema": "https://biomejs.dev/schemas/1.4.1/schema.json",
  "organizeImports": { "enabled": true },
  "linter": {
    "enabled": true,
    "rules": {
      "recommended": true
    }
  },
  "formatter": {
    "enabled": true,
    "indentWidth": 2,
    "lineWidth": 100
  }
}

Package-specific overrides (if needed):

// frontend/biome.json
{
  "extends": ["../biome.json"],
  "linter": {
    "rules": {
      "suspicious": {
        "noConsoleLog": "off"  // Allow console in frontend dev
      }
    }
  }
}

Troubleshooting

Issue: Biome not formatting on save

Solution:

  1. Install Biome VSCode extension
  2. Set as default formatter in .vscode/settings.json
  3. Enable format on save

Issue: Import organization not working

Solution:

{
  "organizeImports": {
    "enabled": true
  }
}

Run: biome check --apply.

Issue: Conflicts with existing ESLint config

Solution:

  1. Remove ESLint completely or
  2. Use ESLint only for custom rules Biome doesn't support
  3. Don't mix formatters

Resources

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Local Agent

71.15%
按下载量换算45

安全审计

暂无安全审计结果可展示。

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills