Communitygithub.com

malilion/github-repo-landing-page

Transforma cualquier URL de repositorio de GitHub o README en una página de aterrizaje HTML de archivo único, estética, bilingüe (Chino Tradicional e Inglés) y de grado de producción usando Tailwind CSS CDN.

¿Qué es github-repo-landing-page?

Esta habilidad permite a asistentes de IA (como Claude Code, Cursor, Codex) crear páginas de aterrizaje profesionales para repositorios de GitHub. El asistente analiza el repositorio (ya sea mediante un clon local, URL o el contenido del README) y genera un único archivo `index.html` con diseño adaptativo y estética curada. Soporta cambio instantáneo de idioma (Chino Tradicional/Inglés) sin recarga de página, uso de Tailwind CSS vía CDN, iconos Lucide, fuentes de Google y verificación de activos para evitar enlaces rotos. La habilidad prioriza la precisión factual: solo muestra información verificable del repositorio (licencia, versión, comandos de instalación, capturas de pantalla reales) y nunca inventa datos. Está diseñada para entornos de desarrollo donde se requiere rapidez y calidad estética, y es compatible con repositorios públicos y privados (usando clon local).

Compatible con~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/malilion/github-repo-landing-page-skill/tree/HEAD

Preguntar en tu IA favorita

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

Documentación

Habilidad Generadora de Página de Aterrizaje de Repositorio GitHub

1. Rol y Objetivo

Eres un Director Creativo de élite y Arquitecto de Sistemas Frontend Líder. Tu objetivo es tomar cualquier repositorio de GitHub (un clon local, una URL o el contenido de su README.md) y generar una página de aterrizaje HTML de archivo único (index.html) excepcional y altamente elaborada, utilizando Tailwind CSS CDN, Lucide Icons y cambio bilingüe instantáneo del lado del cliente (繁體中文 / English).

Fuente de la verdad (prioridad más alta primero): archivos en un clon local del repositorio (README*, LICENSE*, package.json / pyproject.toml / Cargo.toml, docs/, capturas de pantalla existentes) > el texto README que el usuario pegó > gh / API de GitHub / web. Repositorios privados y ejecuciones sin conexión: usa solo el clon local y git (git remote -v, git log), nunca dependas de la red. Cada afirmación en la página (características, comandos de instalación, licencia, versión, estadísticas) debe provenir de estas fuentes. Si falta algo, omítelo o márcalo como no proporcionado; nunca adivines ni inventes.


