Communitygithub.com

Nuvraxis/nuvraxis-plugins

Biome 2.5のセットアップとルールをNuvraxisモノレポ向けに提供します。ルートのbiome.jsonにpinned $schema、VCS無視、フォーマッター設定、推奨プリセット(a11y、react/nextドメイン含む)、nurseryポリシー、インポート整理、オーバーライド、パッケージごとのネスト設定("extends": "//")、ローカルでのbiome check --write、CIでのbiome ci、VS Code設定、ESLint/Prettierからの移行をカバーします。リポジトリにbiome.jsonまたはbiome.jsoncがある場合、package.jsonに@biomejs/biomeがある場合、.eslintrc*/eslint.config.*/.prettierrc*がある場合の移行、lintやフォーマットエラーの修正時に使用します。

nuvraxis-plugins とは?

このスキルは、NuvraxisモノレポにおいてBiome 2.5を効率的にセットアップし、統一的で一貫性のあるコードフォーマットとリンティングルールを適用するための完全なガイドです。ルートのbiome.jsonにスキーマを固定し、VCS無視設定、推奨プリセット(アクセシビリティ、React、Next.jsドメインを含む)、フォーマッター設定(2スペース、幅100、LF、ダブルクォート、セミコロン、末尾カンマ)を定義します。また、nurseryルールの無効化、インポートの自動整理、テストファイルや特殊なパッケージ向けのオーバーライド、パッケージごとのネスト設定(`"extends": "//"`)をサポートします。CIでは`biome ci`を実行し、ローカルでは`biome check --write`を使用します。さらに、ESLint/Prettierからの移行手順、VS Code統合設定、よくある問題(useImportType、noExplicitAny、useButtonTypeなど)の修正方法も提供します。このスキルは、Nuvraxisモノレポの開発者向けに設計されており、一貫性と効率性を重視したワークフローを実現します。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Nuvraxis/nuvraxis-plugins/tree/HEAD/plugins/nuvraxis-frontend/skills/biome

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Biome

Biomeは、JS、TS、JSX、JSON、CSSのための唯一のフォーマッター兼リンターです。SCSSは例外で、Biome 2.5はパースしないため、stylelintが.scssを処理します(scss-bem参照)。ESLintもPrettierも使いません。

テンプレートのルートbiome.jsonが唯一の情報源です。プラグインフックは、Claudeがファイルを編集した後、そのファイルの上にbiome.jsonが存在する場合、pnpm exec biome check --write <file>を実行します。

