By kubuszok
Scala Native porting toolkit — enforcement gates, migration tracking, and conversion guides
Audits ported code against original source. Finds missing methods, dropped branches, logic changes, stubs, and shortcuts. Creates issues for every discrepancy. Use after the implementer reports work is done.
Faithfully ports code from original source (Java/Dart/Ruby/JS) to Scala 3, following project conversion rules. Use this agent for all porting work.
Audit a ported Scala file against its original source — runs shortcuts, compare, stale-stubs, and records the result
Audit all ported Scala files in a package against their original sources.
Show audit status for a package or the whole project — counts by status, identifies unaudited files
Show migration and audit progress — database stats, covenant coverage, enforcement summary
Convert an original source file (Java/Dart/Ruby/JS) to idiomatic Scala 3.
Executes bash commands
Hook triggers when Bash tool is used
Modifies files
Hook triggers on file write and edit operations
Uses power tools
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Uses Bash, Write, or Edit tools
Uses Bash, Write, or Edit tools
rescale verb
- To alter the scale of a drawing or project; to change the physical proportions.
- To change the scope of a business or project to meet a change in demands.
- Establish on a new scale.
re-scale is an utility created to make it easier to port useful libraries to Scala using Claude Code via a project-agnostic Scala Native CLI.
It gives any codebase the same disciplined developer workflow without dragging
in project-specific behavior. One installable, tested, memory-bounded
binary that learns project specifics from .rescale/*.yaml config
files instead of hard-coding them.
re-scale is the third iteration of the same idea: a project-local dev CLI that wraps a fast Claude Code hook + a persistent migration state layer, written specifically to support large AI-assisted language-to-language porting work.
The lineage:
sge-dev was the original. It lived inside
SGE — the Scala Game
Engine, a cross-platform Scala Native game engine ported from
libgdx + custom native components, targeting six desktop and three
Android architectures simultaneously. sge-dev started as a handful
of helper scripts and grew organically into ~2500 LOC of
project-specific Scala.
ssg-dev was bootstrapped FROM sge-dev when the same author
started SSG — the
Scala Static Site Generator — porting five upstream libraries
to Scala Native cross-platform: flexmark-java (Markdown, Java),
liqp (Liquid, Java), dart-sass (SCSS, Dart), jekyll-minifier
(HTML/JS/CSS minification, Ruby), and terser (JavaScript
compiler, JS). At the time of the re-scale split, ssg carried
~944 .scala files across 5 modules and ~80 KLoC. ssg-dev started
as a copy of sge-dev with the obviously-game-engine-specific bits
replaced; from there the two forks diverged file-by-file as each
project grew its own opinions, until they were nearly-identical-
but-not-quite duplicates.
re-scale is the rewrite that finally factors out the
project-specific behavior into .rescale/*.yaml config files.
No more forks. The tool itself is generic; the YAML in any given
consuming repo carries the SGE-specific or SSG-specific or
$YOUR-NEXT-PROJECT-specific opinions.
All three iterations share the same operating constraint: a single human guiding multiple Claude Code sessions through hundreds of files of language-to-language porting work. Neither sge-dev nor ssg-dev nor re-scale is a standard or widely-adopted approach — they were invented to make this specific workflow tractable.
Claude Code is excellent at code transformation, but the porting workflow exposed two recurring failure modes that off-the-shelf tooling didn't address:
By default, Claude Code can shell out to anything the OS allows. In a repo with hundreds of files and active in-flight work, that's a liability:
rm -rf <some-path> is usually correct, but the one time it isn't,
it's catastrophic. A hard deny saves an hour of "did I just
delete my work?" panic.grep / find / cat / sed works, but the dedicated
Claude Code tools (Grep, Glob, Read, Edit) are much faster for the
user (no shell startup, no terminal scrollback flooding) AND let
Claude reason about results structurally instead of reparsing
wall-of-text output. Redirecting these to the right tool with a
one-line deny reason teaches Claude to default to the better path.sbt --client talks to a persistent sbt server that keeps the JVM
warm and avoids the multi-second startup penalty bare sbt pays
on every invocation. Forcing the client form means a 200 ms
compile instead of a 30 s one — and across a session of dozens
of build invocations that compounds into hours of dead time.
(sbt --client itself can hang if build.sbt has an error AND
reload-on-change is enabled; the rule isn't "client is always
hang-proof," it's "stop paying JVM startup over and over.").jar to grep through, writing
under /etc, reaching for .env) are so universally wrong they
deserve a hard stop regardless of intent.npx claudepluginhub kubuszok/re-scale --plugin re-scaleCross-platform Scala setup guide — sbt-projectmatrix, Scala.js, Scala Native, native providers
Scala code intelligence for coding agents — fast symbol search, find definitions, and find references
Migrator - The architect of transformation. Orchestrates complex code migrations between frameworks, libraries, and API versions with precision codemods, incremental strangler fig patterns, and automated transformation. Ensures zero-downtime migrations with comprehensive test coverage and rollback strategies.
Migrate APIs between versions with backward compatibility
Look up the public API of any JVM dependency (Scala 3, Scala 2, Java) from the terminal
Advanced Scala programming skills for functional programming and type systems
DevsForge Enterprise Code Migration Architect delivering comprehensive legacy code modernization, framework migration strategies, and automated refactoring workflows that transform code migration from manual intensive process into strategic business value creation and technical excellence catalyst