elide adopt inicia un agente de programación con IA (Codex, Claude Code u OMP) en el directorio actual con un prompt
de migración integrado. El agente lee la compilación, edita archivos y ejecuta Elide; Elide no edita nada por sí
mismo. El prompt está pensado para proyectos Java y Kotlin compilados con Maven o Gradle, sobre todo Spring Boot, y
le indica al agente que mantenga funcionando cualquier otro lenguaje.
elide adoptelide adopt migra la compilación a elide.pkl. Para conservar Maven, Gradle o Bazel y usar los compiladores de
Elide dentro de ellos, consulte Integración con herramientas de compilación.
A qué proyectos se adapta
| Proyecto | Adecuación | Motivo |
|---|---|---|
| Aplicación Java o Kotlin de un solo módulo con Maven o Gradle | Buena | Las dependencias, la estructura de fuentes, las pruebas y el JAR se trasladan a elide.pkl. Probado. |
| Aplicación o servicio Spring Boot | Buena | El prompt revisa la clase principal, las dependencias y los plugins de Spring, los recursos, las pruebas y el empaquetado. Probado. |
| Una compilación JVM que quiere conservar, usando Elide solo para ejecutar y compilar | Buena | Elija Compilación existente: no se necesita elide.pkl. |
| Compilaciones de varios módulos | Sin probar | Elide tiene espacios de trabajo, pero el prompt no se ha evaluado con ellos. |
| Muchos plugins personalizados, fuentes generadas, procesamiento de anotaciones poco habitual | Mala | El agente conserva Maven o Gradle para los pasos que Elide no reemplaza; cuente con una migración parcial. |
| Android | Sin probar | El prompt no se ha evaluado con compilaciones de Android. |
| Solo JavaScript, TypeScript o Python | No hace falta | Elide ejecuta scripts de package.json, puntos de entrada de pyproject.toml y archivos node:test sin migración; consulte Configurar un proyecto. |
Proyectos probados
Estos tipos de proyecto superan elide install, elide build, elide test, el arranque y la compilación original,
partiendo de un checkout limpio, con el agente Codex:
| Tipo de proyecto | Compilación existente | Probado con |
|---|---|---|
| Java, aplicación Spring Boot | Maven | Spring Petclinic: dependencias, recursos, pruebas, aplicación ejecutable, JAR |
| Java, servicio Spring Boot | Gradle | Servicio REST de Spring: dependencias, recursos, pruebas, disponibilidad HTTP |
| Aplicación de línea de comandos Kotlin/JVM | Gradle Kotlin DSL | Un solo módulo con serialización y corrutinas de Kotlin |
El agente Claude Code se muestra con la aplicación Kotlin en el ejemplo completo.
Antes de empezar
-
Instale un agente e inicie sesión en él. Elide lo ejecuta desde
PATH:Opción Ejecutable Agente codexcodexOpenAI Codex CLI claudeclaudeClaude Code ompompOMP -
Haga commit del proyecto, para que la migración sea un único diff revisable.
-
Compílelo una vez con Maven o Gradle, para tener una referencia que funciona.
-
Haga
cdal proyecto o pase-p DIR.
Ejecutar de forma interactiva
elide adopt hace tres preguntas y luego inicia el agente. Las opciones responden una pregunta de antemano.
| Pregunta | Respuestas | Opción |
|---|---|---|
| Use elide build with an elide.pkl project manifest? | Sí (predeterminado): Compilación con Elide. No: Compilación existente | --build elide, --build existing |
| Which AI coding harness should perform the migration? | codex, claude, omp | --harness |
| How should the harness approve tool calls? | auto-approve, manual-approve, yolo | --approval |
elide adopt --build elide --harness claudeEsc en una pregunta sale con 0 sin iniciar el agente. Ctrl+C detiene el agente y sale con 130.
Estrategia de compilación
| Estrategia | El prompt le indica al agente que |
|---|---|
| Compilación con Elide | Escriba elide.pkl: mantenga src/main/src/test sin declarar conjuntos de fuentes, conserve las versiones y los ámbitos de las dependencias, defina el destino y la versión de Java, y defina el JAR con su clase principal. Conserve Maven o Gradle hasta que un elide install, elide build, elide test, elide run final y la compilación original pasen. |
| Compilación existente | Conserve Maven o Gradle como sistema de compilación; use el entorno de ejecución y las herramientas de Elide solo donde ayuden; no cree elide.pkl solo para elide build. |
Ambas terminan con un resumen de los archivos modificados, la validación ejecutada y lo que quede pendiente.
Modo de aprobación
| Modo | Codex | Claude Code | OMP | Uso |
|---|---|---|---|---|
auto-approve | --approve-for-me | --permission-mode auto | --auto-approve | Un árbol de trabajo sin cambios pendientes que va a revisar. |
manual-approve | (sin opción) | --permission-mode manual | --approval-mode= | Repositorios desconocidos o sensibles. |
yolo | --dangerously-bypass-approvals-and-sandbox | --permission-mode bypassPermissions | --approval-mode=yolo | Entornos desechables sin secretos. |
Con auto-approve o yolo, Elide ejecuta el agente en modo por lotes (codex exec --skip-git-repo-check,
claude --print, omp --print) y muestra una línea de progreso; --log también transmite la salida del agente. Con
manual-approve, el agente se ejecuta de forma interactiva y su salida se muestra siempre.
Ejecutar sin preguntas
elide adopt \
--build elide \
--harness codex \
--approval auto-approve \
--non-interactive--non-interactive requiere --build, --harness y --approval; si falta alguna, sale con 2. Rechaza
manual-approve. Sin terminal, elide adopt sale con 1 salvo que se indiquen --non-interactive y las tres.
Añadir indicaciones
--prompt-append FILE añade un archivo UTF-8 al final del prompt bajo Additional adoption guidance:. Repítala para
añadir varios, en orden:
elide adopt --prompt-append ./adoption-guidance.md --prompt-append ./team-rules.mdÚsela para datos que el agente no puede deducir: repositorios internos, qué compilación conservar, comandos que deben seguir funcionando.
Salida y códigos de salida
Las ediciones del agente son la única salida en el proyecto. En el ejemplo completo fueron un
elide.pkl nuevo y entradas de .gitignore para .dev/. Elide imprime Adoption log: PATH antes de empezar; el
registro se guarda en .dev/logs/adopt-<timestamp>-<pid>.log dentro del proyecto.
| Código de salida | Significado |
|---|---|
0 | El agente salió con 0, o se canceló una pregunta. |
1 | El agente falló (Error: claude exited unsuccessfully (exit status: 3)), no pudo iniciarse (Error: failed to launch codex: No such file or directory), un archivo de --prompt-append no se puede leer, o no hay terminal. |
2 | Falta una opción o no es válida. |
130 | Interrumpido con Ctrl+C. |
Validar la migración
Salir con 0 significa que el agente terminó, no que la migración sea correcta. Revise el diff: versiones de las
dependencias, directorios de fuentes y de recursos, punto de entrada, pruebas y empaquetado. Después ejecute:
elide install
elide build
elide test
elide runEjecute también la compilación original de Maven o Gradle mientras exista. Si el resultado es incorrecto, revierta los
cambios, añada indicaciones con --prompt-append y vuelva a ejecutarlo.
Ejemplo completo
Una aplicación de línea de comandos Kotlin de un solo módulo compilada con Gradle Kotlin DSL: Kotlin 2.3.20, JVM 17,
kotlinx-coroutines-core 1.10.2, kotlinx-serialization-json 1.9.0 y una prueba kotlin("test"). Tras hacer
commit:
elide adopt --build elide --harness claude --approval auto-approve --non-interactiveAdoption log: /path/to/project/.dev/logs/adopt-1767225600-973648.log
[3m 56s] ✓ Project adopted in 3m 56sEl agente añadió elide.pkl y un .gitignore, y no cambió nada más. El manifiesto conserva las versiones de Gradle y
traslada el resto a los términos de Elide:
amends "elide:project.pkl"
import "elide:Jvm.pkl" as Jvm
import "elide:Kotlin.pkl" as Kotlin
name = "kotlinx-cli"
version = "1.0.0"
dependencies {
maven {
packages {
"org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2"
"org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0"
// Gradle mediates annotations to 23.0.0 (via coroutines); Elide's nearest-wins picks 13.0.
"org.jetbrains:annotations:23.0.0"
}
testPackages {
// Gradle's `kotlin("test")` with `useJUnitPlatform()` resolves to the JUnit 5 variant.
"org.jetbrains.kotlin:kotlin-test-junit5:2.3.20"
// The JUnit launcher; with `testing = false`, Elide does not bundle one.
"org.junit.platform:junit-platform-console:1.10.1"
}
}
}
jvm {
main = "dev.elide.samples.MainKt"
target = 17
features {
// JUnit comes from testPackages above, as with Gradle's `kotlin("test")`; Elide's bundled JUnit is off.
testing = false
}
java {
source = 17
release = 17
}
}
kotlin {
// Matches the Kotlin Gradle plugin version in build.gradle.kts.
toolchain = new Kotlin.ManagedKotlinToolchain {
version = "2.3.20"
}
compilerOptions {
jvmTarget = 17
}
features {
// KotlinX libraries are declared explicitly above, at the versions Gradle uses; only the
// serialization compiler plugin (Gradle's `plugin.serialization`) is enabled.
kotlinx = false
serialization = true
coroutines = false
atomicfu = false
powerAssert = false
metro = false
reflection = false
}
}
artifacts {
["jar"] = new Jvm.Jar {
name = "kotlinx-cli"
main = "dev.elide.samples.MainKt"
}
}Validación desde un .dev/ limpio:
$ elide install
[504ms] ✓ Resolved 25 Maven dependencies (476ms)
[505ms] ✓ Dependencies installed in 484ms
$ elide test
1 pass
0 skip
0 fail
Ran one test across one file. (0.57s)
$ elide run
[ 16ms] ⇥ Dependencies ready (Up to date)
[ 16ms] ⇥ Kotlin main compilation skipped (Up to date)
[ 16ms] ⇥ Java main compilation skipped (Up to date)
[ 17ms] ⇥ Packaging jar 'jar' skipped (Up to date)
{"completed":["PARSE","EMIT"]}
[138ms] ✓ JVM jar application completed successfully (121ms)
[139ms] ✓ Build successful in 126mselide build generó .dev/artifacts/jar/kotlinx-cli/kotlinx-cli.jar, y gradle build siguió pasando.