Skip to content

Initialization

To apply conformance configuration to a project:

Terminal window
npx xtarterize init
  1. Scan your project directory to detect framework, bundler, package manager, monorepo status, and existing configs
  2. Resolve which conformance tasks are applicable for your stack
  3. Check each task’s current status (new, patch, skip, or conflict)
  4. Display a conformance plan table showing what will change
  5. Prompt you to apply all, select specific tasks, dry-run, or quit
✦ Scanning project...
Detected:
Framework: React 18
Bundler: Vite 5
Package Manager: pnpm
Conformance plan:
✔ Biome (lint + format) lint/biome [new]
✔ vite-plugin-checker vite/checker [new]
~ tsconfig — incremental: true ts/incremental [patch]
= Turbo monorepo/turbo [skip — no monorepo]
[A] Apply all [S] Select items [D] Dry-run [Q] Quit
FlagDescription
--dry-runPreview all changes without applying anything
--yesSkip all confirmations, apply all changes automatically
--skip <task-id>Exclude a specific task (comma-separated)
--only <task-id>Apply only a specific task (comma-separated)
--quietSuppress interactive prompts and verbose output
Terminal window
npx xtarterize init --dry-run

The init command applies all tasks that are applicable to your detected stack:

xtarterize sets up Biome with sensible defaults. If you want stricter, more opinionated linting, we recommend Ultracite — a Biome preset with stricter rules for code quality.

After running xtarterize init, you can optionally run:

Terminal window
npx ultracite init

This will replace the default biome.json with Ultracite’s stricter configuration. The package.json lint scripts will automatically detect Ultracite and use ultracite instead of biome check.

sequenceDiagram
    participant U as User
    participant CLI as CLI
    participant Core as @xtarterize/core
    participant Tasks as @xtarterize/tasks
    
    U->>CLI: xtarterize init
    CLI->>Core: runPreflight()
    Core-->>CLI: valid / errors
    CLI->>Core: detectProject()
    Core-->>CLI: ProjectProfile
    CLI->>Tasks: getAllTasks()
    CLI->>Core: resolveTasks(profile)
    Core-->>CLI: Applicable tasks
    CLI->>Core: resolveTaskStatuses()
    Core-->>CLI: Status map
    CLI->>U: Display plan
    U->>CLI: Confirm
    CLI->>Tasks: applyTasks()
    Tasks-->>CLI: Result
    CLI->>U: Summary