feat(gauntlet): la landing del Gauntlet Challenge de agosto - #19
Merged
Merged
Conversation
Una página que anuncia el challenge y no guarda nada: sin acceso a cloud-api, cualquier cosa que pareciera un formulario sería mentir. El alta va al Google Form, y la entrega y la votación se cuentan, no se construyen aquí. Qué entra: - /gauntlet y /es/gauntlet sobre el patrón `_`-prefijado, con el calendario de agosto marcado día a día y cada casilla diciendo qué pasa ese día. Cabe entero en una pantalla. - La sección del prompt original, anotada al margen como la captura de la que salió, con un botón que lo copia al portapapeles. Es el único JavaScript propio de la página y no manda nada a ninguna parte. - El prompt vive en src/data/gauntletPrompt.ts, fuera de i18n: no se traduce, y tenerlo en un sitio evita que lo que se lee y lo que se copia acaben diciendo cosas distintas. Un test lo compara con el original palabra por palabra. - Las fechas (workshop, construcción, cierre el 28, votación) salen de eventos.json y las lee src/lib/gauntlet.ts con el reloj como parámetro, así que el estado de la página es testeable. - La fila del Gauntlet en /events enlaza a la landing; el resto de la agenda sigue siendo texto. Sitemap y Event de schema.org al día. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
La página pasaba del hero a "Un prompt no hace el trabajo", que es una lección sobre bucles servida a alguien que todavía no sabe qué se le está proponiendo. Y daba por sabido lo que nunca explicaba: qué es NaN —citado tres veces, incluido como requisito para participar—, de dónde sale el nombre, y que el tema es libre, que vivía en el pie de la sección del prompt detrás de 850 caracteres sobre Call of Duty. La nueva 01 va en dos velocidades: la historia del experimento como titular, para quien lee, y tres respuestas en rejilla —qué construyo, quién lo organiza, qué me llevo— para quien escanea. Todo lo demás baja un número. Dos cosas que la sección NO dice, a propósito: que ser miembro sea gratis (no lo es: el premio de un hackatón es "1 mes gratis de NaN") y que haya premio, porque no hay ninguno definido. La descripción de NaN es literalmente la de /community, para que la comunidad se cuente igual en toda la web. Va también un test que comprueba que los números de sección van seguidos: están escritos a mano y un 02 repetido no rompe nada, así que no se ve hasta producción. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…lido La landing explicaba el Gauntlet Loop antes de enseñar nada. Quien llega no sabe lo que es un bucle de agentes, pero sí sabe reconocer un juego que funciona, así que la primera sección pasa a ser cinco proyectos publicados en las últimas semanas y la explicación viene detrás. Son obra de terceros, y eso manda en cómo se muestran: - Cada tarjeta enlaza a la publicación original y lleva el handle a la vista. - La miniatura es el fotograma de portada, servido desde /public. La página no tiene JavaScript de terceros y no iba a estrenarlo ahora: mirar esta sección no manda una sola petición a X hasta que alguien hace clic. - Solo lleva la etiqueta "cita el Gauntlet Loop" el único autor que lo nombra. El título de la sección habla de lo que está saliendo, no de la técnica, porque decir que los cinco salen del bucle sería firmar por los otros cuatro. Lo que no se traduce (enlace, imagen, autor, fecha) vive en data/, y el título y la descripción en i18n, emparejados por id. De paso, el prompt sube por delante de la idea, y el último guión largo visible de la landing pasa a ser dos puntos. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
La pregunta "¿y yo qué tengo que hacer?" se contestaba en la 07 y la 08, detrás de cuatro secciones de explicación, y para cuando llegabas ya no lo tenías claro. Ahora es la 02, justo después de los ejemplos: qué se pide, el requisito y qué se entrega, todo en el mismo sitio. El título deja de ser un juego de palabras y dice lo que es: "El reto consiste en:". Desaparecen la lista de cinco pasos —que describía el proceso, no el encargo— y la sección de diseño entera, que no aportaba nada que no estuviera ya en el prompt. Con la 05 fuera y la 07 y la 08 fundidas, la página pasa de nueve secciones a siete. Se van también el CSS de .split y .steps, que ya no los pinta nadie. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
/gauntlety/es/gauntlet: la página del challenge de agosto.Qué es y qué no es
Es un anuncio. No guarda nada. Esta web no tiene acceso a
cloud-api, así que cualquier cosa con pinta de formulario sería prometer una persistencia que no existe: el alta se hace en el Google Form, y la entrega y la votación se cuentan pero no se construyen aquí. Hay un test que lo vigila (gauntletPage.test.ts): sinclient:*, sin<form>, sin<input>, sinfetch(, sin/api/.Lo que entra
La página —
src/pages/_gauntlet.astrosobre el patrón_-prefijado, con los dos wrappers de ruta. Nueve secciones: la idea, el prompt, cómo se diseña un loop, el calendario, cómo participar, la entrega, y qué pasa después del cierre.El calendario de agosto — marcado día a día, con la etiqueta de qué pasa dentro de cada casilla. Dimensionado en
vhpara que el mes entero quepa en una pantalla; por debajo de 520px las etiquetas repetidas de "construir" se caen —no caben en una columna de 45px— y el tramo lo sigue contando el color. Es la única rejilla que no se reordena en móvil: una semana partida deja de ser un calendario.La sección del prompt — el prompt original anotado al margen, como la captura de la que salió, con un botón que lo copia. Es el único JavaScript propio de la página: escribe en el portapapeles y ya. En móvil, sin márgenes donde colgar una nota, cada anotación baja debajo del párrafo que anota.
Una sola fuente para el prompt — vive en
src/data/gauntletPrompt.ts, fuera de i18n, porque no se traduce y porque tener el texto en dos sitios es exactamente cómo lo que se lee y lo que se copia acaban divergiendo. La página pinta los trozos marcados, el botón copiapromptText(), ygauntletPrompt.test.tscompara el resultado con el original palabra por palabra.Las fechas — workshop, construcción, cierre el 28, votación: salen de
eventos.jsony las leesrc/lib/gauntlet.ts, con el reloj como parámetro para que el estado de la página (antes / durante / votando / cerrado) sea testeable. El día de presentaciones sigue sin fecha, y la página lo dice así.Enganches — la fila del Gauntlet en
/eventsahora enlaza a la landing (hrefes opcional en la agenda: el resto de entradas siguen siendo texto, para no prometer páginas que no existen), la ruta entra en el sitemap en los dos idiomas, yStructuredDatapublica unEventcon lo que la página afirma y nada más: ni presentaciones sin fecha ni premios sin definir.Verificación
npx vitest run— 570 tests en 39 ficheros, todos verdesnpx astro check— 107 ficheros, 0 errores / 0 avisos / 0 hints🤖 Generated with Claude Code