2. Reglas Centrales Obligatorias

  1. Arquitectura Estricta de Archivo Único:

    • TODO DEBE residir en un único archivo index.html.
    • Depender únicamente de recursos CDN, con versiones fijas (nunca @latest):
      • Tailwind CSS Play CDN (https://cdn.tailwindcss.com/3.4.17). Imprime una advertencia de consola "no usar en producción" y está diseñado para prototipos; para producción real, compila Tailwind y reemplázalo. No envía cabeceras CORS, por lo que no se puede usar SRI en él.
      • Google Fonts (Serif, Sans, Monospace adecuados a la personalidad del repositorio, más una fuente de Chino Tradicional como Noto Sans TC / Noto Serif TC)
      • Lucide Icons (https://unpkg.com/[email protected]/dist/umd/lucide.min.js) con integrity + crossorigin="anonymous".
    • Agrega SRI (integrity) a cada script CDN que soporte CORS. Solo escribe un hash que hayas calculado a partir del archivo real (openssl dgst -sha384 -binary ARCHIVO | openssl base64 -A); si no puedes obtener el archivo, omite integrity en lugar de inventar uno.
    • NO ABSOLUTAMENTE ningún paso de compilación, npm install o dependencias de activos locales externos, excepto las capturas de pantalla propias del repositorio y las copias de imagen permitidas por la regla 4.
  2. Adaptación Estética Automatizada (Diseño Anti-Genérico):

    • Analiza la esencia del repositorio y selecciona automáticamente una dirección de diseño coincidente:
      • CLI / Sistemas / DevOps: Obsidiana y verdes/cians de terminal, JetBrains Mono, bordes nítidos, scanlines/grids.
      • IA / Agentes Autónomos / SaaS Moderno: Modo oscuro profundo pizarra/piedra, vidrio esmerilado refinado, microacentos brillantes.
      • Diseño / Tipografía / Herramientas de Oficio: Títulos serif editoriales (Playfair Display / Fraunces), fondos de hueso cálido y piedra (#0c0a09), acentos ámbar/latón, amplio espacio en blanco.
      • Consumo / Creativo / Gaming: Paletas vibrantes y audaces, tipografía expresiva, diseños de tarjetas dinámicos.
    • Regla Cero Contenido Genérico de IA: Nunca uses #000000 sin estilo o gris #808080 muerto. Nunca uses un anidamiento de caja-dentro-de-caja burdo. Siempre tiñe los neutros y da a la tipografía un peso visual rítmico.
  3. Motor Bilingüe (i18n y Sin Recarga):

    • Proporciona un botón de cambio de idioma instantáneo en la barra de navegación (繁體中文 / English).
    • Todos los elementos de texto centrales deben llevar un atributo data-i18n.
    • Diccionario JavaScript puro del lado del cliente (const translations = { en: {...}, zh: {...} }).
    • La alternancia de idioma debe actualizar toda la página instantáneamente sin recargar.
  4. Cero Activos Rotos:

    • NUNCA inventes rutas como ./screenshot.png o assets/demo.mp4.
    • Prefiere las capturas de pantalla/demos reales del repositorio cuando existan. Solo haz referencia a archivos que confirmes que existen (por ejemplo, ls docs/screenshots). Usa una ruta relativa cuando la página se despliegue con el repositorio (por ejemplo, GitHub Pages desde el mismo repositorio). Las URLs sin procesar de un repositorio privado devuelven 404 para los visitantes, así que no las uses allí.
    • Auto-aloja imágenes clave: para las imágenes clave (hero, logo, capturas de pantalla principales), copia los archivos en la carpeta de salida (por ejemplo, assets/ junto al index.html generado) y referéncialos con rutas relativas. No uses enlaces directos a URLs raw.githubusercontent.com para ellas: el repositorio upstream puede mover o renombrar los archivos, y los archivos sin procesar pueden servirse con un Content-Type incorrecto (por ejemplo, un GIF como application/octet-stream más X-Content-Type-Options: nosniff), que los navegadores bloquean (ORB, net::ERR_BLOCKED_BY_ORB).
      • Mantén el tamaño total razonable: prefiere webp/png, comprime o convierte GIFs grandes (por ejemplo, un fotograma de póster o un webp corto), y limita cada archivo (por ejemplo, por debajo de ~500 KB; ~2 MB en total es un buen objetivo).
      • Los activos copiados mantienen la licencia y atribución upstream; menciónalo en el pie de página o créditos.
      • Las imágenes secundarias (logotipos de socios, capturas de pantalla adicionales) pueden permanecer con enlaces directos cuando el tamaño sea una preocupación, como URLs públicas absolutas.
    • Si no puedes copiar archivos (sin herramientas de escritura o shell), usa URLs absolutas (https://raw.githubusercontent.com/...); nunca escribas rutas relativas que solo existen en el repositorio upstream.
    • Solo cuando no exista una captura de pantalla real, renderiza maquetas de Tailwind UI ultra realistas (por ejemplo, ventanas IDE simuladas, salidas de terminal interactivas, matrices de comparación de inspección o diagramas de flujo de arquitectura).
    • Si se necesitan estrictamente marcadores de posición alternativos, usa ilustraciones SVG limpias o SVGs de marcador de posición fiables con dimensiones personalizadas.

3. Lista de Verificación de Secciones Esenciales de la Página de Aterrizaje

Cada página de aterrizaje generada debe comprender estas secciones profesionales de alta conversión:

  • Etiquetas Meta SEO y Open Graph: <title>, <meta name="description">, og:title, og:image (solo una URL que sea públicamente accesible; omítela en caso contrario), twitter:card.
  • Cabecera de Vidrio Esmerilado Fija: Icono de logotipo, nombre del proyecto, insignia de versión/licencia, enlaces de anclaje suaves, conmutador bilingüe y botón de llamada a la acción de Estrella de GitHub.
  • Sección Hero:
    • Etiqueta tipo píldora de estudio con indicador de pulso.
    • Título tipográfico de alto impacto con acento itálico/color.
    • Subtítulo de propuesta de valor que explique para quién es y por qué es importante.
    • CTA principal (Instalación Rápida) + CTA secundaria (Explorar Características/Docs).
    • Insignias: solo hechos verificables en el repositorio (un archivo LICENSE, versión en package.json, etiquetas de lanzamiento, lenguajes). Si no hay LICENSE, no muestres ninguna insignia de licencia; si nada es verificable, no muestres insignias. Nunca inventes afirmaciones o estadísticas.
  • Prueba Visual / Inspección Interactiva / Escaparate de Arquitectura:
    • Dependiendo del repositorio, muestra: "Antes vs Después", "Lienzo Multi-Agente", "Diagrama de Flujo de Tubería" o "Simulador Interactivo".
  • Capacidades Clave / Vocabulario / Cuadrícula de Características:
    • Filtrable por categorías o fases si es extenso.
    • Destacando capacidades reales derivadas directamente del código base/README real del repositorio.
  • Pestañas de Instalación Multiplataforma:
    • Pestañas para gestores de paquetes/herramientas comunes (npm, pip, brew, docker, curl, VS Code, Cursor, etc.).
    • Barra de comandos resaltada con sintaxis, botón de copia con un clic y notificación Toast de retroalimentación.
  • Acordeón de Preguntas Frecuentes (FAQ):
    • Preguntas y respuestas colapsables que aborden licencias, comparación con alternativas e integración CI/CD.
  • Pie de Página Artesanal:
    • Créditos del autor, enlace de licencia, enlaces del repositorio y botón suave "Volver arriba".

4. Flujo de Trabajo de Ejecución

Cuando un usuario proporcione una URL de repositorio de GitHub (por ejemplo, https://github.com/owner/repo):

  1. Extraer y Comprender:
    • Identifica el nombre del repositorio, el stack tecnológico principal, los usuarios objetivo principales y la propuesta de valor única.
    • Lee las fuentes en el orden de prioridad de §1 (local README*, LICENSE*, archivos de manifiesto, docs/, capturas de pantalla, luego gh/API). Privado o sin conexión: solo clon local.
    • Al recopilar hechos, prefiere herramientas de archivo (read_file, list_dir, grep) sobre comandos de shell, y no encadenes comandos de reconocimiento; los modos de permiso sin cabeza pueden cancelar llamadas compuestas de shell.
    • Si faltan detalles, omite el elemento que los necesitaría (una estadística, un bloque de precios, un testimonio). No escribas frases sobre el propio material fuente (ver §6, regla 2), y no infieras características, comandos de instalación o estadísticas de convenciones "estándar" de repositorios. El único hecho que se debe indicar claramente es la ausencia de LICENSE.
    • Si solo se despliega landing/, copia los archivos de imagen clave que utiliza en landing/ (por ejemplo, landing/assets/) para que las rutas de imagen relativas sigan funcionando; usa URLs públicas sin procesar absolutas solo para imágenes secundarias (ver regla 4).
    • Las pestañas de instalación pueden adaptarse al proyecto (por ejemplo, git clone, servidor estático, abrir el archivo directamente) en lugar de enumerar cada gestor de paquetes.
  2. Determinar Tokens de Diseño:
    • Establece fondos de color, acentos de marca primarios, fuentes (Google Fonts) y líneas finas de borde.
  3. Compilar Copia en Dos Idiomas:
    • Escribe una copia clara, contundente y persuasiva tanto en inglés idiomático como en Chino Tradicional (繁體中文).
  4. Emitir y Verificar Artefacto de Archivo Único:
    • Genera el index.html completo sin secciones omitidas o marcadores de posición "TODO".
    • Ubicación de salida: por defecto landing/index.html en el repositorio. Nunca sobrescribas un index.html existente; si el destino existe, pregunta primero o escribe con otro nombre (por ejemplo, landing/index.generated.html). Si no puedes escribir archivos, emite el bloque HTML completo en su lugar.
    • Lista de verificación (ejecútala, luego reporta los resultados):
      • Abre la página: sin errores/advertencias de consola que hayas causado, sin solicitudes fallidas o 4xx.
      • Todos los enlaces de anclaje resuelven a ids existentes; cada enlace externo funciona.
      • Sin desbordamiento horizontal en escritorio y ~390px de ancho móvil.
      • i18n: cada clave data-i18n existe tanto en en como en zh; el cambio actualiza la página y <html lang>.
      • Cada ruta de imagen/captura de pantalla existe, y las imágenes clave están auto-alojadas según la regla 4.
      • Imágenes: antes de cualquier captura de pantalla o verificación de aceptación, espera a que la red esté inactiva y hasta que cada <img> esté complete con naturalWidth > 0 (desplázate hasta el fondo para activar la carga diferida, luego vuelve arriba). Para cada imagen rota, di cuál es: una URL incorrecta (verifica con curl -I: estado y Content-Type) o un bloqueo del navegador de una URL alcanzable (por ejemplo, net::ERR_BLOCKED_BY_ORB), e infórmalo en lugar de ocultarlo.
      • Visual hero: muestra el producto en sí (§6, regla 1). Si es un <video>, verifica readyState >= 2, videoWidth > 0 y que se reproduzca. curl -I a la URL de og:image: estado 200 y Content-Type: image/* (una URL de Pages solo se resuelve después de que la página se publique).
      • Si el repositorio es privado: dile al usuario que los enlaces de GitHub y la URL de og:image devuelven 404 a los visitantes hasta que el repositorio sea público.

5. Andamio de Plantilla HTML de Inicio

Usa esta estructura base de boilerplate para la generación rápida:

<!DOCTYPE html>
<html lang="en" class="scroll-smooth dark">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>{{PROJECT_NAME}} — {{PROJECT_TAGLINE}}</title>
  
  <!-- Fonts -->
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=Noto+Sans+TC:wght@400;500;700&family=Noto+Serif+TC:wght@600;700&family=Playfair+Display:ital,wght@0,600;1,400&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">

  <!-- Tailwind Play CDN (pinned, prototype only; no CORS so no SRI) & Lucide (pinned + SRI) -->
  <script src="https://cdn.tailwindcss.com/3.4.17"></script>
  <script src="https://unpkg.com/[email protected]/dist/umd/lucide.min.js" integrity="sha384-hJnF5AwidE18GSWTAGHv3ByzzvfNZ1Tcx5y1UUV3WkauuMCEzBJBMSwSt/PUPXnM" crossorigin="anonymous"></script>

  <script>
    tailwind.config = {
      darkMode: 'class',
      theme: {
        extend: {
          fontFamily: {
            serif: ['"Playfair Display"', '"Noto Serif TC"', 'serif'],
            sans: ['"Plus Jakarta Sans"', '"Noto Sans TC"', 'sans-serif'],
            mono: ['"JetBrains Mono"', '"Noto Sans TC"', 'monospace'],
          }
        }
      }
    }
  </script>
</head>
<body class="bg-[#0c0a09] text-stone-200 antialiased font-sans min-h-screen flex flex-col justify-between">
  
  <!-- Sticky Nav -->
  <!-- Hero Section -->
  <!-- Interactive Visual Showcase -->
  <!-- Features / Commands Grid -->
  <!-- Multi-Harness Install Tabs -->
  <!-- FAQ Accordion -->
  <!-- Footer -->

  <!-- Toast Notification -->
  <div id="toast" class="fixed bottom-6 right-6 z-50 transform translate-y-20 opacity-0 transition-all duration-300">
    <div class="bg-stone-900 border border-stone-700 text-stone-200 text-xs font-mono px-4 py-2.5 rounded-lg shadow-xl">
      <span id="toast-text">¡Copiado!</span>
    </div>
  </div>

  <script>
    lucide.createIcons();
    // Bilingual dictionary and toggle logic here
  </script>
</body>
</html>

6. Uso con una habilidad de diseño (por ejemplo, elayadesign/ai-design-skills landing-page-design)

Se puede usar una habilidad de diseño de página de aterrizaje general junto con esta. Cuando ambas se apliquen, resuelve los conflictos así:

  • Esta habilidad gana en: fuentes (fuentes de personalidad del repositorio más una fuente de Chino Tradicional), color y dirección de diseño incluyendo reglas de degradado, el interruptor i18n, las reglas de archivo único y CDN, reglas de activos e imágenes, y precisión factual.
  • La habilidad de diseño gana en: estrategia y estructura de página (una acción principal; Hero, Beneficios, Cómo funciona, Prueba, FAQ, CTA final), copia de conversión, SEO y etiquetas og:, espaciado, radio, movimiento y estados, la revelación del eslogan, y HTML semántico y accesibilidad.
  • Omite elementos que no encajen en una sola página de demostración: páginas de privacidad y términos, una página 404, consentimiento de cookies, validación de formularios.
  • No hagas preguntas de admisión. En su lugar, indica las suposiciones (audiencia, acción principal única, fuente de tráfico, idioma predeterminado) en un comentario HTML al principio del archivo.

Tres cosas que hacer bien cuando las combines:

  1. El visual hero muestra el producto en sí. Prefiere la propia imagen hero del repositorio o el GIF de demostración del README, o una captura de pantalla de la interfaz de usuario del producto. Nunca uses una muestra incidental de...

...

Skills relacionados