.agents/skills/rspack-webpack-gap-tracker/SKILL.md
47855258734785526309Keep the issue and comments as lists, not prose-only summaries.
Every update to the issue body or either placeholder comment must include a visible update time, using the local timezone when possible:
Last updated: YYYY-MM-DD HH:mm:ss Z
web-infra-dev/rspack since the last update.tests/rspack-test/ and the local webpack checkout, when available, for test coverage comparison.Run the bundled zx script before manually auditing missing webpack tests. It compares canonical test case directories and maps webpack's test/cases to Rspack's tests/rspack-test/normalCases and webpack's test/statsCases to Rspack's tests/rspack-test/statsOutputCases.
Run it through the skill workspace package:
pnpm --filter @rspack/skill-webpack-gap-tracker diff-tests -- --webpack /path/to/webpack
Pass positional filters like Rstest file filters. Treat each filter as a case-insensitive regular expression against a webpack-style test path; combine multiple filters with OR:
pnpm --filter @rspack/skill-webpack-gap-tracker diff-tests -- --webpack /path/to/webpack configCases/asset
pnpm --filter @rspack/skill-webpack-gap-tracker diff-tests -- --webpack /path/to/webpack '^(config|hot)Cases/css'
Add --content to emit unified file-content patches for test cases present in both repositories. Always pass a positional filter with content diff unless a full-repository comparison is intentional:
pnpm --filter @rspack/skill-webpack-gap-tracker diff-tests -- --webpack /path/to/webpack --content '^configCases/asset-modules/url-relative$'
Treat webpack.config.{js,mjs,cjs,ts,mts,cts} and rspack.config.{js,mjs,cjs,ts,mts,cts} as the same logical file when comparing content, even when their extensions differ. Keep their real names in diff headers. Use --context <lines> to control unified diff context.
Normalize supported text formats with one deterministic Prettier configuration before comparing them so quote, indentation, trailing-comma, line-ending, and trailing-whitespace differences do not appear in patches. If parsing fails, fall back to line-ending and trailing-whitespace normalization. Use --no-format only when the exact raw text difference is required.
Set the webpack checkout with --webpack or WEBPACK_ROOT. Set a different Rspack checkout with --rspack. Pass either a repository root or its test directory.
Use --direction webpack to show tests missing from Rspack, --direction rspack to show Rspack-only tests, or the default --direction both to show the symmetric directory diff. Read scripts/diff-tests.mjs only when changing its comparison behavior.
Use concise checklist entries. Prefer one feature or test group per item.
Missing feature entry:
- [ ] `<feature or option>` - Short compatibility note. Recommendation: recommended/pending/not recommended, with a short reason. Source: webpack release/config/PR link.
Completed feature entry:
- [x] `<feature or option>` - Completed in Rspack via PR/commit/issue link.
Missing test entry:
- [ ] `<webpack test directory>` - Missing notable cases: `case-a`, `case-b`. Related feature: none.
If a source is uncertain, mark it as needing verification instead of presenting it as confirmed.