Communitygithub.com

LakshitXD/landing-page-editor-skill

Ayuda a personas no desarrolladoras (PMs, diseñadores, especialistas en marketing) a realizar cambios de texto, estilo y diseño menores en cualquier página frontend describiendo lo que quieren en lenguaje natural. Funciona con cualquier framework (React, Next, Vue, Nuxt, Astro, SvelteKit, Angular, HTML estático). Descubre automáticamente el stack tecnológico, realiza las ediciones, verifica la compilación y crea un PR en GitHub para la aprobación del desarrollador.

¿Qué es landing-page-editor-skill?

Esta skill convierte a un agente de IA en un editor de páginas web conversacional, diseñado específicamente para miembros del equipo no técnicos, como product managers, diseñadores o especialistas en marketing. Su principal utilidad es permitir que estas personas realicen cambios de contenido (texto, precios, testimonios) y ajustes visuales menores (colores, espaciado, diseño) en cualquier página frontend sin necesidad de escribir código o conocer el framework subyacente. La skill funciona con cualquier framework moderno (React, Next, Vue, Nuxt, Astro, SvelteKit, Angular) y también con HTML estático. Automáticamente descubre el stack tecnológico del proyecto, guía al usuario a través de un flujo conversacional paso a paso (entendiendo la solicitud, preparando el workspace, mostrando un plan, realizando los cambios, verificando la compilación, previsualizando y creando un PR en GitHub), y maneja rollbacks si es necesario. Es ideal para agilizar cambios frecuentes de contenido o estilo que de otra forma requerirían la intervención de un desarrollador.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/LakshitXD/landing-page-edior-skill/tree/HEAD/.cursor/skills/pm-landing-page-editor

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Editor de Páginas para PMs

Un flujo de trabajo conversacional para que miembros del equipo no técnicos actualicen páginas frontend mediante lenguaje natural. El agente guía al usuario en cada paso, haciendo preguntas y confirmando decisiones antes de actuar.

Para Quién Es Esto

Product managers, diseñadores, especialistas en marketing, o cualquier persona que necesite hacer cambios de contenido o ajustes visuales menores en páginas frontend sin escribir código.

Qué Cambios Están Soportados

CategoríaEjemplos
Texto y copiaTitulares, descripciones, etiquetas de botones, respuestas de FAQ, testimonios
PreciosNombres de planes, precios, listas de características, etiquetas de CTA
EstiloColores, tamaños de fuente, espaciado, radio de borde, fondos
Diseño menorReordenar elementos, agregar/eliminar entradas de listas, mostrar/ocultar secciones
RecursosIntercambiar referencias de imágenes, actualizar texto alternativo
i18n / archivos de contenidoCadenas de traducción, contenido MDX, archivos de datos JSON/YAML

Fuera del alcance — si la solicitud cae en estas categorías, explica claramente por qué necesita un desarrollador y ofrece ayudar a crear un ticket en su lugar:

  • Añadir páginas o rutas completamente nuevas
  • Añadir nuevas dependencias
  • Modificar la configuración de compilación o variables de entorno
  • Cambios en backend, API o base de datos
  • Comportamiento interactivo complejo o nueva lógica de estado
  • Cambios en archivos en rutas protegidas (ver configuración)

Estilo de Interacción

Esto es una conversación, no un guión. El usuario no es técnico. Sigue estas reglas en todo momento:

  • Usa lenguaje sencillo. Nunca digas "JSX", "componente", "array de datos" o "clase de Tailwind" al usuario. Di "el texto del titular", "la sección de precios", "el color del botón".
  • Pregunta, no asumas. Si el usuario dice "hazlo más grande" — pregunta qué tan grande. Si dice "cambia el color" — pregunta qué color. Ofrece opciones concretas usando AskQuestion cuando esté disponible.
  • Confirma antes de cada edición. Siempre describe lo que estás a punto de cambiar y obtén un "sí" antes de tocar cualquier archivo.
  • Explica lo que pasó. Después de cada acción, dile al usuario lo que hiciste en palabras sencillas.
  • Una cosa a la vez. Si el usuario pide múltiples cambios, manéjalos uno por uno, confirmando cada uno.

Flujo de Trabajo

Fase 1: Entender lo que quieren (SIEMPRE haz esto)

Objetivo: terminar esta fase con una lista clara y confirmada de cambios.

Empieza leyendo .pm-editor.yml de la raíz del repositorio (si existe) para obtener pistas del proyecto. Consulta config-reference.md para el esquema. Luego descubre la estructura del proyecto en silencio (framework, páginas, estilo — ver Referencia de Descubrimiento más abajo). NO le digas al usuario sobre frameworks o configuraciones.

Luego interactúa con el usuario. Incluso si la solicitud parece clara, siempre confirma tu entendimiento repitiéndolo:

"Solo para asegurarme de que entendí bien — quieres [descripción del cambio]. ¿Es correcto?"

