Provides zero-config linting and formatting for JS/TS projects using Biome, ESLint+Prettier, or Oxlint+Oxfmt. Assists with CLI setup (init), commands (check/fix/doctor), code standards, and troubleshooting.
npx claudepluginhub joshuarweaver/cascade-code-general-misc-3 --plugin haydenbleasel-ultraciteThis skill uses the workspace's default tool permissions.
Zero-config linting and formatting for JS/TS projects. Supports three linter backends: **Biome** (recommended), **ESLint** + Prettier, and **Oxlint** + Oxfmt.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Zero-config linting and formatting for JS/TS projects. Supports three linter backends: Biome (recommended), ESLint + Prettier, and Oxlint + Oxfmt.
Check if ultracite is in package.json devDependencies. Detect the active linter by looking for:
biome.jsonc → Biomeeslint.config.mjs → ESLintoxlint.config.ts → Oxlint# Check for issues (read-only)
bunx ultracite check
# Auto-fix issues
bunx ultracite fix
# Diagnose setup problems
bunx ultracite doctor
# Initialize in a new project
bunx ultracite init
Replace bunx with npx, pnpx, or yarn dlx depending on the package manager.
check and fix accept optional file paths: bunx ultracite check src/index.ts.
bunx ultracite init runs an interactive setup. For non-interactive (CI) use, pass flags:
bunx ultracite init \
--pm bun \
--linter biome \
--editors universal \
--agents claude copilot \
--frameworks react next \
--integrations husky lint-staged \
--quiet
Flags:
--pm — npm | yarn | pnpm | bun--linter — biome (recommended) | eslint | oxlint--editors — universal (writes .vscode/settings.json for every VS Code-based editor) | vscode | zed | cursor | windsurf | antigravity | kiro | trae | void | bob | codebuddy--agents — claude | codex | copilot | cline | amp | gemini | cursor-cli + 19 more--frameworks — react | next | solid | vue | svelte | qwik | remix | angular | astro | nestjs--integrations — husky | lefthook | lint-staged | pre-commit--hooks — Enable auto-fix hooks for supported agents/editors--type-aware — Enable type-aware linting (oxlint only)--skip-install — Skip dependency installation--quiet — Suppress prompts (auto-detected when CI=true)Init creates config that extends Ultracite presets:
// biome.jsonc
{ "extends": ["ultracite/biome/core", "ultracite/biome/react"] }
Framework presets available per linter: core, react, next, solid, vue, svelte, qwik, remix, angular, astro, nestjs.
When writing code in a project with Ultracite, follow these standards. For the full rules reference, see references/code-standards.md.
Key rules at a glance:
Formatting is handled by the project's configured linter/formatter. Respect the repository's existing formatter settings instead of forcing one fixed line width, quote style, or trailing comma policy.
Type safety: Use explicit types when they improve clarity. Prefer unknown over any. Use as const for immutable values and rely on type narrowing over blunt assertions.
Modern JavaScript/TypeScript: Prefer const, destructuring, optional chaining, nullish coalescing, template literals, for...of, and concise arrow functions.
Async and correctness: Always await promises in async functions. Prefer async/await over promise chains. Remove console.log, debugger, and alert from production code.
React and accessibility: Use function components, keep hooks top-level with correct deps, avoid nested component definitions, and use semantic HTML with the right labels, headings, alt text, and keyboard affordances.
Organization, security, performance, and testing: Keep functions focused, prefer early returns, avoid dangerouslySetInnerHTML and eval(), prefer specific imports and top-level regex, and keep tests free of .only and .skip.
Run bunx ultracite doctor to diagnose. It checks:
.eslintrc.*, .prettierrc.* files)Common fixes:
.eslintrc.* and .prettierrc.* files after migrating to Ultracitebunx ultracite init again or manually add ultracite to devDependencies