Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Converts Geb (Groovy browser automation on Selenium) to any supported target, and emits Geb from any source.
Geb's design is distinctive in three ways:
Groovy DSL on Selenium. Every test is Groovy code that compiles against Selenium WebDriver underneath. The public surface looks like jQuery ($("#id"), $("div.item:first").click()) but the runtime is Selenium.
Content DSL. Pages declare named content via closures: login { $("#login") }. The return type determines usage — Navigator by default, but Module subclasses add behaviour, and primitives (string, number) come from { $(".count").text() as int }-style closures.
Spock integration is the default. Production Geb suites almost always run on Spock — each test is a def "scenario"() { given: ... when: ... then: ... } feature method. JUnit4/5 and TestNG integrations exist but are rare.
When to use
Trigger when:
GebConfig.groovy / GebConfig.properties present.
org.gebish:geb-* dependency in Gradle/Maven.
.groovy test files extending GebSpec, GebReportingSpec, GebTest, GebReportingTest.
import geb.Page or import geb.Module in Groovy files.
Groovy source with $() selector usage + waitFor blocks + to PageClass.
CI step ./gradlew geb or ./gradlew test with Geb-specific config.
How to use
Read the master orchestrator first.
Read this skill's reference files: source-profile.md, extraction.md, mappings.md.
Read target primer for your target.
Emit per target Emission Checklist.
Scope
Geb 5.x and 6.x. Semantic changes for Java 11+ baseline; syntax largely unchanged.