ultracite について
Ultraciteは、モダンなJavaScript・TypeScriptプロジェクト向けのリンティングとフォーマットを扱うスキルです。Biome、ESLintとPrettier・Stylelint、OxlintとOxfmtに対応し、フレームワーク別プリセットや移行ガイドを備えています。
主な機能
- 01Biome、ESLint、Oxlintの選択肢
- 02フレームワーク別プリセット
- 03プロジェクト設定の診断
- 04ESLintとPrettierからの移行ガイド
- 05エディターとAIエージェントの設定ガイド
活用シーン
- 01新しいTypeScriptプロジェクトのリンティング設定
- 02React、Vue、Svelte向けプリセットの選択
- 03既存のESLintとPrettier設定からの移行
- 04設定やプリセットパスの確認
MCP 対応
AIアシスタント向けのMCPサーバー統合に言及していますが、サーバーのツールや具体的な動作はREADMEに記載されていません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ secondsky/ claude-skills --skill ultraciteインストール後、Claude Code で/ultraciteを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/config-validator.mdmigration-assistant.mdcommands/doctor.mdmigrate.mdreferences/ai-editor-integration.mdai-hooks.mdbiome.jsonc.monorepo.examplebiome.jsonc.nextjs.examplebiome.jsonc.react.examplebiome.jsonc.svelte.examplebiome.jsonc.vue.exampleconfiguration-guide.mdgit-hooks-setup.mdlefthook.yml.examplelimitations-and-workarounds.mdlint-staged.config.examplemcp-integration.mdmigration-guides.mdmonorepo-configuration.mdprovider-biome.mdprovider-eslint.mdprovider-oxlint.mdtroubleshooting.mdv6-migration.mdv7-migration.mdscripts/install-ultracite.shmigrate-to-ultracite.sh詳細
Ultracite スキル
モダンな JavaScript/TypeScript プロジェクト向けの、高速でゼロコンフィグのリンティングとフォーマット
概要
Ultracite は、複数のプロバイダーをサポートする統合リンティング・フォーマットソリューションです。対応するプロバイダーは Biome(デフォルト、Rust ベース)、ESLint+Prettier+Stylelint、Oxlint+Oxfmt です。フレームワークに特化したプリセットとゼロコンフィグのデフォルト設定を提供し、従来の ESLint+Prettier の構成を、より高速でシンプルな代替手段に置き換えます。Ultracite はバックグラウンドで目立たずに動作し、保存するたびにコードを自動フォーマットして修正を適用します。
バージョン 7 の変更点:マルチプロバイダーアーキテクチャ、プリセットパスの移行、MCP サーバーのサポート、AI フック
バージョン 6 の変更点:フレームワーク別プリセット(React、Next.js、Vue、Svelte など)を導入
主な目標
- 圧倒的な高速性:Biome の Rust 実装を活用し、リンティングとフォーマットを瞬時に実行します
- ゼロコンフィグ設計:モダンな TypeScript 開発に最適化された、200 以上の実用的なデフォルト設定を提供します
- シンプルさと目立たなさ:ユーザーの操作を最小限に抑えて動作します
- 型安全性:TypeScript の strict モードと、包括的な null/undefined の処理を強制します
- ツールとの互換性:ほかの開発ツールと競合せずに併用できます
代替手段と比べた主な利点
ESLint + Prettier との比較:
- 10~100 倍高速(JavaScript ではなく Rust を使用)
- 2 つのツールではなく、1 つのツールで対応
- 設定は不要
- デフォルトで保存時に自動修正
- TypeScript の strict モードを内蔵
Biome 単体との比較:
- 200 以上の事前設定済みルール
- フレームワーク別プリセット(React、Next.js、Vue、Svelte)
- AI エディターとの統合(Cursor、Claude Code、Copilot)
- Git フックとの統合
- 移行ツール
このスキルを使用する場面
✅ 最適なプロジェクト
次のような場合に Ultracite を使用してください:
- 新しい JavaScript/TypeScript プロジェクトを始める場合
- React、Next.js、Vue、Svelte、その他のモダンなフレームワークを使用して開発する場合
- モノレポ(Turborepo、Nx、Lerna)で作業する場合
- チームで、細かな議論をせずに一貫したフォーマットを適用したい場合
- パフォーマンスが重要な場合(大規模なコードベース、CI/CD の最適化)
- ESLint + Prettier から、より高速なソリューションに移行する場合
- AI コーディングアシスタント(Cursor、Claude Code、Windsurf)を使用する場合
- 厳密な型安全性が必要な TypeScript プロジェクト
- アクセシビリティ要件(ARIA、セマンティック HTML)があるプロジェクト
⚠️ 代替手段を検討する場面
フレームワークのサポートが限定的:
- Angular/Ember に特化したルールが必要な場合(Biome のサポートは基本的なものです)
- 高度な CSS リンティングが必要な場合(引き続き Stylelint を推奨します)
特殊な要件:
- Biome では再現できない特定の ESLint プラグインが必要な場合
- CSS のプロパティ順序の指定が必要な場合(Stylelint の機能)
- チームで大規模なカスタム ESLint 設定を使用している場合
レガシープロジェクト:
- カスタム ESLint ルールを含む大規模なコードベース(移行作業が必要です)
- Prettier を大幅にカスタマイズしているプロジェクト
制限事項と回避策の詳細については、こちらを参照してください:references/limitations-and-workarounds.md
インタラクティブなコンポーネント
このスキルは、ワークフローを効率化するインタラクティブなコマンドと自律型エージェントを提供します。
コマンド
/ultracite:doctor- プロジェクトの設定を検証し、v6→v7 のプリセットパスを確認して、競合を検出します/ultracite:migrate- インタラクティブな移行ウィザード(ESLint/Prettier → Ultracite、v6→v7 のアップグレード)
エージェント
config-validator- biome.jsonc の構文、プリセットパス、ルールの競合、パフォーマンスを分析しますmigration-assistant- ルールの対応付けと差分分析を行い、ESLint/Prettier からの移行を案内します
インタラクティブな機能の詳細については、README.md を参照してください。
プロバイダーの選択
Ultracite v7 は 3 つのリンティングプロバイダーをサポートしています。ニーズに合わせて選択してください。
🚀 Biome(デフォルト)- ほとんどのプロジェクトに推奨
- 速度:最速(ESLint より 10~100 倍高速)
- セットアップ:200 以上のプリセットルールを備えたゼロコンフィグ
- 最適な用途:新規プロジェクト、TypeScript を中心とした開発、パフォーマンスが重要なビルド
- 制限事項:ESLint よりルールが少なく、CSS/SCSS のサポートは基本的です
🔧 ESLint + Prettier + Stylelint - 互換性を最大限に高めたい場合におすすめ
- 速度:遅めですが、成熟したエコシステムです
- セットアップ:より多くの設定が必要です
- 最適な用途:既存の ESLint プラグインがあるプロジェクト、高度な CSS/SCSS のリントが必要なプロジェクト
- 制限事項:JavaScript ベースのため速度が遅く、複数のツールが必要です
⚡ Oxlint + Oxfmt - 速度を最大限に高めたい場合におすすめ
- 速度:最速のリント(リントのみの場合、Biome よりも高速です)
- セットアップ:TypeScript との統合による型認識リント
- 最適な用途:大規模な TypeScript コードベース、型安全性が重要なプロジェクト
- 制限事項:新しいエコシステムのため、ESLint よりもルールが少ないです
初期化時のプロバイダー選択:
bun x ultracite init --linter biome # Default
bun x ultracite init --linter eslint # ESLint + Prettier + Stylelint
bun x ultracite init --linter oxlint # Oxlint + Oxfmt
プロバイダー固有のドキュメントを読み込む:
- Biome:
references/provider-biome.md - ESLint:
references/provider-eslint.md - Oxlint:
references/provider-oxlint.md
バージョン移行ガイド
v6 から v7 へのアップグレード
破壊的変更:v7 ではプリセットのパスが変更されています。
v6 のパス(旧):
{
"extends": ["ultracite/core", "ultracite/react"]
}
v7 のパス(新):
{
"extends": ["ultracite/biome/core", "ultracite/biome/react"]
}
移行手順:
ultraciteパッケージを更新します:bun update ultracitebiome.jsoncのプリセットのパスを更新します(/biome/の部分を追加)npx ultracite doctorを実行して設定を検証します- リントをテストします:
npx ultracite check .
v7 の新機能:
- 複数のプロバイダーをサポート(Biome、ESLint、Oxlint)
- AI アシスタント向け MCP サーバー統合
- AI フック(AI による編集後に自動フォーマット)
- 型認識リント(Oxlint)
ultracite doctor診断コマンド
v7 移行ガイド全文を読み込む:references/v7-migration.md
v5 から v6 へのアップグレード
主な変更点:フレームワーク固有のプリセットが導入されました。
v5 の方法(旧):
{
"extends": ["ultracite/core"]
}
v6 の方法(新):
{
"extends": ["ultracite/core", "ultracite/react"] // Framework preset
}
v6 移行ガイド全文を読み込む:references/v6-migration.md
プロジェクトへの適合性の評価
このスキルが呼び出されたら、プロジェクトをスキャンして以下を評価します。
-
既存のツールを確認する:
# Check for ESLint ls -la .eslintrc* eslint.config.* package.json | grep eslint # Check for Prettier ls -la .prettierrc* prettier.config.* package.json | grep prettier # Check for Biome ls -la biome.json* package.json | grep biome -
フレームワークを特定する:
package.jsonでreact、next、vue、svelteなどを確認します- 適切なプリセットをおすすめします
-
プロジェクトの規模を評価する:
- 大規模なプロジェクト(ファイル数 1000 以上)では、Rust のパフォーマンスを最も活用できます
- 小規模なプロジェクトでは、速度の違いを感じられない場合があります
-
TypeScript の設定を確認する:
tsconfig.jsonがある場合、Ultracite ではstrictNullChecks: trueが必要であることを伝えます- 無効になっている場合は警告します(多数の警告が発生します)
-
おすすめするか、警告する:
✅ RECOMMENDED: This TypeScript + React project is ideal for Ultracite - 500+ files will benefit from Rust performance - React preset available - Can replace existing ESLint + Prettier setup ⚠️ CONSIDER: This project uses advanced ESLint plugins - Custom rule: eslint-plugin-custom-security - May need to retain ESLint for these specific rules - Could use Ultracite for formatting only
インストールとセットアップ
前提条件
- Node.js v20+
- パッケージマネージャー:Bun(推奨)、npm、pnpm、または yarn
- プロジェクトのルートに
package.jsonファイルがあること
クイックスタート(対話形式)
# Using Bun (preferred for speed)
bun x ultracite init
# With provider selection (v7+)
bun x ultracite init --linter biome # Default, fastest
bun x ultracite init --linter eslint # ESLint + Prettier + Stylelint
bun x ultracite init --linter oxlint # Oxlint + Oxfmt (type-aware)
# Using npm
npx ultracite init
# Using pnpm
pnpm dlx ultracite init
# Using yarn
yarn dlx ultracite init
対話形式のセットアップでは、以下を行います。
- プロバイダー(Biome、ESLint、Oxlint)の選択を促します(v7 以降のみ)
- Ultracite とプロバイダーの依存関係をインストールします
- フレームワーク(React、Next.js、Vue など)の選択を促します
- エディター(VS Code、Cursor など)の設定について尋ねます
- AI エージェントのルール(Cursor、Claude Code、Copilot)のインストールを提案します
- Git フックとの統合(Husky、Lefthook、lint-staged)の選択を促します
- 既存のツール(ESLint、Prettier)からの移行を提案します
- 設定ファイル(
biome.jsonc、.eslintrc.jsなど)を作成またはマージします - エディターとの統合のために
.vscode/settings.jsonを更新します - TypeScript を使用している場合は、
tsconfig.jsonでstrictNullChecksを有効にします
非対話形式のセットアップ(CI/自動化)
# Auto-detect settings, skip prompts
bunx ultracite init --quiet
# Specify options explicitly (v7+)
bunx ultracite init \
--linter biome \
--pm bun \
--frameworks react,next \
--editors vscode \
--agents cursor,claude \
--integrations husky \
--migrate eslint,prettier \
--quiet
使用可能なフラグ:
--linter:プロバイダーの選択(biome、eslint、oxlint)(v7 以降のみ)--pm:パッケージマネージャー(bun、npm、pnpm、yarn)--frameworks:react、next、solid、vue、qwik、angular、remix、svelte--editors:vscode、zed--agents:cursor、claude、cline、copilot、windsurf など--integrations:husky、lefthook、lint-staged--migrate:eslint、prettier、biome--quiet:すべてのプロンプトをスキップします(CI=trueの場合は自動的に有効になります)
手動セットアップ(上級者向け)
# 1. Install dependencies
bun add -D ultracite@7 @biomejs/biome@^2.0.0
# 2. Create biome.jsonc
cat > biome.jsonc << 'EOF'
{
"$schema": "https://biomejs.dev/schemas/2.3.8/schema.json",
"extends": ["ultracite/core"]
}
EOF
# 3. Create VS Code settings
mkdir -p .vscode
cat > .vscode/settings.json << 'EOF'
{
"editor.defaultFormatter": "biomejs.biome",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"quickfix.biome": "explicit",
"source.organizeImports.biome": "explicit"
}
}
EOF
# 4. Enable TypeScript strict mode
# Add to tsconfig.json:
{
"compilerOptions": {
"strictNullChecks": true
}
}
インストールの確認
# Check installation
bunx ultracite doctor
# Expected output:
# ✔ Biome is installed
# ✔ Configuration file found: biome.jsonc
# ✔ Editor integration configured
# ✔ TypeScript strict mode enabled
設定
基本設定
ファイル構成:
project-root/
├── biome.jsonc # Main configuration
├── .vscode/settings.json # VS Code integration
├── tsconfig.json # TypeScript config (strictNullChecks required)
└── package.json
最小構成の biome.jsonc:
{
"$schema": "https://biomejs.dev/schemas/2.3.8/schema.json",
"extends": ["ultracite/core"],
// Optional: Add framework preset
// "extends": ["ultracite/core", "ultracite/react"],
// Optional: Customize rules
"linter": {
"rules": {
"suspicious": {
"noConsoleLog": "off" // Disable specific rule
}
}
},
// Optional: Exclude files (Biome 2.x: use `includes` with `!` negation)
"files": {
"includes": ["**", "!dist", "!build", "!coverage", "!**/*.generated.ts"]
}
}
フレームワークプリセット
ultracite/react:React Hooks、JSX a11y、コンポーネントのベストプラクティスultracite/nextjs:React + Next.js App Router、画像の最適化、ドキュメント構造ultracite/vue:Vue 3 Composition API、テンプレート構文、リアクティビティultracite/svelte:Svelte 4/5 の構文、リアクティブ宣言
使用方法:
{
"extends": ["ultracite/core", "ultracite/react"]
}
コアプリセット
ultracite/core プリセットには、7 つのカテゴリにわたる 200 以上のルールが含まれています。
- アクセシビリティ:ARIA の検証、セマンティック HTML、キーボード操作
- 正確性:型安全性、未使用コードの削除、依存関係の網羅性
- パフォーマンス:コードの最適化、バレルファイルに関する警告
- セキュリティ:
eval()、XSS のリスク、安全でないパターンを防止 - スタイル:一貫性のあるパターン、
constの優先、インポートの整理 - 疑わしいコード:緩い等価比較、デバッガー文、タイプミスを検出
- 複雑さ:認知的複雑さの上限
デフォルトのフォーマット設定:2 スペース、1 行 80 文字、LF 改行、シングルクォート
フレームワークプリセット、ルールの説明、高度な設定の詳細については、こちらを参照してください:references/configuration-guide.md
使用方法
IDE 連携(推奨)
VS Code の設定:
- Biome 拡張機能をインストールします:
biomejs.biome .vscode/settings.jsonを確認します:{ "editor.defaultFormatter": "biomejs.biome", "editor.formatOnSave": true, "editor.codeActionsOnSave": { "quickfix.biome": "explicit", "source.organizeImports.biome": "explicit" } }- 競合する拡張機能(ESLint、Prettier)を無効にします
機能:
- 保存時に自動フォーマット
- 保存時に自動修正(未使用のインポートを削除し、順序を修正し、厳密等価を適用)
- 貼り付け時にフォーマット
- 修正できない問題を「問題」パネルに表示
- 電球アイコンによるクイック修正
CLI の使用方法
コードをチェック(リントのみ):
bunx ultracite check
bunx ultracite check src/
bunx ultracite check --diagnostic-level error # Only errors
コードを修正(自動修正):
bunx ultracite check --write
bunx ultracite check --write src/
コードをフォーマット(フォーマットのみ):
bunx ultracite format --write
bunx ultracite format --write src/
package.json のスクリプト:
{
"scripts": {
"lint": "ultracite check",
"lint:fix": "ultracite check --write",
"format": "ultracite format --write"
}
}
Git フックとの連携
Ultracite は以下を自動検出し、連携します:
- Husky:Node.js ベースのフックマネージャー
- Lefthook:高速な Go ベースのフックマネージャー
- lint-staged:ステージング済みのファイルのみでリンターを実行
クイックセットアップ:
# Husky
bunx ultracite init --integrations husky
# Lefthook
bunx ultracite init --integrations lefthook
# lint-staged
bunx ultracite init --integrations lint-staged
.husky/pre-commit の例:
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
ultracite check --staged --write
Git フックのセットアップガイド(Husky、Lefthook、lint-staged)について詳しくは、こちらを参照してください:references/git-hooks-setup.md
AI エディターのルール
Ultracite は、リントとフォーマットの規約を AI アシスタントに教える AI エディターのルールを生成します。
対応エディター:
- Cursor(
.cursorrules) - Claude Code(
.windsurfrules) - GitHub Copilot(
.github/copilot-instructions.md) - Continue.dev(
.continuerules) - Codeium(
.codeiumrules) - Zed(
.zedrules)
ルールを生成:
bunx ultracite generate-ai-rules
bunx ultracite generate-ai-rules --all # All editors
bunx ultracite generate-ai-rules --editor=cursor # Specific editor
AI エディターとの連携ガイドとカスタマイズの詳細については、こちらを参照してください:references/ai-editor-integration.md
モノレポのサポート
Ultracite は、以下の機能でモノレポを最適化します:
- 共有ベース設定
- パッケージ固有のオーバーライド
- Turborepo/Nx のキャッシュ連携
- 大規模なワークスペース向けのパフォーマンス最適化
モノレポの構成例:
monorepo/
├── biome.json # Shared base config
├── apps/
│ └── web/
│ └── biome.json # Next.js-specific overrides
└── packages/
└── ui/
└── biome.json # React-specific overrides
モノレポのセットアップ、Turborepo/Nx との連携、パフォーマンスに関するヒントの詳細については、こちらを参照してください:references/monorepo-configuration.md
ESLint/Prettier/Biome からの移行
自動移行:
bunx ultracite migrate eslint
bunx ultracite migrate prettier
bunx ultracite migrate biome
手動移行:
- 現在の設定を分析します
- ルールを Biome の同等ルールに対応付けます
- 同等のルールを含む
biome.jsonを作成します - package.json のスクリプトを更新します
- 古い依存関係を削除します
- 十分にテストします
詳細なルール対応表を含む移行ガイドについては、こちらを参照してください:references/migration-guides.md
既知の制限事項
CSS/SCSS:Biome は CSS をリントしません。回避策:Stylelint を使用します
フレームワークの対応不足:Angular/Astro のサポートは限定的です。回避策:ultracite/core と手動ルールを使用します
ESLint プラグイン:Biome に相当するものがない ESLint プラグインが多数あります。回避策:特定のプラグインには Ultracite と併せて ESLint を実行します
ファイル形式:Markdown、YAML、HTML のリントには対応していません。回避策:専用ツール(markdownlint、yamllint、htmlhint)を使用します
制限事項と詳細な回避策の一覧については、こちらを参照してください:references/limitations-and-workarounds.md
トラブルシューティング
よくある問題:
- VS Code で保存時にフォーマットされない → Biome 拡張機能をインストールし、設定を構成します
- ESLint と競合する → ESLint を無効にするか、選択的に実行します
- 解析エラーが発生する →
biome.jsonで JSX サポートを設定します - pre-commit フックが失敗する → グローバルインストールではなく
bunxを使用します - CI が失敗する → Bun/Node のバージョンを固定し、メモリ制限を引き上げます
トラブルシューティングの完全なガイドについては、こちらを参照してください:references/troubleshooting.md
テンプレートとスクリプト
初期セットアップスクリプト
自動セットアップについては、scripts/install-ultracite.sh を参照してください。
移行スクリプト
ESLint/Prettier からの移行については、scripts/migrate-to-ultracite.sh を参照してください。
設定例
以下については、references/ ディレクトリを参照してください:
configuration-guide.md:フレームワークのプリセットとルールの詳細git-hooks-setup.md:Husky、Lefthook、lint-staged のセットアップai-editor-integration.md:Cursor、Claude Code、Copilot のルールmonorepo-configuration.md:Turborepo、Nx、pnpm ワークスペースmigration-guides.md:ESLint、Prettier、Biome からの移行troubleshooting.md:よくある問題と解決策limitations-and-workarounds.md:既知の不足点と回避策
パッケージのバージョン
現在のバージョン(2026-08-03 確認済み):
ultracite:最新@biomejs/biome:>=2.0.0
更新を確認する:
npm view ultracite version
npm view @biomejs/biome version
更新する:
bun update ultracite @biomejs/biome
リソース
公式ドキュメント:
- https://www.ultracite.ai/introduction
- https://www.ultracite.ai/setup
- https://www.ultracite.ai/configuration
- https://biomejs.dev/
例:
トラブルシューティング:
コミュニティ:
- GitHub Issues: https://github.com/ultracite/ultracite
- Biome Discord: https://discord.gg/biome
参照ファイルを読み込むタイミング
ユーザーの質問やタスクの要件に応じて、参照ファイルを必要なときに読み込みます。
references/provider-biome.md:ユーザーが次の内容について質問した場合:
- Biome プロバイダーの詳細
- Biome 専用の設定
- Biome のパフォーマンス最適化
- Biome のプリセットパス(v7:
ultracite/biome/*) - Biome のルールのカスタマイズ
references/provider-eslint.md:ユーザーが次の内容について質問した場合:
- ESLint プロバイダーのセットアップ
- ESLint + Prettier + Stylelint の統合
- ESLint プラグインの設定
- Ultracite への ESLint 移行
- 高度な CSS/SCSS のリンティング
references/provider-oxlint.md:ユーザーが次の内容について質問した場合:
- Oxlint プロバイダーのセットアップ
- 型を考慮したリンティング機能
- Oxlint のパフォーマンス上の利点
- Oxlint と Biome の比較
- TypeScript との統合
references/v6-migration.md:ユーザーが次の内容について質問した場合:
- v5 から v6 へのアップグレード
- フレームワークプリセットの導入
- v6 の設定変更
- v6 の破壊的変更
references/v7-migration.md:ユーザーが次の内容について質問した場合:
- v6 から v7 へのアップグレード
- プリセットパスの移行(
ultracite/core→ultracite/biome/core) - 複数プロバイダーのセットアップ
- v7 の破壊的変更
ultracite doctorコマンド
references/mcp-integration.md:ユーザーが次の内容について質問した場合:
- MCP サーバーのセットアップ
- MCP を介した AI アシスタントの統合
- Model Context Protocol
- MCP サーバーの設定
references/ai-hooks.md:ユーザーが次の内容について質問した場合:
- AI フックのセットアップ(AI ルールとは異なります)
- AI による編集後の自動フォーマット
- エディターのフック設定
- 編集後のフォーマット自動化
references/configuration-guide.md:ユーザーが次の内容について質問した場合:
- フレームワークプリセット(React、Next.js、Vue、Svelte)
- コアプリセットのルール(200 以上のルールの内訳)
- ルールのカスタマイズ方法
- ファイルの除外パターン
- 高度な設定
references/git-hooks-setup.md:ユーザーが次の内容について質問した場合:
- コミット前フック
- Husky との統合
- Lefthook との統合
- lint-staged のセットアップ
- CI/CD との統合
- フックのトラブルシューティング
references/ai-editor-integration.md:ユーザーが次の内容について質問した場合:
- AI エディター向けルールの生成
- Cursor との統合
- Claude Code との統合
- GitHub Copilot のセットアップ
- カスタム AI ルール
- エディター固有のセットアップ
references/monorepo-configuration.md:ユーザーが次の内容について質問した場合:
- モノレポのセットアップ
- Turborepo との統合
- Nx との統合
- パッケージごとのオーバーライド
- ワークスペースの設定
- パフォーマンス最適化
references/migration-guides.md:ユーザーが次の内容について質問した場合:
- ESLint からの移行
- Prettier からの移行
- Biome からの移行
- ルールの対応付け
- 移行チェックリスト
- 移行後の手順
references/troubleshooting.md:ユーザーが次の内容について質問した場合:
- VS Code の問題
- ESLint/Prettier の競合
- 解析エラー
- コミット前フックの失敗
- CI の失敗
- TypeScript の厳格さに関するエラー
- インストールの問題
- パフォーマンスの問題
references/limitations-and-workarounds.md:ユーザーが次の内容について質問した場合:
- CSS のリンティング
- フレームワークのサポート不足
- ESLint プラグインのエコシステム
- ファイル形式のサポート
- エディターとの統合
- 移行に関する制限
安全なインストール
リンティング/フォーマット用パッケージをインストールする際は、サプライチェーンセキュリティのベストプラクティスに従ってください。
- インストール後スクリプトをブロックする —
npm config set ignore-scripts true(または Bun:デフォルトで無効) - クールダウン期間を設ける — 新しいパッケージバージョンがコミュニティによって検証されるまで 7 日間待ちます
- インストール前に監査する —
socket package score npm <pkg>を実行するか、socket npm install <pkg>を使ってパッケージを確認します
Socket CLI との統合、クールダウンの設定、ロックファイルの検証、CI での適用など、セキュリティ設定の全容については dependency-upgrade スキルを読み込んでください。
概要
Ultracite は、複数のプロバイダーに対応した、統一的なリンティングおよびフォーマットソリューションを提供します。
✅ 次の場合に使用してください:
- 新しいプロジェクトを始める場合
- React/Next/Vue/Svelte を使用して開発する場合
- モノレポで作業する場合
- 設定なしで一貫したフォーマットを実現したい場合
- パフォーマンスが重要な場合(Biome/Oxlint プロバイダー)
- ESLint との互換性が必要な場合(ESLint プロバイダー)
- AI コーディングアシスタントを使用する場合
- 型を考慮したリンティングが必要な場合(Oxlint)
⚠️ 次の場合は、代替手段を検討してください:
- どのプロバイダーでもサポートされていない特定の ESLint プラグインが必要な場合
- 高度な CSS リンティングが必要な場合(ただし、ESLint プロバイダーには Stylelint が含まれています)
- レガシーフレームワークのサポートが必要な場合
主なメリット:
- 複数のプロバイダー:Biome(最速)、ESLint(最も高い互換性)、Oxlint(型を考慮)から選択できます
- バージョン 7:プリセットのパス移行、MCP サーバー、AI フック、複数プロバイダーのアーキテクチャ
- バージョン 6:フレームワーク固有のプリセット(React、Next.js、Vue、Svelte など)
- 従来の ESLint + Prettier より 10〜100 倍高速(Biome/Oxlint)
- 設定不要(Biome では 200 以上のルールが事前設定済み)
- フレームワーク固有のプリセット
- AI エディターとの連携 + AI フック
- Git フックのサポート
- TypeScript の strict モードを適用
インストール:
bun x ultracite init --linter biome # Default (v7+)
bun x ultracite init --linter eslint # ESLint provider (v7+)
bun x ultracite init --linter oxlint # Oxlint provider (v7+)
最も一般的なワークフロー:
bun x ultracite initでインストールします- フレームワークのプリセット(React、Next.js など)を選択します
- Git フックとの連携(Husky、Lefthook、lint-staged)を選択します
- AI エディターのルール(Cursor、Claude Code、Copilot)を有効にします
- 必要に応じて ESLint/Prettier から移行します
- 保存時に自動フォーマットされる環境でコードを書きます
- コミット時に pre-commit フックで品質を確保します
覚えておいてください:
- インストールする前に、既存の Git フックマネージャーを必ず確認してください
- プロジェクトへの適合性を評価してください(ESLint/Prettier/フレームワークをスキャンします)
- プロジェクトの特性に応じて、推奨するか警告してください
- TypeScript プロジェクトでは
strictNullChecksを有効にしてください - 最良の結果を得るには、フレームワーク固有のプリセットを使用してください
- ユーザーの質問に応じて、必要な参照ファイルを読み込んでください