diff --git a/.agents/skills/rsbuild-best-practices/SKILL.md b/.agents/skills/rsbuild-best-practices/SKILL.md new file mode 100644 index 00000000..0ae178f5 --- /dev/null +++ b/.agents/skills/rsbuild-best-practices/SKILL.md @@ -0,0 +1,57 @@ +--- +name: rsbuild-best-practices +description: Rsbuild best practices for config, CLI workflow, type checking, bundle optimization, assets, and debugging. Use when writing, reviewing, or troubleshooting Rsbuild projects. +--- + +# Rsbuild Best Practices + +Apply these rules when writing or reviewing Rsbuild projects. + +## Configuration + +- Use `rsbuild.config.ts` and `defineConfig` +- Use `tools.rspack` or `tools.bundlerChain` only when no first-class Rsbuild option exists +- Define explicit `source.entry` values for multi-page applications +- In TypeScript projects, prefer `tsconfig.json` path aliases first + +## CLI + +- Use `rsbuild dev` for local development +- Use `rsbuild build` for production build +- Use `rsbuild preview` only for local production preview +- Use `rsbuild inspect` to inspect final Rsbuild/Rspack configs + +## Type checking + +- Use `@rsbuild/plugin-type-check` for integrated dev/build type checks +- Or run `tsc --noEmit`/`vue-tsc --noEmit` as an explicit script step + +## Bundle size optimization + +- Prefer dynamic `import()` for non-critical code paths +- Prefer lightweight libraries where possible +- Keep browserslist aligned with real compatibility requirements + +## Asset management + +- Import source-managed assets from project source directories, not from `public` +- Reference `public` files by absolute URL path + +## Security + +- Do not publish `.map` files to public servers/CDNs when production source maps are enabled + +## Debugging + +- Run with `DEBUG=rsbuild` when diagnosing config resolution or plugin behavior +- Read generated files in `dist/.rsbuild` to confirm final config, not assumed config + +## Profiling + +- Use Node CPU profiling (`--cpu-prof`) when JavaScript-side overhead is suspected +- Use `RSPACK_PROFILE=OVERVIEW` and analyze trace output for compiler-phase bottlenecks + +## Documentation + +- For the latest (v2) docs, read http://rsbuild.rs/llms.txt +- For Rsbuild v1 docs, read http://v1.rsbuild.rs/llms.txt diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 8ffda8a8..c238df6a 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -15,7 +15,9 @@ onlyBuiltDependencies: - agent-browser - core-js - core-js-pure + - edgedriver - esbuild + - geckodriver - msw - netlify-cli - sharp diff --git a/skills-lock.json b/skills-lock.json index 954b9fe4..2c056f1e 100644 --- a/skills-lock.json +++ b/skills-lock.json @@ -16,6 +16,11 @@ "sourceType": "github", "computedHash": "d473204df25defd08a7d47b55c6d124b41ebde440b774995952b65223d0d8d6f" }, + "rsbuild-best-practices": { + "source": "rstackjs/agent-skills", + "sourceType": "github", + "computedHash": "f4492b475155e925645753f32276b2aa77b7d565444527f528a8506d0b40477f" + }, "turborepo": { "source": "vercel/turborepo", "sourceType": "github", diff --git a/workleap-react-best-practices.skill b/workleap-react-best-practices.skill deleted file mode 100644 index bbb48360..00000000 Binary files a/workleap-react-best-practices.skill and /dev/null differ