{"owner":"TanStack","repo":"router","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"# AGENTS.md\n\n## Project overview\n\nTanStack Router is a type-safe router with built-in caching and URL state management for React and Solid applications. This monorepo contains two main products:\n\n- **TanStack Router** - Core routing library with type-safe navigation, search params, and path params\n- **TanStack Start** - Full-stack framework built on top of TanStack Router\n\n## Setup commands\n\n- Install deps: `pnpm install`\n- Setup e2e testing: `pnpm exec playwright install`\n- Build packages: `pnpm build` (affected) or `pnpm build:all` (force all)\n- Start dev server: `pnpm dev`\n- Run tests: `pnpm test`\n\n## Code style\n\n- TypeScript strict mode with extensive type safety\n- Framework-agnostic core logic separated from React/Solid bindings\n- Type-safe routing with search params and path params\n- Use workspace protocol for internal dependencies (`workspace:*`)\n- Always use curly braces for `if`, `else`, loops, and similar control statements. Never write one-line bodies like `if (foo) x = 1`.\n\n## Dev environment tips\n\n- This is a pnpm workspace monorepo with packages organized by functionality\n- Nx provides caching, affected testing, targeting, and parallel execution for efficiency\n- Use `pnpm nx show projects` to list all available packages\n- Target specific packages: `pnpm nx run @tanstack/react-router:test:unit`\n- Target multiple packages: `pnpm nx run-many --target=test:eslint --projects=@tanstack/history,@tanstack/router-core`\n- Run affected tests only: `pnpm nx affected --target=test:unit`\n- Exclude patterns: `pnpm nx run-many --target=test:unit --exclude=\"examples/**,e2e/**\"`\n- Navigate to examples and run `pnpm dev` to test changes: `cd examples/react/basic && pnpm dev`\n- **Granular unit testing through Nx (recommended):**\n  - Specific files: `pnpm nx run @tanstack/react-router:test:unit -- tests/link.test.tsx tests/Scripts.test.tsx`\n  - Test patterns: `pnpm nx run @tanstack/react-router:test:unit -- tests/ClientOnly.test.tsx -t \"should render fallback\"`\n  - Name patterns: `pnpm nx run @tanstack/react-router:test:unit -- -t \"navigation\"` (all tests with \"navigation\" in name)\n  - Exclude patterns: `pnpm nx run @tanstack/react-router:test:unit -- --exclude=\"**/*link*\" tests/`\n  - List tests: `pnpm nx run @tanstack/react-router:test:unit -- list tests/link.test.tsx` (or `-- list` for all)\n- **Available test targets per package:** `test:unit`, `test:types`, `test:eslint`, `test:build`, `test:perf`, `build`\n- **Testing strategy:** Package level (nx) → File-level args via nx → Test-level args (`-t`) via nx → Pattern-level args (`--exclude`) via nx\n- **Agent execution guardrails (important):**\n  - Always prefer `pnpm nx ...` over `npx nx ...`.\n  - Prefer Nx targets over direct test runners so task dependencies (including required builds) remain in the graph.\n  - In sandbox, run Nx with `CI=1 NX_DAEMON=false pnpm nx run <project>:<target> --outputStyle=stream --skipRemoteCache`\n  - Run only one Nx command at a time.\n  - If an Nx command shows no output for ~20 seconds, stop, run `pnpm nx reset` once, and retry once.\n  - Do not loop retries indefinitely. If it still hangs or sandbox blocks graph/daemon behavior, request escalation immediately.\n\n## Testing instructions\n\n- **Critical**: Always run unit and type tests during development - do not proceed if they fail\n- **Test types:** `pnpm test:unit`, `pnpm test:types`, `pnpm test:eslint`, `pnpm test:e2e`, `pnpm test:build`\n- **Full CI suite:** `pnpm test:ci`\n- **Fix formatting:** `pnpm format`\n- **Efficient targeted testing workflow:**\n  1. **Affected only:** `pnpm nx affected --target=test:unit` (compares to main branch)\n  2. **Specific packages:** `pnpm nx run @tanstack/react-router:test:unit`\n  3. **Specific files:** `pnpm nx run @tanstack/react-router:test:unit -- tests/link.test.tsx`\n  4. **Specific patterns:** `pnpm nx run @tanstack/react-router:test:unit -- tests/link.test.tsx -t \"preloading\"`\n- **Pro tips:**\n  - Use `pnpm nx run @tanstack/react-router:test:unit -- list` to explore available tests before running\n  - Use `-t \"pattern\"` to focus on specific functionality during development\n  - Use `--exclude` patterns to skip unrelated tests\n  - Keep all test filtering arguments behind `pnpm nx run ... -- ...` for maximum precision while preserving task dependencies\n- **Example workflow:** `pnpm nx run @tanstack/react-router:test:unit` → `pnpm nx run @tanstack/react-router:test:unit -- tests/link.test.tsx` → `pnpm nx run @tanstack/react-router:test:unit -- tests/link.test.tsx -t \"preloading\"`\n\n## PR instructions\n\n- Always run `pnpm test:eslint`, `pnpm test:types`, and `pnpm test:unit` before committing\n- Test changes in relevant example apps: `cd examples/react/basic && pnpm dev`\n- Update corresponding documentation in `docs/` directory when adding features\n- Add or update tests for any code changes\n- Use internal docs links relative to `docs/` folder (e.g., `./guide/data-loading`)\n\n## Package structure\n\n**Core packages:**\n\n- `packages/router-core/` - Framework-agnostic core router logic\n- `packages/react-router/`, `packages/solid-router/` - React/Solid bindings and components\n- `packages/history/` - Browser history management\n\n**Tooling:**\n\n- `packages/router-cli/` - CLI tools for code generation\n- `packages/router-generator/` - Route generation utilities\n- `packages/router-plugin/` - Universal bundler plugins (Vite, Webpack, ESBuild, Rspack)\n- `packages/virtual-file-routes/` - Virtual file routing system\n\n**Developer experience:**\n\n- `packages/router-devtools/`, `packages/*-router-devtools/` - Development tools\n- `packages/eslint-plugin-router/` - ESLint rules for router\n\n**Validation adapters:**\n\n- `packages/zod-adapter/`, `packages/valibot-adapter/`, `packages/arktype-adapter/`\n\n**Start framework:**\n\n- `packages/*-start/`, `packages/start-*/` - Full-stack framework packages\n\n**Examples & testing:**\n\n- `examples/react/`, `examples/solid/` - Example applications (test changes here)\n- `e2e/` - End-to-end tests (requires Playwright)\n- `docs/router/`, `docs/start/` - Documentation with React/Solid subdirectories\n\n**Dependencies:** Uses workspace protocol (`workspace:*`) - core → framework → start packages\n\n## Common development tasks\n\n**Adding new routes:**\n\n- Use file-based routing in `src/routes/` directories\n- Or use code-based routing with route definitions\n- Run route generation with CLI tools\n\n**Testing changes:**\n\n- Build packages: `pnpm build` or `pnpm dev` (watch mode)\n- Run example apps to test functionality\n- Use devtools for debugging router state\n\n**Documentation updates:**\n\n- Update relevant docs in `docs/` directory\n- Ensure examples reflect documentation changes\n- Test documentation links and references\n- Use relative links to `docs/` folder format\n\n## Framework-specific notes\n\n**React:**\n\n- Uses React Router components and hooks\n- Supports React Server Components (RSC)\n- Examples include React Query integration\n- Package: `@tanstack/react-router`\n\n**Solid:**\n\n- Uses Solid Router components and primitives\n- Supports Solid Start for full-stack applications\n- Examples include Solid Query integration\n- Package: `@tanstack/solid-router`\n\n## Environment requirements\n\n- **Node.js** - Required for development\n- **pnpm** - Package manager (required for workspace features)\n- **Playwright** - Required for e2e tests (`pnpm exec playwright install`)\n\n## Key architecture patterns\n\n- **Type Safety**: Extensive TypeScript for type-safe routing\n- **Framework Agnostic**: Core logic separated from framework bindings\n- **Plugin Architecture**: Universal bundler plugins using unplugin\n- **File-based Routing**: Support for both code-based and file-based routing\n- **Search Params**: First-class support for type-safe search parameters\n\n## Development workflow\n\n1. **Setup**: `pnpm install` and `pnpm exec playwright install`\n2. **Build**: `pnpm build:all` or `pnpm dev` for watch mode\n3. **Test**: Make changes and run relevant tests (use nx for targeted testing)\n4. **Examples**: Navigate to examples and run `pnpm dev` to test changes\n5. **Quality**: Run `pnpm test:eslint`, `pnpm test:types`, `pnpm test:unit` before committing\n\n## References\n\n- **Documentation**: https://tanstack.com/router\n- **GitHub**: https://github.com/TanStack/router\n- **Discord Community**: https://discord.com/invite/WrRKjPJ\n"},"files":{"AGENTS.md":"# AGENTS.md\n\n## Project overview\n\nTanStack Router is a type-safe router with built-in caching and URL state management for React and Solid applications. This monorepo contains two main products:\n\n- **TanStack Router** - Core routing library with type-safe navigation, search params, and path params\n- **TanStack Start** - Full-stack framework built on top of TanStack Router\n\n## Setup commands\n\n- Install deps: `pnpm install`\n- Setup e2e testing: `pnpm exec playwright install`\n- Build packages: `pnpm build` (affected) or `pnpm build:all` (force all)\n- Start dev server: `pnpm dev`\n- Run tests: `pnpm test`\n\n## Code style\n\n- TypeScript strict mode with extensive type safety\n- Framework-agnostic core logic separated from React/Solid bindings\n- Type-safe routing with search params and path params\n- Use workspace protocol for internal dependencies (`workspace:*`)\n- Always use curly braces for `if`, `else`, loops, and similar control statements. Never write one-line bodies like `if (foo) x = 1`.\n\n## Dev environment tips\n\n- This is a pnpm workspace monorepo with packages organized by functionality\n- Nx provides caching, affected testing, targeting, and parallel execution for efficiency\n- Use `pnpm nx show projects` to list all available packages\n- Target specific packages: `pnpm nx run @tanstack/react-router:test:unit`\n- Target multiple packages: `pnpm nx run-many --target=test:eslint --projects=@tanstack/history,@tanstack/router-core`\n- Run affected tests only: `pnpm nx affected --target=test:unit`\n- Exclude patterns: `pnpm nx run-many --target=test:unit --exclude=\"examples/**,e2e/**\"`\n- Navigate to examples and run `pnpm dev` to test changes: `cd examples/react/basic && pnpm dev`\n- **Granular unit testing through Nx (recommended):**\n  - Specific files: `pnpm nx run @tanstack/react-router:test:unit -- tests/link.test.tsx tests/Scripts.test.tsx`\n  - Test patterns: `pnpm nx run @tanstack/react-router:test:unit -- tests/ClientOnly.test.tsx -t \"should render fallback\"`\n  - Name patterns: `pnpm nx run @tanstack/react-router:test:unit -- -t \"navigation\"` (all tests with \"navigation\" in name)\n  - Exclude patterns: `pnpm nx run @tanstack/react-router:test:unit -- --exclude=\"**/*link*\" tests/`\n  - List tests: `pnpm nx run @tanstack/react-router:test:unit -- list tests/link.test.tsx` (or `-- list` for all)\n- **Available test targets per package:** `test:unit`, `test:types`, `test:eslint`, `test:build`, `test:perf`, `build`\n- **Testing strategy:** Package level (nx) → File-level args via nx → Test-level args (`-t`) via nx → Pattern-level args (`--exclude`) via nx\n- **Agent execution guardrails (important):**\n  - Always prefer `pnpm nx ...` over `npx nx ...`.\n  - Prefer Nx targets over direct test runners so task dependencies (including required builds) remain in the graph.\n  - In sandbox, run Nx with `CI=1 NX_DAEMON=false pnpm nx run <project>:<target> --outputStyle=stream --skipRemoteCache`\n  - Run only one Nx command at a time.\n  - If an Nx command shows no output for ~20 seconds, stop, run `pnpm nx reset` once, and retry once.\n  - Do not loop retries indefinitely. If it still hangs or sandbox blocks graph/daemon behavior, request escalation immediately.\n\n## Testing instructions\n\n- **Critical**: Always run unit and type tests during development - do not proceed if they fail\n- **Test types:** `pnpm test:unit`, `pnpm test:types`, `pnpm test:eslint`, `pnpm test:e2e`, `pnpm test:build`\n- **Full CI suite:** `pnpm test:ci`\n- **Fix formatting:** `pnpm format`\n- **Efficient targeted testing workflow:**\n  1. **Affected only:** `pnpm nx affected --target=test:unit` (compares to main branch)\n  2. **Specific packages:** `pnpm nx run @tanstack/react-router:test:unit`\n  3. **Specific files:** `pnpm nx run @tanstack/react-router:test:unit -- tests/link.test.tsx`\n  4. **Specific patterns:** `pnpm nx run @tanstack/react-router:test:unit -- tests/link.test.tsx -t \"preloading\"`\n- **Pro tips:**\n  - Use `pnpm nx run @tanstack/react-router:test:unit -- list` to explore available tests before running\n  - Use `-t \"pattern\"` to focus on specific functionality during development\n  - Use `--exclude` patterns to skip unrelated tests\n  - Keep all test filtering arguments behind `pnpm nx run ... -- ...` for maximum precision while preserving task dependencies\n- **Example workflow:** `pnpm nx run @tanstack/react-router:test:unit` → `pnpm nx run @tanstack/react-router:test:unit -- tests/link.test.tsx` → `pnpm nx run @tanstack/react-router:test:unit -- tests/link.test.tsx -t \"preloading\"`\n\n## PR instructions\n\n- Always run `pnpm test:eslint`, `pnpm test:types`, and `pnpm test:unit` before committing\n- Test changes in relevant example apps: `cd examples/react/basic && pnpm dev`\n- Update corresponding documentation in `docs/` directory when adding features\n- Add or update tests for any code changes\n- Use internal docs links relative to `docs/` folder (e.g., `./guide/data-loading`)\n\n## Package structure\n\n**Core packages:**\n\n- `packages/router-core/` - Framework-agnostic core router logic\n- `packages/react-router/`, `packages/solid-router/` - React/Solid bindings and components\n- `packages/history/` - Browser history management\n\n**Tooling:**\n\n- `packages/router-cli/` - CLI tools for code generation\n- `packages/router-generator/` - Route generation utilities\n- `packages/router-plugin/` - Universal bundler plugins (Vite, Webpack, ESBuild, Rspack)\n- `packages/virtual-file-routes/` - Virtual file routing system\n\n**Developer experience:**\n\n- `packages/router-devtools/`, `packages/*-router-devtools/` - Development tools\n- `packages/eslint-plugin-router/` - ESLint rules for router\n\n**Validation adapters:**\n\n- `packages/zod-adapter/`, `packages/valibot-adapter/`, `packages/arktype-adapter/`\n\n**Start framework:**\n\n- `packages/*-start/`, `packages/start-*/` - Full-stack framework packages\n\n**Examples & testing:**\n\n- `examples/react/`, `examples/solid/` - Example applications (test changes here)\n- `e2e/` - End-to-end tests (requires Playwright)\n- `docs/router/`, `docs/start/` - Documentation with React/Solid subdirectories\n\n**Dependencies:** Uses workspace protocol (`workspace:*`) - core → framework → start packages\n\n## Common development tasks\n\n**Adding new routes:**\n\n- Use file-based routing in `src/routes/` directories\n- Or use code-based routing with route definitions\n- Run route generation with CLI tools\n\n**Testing changes:**\n\n- Build packages: `pnpm build` or `pnpm dev` (watch mode)\n- Run example apps to test functionality\n- Use devtools for debugging router state\n\n**Documentation updates:**\n\n- Update relevant docs in `docs/` directory\n- Ensure examples reflect documentation changes\n- Test documentation links and references\n- Use relative links to `docs/` folder format\n\n## Framework-specific notes\n\n**React:**\n\n- Uses React Router components and hooks\n- Supports React Server Components (RSC)\n- Examples include React Query integration\n- Package: `@tanstack/react-router`\n\n**Solid:**\n\n- Uses Solid Router components and primitives\n- Supports Solid Start for full-stack applications\n- Examples include Solid Query integration\n- Package: `@tanstack/solid-router`\n\n## Environment requirements\n\n- **Node.js** - Required for development\n- **pnpm** - Package manager (required for workspace features)\n- **Playwright** - Required for e2e tests (`pnpm exec playwright install`)\n\n## Key architecture patterns\n\n- **Type Safety**: Extensive TypeScript for type-safe routing\n- **Framework Agnostic**: Core logic separated from framework bindings\n- **Plugin Architecture**: Universal bundler plugins using unplugin\n- **File-based Routing**: Support for both code-based and file-based routing\n- **Search Params**: First-class support for type-safe search parameters\n\n## Development workflow\n\n1. **Setup**: `pnpm install` and `pnpm exec playwright install`\n2. **Build**: `pnpm build:all` or `pnpm dev` for watch mode\n3. **Test**: Make changes and run relevant tests (use nx for targeted testing)\n4. **Examples**: Navigate to examples and run `pnpm dev` to test changes\n5. **Quality**: Run `pnpm test:eslint`, `pnpm test:types`, `pnpm test:unit` before committing\n\n## References\n\n- **Documentation**: https://tanstack.com/router\n- **GitHub**: https://github.com/TanStack/router\n- **Discord Community**: https://discord.com/invite/WrRKjPJ\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# AGENTS.md\n\n## Project overview\n\nTanStack Router is a type-safe router with built-in caching and URL state management for React and Solid applications. This monorepo contains two main products:\n\n- **TanStack Router** - Core routing library with type-safe navigation, search params, and path params\n- **TanStack Start** - Full-stack framework built on top of TanStack Router\n\n## Setup commands\n\n- Install deps: `pnpm install`\n- Setup e2e testing: `pnpm exec playwright install`\n- Build packages: `pnpm build` (affected) or `pnpm build:all` (force all)\n- Start dev server: `pnpm dev`\n- Run tests: `pnpm test`\n\n## Code style\n\n- TypeScript strict mode with extensive type safety\n- Framework-agnostic core logic separated from React/Solid bindings\n- Type-safe routing with search params and path params\n- Use workspace protocol for internal dependencies (`workspace:*`)\n- Always use curly braces for `if`, `else`, loops, and similar control statements. Never write one-line bodies like `if (foo) x = 1`.\n\n## Dev environment tips\n\n- This is a pnpm workspace monorepo with packages organized by functionality\n- Nx provides caching, affected testing, targeting, and parallel execution for efficiency\n- Use `pnpm nx show projects` to list all available packages\n- Target specific packages: `pnpm nx run @tanstack/react-router:test:unit`\n- Target multiple packages: `pnpm nx run-many --target=test:eslint --projects=@tanstack/history,@tanstack/router-core`\n- Run affected tests only: `pnpm nx affected --target=test:unit`\n- Exclude patterns: `pnpm nx run-many --target=test:unit --exclude=\"examples/**,e2e/**\"`\n- Navigate to examples and run `pnpm dev` to test changes: `cd examples/react/basic && pnpm dev`\n- **Granular unit testing through Nx (recommended):**\n  - Specific files: `pnpm nx run @tanstack/react-router:test:unit -- tests/link.test.tsx tests/Scripts.test.tsx`\n  - Test patterns: `pnpm nx run @tanstack/react-router:test:unit -- tests/ClientOnly.test.tsx -t \"should render fallback\"`\n  - Name patterns: `pnpm nx run @tanstack/react-router:test:unit -- -t \"navigation\"` (all tests with \"navigation\" in name)\n  - Exclude patterns: `pnpm nx run @tanstack/react-router:test:unit -- --exclude=\"**/*link*\" tests/`\n  - List tests: `pnpm nx run @tanstack/react-router:test:unit -- list tests/link.test.tsx` (or `-- list` for all)\n- **Available test targets per package:** `test:unit`, `test:types`, `test:eslint`, `test:build`, `test:perf`, `build`\n- **Testing strategy:** Package level (nx) → File-level args via nx → Test-level args (`-t`) via nx → Pattern-level args (`--exclude`) via nx\n- **Agent execution guardrails (important):**\n  - Always prefer `pnpm nx ...` over `npx nx ...`.\n  - Prefer Nx targets over direct test runners so task dependencies (including required builds) remain in the graph.\n  - In sandbox, run Nx with `CI=1 NX_DAEMON=false pnpm nx run <project>:<target> --outputStyle=stream --skipRemoteCache`\n  - Run only one Nx command at a time.\n  - If an Nx command shows no output for ~20 seconds, stop, run `pnpm nx reset` once, and retry once.\n  - Do not loop retries indefinitely. If it still hangs or sandbox blocks graph/daemon behavior, request escalation immediately.\n\n## Testing instructions\n\n- **Critical**: Always run unit and type tests during development - do not proceed if they fail\n- **Test types:** `pnpm test:unit`, `pnpm test:types`, `pnpm test:eslint`, `pnpm test:e2e`, `pnpm test:build`\n- **Full CI suite:** `pnpm test:ci`\n- **Fix formatting:** `pnpm format`\n- **Efficient targeted testing workflow:**\n  1. **Affected only:** `pnpm nx affected --target=test:unit` (compares to main branch)\n  2. **Specific packages:** `pnpm nx run @tanstack/react-router:test:unit`\n  3. **Specific files:** `pnpm nx run @tanstack/react-router:test:unit -- tests/link.test.tsx`\n  4. **Specific patterns:** `pnpm nx run @tanstack/react-router:test:unit -- tests/link.test.tsx -t \"preloading\"`\n- **Pro tips:**\n  - Use `pnpm nx run @tanstack/react-router:test:unit -- list` to explore available tests before running\n  - Use `-t \"pattern\"` to focus on specific functionality during development\n  - Use `--exclude` patterns to skip unrelated tests\n  - Keep all test filtering arguments behind `pnpm nx run ... -- ...` for maximum precision while preserving task dependencies\n- **Example workflow:** `pnpm nx run @tanstack/react-router:test:unit` → `pnpm nx run @tanstack/react-router:test:unit -- tests/link.test.tsx` → `pnpm nx run @tanstack/react-router:test:unit -- tests/link.test.tsx -t \"preloading\"`\n\n## PR instructions\n\n- Always run `pnpm test:eslint`, `pnpm test:types`, and `pnpm test:unit` before committing\n- Test changes in relevant example apps: `cd examples/react/basic && pnpm dev`\n- Update corresponding documentation in `docs/` directory when adding features\n- Add or update tests for any code changes\n- Use internal docs links relative to `docs/` folder (e.g., `./guide/data-loading`)\n\n## Package structure\n\n**Core packages:**\n\n- `packages/router-core/` - Framework-agnostic core router logic\n- `packages/react-router/`, `packages/solid-router/` - React/Solid bindings and components\n- `packages/history/` - Browser history management\n\n**Tooling:**\n\n- `packages/router-cli/` - CLI tools for code generation\n- `packages/router-generator/` - Route generation utilities\n- `packages/router-plugin/` - Universal bundler plugins (Vite, Webpack, ESBuild, Rspack)\n- `packages/virtual-file-routes/` - Virtual file routing system\n\n**Developer experience:**\n\n- `packages/router-devtools/`, `packages/*-router-devtools/` - Development tools\n- `packages/eslint-plugin-router/` - ESLint rules for router\n\n**Validation adapters:**\n\n- `packages/zod-adapter/`, `packages/valibot-adapter/`, `packages/arktype-adapter/`\n\n**Start framework:**\n\n- `packages/*-start/`, `packages/start-*/` - Full-stack framework packages\n\n**Examples & testing:**\n\n- `examples/react/`, `examples/solid/` - Example applications (test changes here)\n- `e2e/` - End-to-end tests (requires Playwright)\n- `docs/router/`, `docs/start/` - Documentation with React/Solid subdirectories\n\n**Dependencies:** Uses workspace protocol (`workspace:*`) - core → framework → start packages\n\n## Common development tasks\n\n**Adding new routes:**\n\n- Use file-based routing in `src/routes/` directories\n- Or use code-based routing with route definitions\n- Run route generation with CLI tools\n\n**Testing changes:**\n\n- Build packages: `pnpm build` or `pnpm dev` (watch mode)\n- Run example apps to test functionality\n- Use devtools for debugging router state\n\n**Documentation updates:**\n\n- Update relevant docs in `docs/` directory\n- Ensure examples reflect documentation changes\n- Test documentation links and references\n- Use relative links to `docs/` folder format\n\n## Framework-specific notes\n\n**React:**\n\n- Uses React Router components and hooks\n- Supports React Server Components (RSC)\n- Examples include React Query integration\n- Package: `@tanstack/react-router`\n\n**Solid:**\n\n- Uses Solid Router components and primitives\n- Supports Solid Start for full-stack applications\n- Examples include Solid Query integration\n- Package: `@tanstack/solid-router`\n\n## Environment requirements\n\n- **Node.js** - Required for development\n- **pnpm** - Package manager (required for workspace features)\n- **Playwright** - Required for e2e tests (`pnpm exec playwright install`)\n\n## Key architecture patterns\n\n- **Type Safety**: Extensive TypeScript for type-safe routing\n- **Framework Agnostic**: Core logic separated from framework bindings\n- **Plugin Architecture**: Universal bundler plugins using unplugin\n- **File-based Routing**: Support for both code-based and file-based routing\n- **Search Params**: First-class support for type-safe search parameters\n\n## Development workflow\n\n1. **Setup**: `pnpm install` and `pnpm exec playwright install`\n2. **Build**: `pnpm build:all` or `pnpm dev` for watch mode\n3. **Test**: Make changes and run relevant tests (use nx for targeted testing)\n4. **Examples**: Navigate to examples and run `pnpm dev` to test changes\n5. **Quality**: Run `pnpm test:eslint`, `pnpm test:types`, `pnpm test:unit` before committing\n\n## References\n\n- **Documentation**: https://tanstack.com/router\n- **GitHub**: https://github.com/TanStack/router\n- **Discord Community**: https://discord.com/invite/WrRKjPJ\n","category":"root","tokens":2072}]}