Communitygithub.com

hasaneks/web-craft-init

Inicia un nuevo proyecto React o una superficie web amplia, o migra uno existente a un estándar escrito: definición del producto, modelo de renderizado y framework (Next.js App Router o React con Vite) elegido según el producto, kit de UI (shadcn/ui, Ant Design, Material UI o el sistema existente), enfoque de estilos derivado del kit (Tailwind, CSS Modules o tema del kit) con fuentes oficiales, i18n real desde el primer segundo idioma (next-intl o i18next), base de animación con reduced motion, tema, estructura.

¿Qué es web-craft-init?

Esta skill (hasaneks/web-craft-init) guía paso a paso el arranque o migración de un proyecto web React/Next.js a un estándar de calidad reproducible. Su objetivo es eliminar la ambigüedad y las decisiones no documentadas, asegurando que desde el primer commit se definan el tipo de superficie (landing, admin, catálogo, etc.), el framework (Next.js App Router o React+Vite), el kit de UI (shadcn/ui, Ant Design, Material UI), el sistema de estilos (Tailwind, CSS Modules), i18n (next-intl o i18next), animaciones, formularios y pruebas. Para ello, la skill establece una secuencia de decisiones agrupadas en fases: intake del producto (análisis de lo existente), definición del perfil técnico con justificaciones (usando tablas de decisión), redacción de documentos de arquitectura (STACK.md, DESIGN.md) a partir de plantillas, organización del proyecto por funcionalidades, implementación de un esqueleto funcional que verifique 6 puntos críticos (internacionalización sin flash, tema sin parpadeo, formularios, diálogos, estados de carga y accesibilidad), y finalmente la construcción de un slice vertical representativo. Compatible con Claude Code, Cursor y Codex, la skill se apoya en referencias markdown externas (como references/intake.md, references/framework-choice.md) que contienen las reglas detalladas para cada elección, y verifica versiones estables desde fuentes oficiales para evitar dependencias obsoletas. El flujo completo asegura que el proyecto pueda escalar sin deuda técnica.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/hasaneks/web-craft/tree/HEAD/skills/web-craft-init

Preguntar en tu IA favorita

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

Documentación

Iniciando un proyecto web React

Lee primero web-craft; sus reglas se aplican aquí. Las decisiones existentes del proyecto tienen prioridad sobre cualquier valor predeterminado que se indica a continuación.

1. Intake

Lee lo que ya está disponible: descripción del producto, repositorio existente, páginas, sistema de diseño, STACK.md, DESIGN.md, contratos de API. Luego completa los vacíos con references/intake.md: tipo de superficie (landing, editorial, catálogo, aplicación de consumo, administración, portal de clientes o una combinación), usuario principal y acción, densidad de contenido u operaciones, dispositivos, necesidades de SEO, idiomas ahora y en el futuro, RTL, autenticación, backend (Node.js, API de terceros, CMS, simulación o estático).

Pregunta solo aquello que cambie una decisión de producto o arquitectura. Indica el resto como suposiciones.

2. Decide el perfil técnico

Escribe cada decisión con una razón de una línea. No generes todas las pantallas antes de que se haya elegido la dirección.

DecisiónValor predeterminado y dónde reside el razonamiento
Framework y renderizadoPúblico, con mucho SEO o CMS, multilingüe → Next.js App Router. Detrás de un inicio de sesión y altamente interactivo → React + Vite o el Next.js existente. Superficie estática simple → lo más simple que funcione. references/framework-choice.md
Kit de UIProducto con marca distintiva → shadcn/ui. Administración con muchas tablas/formularios → Ant Design. Producto con estilo Material o MUI ya en uso → Material UI. Sistema existente → mantenerlo. Un kit principal por superficie de aplicación. references/kit-choice.md
EstilosSigue al kit: shadcn → Tailwind (obligatorio para shadcn); Ant Design o MUI → el tema del kit, más CSS Modules para piezas personalizadas; personalizado o editorial → CSS Modules. Nunca mezcles Tailwind y CSS Modules como sistemas equivalentes en una sola superficie. references/styling-choice.md
i18nNext.js → next-intl; Vite → i18next + react-i18next. El registro de locales, la configuración de fallback, la política de URL y la carga del catálogo se deciden desde el primer día. references/i18n-setup.md
AnimaciónTransiciones CSS para estados simples; Motion para React cuando se necesite montaje/desmontaje, layout u orquestación. Tokens de duración y easing; el reduced motion se maneja en un solo lugar. references/motion-setup.md
Formularios y datosreact-hook-form + Zod; TanStack Query o el modelo de datos del framework; mantener lo que existe.
TemaClaro/Oscuro/Sistema para productos interactivos; un solo tema puede ser una decisión de producto para un sitio de marketing con marca.
PruebasTypecheck, lint (con eslint-plugin-web-craft y eslint-plugin-jsx-a11y), pruebas unitarias/de componente donde haya comportamiento, Playwright para flujos críticos.
Lenguaje y herramientasTypeScript estricto, Yarn fijado por proyecto, un único lockfile.

Verifica las versiones estables actuales de cada paquete elegido desde fuentes oficiales el mismo día, fija las versiones que funcionan juntas y regístralas en STACK.md. Nunca copies números de versión de memoria o de esta skill.

3. Escribe los documentos del proyecto

  • STACK.md: framework, renderizado, kit, estilos, motor i18n, herramientas de datos y formularios, versiones, entornos, scripts. Plantilla: references/stack-template.md.
  • DESIGN.md: carácter del producto, principios tomados de las referencias, layout, tokens (color, tipografía, espaciado, radio, elevación, animación), reglas de copy, matriz de animación, notas de i18n. Plantilla: references/design-template.md.
  • La lista de locales y los tipos provienen de la configuración del código. Los documentos lo describen; no son una segunda fuente de verdad.
  • No crees cuatro documentos nuevos por cada pequeño cambio.

4. Organiza el proyecto

Estructura basada en funcionalidades, límites servidor/cliente claros, una capa de API, un lugar para tokens y proveedores: references/structure.md.

5. Verifica el esqueleto

Antes de construir más pantallas, un flujo pequeño debe funcionar de extremo a extremo:

  1. El locale se resuelve correctamente en el primer renderizado (sin flash de idioma), al cambiar se mantiene la ruta.
  2. El tema sigue la elección del usuario y el sistema, sin parpadeo al cargar.
  3. Un formulario valida al perder el foco, se desplaza al primer error al enviar, mapea un error del servidor a su campo.
  4. Un diálogo se anima al entrar y salir, atrapa el foco y lo devuelve; el reduced motion elimina el movimiento grande.
  5. Una lista o gráfico muestra un esqueleto, un estado vacío y un error con reintento.
  6. El uso solo con teclado funciona; no hay errores de consola ni de hidratación.

Luego construye un slice vertical representativo (contenido realista, segundo idioma, estados de carga y error) y verifícalo en un navegador a anchos de móvil y escritorio antes de expandir a otras pantallas.

6. Scripts

dev, build, start (Next.js), typecheck, lint, test, test:e2e. Añade analyze cuando los presupuestos de bundle importen.

Fuentes

Enlaces oficiales utilizados para estos valores predeterminados, con la fecha en que se revisaron: references/sources.md. Vuelve a verificarlos para la versión que instales.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Skills relacionados