Communitygithub.com

Nuvraxis/nuvraxis-plugins

Biome 2.5 Setup und Regeln für Nuvraxis-Monorepos – root biome.json mit festgelegtem $schema, VCS-Ignore, Format-Optionen, empfohlenem Preset mit a11y und den Domänen react/next, Nursery-Policy, Imports sortieren, Overrides, verschachtelte Paketkonfigurationen ("extends": "//"), biome check --write lokal, biome ci in CI, VS-Code-Einstellungen und Migration von ESLint/Prettier.

Was ist nuvraxis-plugins?

Dieses Skill definiert die vollständige Biome 2.5-Konfiguration und die dazugehörigen Regeln für Nuvraxis-Monorepos. Es beschreibt, wie man eine einzige, autoritative `biome.json` im Repository-Root pflegt, deren Schema an die installierte Version gebunden ist, und wie man git-gesteuerte Ignorier-Listen sowie formatierungs- und linting-spezifische Einstellungen wie 2 Leerzeichen Einzug, Zeilenbreite 100, Semikolons und nachfolgende Kommas festlegt. Es schreibt das empfohlene Regel-Preset mit den Domänen `a11y` (auf "error"), `react` und `next` vor, schaltet die Nursery-Regeln standardmäßig aus und aktiviert das automatische Sortieren von Importen über die Assist-Funktion. Das Skill behandelt auch Overrides pro Dateiglob (z. B. für Testdateien), die Einrichtung verschachtelter Konfigurationen, die per `"extends": "//"` auf die Root-Konfiguration verweisen, die korrekte lokale Nutzung (`biome check --write`) versus CI (`biome ci`), die VS-Code-Integration (Biome als Standard-Formatierer, Fixes beim Speichern) und den Migrationspfad von ESLint/Prettier. Es findet Anwendung, wenn ein Repository `biome.json`/`biome.jsonc` enthält, `@biomejs/biome` in `package.json` steht, `.eslintrc*`/`eslint.config.*`/.prettierrc*-Dateien migriert werden müssen oder beim Beheben von Lint-und Formatierungsfehlern.

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Biome

Biome ist der einzige Formatierer und Linter für JS, TS, JSX, JSON und CSS. SCSS ist die Ausnahme: Biome 2.5 parst es nicht, daher übernimmt stylelint .scss-Dateien (siehe scss-bem). Kein ESLint, kein Prettier.

Die biome.json im Root der Vorlage ist die Quelle der Wahrheit. Ein Plugin-Hook führt pnpm exec biome check --write <file> nach jeder von Claude bearbeiteten Datei aus, sofern eine biome.json im übergeordneten Verzeichnis existiert.

