{"owner":"web-infra-dev","repo":"rspack","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"# Rspack\n\n## Project overview\n\nRspack is a high-performance JavaScript bundler written in Rust that offers strong compatibility with the webpack ecosystem.\n\n## Project architecture\n\n- **Monorepo** with Rust crates (`crates/`) and JavaScript packages (`packages/`)\n- See [Project Architecture](website/docs/en/contribute/development/project.md) for details\n\n## Concurrency architecture\n\n- **Synchronous concurrency**: Prefer `rayon` for CPU-bound parallel work and data-parallel iteration\n- **Asynchronous concurrency**: Prefer the abstractions provided by `rspack_parallel` instead of using raw `tokio` task orchestration directly\n- **Thread pool boundaries**: Avoid mixing `rayon` and `tokio` thread pools for the same workflow unless there is a clear boundary that cannot be avoided\n- **Rule of thumb**: Do not use `tokio` to parallelize synchronous CPU-heavy work, and do not introduce `rayon` inside async orchestration that should stay within `rspack_parallel`\n\n## Setup\n\n- **Rust**: Latest stable (via [rustup](https://rustup.rs/))\n- **Node.js**: Latest LTS\n- **pnpm**: Version in `package.json`\n- Run `pnpm run setup` to install and build\n\n## Building\n\n- `pnpm run build:js` - Build JavaScript/TypeScript packages\n- `pnpm run build:binding:dev` - Build Rust crates (dev)\n- `pnpm run build:cli:dev` - Full build (dev)\n- `pnpm run build:binding:debug` - Debug build\n- `pnpm run build:binding:release` - Release build\n- `pnpm run build:cli:dev:wasm` - WASM build\n- `pnpm run build:cli:dev:browser` - Browser build\n\n## Testing\n\n- `pnpm run test:rs` - Rust unit tests\n- `pnpm run test:unit` - JavaScript unit tests\n- `pnpm run test:e2e` - E2E tests\n- `pnpm run test:base` - Integration tests (in `tests/rspack-test`)\n- `pnpm run test:hot` - HMR tests\n- `cd tests/rspack-test && pnpm run test -t \"configCases/asset\"` - Run filtered tests\n\nBefore running tests after code changes:\n\n- If you modified JavaScript/TypeScript code, run `pnpm run build:js` first\n- If you modified Rust code, run `pnpm run build:binding:dev` first\n- If your change spans both JS and Rust, run `pnpm run build:cli:dev` first\n\n## Debugging\n\n- **VS Code**: `.vscode/launch.json` with `Debug Rspack` and `Attach` options\n- **Rust**: Set breakpoints, use `Debug Rspack` or `Attach Rust`\n- **JavaScript**: Use `--inspect` flag, attach with `Attach JavaScript`\n- **rust-lldb**: `rust-lldb -- node /path/to/rspack build` for panic debugging\n\n## Code quality\n\n- **Linting**: `pnpm run lint:js` (Rslint), `pnpm run lint:rs` (cargo check), `cargo lint` (Rust)\n- **Formatting**: `pnpm run format:rs` (cargo fmt), `pnpm run format:js` (rs fmt), `cargo fmt --all --check` (Rust)\n- **Style**: snake_case for Rust, camelCase for JS/TS\n\n## Common tasks\n\n### Adding a new feature\n\n1. Create feature branch from `main`\n2. Implement in appropriate crate/package\n3. Add test coverage when needed, following the restrictions in [Adding tests](#adding-tests)\n4. Update docs if APIs change\n5. Run checks and tests: `pnpm run lint:js && pnpm run lint:rs && cargo lint && pnpm run test:unit && pnpm run test:rs`\n6. Format: `pnpm run format:rs && pnpm run format:js`\n7. Create PR\n\n### Modifying code\n\n- **Rust**: Core in `crates/rspack_core/`, plugins in `crates/rspack_plugin_*/`, rebuild with `pnpm run build:binding:dev`, test with `pnpm run test:rs`, avoid linting and formatting for fast local development\n- **JS/TS**: API in `packages/rspack/src/`, CLI in `packages/rspack-cli/src/`, rebuild with `pnpm run build:js`, test with `pnpm run test:unit`\n\n### Adding tests\n\n- **Rust**: Do not add new Rust tests in ordinary changes, especially unit tests for small functions. Only add Rust test cases when they belong in a dedicated test crate; do not add inline `#[test]` functions or crate-local unit tests.\n- **JavaScript**: Do not create new top-level or suite-level `test.js` runner entry files. Reuse an existing runner and add coverage only by adding a case under the appropriate cases directory, such as `tests/rspack-test/{type}Cases/` (Normal, Config, Hot, Watch, StatsOutput, StatsAPI, Diagnostic, Hash, Compiler, Defaults, Error, Hook, TreeShaking, Builtin). Files required inside an individual case by an existing harness, such as `hookCases/**/test.js`, are allowed and are not new runner entry points.\n\n## Dependency management\n\n- **Package manager**: pnpm (workspaces for monorepo)\n- **Rust**: `Cargo.toml` in each crate\n- **JavaScript**: `package.json` files\n\n## Performance\n\n- **Benchmarks**: Rust CodSpeed benchmarks in `xtask/benchmark/`, run with `pnpm run bench:ci` (setup: `pnpm run bench:prepare`)\n- **Profiling**: `pnpm run build:binding:profiling`\n- **Tracing**: See `crates/rspack_tracing/`\n\n## Documentation\n\n- **Site**: `website/` directory\n- **Docs**: `website/docs/en/` (English), `website/docs/zh/` (Chinese)\n- **API**: `website/docs/en/api/`\n\n## Pull request guidelines\n\n- **Template**: Use `.github/PULL_REQUEST_TEMPLATE.md`\n- **Title prefix**: `test:`, `fix:`, `feat:`, `refactor:`, `chore:`\n- **Semver alignment**:\n  - `fix:` -> PATCH bump\n  - `feat:` -> MINOR bump\n  - Any breaking change -> MAJOR bump (`type(scope)!:` and/or `BREAKING CHANGE:` in commit body)\n- **CI**: All checks must pass\n\n## Contributing\n\n- Follow existing code patterns\n- Add test coverage for new features only under the restrictions in [Adding tests](#adding-tests)\n- Update docs when APIs change\n- Run linters before submitting\n- Use Conventional Commits in semver style: `type(scope): subject`\n- Prefer these types for release impact: `fix`, `feat`; use `!` or `BREAKING CHANGE:` only for incompatible changes\n- Keep PRs focused (one feature/fix per PR)\n\n## Finding code\n\n- **Rust core**: `crates/rspack_core/`\n- **Plugins**: `crates/rspack_plugin_*/`\n- **JavaScript API**: `packages/rspack/src/`\n- **JavaScript binding API**: `crates/rspack_binding_api/`\n- **Node-API support**: `crates/rspack_napi/`\n- **Generated binding package**: `crates/node_binding/`\n- **CLI**: `packages/rspack-cli/src/`\n- **Tests**: `tests/rspack-test/`\n\n## Error handling\n\n- Use `rspack_error` crate for Rust errors\n- Provide clear, actionable error messages\n- Include context (file paths, line numbers)\n\n## AI-Friendly Documentation\n\nThis project includes comprehensive documentation designed for AI assistants and large language models. All AI-friendly documentation is located in the `.agents/` directory:\n\n- **[Architecture Guide](.agents/ARCHITECTURE.md)** - High-level architecture overview, core components, compilation pipeline, and system design\n- **[`rspack_sources` Architecture](.agents/RSPACK_SOURCES.md)** - Source composition, source-map streaming, UTF-8/UTF-16 position invariants, ownership, caching, and performance rules; read before changing or heavily using `crates/rspack_sources`\n- **[JavaScript Binding Guide](.agents/BINDING.md)** - Binding ownership, lifetimes, hook bridging, performance rules, file map, and validation\n- **[API Design](.agents/API_DESIGN.md)** - API design principles, patterns, versioning strategy, and compatibility guidelines\n- **[Code Style](.agents/CODE_STYLE.md)** - Coding standards and conventions for Rust and TypeScript/JavaScript\n- **[Common Patterns](.agents/COMMON_PATTERNS.md)** - Common code patterns, templates, and best practices for plugin/loader development\n- **[Glossary](.agents/GLOSSARY.md)** - Comprehensive glossary of terms and concepts used throughout the codebase\n- **[Skills](.agents/SKILLS.md)** - Required skills and knowledge areas for contributing to Rspack\n\nThese documents provide detailed context about the project structure, coding standards, common patterns, and domain-specific knowledge to help AI assistants better understand and contribute to the codebase.\n\n## Resources\n\n- [Project Architecture](website/docs/en/contribute/development/project.md)\n- [Testing Guide](website/docs/en/contribute/development/testing.mdx)\n- [Debugging Guide](website/docs/en/contribute/development/debugging.mdx)\n- [API Docs](website/docs/en/api/index.mdx)\n"},"files":{"AGENTS.md":"# Rspack\n\n## Project overview\n\nRspack is a high-performance JavaScript bundler written in Rust that offers strong compatibility with the webpack ecosystem.\n\n## Project architecture\n\n- **Monorepo** with Rust crates (`crates/`) and JavaScript packages (`packages/`)\n- See [Project Architecture](website/docs/en/contribute/development/project.md) for details\n\n## Concurrency architecture\n\n- **Synchronous concurrency**: Prefer `rayon` for CPU-bound parallel work and data-parallel iteration\n- **Asynchronous concurrency**: Prefer the abstractions provided by `rspack_parallel` instead of using raw `tokio` task orchestration directly\n- **Thread pool boundaries**: Avoid mixing `rayon` and `tokio` thread pools for the same workflow unless there is a clear boundary that cannot be avoided\n- **Rule of thumb**: Do not use `tokio` to parallelize synchronous CPU-heavy work, and do not introduce `rayon` inside async orchestration that should stay within `rspack_parallel`\n\n## Setup\n\n- **Rust**: Latest stable (via [rustup](https://rustup.rs/))\n- **Node.js**: Latest LTS\n- **pnpm**: Version in `package.json`\n- Run `pnpm run setup` to install and build\n\n## Building\n\n- `pnpm run build:js` - Build JavaScript/TypeScript packages\n- `pnpm run build:binding:dev` - Build Rust crates (dev)\n- `pnpm run build:cli:dev` - Full build (dev)\n- `pnpm run build:binding:debug` - Debug build\n- `pnpm run build:binding:release` - Release build\n- `pnpm run build:cli:dev:wasm` - WASM build\n- `pnpm run build:cli:dev:browser` - Browser build\n\n## Testing\n\n- `pnpm run test:rs` - Rust unit tests\n- `pnpm run test:unit` - JavaScript unit tests\n- `pnpm run test:e2e` - E2E tests\n- `pnpm run test:base` - Integration tests (in `tests/rspack-test`)\n- `pnpm run test:hot` - HMR tests\n- `cd tests/rspack-test && pnpm run test -t \"configCases/asset\"` - Run filtered tests\n\nBefore running tests after code changes:\n\n- If you modified JavaScript/TypeScript code, run `pnpm run build:js` first\n- If you modified Rust code, run `pnpm run build:binding:dev` first\n- If your change spans both JS and Rust, run `pnpm run build:cli:dev` first\n\n## Debugging\n\n- **VS Code**: `.vscode/launch.json` with `Debug Rspack` and `Attach` options\n- **Rust**: Set breakpoints, use `Debug Rspack` or `Attach Rust`\n- **JavaScript**: Use `--inspect` flag, attach with `Attach JavaScript`\n- **rust-lldb**: `rust-lldb -- node /path/to/rspack build` for panic debugging\n\n## Code quality\n\n- **Linting**: `pnpm run lint:js` (Rslint), `pnpm run lint:rs` (cargo check), `cargo lint` (Rust)\n- **Formatting**: `pnpm run format:rs` (cargo fmt), `pnpm run format:js` (rs fmt), `cargo fmt --all --check` (Rust)\n- **Style**: snake_case for Rust, camelCase for JS/TS\n\n## Common tasks\n\n### Adding a new feature\n\n1. Create feature branch from `main`\n2. Implement in appropriate crate/package\n3. Add test coverage when needed, following the restrictions in [Adding tests](#adding-tests)\n4. Update docs if APIs change\n5. Run checks and tests: `pnpm run lint:js && pnpm run lint:rs && cargo lint && pnpm run test:unit && pnpm run test:rs`\n6. Format: `pnpm run format:rs && pnpm run format:js`\n7. Create PR\n\n### Modifying code\n\n- **Rust**: Core in `crates/rspack_core/`, plugins in `crates/rspack_plugin_*/`, rebuild with `pnpm run build:binding:dev`, test with `pnpm run test:rs`, avoid linting and formatting for fast local development\n- **JS/TS**: API in `packages/rspack/src/`, CLI in `packages/rspack-cli/src/`, rebuild with `pnpm run build:js`, test with `pnpm run test:unit`\n\n### Adding tests\n\n- **Rust**: Do not add new Rust tests in ordinary changes, especially unit tests for small functions. Only add Rust test cases when they belong in a dedicated test crate; do not add inline `#[test]` functions or crate-local unit tests.\n- **JavaScript**: Do not create new top-level or suite-level `test.js` runner entry files. Reuse an existing runner and add coverage only by adding a case under the appropriate cases directory, such as `tests/rspack-test/{type}Cases/` (Normal, Config, Hot, Watch, StatsOutput, StatsAPI, Diagnostic, Hash, Compiler, Defaults, Error, Hook, TreeShaking, Builtin). Files required inside an individual case by an existing harness, such as `hookCases/**/test.js`, are allowed and are not new runner entry points.\n\n## Dependency management\n\n- **Package manager**: pnpm (workspaces for monorepo)\n- **Rust**: `Cargo.toml` in each crate\n- **JavaScript**: `package.json` files\n\n## Performance\n\n- **Benchmarks**: Rust CodSpeed benchmarks in `xtask/benchmark/`, run with `pnpm run bench:ci` (setup: `pnpm run bench:prepare`)\n- **Profiling**: `pnpm run build:binding:profiling`\n- **Tracing**: See `crates/rspack_tracing/`\n\n## Documentation\n\n- **Site**: `website/` directory\n- **Docs**: `website/docs/en/` (English), `website/docs/zh/` (Chinese)\n- **API**: `website/docs/en/api/`\n\n## Pull request guidelines\n\n- **Template**: Use `.github/PULL_REQUEST_TEMPLATE.md`\n- **Title prefix**: `test:`, `fix:`, `feat:`, `refactor:`, `chore:`\n- **Semver alignment**:\n  - `fix:` -> PATCH bump\n  - `feat:` -> MINOR bump\n  - Any breaking change -> MAJOR bump (`type(scope)!:` and/or `BREAKING CHANGE:` in commit body)\n- **CI**: All checks must pass\n\n## Contributing\n\n- Follow existing code patterns\n- Add test coverage for new features only under the restrictions in [Adding tests](#adding-tests)\n- Update docs when APIs change\n- Run linters before submitting\n- Use Conventional Commits in semver style: `type(scope): subject`\n- Prefer these types for release impact: `fix`, `feat`; use `!` or `BREAKING CHANGE:` only for incompatible changes\n- Keep PRs focused (one feature/fix per PR)\n\n## Finding code\n\n- **Rust core**: `crates/rspack_core/`\n- **Plugins**: `crates/rspack_plugin_*/`\n- **JavaScript API**: `packages/rspack/src/`\n- **JavaScript binding API**: `crates/rspack_binding_api/`\n- **Node-API support**: `crates/rspack_napi/`\n- **Generated binding package**: `crates/node_binding/`\n- **CLI**: `packages/rspack-cli/src/`\n- **Tests**: `tests/rspack-test/`\n\n## Error handling\n\n- Use `rspack_error` crate for Rust errors\n- Provide clear, actionable error messages\n- Include context (file paths, line numbers)\n\n## AI-Friendly Documentation\n\nThis project includes comprehensive documentation designed for AI assistants and large language models. All AI-friendly documentation is located in the `.agents/` directory:\n\n- **[Architecture Guide](.agents/ARCHITECTURE.md)** - High-level architecture overview, core components, compilation pipeline, and system design\n- **[`rspack_sources` Architecture](.agents/RSPACK_SOURCES.md)** - Source composition, source-map streaming, UTF-8/UTF-16 position invariants, ownership, caching, and performance rules; read before changing or heavily using `crates/rspack_sources`\n- **[JavaScript Binding Guide](.agents/BINDING.md)** - Binding ownership, lifetimes, hook bridging, performance rules, file map, and validation\n- **[API Design](.agents/API_DESIGN.md)** - API design principles, patterns, versioning strategy, and compatibility guidelines\n- **[Code Style](.agents/CODE_STYLE.md)** - Coding standards and conventions for Rust and TypeScript/JavaScript\n- **[Common Patterns](.agents/COMMON_PATTERNS.md)** - Common code patterns, templates, and best practices for plugin/loader development\n- **[Glossary](.agents/GLOSSARY.md)** - Comprehensive glossary of terms and concepts used throughout the codebase\n- **[Skills](.agents/SKILLS.md)** - Required skills and knowledge areas for contributing to Rspack\n\nThese documents provide detailed context about the project structure, coding standards, common patterns, and domain-specific knowledge to help AI assistants better understand and contribute to the codebase.\n\n## Resources\n\n- [Project Architecture](website/docs/en/contribute/development/project.md)\n- [Testing Guide](website/docs/en/contribute/development/testing.mdx)\n- [Debugging Guide](website/docs/en/contribute/development/debugging.mdx)\n- [API Docs](website/docs/en/api/index.mdx)\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# Rspack\n\n## Project overview\n\nRspack is a high-performance JavaScript bundler written in Rust that offers strong compatibility with the webpack ecosystem.\n\n## Project architecture\n\n- **Monorepo** with Rust crates (`crates/`) and JavaScript packages (`packages/`)\n- See [Project Architecture](website/docs/en/contribute/development/project.md) for details\n\n## Concurrency architecture\n\n- **Synchronous concurrency**: Prefer `rayon` for CPU-bound parallel work and data-parallel iteration\n- **Asynchronous concurrency**: Prefer the abstractions provided by `rspack_parallel` instead of using raw `tokio` task orchestration directly\n- **Thread pool boundaries**: Avoid mixing `rayon` and `tokio` thread pools for the same workflow unless there is a clear boundary that cannot be avoided\n- **Rule of thumb**: Do not use `tokio` to parallelize synchronous CPU-heavy work, and do not introduce `rayon` inside async orchestration that should stay within `rspack_parallel`\n\n## Setup\n\n- **Rust**: Latest stable (via [rustup](https://rustup.rs/))\n- **Node.js**: Latest LTS\n- **pnpm**: Version in `package.json`\n- Run `pnpm run setup` to install and build\n\n## Building\n\n- `pnpm run build:js` - Build JavaScript/TypeScript packages\n- `pnpm run build:binding:dev` - Build Rust crates (dev)\n- `pnpm run build:cli:dev` - Full build (dev)\n- `pnpm run build:binding:debug` - Debug build\n- `pnpm run build:binding:release` - Release build\n- `pnpm run build:cli:dev:wasm` - WASM build\n- `pnpm run build:cli:dev:browser` - Browser build\n\n## Testing\n\n- `pnpm run test:rs` - Rust unit tests\n- `pnpm run test:unit` - JavaScript unit tests\n- `pnpm run test:e2e` - E2E tests\n- `pnpm run test:base` - Integration tests (in `tests/rspack-test`)\n- `pnpm run test:hot` - HMR tests\n- `cd tests/rspack-test && pnpm run test -t \"configCases/asset\"` - Run filtered tests\n\nBefore running tests after code changes:\n\n- If you modified JavaScript/TypeScript code, run `pnpm run build:js` first\n- If you modified Rust code, run `pnpm run build:binding:dev` first\n- If your change spans both JS and Rust, run `pnpm run build:cli:dev` first\n\n## Debugging\n\n- **VS Code**: `.vscode/launch.json` with `Debug Rspack` and `Attach` options\n- **Rust**: Set breakpoints, use `Debug Rspack` or `Attach Rust`\n- **JavaScript**: Use `--inspect` flag, attach with `Attach JavaScript`\n- **rust-lldb**: `rust-lldb -- node /path/to/rspack build` for panic debugging\n\n## Code quality\n\n- **Linting**: `pnpm run lint:js` (Rslint), `pnpm run lint:rs` (cargo check), `cargo lint` (Rust)\n- **Formatting**: `pnpm run format:rs` (cargo fmt), `pnpm run format:js` (rs fmt), `cargo fmt --all --check` (Rust)\n- **Style**: snake_case for Rust, camelCase for JS/TS\n\n## Common tasks\n\n### Adding a new feature\n\n1. Create feature branch from `main`\n2. Implement in appropriate crate/package\n3. Add test coverage when needed, following the restrictions in [Adding tests](#adding-tests)\n4. Update docs if APIs change\n5. Run checks and tests: `pnpm run lint:js && pnpm run lint:rs && cargo lint && pnpm run test:unit && pnpm run test:rs`\n6. Format: `pnpm run format:rs && pnpm run format:js`\n7. Create PR\n\n### Modifying code\n\n- **Rust**: Core in `crates/rspack_core/`, plugins in `crates/rspack_plugin_*/`, rebuild with `pnpm run build:binding:dev`, test with `pnpm run test:rs`, avoid linting and formatting for fast local development\n- **JS/TS**: API in `packages/rspack/src/`, CLI in `packages/rspack-cli/src/`, rebuild with `pnpm run build:js`, test with `pnpm run test:unit`\n\n### Adding tests\n\n- **Rust**: Do not add new Rust tests in ordinary changes, especially unit tests for small functions. Only add Rust test cases when they belong in a dedicated test crate; do not add inline `#[test]` functions or crate-local unit tests.\n- **JavaScript**: Do not create new top-level or suite-level `test.js` runner entry files. Reuse an existing runner and add coverage only by adding a case under the appropriate cases directory, such as `tests/rspack-test/{type}Cases/` (Normal, Config, Hot, Watch, StatsOutput, StatsAPI, Diagnostic, Hash, Compiler, Defaults, Error, Hook, TreeShaking, Builtin). Files required inside an individual case by an existing harness, such as `hookCases/**/test.js`, are allowed and are not new runner entry points.\n\n## Dependency management\n\n- **Package manager**: pnpm (workspaces for monorepo)\n- **Rust**: `Cargo.toml` in each crate\n- **JavaScript**: `package.json` files\n\n## Performance\n\n- **Benchmarks**: Rust CodSpeed benchmarks in `xtask/benchmark/`, run with `pnpm run bench:ci` (setup: `pnpm run bench:prepare`)\n- **Profiling**: `pnpm run build:binding:profiling`\n- **Tracing**: See `crates/rspack_tracing/`\n\n## Documentation\n\n- **Site**: `website/` directory\n- **Docs**: `website/docs/en/` (English), `website/docs/zh/` (Chinese)\n- **API**: `website/docs/en/api/`\n\n## Pull request guidelines\n\n- **Template**: Use `.github/PULL_REQUEST_TEMPLATE.md`\n- **Title prefix**: `test:`, `fix:`, `feat:`, `refactor:`, `chore:`\n- **Semver alignment**:\n  - `fix:` -> PATCH bump\n  - `feat:` -> MINOR bump\n  - Any breaking change -> MAJOR bump (`type(scope)!:` and/or `BREAKING CHANGE:` in commit body)\n- **CI**: All checks must pass\n\n## Contributing\n\n- Follow existing code patterns\n- Add test coverage for new features only under the restrictions in [Adding tests](#adding-tests)\n- Update docs when APIs change\n- Run linters before submitting\n- Use Conventional Commits in semver style: `type(scope): subject`\n- Prefer these types for release impact: `fix`, `feat`; use `!` or `BREAKING CHANGE:` only for incompatible changes\n- Keep PRs focused (one feature/fix per PR)\n\n## Finding code\n\n- **Rust core**: `crates/rspack_core/`\n- **Plugins**: `crates/rspack_plugin_*/`\n- **JavaScript API**: `packages/rspack/src/`\n- **JavaScript binding API**: `crates/rspack_binding_api/`\n- **Node-API support**: `crates/rspack_napi/`\n- **Generated binding package**: `crates/node_binding/`\n- **CLI**: `packages/rspack-cli/src/`\n- **Tests**: `tests/rspack-test/`\n\n## Error handling\n\n- Use `rspack_error` crate for Rust errors\n- Provide clear, actionable error messages\n- Include context (file paths, line numbers)\n\n## AI-Friendly Documentation\n\nThis project includes comprehensive documentation designed for AI assistants and large language models. All AI-friendly documentation is located in the `.agents/` directory:\n\n- **[Architecture Guide](.agents/ARCHITECTURE.md)** - High-level architecture overview, core components, compilation pipeline, and system design\n- **[`rspack_sources` Architecture](.agents/RSPACK_SOURCES.md)** - Source composition, source-map streaming, UTF-8/UTF-16 position invariants, ownership, caching, and performance rules; read before changing or heavily using `crates/rspack_sources`\n- **[JavaScript Binding Guide](.agents/BINDING.md)** - Binding ownership, lifetimes, hook bridging, performance rules, file map, and validation\n- **[API Design](.agents/API_DESIGN.md)** - API design principles, patterns, versioning strategy, and compatibility guidelines\n- **[Code Style](.agents/CODE_STYLE.md)** - Coding standards and conventions for Rust and TypeScript/JavaScript\n- **[Common Patterns](.agents/COMMON_PATTERNS.md)** - Common code patterns, templates, and best practices for plugin/loader development\n- **[Glossary](.agents/GLOSSARY.md)** - Comprehensive glossary of terms and concepts used throughout the codebase\n- **[Skills](.agents/SKILLS.md)** - Required skills and knowledge areas for contributing to Rspack\n\nThese documents provide detailed context about the project structure, coding standards, common patterns, and domain-specific knowledge to help AI assistants better understand and contribute to the codebase.\n\n## Resources\n\n- [Project Architecture](website/docs/en/contribute/development/project.md)\n- [Testing Guide](website/docs/en/contribute/development/testing.mdx)\n- [Debugging Guide](website/docs/en/contribute/development/debugging.mdx)\n- [API Docs](website/docs/en/api/index.mdx)\n","category":"root","tokens":1991}]}