PTENES
MÓDULO 3.1

🖥️ Vibe Coding: correcciones de frontend en vivo

Deja de adivinar el código. Esta skill enseña al agente a trabajar como un desarrollador de verdad: abre el navegador en tu pantalla, aplica el ajuste en vivo, muestra el resultado y solo lo guarda en el código fuente después de tu aprobación, siempre en una rama sandbox segura.

6
Temas
~50
Minutos
Inter.
Nivel
Práctica
Tipo
1

🔄 El flujo invertido

A todos nos ha pasado: te enfrentas a un bug de CSS —una navbar que se superpone al contenido, un iframe de video cortado en el borde, un modal que funciona en desktop y se desarma en mobile. Le describes el problema al agente y él se sumerge directo en el código, edita tres archivos, ejecuta el build... y la corrección sale mal. Vuelves a describirlo, vuelve a editar, ejecuta el build otra vez, y ahora rompe otra cosa.

El flujo tradicional de IA es de de atrás hacia adelante: primero adivina los cambios de código y espera que el resultado quede bien. Así no trabaja un desarrollador. Un desarrollador abre el navegador, inspecciona el elemento, ajusta el CSS en vivo, ve el resultado al instante y solo entonces escribe el código permanente. El Vibe Coding hace que tu agente trabaje exactamente así.

tradicional editar 3 archivos build se rompió ✗ ciclo de retrabajo programación por intuición navegador en vivo aprobar código ✓ una vez, bien hecho
Ver antes de grabar

Cada corrección se valida en pantalla antes de tocar el código.

Cero build perdido

Acaba el ciclo "editar → compilar → revertir → repetir".

Programación en pareja

Como un desarrollador con DevTools abierto al lado del tuyo.

Frontend, no arquitectura

Enfoque en el diseño y los errores visuales, no en el esquema de la base de datos.

2

📂 Confirmar el workspace

Antes de hacerlo cualquier trabajo, la skill obliga al agente a confirmar el repositorio activo. Detecta el directorio de trabajo actual y te pregunta claramente si es el proyecto correcto para la sesión. Nada de git, nada de browser, nada de edición hasta que confirmes. Es un paso sencillo que previene un daño costoso: modificar el proyecto equivocado.

📂 La verificación del repositorio

El agente detecta la ruta del workspace y te presenta la confirmación como una parada obligatoria. Algo así:

📂 Revisión del repo: estoy trabajando en /home/voce/projetos/landing-app. ¿Es el repositorio correcto para esta sesión o lo cambiamos?

Si dices que el workspace está mal, él detente de inmediato y te indica que vuelvas a abrir el proyecto correcto antes de volver a activar el flujo.

🔌 Nota de portabilidad

La skill se diseñó originalmente para un entorno con una herramienta nativa de "hard stop" (que bloquea la ejecución mientras espera al usuario). En otros agentes, puede que esa herramienta no exista.

La lección también aplica: sustituye la llamada por una pregunta directa y detente de verdad — continúa solo después de la respuesta. El comportamiento ("detente y espera") importa más que el nombre de la tool.

Detectar ruta

Descubrir automáticamente el directorio activo.

Mostrar y esperar

Mostrar la ruta y esperar hasta recibir confirmación.

Incorrecto = detenerse

Si el repo es incorrecto, el flujo termina de inmediato.

Antes que nada

Ninguna acción destructiva antes de este paso.

3

🌿 Branch-first y seguridad de git

Confirmado el workspace, el siguiente paso es crear el sandbox antes de cualquier análisis. El agente verifica el git status; si hay trabajo sin commit, se pausa y ofrece una copia de seguridad local. Con el árbol limpio, pide una descripción breve de la tarea y inmediatamente crea y cambia a una rama local. Tú experimentas sin miedo: la main nunca se toca.

terminal · primero la rama git
# 1. Verifica se há trabalho não commitado
git status

