77e9b41: Consolidate build-output, framework-generated, and lockfile ignore patterns (**/dist, **/.next, **/.turbo, **/*.gen.*, bun.lock, pnpm-lock.yaml, etc.) into a single canonical list at config/shared/ignores.mjs. A generated config/shared/ignores.jsonc is provided for Biome's extends, and the same module is imported directly by oxlint, oxfmt, and ESLint so every tool ignores the same paths.73fc21c: Throw a descriptive error when package.json contains invalid JSON instead of surfacing a raw SyntaxError from updatePackageJson. Detect and report when a linter subprocess is terminated by a signal in run-command. Route tsconfig update warnings through @clack/prompts' log.warn for consistent CLI output, and silently return when no tsconfig.json files are found.63f7426: Migrate remaining json parsing to jsonc-parseraa199d1: fix conflicting prefer-describe-function-title / valid-title rules in vitest402908e: Replace custom yaml parser with dependency3dbfe5c: Validate framework name to prevent injectiona2cdc0f: Warn if the file looks like it has ultracite config but we couldn't parse it95718bb: Use cross-spawn for cross-platform spawn compatibilityd09174b: Ignore .open-next in the Biome and ESLint core presets.71aeca4: Remove remaining execSync callse81a604: Add zod for safer json parsing