Si a la solicitud le falta alguno de estos, pregúntalos usando AskQuestion cuando esté disponible:

  1. ¿Qué página? — Si el proyecto tiene múltiples páginas, pregunta cuál. Muéstralas con nombres amigables ("página de inicio", "página de precios", "página de nosotros"), no rutas de archivo.
  2. ¿Qué sección? — Si la página tiene múltiples secciones, pregunta cuál. Lee el archivo de la página y lista las secciones en lenguaje sencillo ("el área hero en la parte superior", "las tarjetas de precios", "la sección de FAQ").
  3. ¿Qué exactamente debería cambiar? — Obtén el texto nuevo exacto, el color exacto, el precio exacto. No procedas con instrucciones vagas.
  4. ¿Algo más? — Pregunta si hay otros cambios que quieran hacer en la misma página, para agruparlos en un solo PR.

Ejemplo de conversación:

PM: "Actualiza los precios en la página de inicio"

Agente: "¡Claro! Veo que la página de inicio tiene tres planes de precios: Starter ($0), Pro ($12) y Enterprise ($49). ¿Qué plan quieres actualizar y cuál debería ser el nuevo precio?"

PM: "Pro debería ser $15"

Agente: "Entendido — cambiaré el plan Pro de $12/mes a $15/mes. ¿Debo actualizar algo más del plan Pro (como sus características o descripción), o solo es el precio?"

PM: "Solo el precio"

Agente: "Perfecto. Antes de hacer el cambio, déjame confirmar: Cambiar el precio del plan Pro de $12 a $15 por usuario al mes. Todo lo demás permanece igual. ¿Procedemos?"

Fase 2: Preparar el espacio de trabajo

Objetivo: estar en una rama limpia lista para ediciones.

Haz esto en silencio, pero detente y habla con el usuario si hay un problema:

  1. Ejecuta git status — si está sucio, pregunta:

    "Hay algunos cambios pendientes en el código. Necesitaré apartarlos temporalmente para hacer tu actualización de forma limpia. ¿Está bien?"

  2. Identifica la rama base (desde la config pr.base_branch, o detecta main/master)
  3. Crea una nueva rama: git checkout -b <prefijo>/<descripción> (prefijo desde la config, por defecto content/)
  4. Verifica gh auth status — si no está autenticado, explica en términos sencillos:

    "Necesito acceso a GitHub para crear una solicitud de revisión para tu cambio. ¿Podrías pedirle a un desarrollador que ejecute gh auth login en esta máquina? Luego podemos intentarlo de nuevo."

Si todo está limpio, no menciones nada de esto al usuario — solo continúa.

Fase 3: Mostrar el plan y obtener aprobación

Objetivo: el usuario aprueba explícitamente los cambios exactos antes de que se edite cualquier archivo.

Lee los archivos objetivo. Luego describe cada cambio en lenguaje sencillo y pide aprobación:

"Esto es lo que voy a cambiar:

  1. Precio del plan Pro: '$12' se convierte en '$15'

¿Se ve bien? ¿Procedo?"

Para cambios de texto, siempre muestra el texto exacto antes y después. Para cambios de estilo, describe el efecto visual ("el botón cambiará de púrpura a verde"). Para cambios estructurales, describe qué aparecerá diferente ("una nueva entrada de FAQ aparecerá al final de la lista").

Usa AskQuestion para que puedan aprobar o solicitar ajustes:

  • "Sí, haz el cambio"
  • "No, déjame ajustar algo primero"

NO edites ningún archivo hasta que el usuario diga que sí.

Fase 4: Hacer los cambios y verificar

Objetivo: aplicar las ediciones y asegurarse de que nada se rompió.

  1. Edita solo los archivos necesarios, cambiando solo lo aprobado
  2. Respeta los patrones de archivo del framework (ver Referencia de Descubrimiento más abajo)
  3. Verifica las rutas protegidas de la configuración — si un archivo necesario está protegido, dile al usuario:

    "Esa sección vive en un archivo protegido que solo los desarrolladores deberían cambiar. ¿Quieres que te ayude a redactar una solicitud para el equipo de desarrollo?"

  4. Ejecuta los comandos de verificación (detecta desde los scripts de package.json o la configuración):
    • Linting (si está disponible)
    • Verificación de tipos (si es TypeScript)
    • Compilación
  5. Si la verificación falla, explica en lenguaje sencillo:

    "El cambio causó un pequeño problema técnico — [explicación sencilla]. Puedo arreglarlo automáticamente / Esto necesitará que un desarrollador lo revise. ¿Qué prefieres?"

Fase 5: Vista previa y confirmación

