Buscar/Cambia una CLI de desarrollo web hecha con JavaScript y código nativo en la capa correcta

Cambia una CLI de desarrollo web hecha con JavaScript y código nativo en la capa correcta

Úsalo al cambiar una CLI de desarrollo web que mezcla JavaScript y código nativo. Encuentra la capa propietaria del comportamiento, revisa las rutas de comando global y local, y elige las pruebas según el tipo de cambio.

Para usar estas reglas de IA
## Encuentra la capa propietaria de un comportamiento de la CLI y sigue las rutas global y local Antes de editar, asigna la solicitud al componente propietario del comportamiento: - los puntos de entrada de JavaScript o TypeScript controlan el comportamiento de alto nivel de la CLI local y las exportaciones de los paquetes; - los crates nativos controlan el binario global independiente, el arranque del entorno de ejecución, la integración con el gestor de paquetes, los instaladores, las migraciones y las utilidades de procesos compartidas; - el enlace nativo controla el puente entre la CLI local de JavaScript y las implementaciones nativas de los comandos; - los paquetes centrales exponen las superficies integradas de compilación, pruebas, documentación y empaquetado; - las herramientas del repositorio controlan los registros locales, los asistentes de compilación, las fixtures y el soporte de publicación; - la documentación y las instrucciones de proyecto generadas son productos distintos con fuentes diferentes. Sigue de forma independiente las rutas global y local de un comando cuando ambas puedan implementar la misma operación para el usuario. Una corrección en una ruta está incompleta si la otra sigue siendo incoherente. No edites las instrucciones de proyecto generadas cuando la tarea solo afecte a las instrucciones para colaboradores del repositorio. Prefiere los documentos canónicos de arquitectura y configuración a las explicaciones copiadas. ## Separa los comandos integrados de las tareas del ejecutor de tareas Distingue los comandos integrados de la cadena de herramientas del ejecutor de tareas. Un comando integrado de pruebas, compilación, análisis estático o formato puede invocar una implementación incluida, mientras que un comando de ejecución lanza un script de paquete o una tarea configurada con el mismo nombre. Trata los scripts de paquete como objetivos de ejecución de primera clase. Usa una configuración explícita solo cuando una tarea necesite dependencias, caché, configuración del comando, seguimiento de entradas o seguimiento del entorno. Cada nombre de tarea debe tener un único propietario. No definas el mismo nombre tanto en los scripts de paquete como en la configuración de herramientas. Conserva la configuración de tareas en el archivo canónico actual; no restaures formatos de configuración independientes retirados. Mantén las importaciones públicas de pruebas en la superficie de paquete compatible y genera los adaptadores de compatibilidad desde el script de compilación propietario. No recrees paquetes retirados ni supongas que una dependencia externa pertenece al espacio de trabajo local. Antes de cambiar el enrutamiento, inspecciona la ayuda de los comandos, las versiones de las herramientas incluidas, las exportaciones de los paquetes y la documentación de tareas más cercana. ## Elige las pruebas mínimas que cubren el tipo de cambio Usa el conjunto de validaciones más pequeño que cubra el comportamiento modificado: - documentación o instrucciones para agentes: comprueba las rutas, los comandos, los enlaces y los espacios en blanco referenciados; - comportamiento de la CLI de JavaScript: ejecuta la comprobación del repositorio, las pruebas unitarias y las pruebas específicas del paquete; - comportamiento de la CLI nativa o de un crate: ejecuta las comprobaciones, pruebas y análisis estáticos nativos; - presentación de comandos o diseño de interacción: ejecuta pruebas de instantáneas enfocadas en un pseudoterminal y revisa las diferencias; - comportamiento de la CLI global: recompila e instala el binario global local, y después verifica su versión y los comandos afectados; - comportamiento de publicación o empaquetado: ejecuta la compilación de publicación; - integración previa a la fusión: prepara la CLI, ejecuta todas las pruebas e inspecciona el estado del repositorio. Usa el modo de corrección solo cuando las reescrituras de formato o análisis estático pertenezcan intencionadamente al alcance. Para un cambio de comportamiento, localiza la prueba existente más cercana antes de editar y añade cobertura en la misma zona. No ejecutes suites amplias y no relacionadas para cambios exclusivos de documentación. Tampoco afirmes que el enrutamiento de la CLI es correcto basándote únicamente en pruebas unitarias cuando interviene la distribución de herramientas incluidas. ## Añade pruebas de snapshot en pseudoterminal que funcionen en Unix y Windows Añade los casos nuevos de línea de comandos y flujos interactivos al arnés de instantáneas con pseudoterminal del repositorio. Define cada caso mediante una matriz explícita de argumentos, no mediante una cadena de shell. Usa los comandos auxiliares del arnés en lugar de utilidades básicas específicas de una plataforma, de modo que la misma fixture se comporte igual en Unix y Windows. Declara si el caso afecta a la CLI local, a la global o a ambas; los casos locales requieren una distribución local recién compilada. Las diferencias de instantáneas deben provocar un fallo con un diff revisable y generar un archivo de resultado candidato. Actualiza las instantáneas únicamente mediante el modo de registro explícito y revisa el resultado registrado como código antes de registrarlo. Para cambios en la experiencia de los comandos, prueba tanto el comportamiento concreto como su transcripción. Para instalaciones o migraciones, sirve el checkout empaquetado mediante la interfaz de registro local del repositorio, en lugar de eludir el comportamiento real del gestor de paquetes. Mantén explícitos los hitos interactivos y los pasos de pulsaciones para que los fallos identifiquen la fase que ha divergido. ## Sigue las reglas de lint de cada lenguaje y cambia los archivos generados solo con su generador En código nativo, sigue las restricciones de análisis estático, los asistentes de presentación compartidos, la configuración del entorno, la gestión de rutas y el estilo de los comandos cercanos. En TypeScript, usa el compilador canónico, los asistentes de presentación en terminal y la configuración de tareas del repositorio. No dupliques reglas del lenguaje en las instrucciones para colaboradores cuando la fuente autorizada sea el analizador, la configuración del compilador o una referencia del código. Trata los enlaces, adaptadores, archivos de agentes, distribuciones y resultados de instantáneas generados como artefactos con propietario. Modifícalos únicamente mediante su generador o mediante el flujo explícito de aceptación de instantáneas. Limita el diff a la capa propietaria solicitada y no toques archivos con o sin seguimiento que no estén relacionados. Si un archivo generado cambia de forma inesperada, investiga la fuente o el generador en vez de aplicar un parche al derivado. Al validar una CLI global instalada, usa la ruta de preparación documentada y confirma la versión resuelta. No deduzcas que una compilación de paquete también ha actualizado el binario instalado. ## Depura comparando la ruta nativa global con la ruta JavaScript local Empieza registrando las versiones de los componentes incluidos e inspeccionando la ayuda general y la específica de cada comando. Para defectos de enrutamiento, compara la ruta nativa global con la ruta local de JavaScript y el enlace. Para defectos de configuración, compara la extracción estática con la resolución alternativa de JavaScript. Para defectos del gestor de paquetes, inspecciona tanto la superficie de comandos como las capas de instalación y sus instantáneas de terminal. Para defectos de comprobación, análisis estático, formato, comprobación de tipos o pruebas, valida el comando de extremo a extremo. El enrutamiento de las herramientas incluidas puede hacer que las pruebas aisladas de un paquete se aprueben mientras se ignora silenciosamente la configuración del usuario. Cuando un fallo dependa de la variante local o global, reproduce ambas de manera explícita. Cuando dependa de un resultado generado, recompila el derivado exacto antes de concluir que la corrección de la fuente no funciona. Usa las instrucciones de navegación para encontrar los archivos autorizados; no permitas que una guía breve para agentes sustituya a la documentación detallada de arquitectura, migración, tareas o instantáneas.