Skip to content

chore(ai): add rolldown REPL decode skill#9245

Merged
Dunqing merged 1 commit into
mainfrom
chore/add-rolldown-repl-decode-skill
Apr 29, 2026
Merged

chore(ai): add rolldown REPL decode skill#9245
Dunqing merged 1 commit into
mainfrom
chore/add-rolldown-repl-decode-skill

Conversation

@Dunqing

@Dunqing Dunqing commented Apr 28, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds the rolldown-repl-decode Claude Code skill into the repo so it ships with the project.

Why

When users report a Rolldown bug, the most useful context is almost always the REPL share link — it captures the exact source files and the Rolldown version that reproduce the issue. But the REPL stores all of that state in location.hash as base64(zlib(JSON)), which the browser never sends to the server. A naive fetch of the URL returns an empty page, so Claude Code has no way to read what the user actually typed.

This skill bridges that gap. With it installed, Claude Code can:

  • Detect a Rolldown REPL link (repl.rolldown.rs/#…, rolldown-repl.netlify.app/#…) anywhere in an issue body or chat.
  • Decode the hash locally to recover the source files + Rolldown version.
  • Optionally drop the files onto disk so the bug can be reproduced against the matching Rolldown version.

End result: Claude Code can analyze and fix REPL-linked issues with the actual reproduction in hand, instead of asking the reporter to repaste their code.

What's in this PR

  • .claude/skills/rolldown-repl-decode/SKILL.md — when-to-trigger metadata + usage.
  • .claude/skills/rolldown-repl-decode/scripts/decode.mjs — plain Node script (no deps) that prints the decoded file list + version, and writes the sources to disk with --write <dir>.
  • .gitignore — loosen .claude ignore so .claude/skills/ is tracked, while keeping local user state (settings.local.json, history, worktrees) ignored.

Test plan

  • node .claude/skills/rolldown-repl-decode/scripts/decode.mjs prints usage.
  • Decoded a real REPL share URL end-to-end (file list + version + --write output).

@netlify

netlify Bot commented Apr 28, 2026

Copy link
Copy Markdown

Deploy Preview for rolldown-rs canceled.

Name Link
🔨 Latest commit eef4e6f
🔍 Latest deploy log https://app.netlify.com/projects/rolldown-rs/deploys/69f2217cf8140c0008c28f4d

@Dunqing Dunqing changed the title chore: add rolldown REPL decode skill chore(ai): add rolldown REPL decode skill Apr 28, 2026
@Dunqing

Dunqing commented Apr 28, 2026

Copy link
Copy Markdown
Contributor Author
image It works well in my quick test.

@Dunqing
Dunqing enabled auto-merge (squash) April 28, 2026 08:04
Copy the rolldown-repl-decode Claude Code skill into the repo so it
ships with the project. The skill decodes the base64+zlib payload that
the rolldown REPL stores in the URL hash, which is helpful when
investigating issues that include a "minimal reproduction" REPL link.

Also loosen the .claude gitignore to allow .claude/skills/ to be
tracked, while keeping local user state (settings.local.json, history,
worktrees) ignored.

Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
@Dunqing
Dunqing force-pushed the chore/add-rolldown-repl-decode-skill branch from ebd5dc9 to eef4e6f Compare April 29, 2026 15:19
@Dunqing
Dunqing merged commit 4d08c2a into main Apr 29, 2026
31 checks passed
@Dunqing
Dunqing deleted the chore/add-rolldown-repl-decode-skill branch April 29, 2026 15:20
This was referenced May 6, 2026
@shulaoda shulaoda mentioned this pull request May 7, 2026
shulaoda added a commit that referenced this pull request May 7, 2026
## [1.0.0] - 2026-05-07

### 🐛 Bug Fixes

- dev/lazy: lazily compiled modules should be watched (#9301) by @h-a-n-a
- implement dynamic dominator merge logic (#9270) by @TheAlexLichter
- dev: apply __toCommonJS interop when CJS requires ESM in HMR finalizer (#9261) by @h-a-n-a

### 🚜 Refactor

- ecma_ast: tighten allocator access to enforce Sync invariant (#9278) by @IWANABETHATGUY
- scan_stage: remove stmt_infos field from EcmaView (#9276) by @IWANABETHATGUY
- link_stage: detach stmt_infos from EcmaView (#9274) by @IWANABETHATGUY
- link_stage: detach depended_runtime_helper from EcmaView to remove unsafe (#9265) by @IWANABETHATGUY
- link_stage: remove unsafe in determine_module_exports_kind (#9253) by @IWANABETHATGUY

### 📚 Documentation

- getting-started: remove RC warning for 1.0.0 release (#9310) by @shulaoda
- getting-started: update version references for 1.0.0 release (#9309) by @shulaoda
- add Vite+ tab to getting-started snippets (#9285) by @shulaoda
- lazy-barrel: clarify own-exports behavior for import-then-export records (#9298) by @shulaoda
- restructure top navigation around Learn vs Reference (#9284) by @shulaoda
- builtin-plugins: add bundle analyzer plugin docs (#9292) by @shulaoda
- design doc for reference_needed_symbols (#9264) by @IWANABETHATGUY

### ⚡ Performance

- devtools: write logs on a background thread (#9219) by @IWANABETHATGUY

### ⚙️ Miscellaneous Tasks

- mark esbuild/ts/parameter_props_use_define_for_class_fields_true as passed (#9308) by @sapphi-red
- deps: upgrade oxc to 0.129.0 (#9297) by @shulaoda
- deps: update rollup submodule for tests to v4.60.3 (#9294) by @sapphi-red
- deps: update test262 submodule for tests (#9295) by @sapphi-red
- ai: add rolldown REPL decode skill (#9245) by @Dunqing
pull Bot pushed a commit to olrtg/rolldown that referenced this pull request May 7, 2026
## [1.0.0] - 2026-05-07

### 🐛 Bug Fixes

- dev/lazy: lazily compiled modules should be watched (rolldown#9301) by @h-a-n-a
- implement dynamic dominator merge logic (rolldown#9270) by @TheAlexLichter
- dev: apply __toCommonJS interop when CJS requires ESM in HMR finalizer (rolldown#9261) by @h-a-n-a

### 🚜 Refactor

- ecma_ast: tighten allocator access to enforce Sync invariant (rolldown#9278) by @IWANABETHATGUY
- scan_stage: remove stmt_infos field from EcmaView (rolldown#9276) by @IWANABETHATGUY
- link_stage: detach stmt_infos from EcmaView (rolldown#9274) by @IWANABETHATGUY
- link_stage: detach depended_runtime_helper from EcmaView to remove unsafe (rolldown#9265) by @IWANABETHATGUY
- link_stage: remove unsafe in determine_module_exports_kind (rolldown#9253) by @IWANABETHATGUY

### 📚 Documentation

- getting-started: remove RC warning for 1.0.0 release (rolldown#9310) by @shulaoda
- getting-started: update version references for 1.0.0 release (rolldown#9309) by @shulaoda
- add Vite+ tab to getting-started snippets (rolldown#9285) by @shulaoda
- lazy-barrel: clarify own-exports behavior for import-then-export records (rolldown#9298) by @shulaoda
- restructure top navigation around Learn vs Reference (rolldown#9284) by @shulaoda
- builtin-plugins: add bundle analyzer plugin docs (rolldown#9292) by @shulaoda
- design doc for reference_needed_symbols (rolldown#9264) by @IWANABETHATGUY

### ⚡ Performance

- devtools: write logs on a background thread (rolldown#9219) by @IWANABETHATGUY

### ⚙️ Miscellaneous Tasks

- mark esbuild/ts/parameter_props_use_define_for_class_fields_true as passed (rolldown#9308) by @sapphi-red
- deps: upgrade oxc to 0.129.0 (rolldown#9297) by @shulaoda
- deps: update rollup submodule for tests to v4.60.3 (rolldown#9294) by @sapphi-red
- deps: update test262 submodule for tests (rolldown#9295) by @sapphi-red
- ai: add rolldown REPL decode skill (rolldown#9245) by @Dunqing

Co-authored-by: shulaoda <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants