Initialization
Initialize a Project
Section titled “Initialize a Project”To apply conformance configuration to a project:
npx xtarterize init- Scan your project directory to detect framework, bundler, package manager, monorepo status, and existing configs
- Resolve which conformance tasks are applicable for your stack
- Check each task’s current status (
new,patch,skip, orconflict) - Display a conformance plan table showing what will change
- Prompt you to apply all, select specific tasks, dry-run, or quit
Example Output
Section titled “Example Output”✦ 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] QuitOptions
Section titled “Options”| Flag | Description |
|---|---|
--dry-run | Preview all changes without applying anything |
--yes | Skip 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) |
--quiet | Suppress interactive prompts and verbose output |
Examples
Section titled “Examples”npx xtarterize init --dry-runnpx xtarterize init --yesnpx xtarterize init --skip codegen/plopnpx xtarterize init --only lint/biomeWhat Gets Applied
Section titled “What Gets Applied”The init command applies all tasks that are applicable to your detected stack:
- Linting & Formatting — Biome (
linter+formatter), with Tailwind CSScss.parser.tailwindDirectivessupport when detected - TypeScript —
strict: true,pathsaliases,incremental: true+tsBuildInfoFile,.gitignore*.tsbuildinfoentries - Vite Plugins —
vite-plugin-checker(checker()for TypeScript),rollup-plugin-visualizer - CI/CD — GitHub Actions workflows (
on.push.tagsfor release,schedule.cronfor auto-updates,on.pull_requestfor CI) withpnpm/action-setup@v4for pnpm projects - Dependencies — Renovate config (
extends: config:base,automerge) - Release — Commitlint (
@commitlint/config-conventional), czg (commitizen), commit-and-tag-version - Quality — Knip (
entry/projectdetection) - Codegen — Plop (
plopfile.tsscaffolds) - Monorepo — Turborepo (
turbo.jsonpipeline) - Editor — VS Code
settings.jsonandextensions.json(additive merging preserves your existing extensions) - Agent —
AGENTS.md,.agents/skills/directory, and install relevant agent skills vianpx skills@latest addfor your detected stack - Scripts —
package.jsonscripts(with Ultracite detection if installed)
Ultracite
Section titled “Ultracite”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:
npx ultracite initThis 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.
References
Section titled “References”- Biome Configuration — Full
biome.jsonreference - TypeScript tsconfig Reference — All compiler options explained
- Vite Plugin Checker — Type-checking during development
- GitHub Actions Documentation — Workflow syntax and features
- Renovate Configuration Options — Dependency automation reference
- Commitlint Rules — Conventional commit validation
- Knip Documentation — Finding unused files, dependencies, and exports
- Plop Documentation — Code scaffolding and generators
- Turborepo Documentation — Monorepo task orchestration
- Ultracite — Strict Biome preset for code quality
- Agent Skills — Open ecosystem of reusable AI agent capabilities
Init Flow
Section titled “Init Flow”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