Regeln

  1. Eine Root-biome.json, Schema fest an die installierte Version gebunden.
    "$schema": "https://biomejs.dev/schemas/2.5.15/schema.json" und @biomejs/biome auf dieselbe Version im Workspace-Katalog festgelegt. Ein nicht passendes Schema versteckt unbekannte oder umbenannte Optionen im Editor. Führe beim Upgrade pnpm exec biome migrate --write aus und aktualisiere beides.

  2. Git entscheiden lassen, was ignoriert wird: vcs.useIgnoreFile: true. Dann Build-Ausgaben mit !! in files.includes erzwingend ignorieren (!!**/.next, !!**/.turbo, !!**/dist, !!**/coverage), was Biome auch davon abhält, diese Ordner zu durchsuchen. Ein einzelnes ! schließt von der Verarbeitung aus, indiziert aber weiterhin. files.ignoreUnknown: true verhindert, dass .scss und andere nicht unterstützte Dateien gemeldet werden.

  3. Formatierung: 2 Leerzeichen, Breite 100, LF, doppelte Anführungszeichen, Semikolons, nachfolgende Kommas. Diese sind für jedes Repository festgelegt, damit Diffs nicht über den Stil streiten. Füge keine paketspezifischen Formatierungs-Overrides hinzu.

  4. Linter: preset: "recommended", a11y: "error", Domänen react und next auf recommended.
    rules.recommended: true ist die alte Schreibweise und veraltet: Verwende rules.preset. a11y auf error, weil nuvui die Zugänglichkeit seiner eigenen Komponenten selbst regelt; was übrig bleibt (alt, Labels, Button-Typen in deinem eigenen Markup), muss korrekt sein. Die next-Domäne fügt Regeln wie noImgElement hinzu; react fügt Hooks-Regeln hinzu.

  5. Nursery bleibt ausgeschaltet. Nursery-Regeln ändern sich zwischen Patch-Releases und können bei einem Biome-Upgrade CI-Builds zum Scheitern bringen. Aktiviere eine nur gezielt, mit Namen, mit einem Kommentar, warum, und überprüfe sie bei jedem Upgrade erneut.

  6. noConsole warnt, erlaubt aber error und warn. Strukturierte Fehlerprotokolle (instrumentation.ts) verwenden console.error; vereinzelte console.log-Aufrufe werden erfasst.

  7. Importe mit der Assist-Funktion sortieren, nicht von Hand. assist.actions.source.organizeImports: "on". biome check --write wendet es an; biome ci schlägt bei unsortierten Importen fehl.

  8. Overrides per Glob, für Testdateien und ähnliches. Die Vorlage aktiviert die test-Domäne nur für *.test.ts(x) / *.test-d.ts. Platziere dort auch andere Dateityp-Unterschiede, nicht in separaten Konfigurationen.

  9. Verschachtelte Konfigurationen nur für Pakete, die sich tatsächlich unterscheiden, und sie erweitern die Root.

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

    "extends": "//" bedeutet "die Root-Konfiguration" und impliziert "root": false. Jede andere verschachtelte Konfiguration muss "root": false setzen. Wir verwenden kein gemeinsames @repo/biome-config-Paket: Die Root-Datei plus // deckt alles ab, ohne Build oder Abhängigkeit.

  10. Lokal biome check --write; in CI biome ci.
    pnpm lint führt biome check . aus (keine Schreibvorgänge); pnpm lint:fix führt biome check --write . aus. CI führt pnpm exec biome ci --reporter=github . aus, das niemals schreibt, bei Formatierungs-, Lint- und Importsortierungsfehlern fehlschlägt und den PR annotiert. Füge --changed --since=origin/main nur hinzu, wenn der vollständige Durchlauf langsam wird; aktuell dauert es Millisekunden.

  11. Eine Zeile unterdrücken, mit Begründung.

    // biome-ignore lint/suspicious/noExplicitAny: third-party callback typed as any upstream
    

    Deaktiviere niemals eine Regel repositoryweit, um eine einzelne Datei durchzubekommen. Wenn eine Regel für das Repository falsch ist, ändere biome.json in einem eigenen Commit mit der Begründung.

  12. Beheben, nicht unterdrücken, die häufigen.

    • useImportType: Führe die Korrektur aus; sie ist erforderlich durch verbatimModuleSyntax.
    • noExplicitAny: Verwende unknown und parse (siehe typescript-production).
    • useButtonType, noSvgWithoutTitle, useAltText: Echte Barrierefreiheitsfehler.
    • noImgElement: Verwende next/image.
    • useExhaustiveDependencies: Korrigiere die Abhängigkeitsliste oder verschiebe den Wert aus der Komponente heraus.
  13. VS Code: Biome ist der Standard-Formatierer, Korrekturen beim Speichern. Die .vscode/settings.json der Vorlage setzt editor.defaultFormatter: "biomejs.biome", source.fixAll.biome und source.organizeImports.biome beim Speichern und biome.requireConfiguration: true, damit die Erweiterung in Repos ohne Biome ruhig bleibt. SCSS behält die stylelint-Erweiterung. Empfehle beide in .vscode/extensions.json.

  14. Migration von ESLint/Prettier: migrieren, dann löschen.
    Siehe references/migration.md. Endzustand: Keine eslint*-, prettier*- oder @typescript-eslint/*-Pakete, keine .eslintrc*-, eslint.config.*-, .prettierrc*-, .prettierignore-Dateien.

Was Biome nicht abdeckt

DateiWerkzeug
.scssstylelint (scss-bem)
.yaml (Workflows, Helm)actionlint für Workflows; helm lint + kubeconform für Charts
.mdnichts wird erzwungen
Typfehlertsc --noEmit (pnpm typecheck)

Verifizieren

pnpm lint                               # biome check . && stylelint
pnpm exec biome ci --reporter=github .  # Was CI ausführt
pnpm exec biome rage                    # Gibt die aufgelöste Konfiguration aus, falls etwas ignoriert erscheint

Quellen

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.

Verwandte Skills