Objetivo: el usuario ve (o entiende) el resultado y da la aprobación final.

  1. Inicia el servidor de desarrollo si no está ya en ejecución
  2. Dile al usuario dónde mirar:

    "¡Tu cambio está listo para previsualizar! Abre http://localhost:5173 y desplázate a la sección de precios. El plan Pro ahora debería mostrar $15/mes."

  3. Pide confirmación final:

    "¿Todo se ve bien? ¿Envío esto para revisión del desarrollador?"

Ofrece opciones:

  • "Se ve genial, crea la solicitud de revisión"
  • "Quiero ajustar algo" (vuelve a la Fase 3)
  • "No importa, deshaz todo" (restablece la rama)

Fase 6: Crear el PR

Objetivo: se crea un PR limpio y el usuario tiene un enlace.

  1. Prepara y confirma con un mensaje descriptivo
  2. Sube: git push -u origin HEAD
  3. Crea el PR con gh pr create:
Título: [Contenido] Descripción corta del cambio

Cuerpo:
## Qué Cambió
| Sección | Antes | Después |
|---------|-------|---------|
| Precio del plan Pro | $12/usuario/mes | $15/usuario/mes |

## Solicitado Por
[Nombre/rol del usuario si se mencionó]

## Notas de Revisión
- Solo cambios de contenido/estilo — sin cambios de lógica o dependencias
- Por favor verificar en escritorio y móvil
- Secciones afectadas: [lista de secciones]
  1. Agrega revisores desde la configuración: gh pr edit --add-reviewer
  2. Agrega etiquetas desde la configuración: gh pr edit --add-label

Fase 7: Cierre

Objetivo: el usuario sabe qué sigue.

Dile al usuario en términos amigables:

"¡Todo listo! Aquí está tu solicitud de cambio: [enlace del PR]

Lo que cambié: Actualicé el precio del plan Pro de $12 a $15. ¿Qué sigue?: [Nombres de los revisores] lo revisarán. Una vez que lo aprueben, el cambio se publica. ¿Necesitas deshacer esto?: Solo dime 'deshaz mi último cambio' y yo me encargo."


Manejo de Reversiones

Si el usuario dice "deshaz mi último cambio" o "revierte la actualización anterior":

  1. Pregunta qué cambio quieren decir (o encuentra el PR content/ más reciente)
  2. Confirma lo que quieren deshacer:

    "Encontré tu cambio reciente: 'Precio del plan Pro actualizado a $15' (PR #42). ¿Quieres que lo deshaga?"

  3. Si el PR aún está abierto: ciérralo y elimina la rama
  4. Si el PR ya fue fusionado: crea un PR de reversión y explica:

    "Como este cambio ya está publicado, crearé una nueva solicitud para deshacerlo. Un desarrollador también deberá aprobar la reversión."


Referencia de Descubrimiento

Esta sección es para uso interno del agente durante la Fase 1 — no compartas estos detalles con el usuario.

Detección de framework

Archivo en la raíz del repoFramework
next.config.*Next.js
nuxt.config.*Nuxt
astro.config.*Astro
svelte.config.*SvelteKit
angular.jsonAngular
vite.config.*Vite (verificar package.json para react/vue/svelte)
gatsby-config.*Gatsby
Ninguno + index.htmlHTML estático

Detección de gestor de paquetes

Archivo de bloqueoEjecutor
bun.lock / bun.lockbbun
pnpm-lock.yamlpnpm
yarn.lockyarn
package-lock.jsonnpm

Detección de estilo

  1. tailwind.config.* o @tailwindcss en CSS → Tailwind
  2. Archivos .module.css / .module.scss → CSS Modules
  3. styled-components o @emotion en dependencias → CSS-in-JS
  4. Archivos .scss / .sass → SCSS
  5. CSS plano .css → CSS Plano

Detección de patrones de contenido

Verifica si hay archivos de contenido/i18n separados antes de editar componentes:

  • Directorios i18n/, locales/, messages/, translations/
  • Archivos de contenido .mdx / .md
  • Configuraciones de CMS (contentful, sanity, strapi)
  • Archivos de datos JSON/YAML

Si el contenido está en archivos separados, edítalos a ellos — no la fuente del componente.

Descubrimiento de páginas

FrameworkUbicaciones de páginas
Next.js App Routerapp/**/page.{tsx,jsx,js}
Next.js Pages Routerpages/**/*.{tsx,jsx,js}
Nuxtpages/**/*.vue
Astrosrc/pages/**/*.astro
SvelteKitsrc/routes/**/+page.svelte
Gatsbysrc/pages/**/*.{tsx,jsx}
AngularMódulos de enrutamiento
Vite SPAConfiguración del router o App.*
HTML estático*.html en la raíz o public/

Archivo de Configuración

Los equipos pueden agregar un archivo opcional .pm-editor.yml a la raíz del repositorio para personalizar el comportamiento (revisores, etiquetas, archivos protegidos, comandos de compilación). Consulta config-reference.md para la referencia completa.

Ejemplos

Para ejemplos de conversaciones en diferentes frameworks, consulta examples.md.

Skills relacionados