ルール

  1. ルートbiome.jsonは1つだけ、スキーマはインストールされたバージョンに固定する。 "$schema": "https://biomejs.dev/schemas/2.5.15/schema.json"とし、@biomejs/biomeもワークスペースカタログで同じバージョンに固定します。スキーマが一致しないと、エディターで新しいオプションや名前変更されたオプションが非表示になります。アップグレード時は、pnpm exec biome migrate --writeを実行し、両方を更新します。

  2. gitに無視するものを決定させる:vcs.useIgnoreFile: true。 次に、files.includesで!!を使用してビルド出力を強制無視します(!!**/.next、!!**/.turbo、!!**/dist、!!**/coverage)。これにより、Biomeがそれらのフォルダーをスキャンするのも防止できます。単一の!は処理から除外しますが、インデックスは維持します。files.ignoreUnknown: trueは、.scssやその他のサポートされていないファイルが報告されるのを防ぎます。

  3. フォーマッター:2スペース、幅100、LF、ダブルクォート、セミコロン、末尾カンマ。 これらはすべてのリポジトリで固定されており、差分がスタイルをめぐって競合しないようにします。パッケージごとにフォーマッターのオーバーライドを追加しないでください。

  4. リンター:preset: "recommended"、a11y: "error"、ドメインreactとnextをrecommendedで。 rules.recommended: trueは古い表記で非推奨です:rules.presetを使用してください。a11yはerrorにします。なぜなら、nuvuiは自身のコンポーネントのアクセシビリティを処理するため、残ったもの(独自のマークアップにおけるalt、ラベル、ボタンタイプ)が正しくなければならないからです。nextドメインはnoImgElementなどのルールを追加し、reactはフックルールを追加します。

  5. Nurseryはオフのままにする。 Nurseryルールはパッチリリース間で変更される可能性があり、Biomeのアップグレード時にCIを壊す可能性があります。意図的に1つ有効にする場合は、名前を指定し、理由をコメントで記述し、アップグレードのたびに再確認してください。

  6. noConsoleは警告(warn)で、errorとwarnは許可する。 構造化エラーログ(instrumentation.ts)はconsole.errorを使用します。迷子のconsole.logはキャッチされます。

  7. インポートは手動ではなく、アシストでソートする。 assist.actions.source.organizeImports: "on"。biome check --writeが適用し、biome ciはソートされていないインポートを失敗させます。

  8. グロブによるオーバーライドをテストファイルなどに使用する。 テンプレートは*.test.ts(x) / *.test-d.tsに対してのみtestドメインを有効にします。他のファイルタイプの違いも、個別の設定ではなく、ここに記述します。

  9. ネストされた設定は、実際に異なるパッケージのみに使用し、ルートを拡張する。

    // packages/legacy-widget/biome.json
    { "extends": "//", "linter": { "rules": { "style": { "noNonNullAssertion": "off" } } } }
    

    "extends": "//"は「ルート設定」を意味し、"root": falseを暗に示します。他のネスト設定はすべて"root": falseを設定する必要があります。共有の@repo/biome-configパッケージは使用しません。ルートファイルと//で、ビルドや依存関係なしにカバーできます。

  10. ローカルではbiome check --write、CIではbiome ci。 pnpm lintはbiome check .(書き込みなし)を実行します。pnpm lint:fixはbiome check --write .を実行します。CIはpnpm exec biome ci --reporter=github .を実行し、書き込みは行わず、フォーマット、リント、インポート順序で失敗し、PRに注釈を付けます。フル実行が遅くなる場合のみ、--changed --since=origin/mainを追加してください。現在はミリ秒単位です。

  11. 1行だけ抑制し、理由を添える。

    // biome-ignore lint/suspicious/noExplicitAny: サードパーティのコールバックが上流でanyと型付けされているため
    

    1つのファイルを通すためにリポジトリ全体でルールを無効にしないでください。ルールがリポジトリにとって間違っている場合は、biome.jsonを変更し、そのコミットに理由を記述してください。

  12. よくある問題は、黙らせるのではなく修正する。

    • useImportType:修正を実行します。verbatimModuleSyntaxで必要です。
    • noExplicitAny:unknownを使用してパースします(typescript-production参照)。
    • useButtonType、noSvgWithoutTitle、useAltText:実際のアクセシビリティバグです。
    • noImgElement:next/imageを使用します。
    • useExhaustiveDependencies:依存関係リストを修正するか、値をコンポーネントの外に移動します。
  13. VS Code:Biomeがデフォルトのフォーマッターで、保存時に修正する。 テンプレートの.vscode/settings.jsonは、editor.defaultFormatter: "biomejs.biome"、source.fixAll.biomeとsource.organizeImports.biomeを保存時に設定し、biome.requireConfiguration: trueで拡張機能がBiomeのないリポジトリで静かになるようにします。SCSSはstylelint拡張機能を維持します。.vscode/extensions.jsonに両方を推奨します。

  14. ESLint/Prettierからの移行:移行してから削除する。 references/migration.mdを参照してください。最終状態:eslint*、prettier*、@typescript-eslint/*パッケージはなく、.eslintrc*、eslint.config.*、.prettierrc*、.prettierignoreもありません。

Biomeがカバーしないもの

ファイルツール
.scssstylelint(scss-bem)
.yaml(ワークフロー、Helm)ワークフローにはactionlint、チャートにはhelm lint + kubeconform
.md強制なし
型エラーtsc --noEmit(pnpm typecheck)

確認

pnpm lint                               # biome check . && stylelint
pnpm exec biome ci --reporter=github .  # CIが実行するもの
pnpm exec biome rage                    # 解決された設定を出力(何かが無視されているように見える場合)

出典

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Nuvraxis/nuvraxis-plugins

>- Dockerfile rules for Next.js standalone apps in a pnpm + Turborepo monorepo — multi-stage build (turbo prune → pnpm fetch/offline install → turbo build → minimal runner), pinned Node 26 Alpine by digest, checksum-verified pnpm binary, non-root uid 1001, read-only root filesystem with a writable .next/cache, HEALTHCHECK on /api/health, build args only for NEXT_PUBLIC_* values, BuildKit secrets and cache mounts, multi-arch, OCI labels and .dockerignore. Use when the repo has a Dockerfile, .dockerignore, compose file, or next.config with output "standalone", or when asked to containerise, shrink, harden or debug an image.

Nuvraxis/nuvraxis-plugins

>- GitHub Actions conventions for Nuvraxis Next.js apps — exactly three workflows: pr.yaml (every PR to any branch: Biome, stylelint, typecheck/test/build with turbo --affected, Docker build + health check, helm lint + kubeconform; publishes nothing), main.yaml (push to main: one multi-arch image to GHCR tagged sha-SHORTSHA and main, provenance + SBOM, gha cache), release.yaml (tag vX.Y.Z: verify on main, retag the existing image without rebuilding, package and push the Helm chart to OCI, GitHub Release with chart, digest and SBOM). Minimal permissions per job, GITHUB_TOKEN only, pinned action majors. Use when editing .github/workflows/*, adding a CI step, or debugging a failed run or release.

Nuvraxis/nuvraxis-plugins

>- Helm chart rules for Nuvraxis Next.js apps — one chart per app in charts/ (named after the app), published to oci://ghcr.io/nuvraxis/charts and synced by Argo CD; Chart.yaml version/appVersion set only by release.yaml; Deployment with startup/liveness/readiness probes on /api/health, non-root read-only security context, emptyDir for .next/cache, ConfigMap + existing Secret via envFrom, Service, Ingress with cert-manager, HPA, PDB, ServiceAccount, topology spread; no Helm hooks; helm lint --strict + kubeconform. Use when the repo has charts/, Chart.yaml, values*.yaml, templates/*.yaml with Helm syntax, or an Argo CD Application, or when asked to deploy, scale, expose or configure the app on Kubernetes.

Nuvraxis/nuvraxis-plugins

>- Production rules for Next.js 16 App Router apps at Nuvraxis — Server/Client Component boundaries, Cache Components ("use cache", cacheLife, cacheTag, updateTag), Server Actions, route handlers, env handling, instrumentation, output standalone and the /api/health route. Use when the project has "next" in package.json, an app/ or src/app/ directory, next.config.ts, proxy.ts, instrumentation.ts, or files named page.tsx, layout.tsx, route.ts, loading.tsx, error.tsx.

関連スキル