# 2. (se sujo) oferece backup local antes de começar
git add . && git commit -m "wip: backup antes do vibe"

# 3. cria a sandbox ANTES de abrir o navegador
git checkout -b vibe/fix-navbar-bleed

✓ Qué HACER

  • ✓Crear la rama antes de inspeccionar o abrir el navegador.
  • ✓Ofrecer una copia de seguridad del trabajo sin commit.
  • ✓Nombra la branch según la tarea: vibe/fix-modal-ratio.
  • ✓Una branch dedicada por corrección.

✗ Qué NO hacer

  • ✗Editar en la main o master directamente.
  • ✗Empezar a hacer cambios sin revisar el git status.
  • ✗Revertir archivos en pánico si el linter se queja.
  • ✗Reutilizar la misma branch para varias correcciones.
git status

Estado del árbol antes de cualquier cosa.

Respaldo opcional

El trabajo sin commit se convierte en un commit local.

checkout -b vibe/

Sandbox aislada, creada de inmediato.

Sin miedo

Experimentar con libertad sin afectar main.

4

🌐 Navegador visible e inyección en vivo

Ahora viene la parte que le da nombre a la skill. El agente identifica la URL objetivo: puede ser un servidor de desarrollo local (http://localhost:3000) o una URL alojada de staging/producción. Si es local, levanta el servidor en segundo plano; si está alojada, omite este paso. Luego inicia un navegador automatizado visible, NO headless, en tu pantalla: ves cómo ocurre la automatización en vivo.

Con la página abierta, el agente inspecciona el DOM (ahorrándote copiar y pegar HTML) y inyecta CSS/JS en vivo para probar correcciones — sin editar ningún archivo del proyecto. Toma capturas de los ajustes y te las muestra. Como alternativa, genera un snippet de JavaScript puro para que lo pegues en la consola de tu propio navegador.

Recreación ilustrativa — no es una captura de pantalla real
localhost:3000 · navegador visible
página en vivo
DevTools · inyección
document.querySelector('.navbar')
  .style.position = 'relative';

💡 Consejo práctico: recuperación de sesión

Si el navegador se vuelve a cargar (a propósito o por accidente) y se pierden las inyecciones en vivo, es simple: vuelve a inspeccionar el DOM y vuelve a aplicar el CSS/JS. Nada de archivos temporales ni registros de inyección complejos — el camino es mantener el proceso ligero.

Local o alojado

localhost con servidor de desarrollo o URL de staging.

Visible, no headless

Ves la automatización en tu pantalla.

Inyección en vivo

CSS/JS en la página en ejecución, cero archivos.

Capturas de pantalla

Prueba visual del ajuste, mostrada a ti.

5

⛔ Las detenciones obligatorias

Esta es el alma de la skill. Son cuatro puertas de aprobación obligatorias. El agente literalmente no puede saltarse pasos: se detiene y espera tu «adelante» en cada momento crítico. Tu código, tus reglas. Cada puerta tiene un límite claro y ninguna permite que la siguiente se abra por sí sola.

1

Aprobación visual

En el ciclo de troubleshooting

Después de inyectar la corrección, el agente se detiene y pregunta: "¿Cómo quedó? ¿Quieres iterar más en el diseño o estamos listos para pensar la estrategia de código?". La aprobación aquí solo permite pasar a la estrategia — no aplica código.

2

Aprobación de la estrategia

Antes de tocar el código

El agente busca en el repositorio dónde se definen los elementos y propone el enfoque más sólido (un _overrides.scss global? ¿un componente React anidado? ¿una utility de Tailwind?). Explica por qué y pide aprobación explícita.

3

Revisión del código

Después de guardar los archivos

Una vez aplicados los cambios en la rama local, el agente se detiene y pide: «Revisa el diff en el panel de Source Control y compruébalo en el navegador antes del push». Quien decide si el código está bien eres tú, comprobando localmente — no él.

4

Aprobación del push

Antes de cualquier comando git de envío

Solo entonces pregunta cuál es el remote de destino y confirma «¿listo para hacer commit y push?». Cada push va en una rama nueva y dedicada; nunca directamente en la main.

🚫 Regla anti-steamroll

É estrictamente prohibido combinar pasos en una sola respuesta. Frases como "voy a esbozar la estrategia y aplicarla de una vez" o "como lo aprobaste, ya voy aplicándola" son una violación del flujo.

Presentar la estrategia y aplicar el código en la misma respuesta rompe la regla. Cada paso requiere tu propia aprobación explícita. Si el agente está a punto de unir ambos, se detiene.

4 puertas

Visual · estrategia · código · push.

Regla de gate

Aprobar un paso no habilita el siguiente.

Anti-merge

Estrategia y aplicación, nunca juntas.

Tú decides

El usuario aprueba cada momento crítico.

6

✏️ Persistir, revisar y cerrar

Con la estrategia aprobada, el agente traduce la inyección temporal del navegador en código fuente limpio y permanente. Elimina las utility classes temporales, los console logs y los parches usados en la prueba en vivo. Fíjate en el cambio de vocabulario: es "persistir en la fuente", no "hardcodear". Solo la corrección final y perfecta se convierte en código: el historial de git queda limpio, sin una docena de intentos fallidos.

⛔ Durante la "persistencia": sin terminal, sin revertir

En este paso está prohibido que el agente ejecute cualquier comando de terminal — nada de npm, npx, y ningún comando git (ni git diff, ni git add). Solo edita los archivos y los guarda.

Y si un compilador en segundo plano se queja: no entres en pánico ni reviertas (git checkout -- file). Deja los archivos como están: el usuario se encarga de la compilación.

terminal · push (solo tras aprobación) git · uno a la vez
# Em PowerShell (Windows) NÃO encadeie com &&.
# Rode um comando por vez:
git add .
git commit -m "Fix: navbar bleed-through on staging"
git push origin vibe/fix-navbar-bleed

✅ Cierre de sesión (obligatorio)

Después del push exitoso, la sesión de vibe coding está completa. El agente avisa que terminó y te pide que abras un chat nuevo para la siguiente corrección.

¿Por qué? Para evitar context bleed entre tareas: un chat limpio previene conflictos de branch y confusiones con el contexto de la corrección anterior.

Límite de alcance: si pides una nueva arquitectura (p. ej., un esquema de base de datos) en medio de una sesión de vibe, te recuerda amablemente que Vibe Coding es para el diseño y los bugs visuales, y te recomienda un plan o una tarea estándar.

Persistir en la fuente

Código limpio, no "hardcode".

Sin revertir

¿El linter se quejó? Deja que el usuario lo resuelva.

Un comando a la vez

Compatible con PowerShell, sin &&.

Chat nuevo

La próxima corrección empieza desde cero.

Ejemplo de salida — una sesión completa

Mira cómo el agente corrige un iframe de video recortado dentro de un modal: desde la revisión del repo hasta el push, deteniéndose en cada punto de control.

📂 [revisión del repo] "Estoy en /app/landing. ¿Es el repo correcto?" → tú: sí
🌿 [branch] git status limpio → git checkout -b vibe/fix-video-modal
🌐 [browser] abre localhost:3000/curso visible, inspecciona el .modal iframe, ve el corte en el borde inferior
🔧 [live] inyecta max-width: 680px en el container con padding-bottom → screenshot
⛔ [detención obligatoria #1] "¿Cómo quedó?" → tú: perfecto, persiste
📋 [estrategia] grep localiza VideoModal.jsx → propone ajustar el max-width del wrapper allí
⛔ [detención obligatoria #2] aprueba la estrategia → tú: puedes
✏️ [persistir] edita el componente, limpia las clases temporales, guarda
⛔ [detención obligatoria #3] "Revisa el diff en Source Control" → tú: aprobado
🚀 [push] "¿remote? → origin" → agrega, confirma y envía en vibe/fix-video-modal
✅ [fin] "Sesión completa. Abre un chat nuevo para la siguiente."

🛠️ Ejercicios prácticos

Ejercicio 1 — Mapea las puertas

Toma un error visual real de tu proyecto (navbar, modal, iframe). Escribe, en una línea cada uno, lo que diría el agente ante cada uno de los 4 hard stops. Esto entrena tu ojo para reconocer cuándo está a punto de pasarse de la raya.

Ejercicio 2 — Prompt de activación

Usa este prompt listo para copiar para abrir una sesión de programación por intuición en tu propio agente:

Quiero hacer vibe coding. El bug: [describe el problema visual]. La URL: [localhost:3000/pagina o URL de staging]. Antes de cualquier cosa: confirma el workspace, crea una branch sandbox y abre el navegador visible. NO edites ningún archivo hasta que apruebe el ajuste en pantalla.

Ejercicio 3 — Crea un SKILL.md ejecutable

Escribe tu propia versión breve de la skill. Guárdala como vibe-coding/SKILL.md en la carpeta de skills de tu proyecto y actívala pidiendo una corrección visual. Adapta las herramientas de "hard stop" y "navegador" a los equivalentes nativos de tu agente.

--- name: vibe-coding description: Corrige bugs de frontend (CSS/HTML/DOM) priorizando la retroalimentación visual en vivo en el navegador antes de guardar los cambios en el código. Úsala para probar cambios de CSS/HTML, corregir elementos recortados o ajustar layouts visualmente. --- # Vibe Coding DIRECTIVA CRÍTICA: NO edites ningún archivo del repo al leer la solicitud. Abre la URL de destino PRIMERO. Solo guarda los cambios en el código después de la aprobación visual. ## Workflow - [ ] Confirma el workspace: detecta el directorio activo, muéstralo y ESPERA confirmación. - [ ] Primero la branch: revisa `git status`, ofrece crear una copia de seguridad y ejecuta `git checkout -b vibe/[desc]`. - [ ] Navegador visible: abre la URL (NO headless), inspecciona el DOM, inyecta CSS/JS en vivo y toma una captura de pantalla. - [ ] PARADA OBLIGATORIA #1 — aprobación visual: «¿Cómo quedó?». Solo continúa con «sí, persiste los cambios». - [ ] Estrategia (sin código): busca en la fuente, propone el enfoque más robusto y explica por qué. - [ ] PARADA OBLIGATORIA #2 — aprobación de la estrategia. - [ ] Guardar los cambios en la fuente: convierte la inyección en código limpio. SIN terminal, SIN revertir. - [ ] PARADA OBLIGATORIA #3 — revisión del diff por el usuario. - [ ] Push: pide el remote; luego ejecuta add/commit/push en una branch dedicada (un comando a la vez). - [ ] Cerrar: completa la sesión y pide abrir un chat nuevo para la próxima corrección. ## Reglas estrictas - Anti-merge: la estrategia y la aplicación NUNCA van en la misma respuesta. - Una branch por corrección. Nunca hagas push directo a main. - Alcance: solo frontend/layout. Arquitectura → plan estándar.

🎯 Resumen del módulo

✓
Flujo invertido — ver el ajuste en el navegador antes de tocar el código, como un desarrollador de verdad.
✓
Confirmar workspace — el repo correcto antes de cualquier git, browser o edición.
✓
Branch-first — sandbox vibe/ creada de inmediato; main queda intacta.
✓
Navegador visible — inyección de CSS/JS en vivo, capturas de pantalla, cero archivos editados.
✓
4 paradas obligatorias — visual, estrategia, código y push; el agente no se adelanta.
✓
Persistir y finalizar — solo la corrección final se convierte en código; chat nuevo para la siguiente.

Siguiente Módulo:

3.2 — Funnel Builder: un prompt, un embudo completo