Mostrando entradas con la etiqueta GitHub. Mostrar todas las entradas
Mostrando entradas con la etiqueta GitHub. Mostrar todas las entradas

viernes, agosto 07, 2026

Cómo los Agentes IA de Red Team hacen ataques de Ingeniería Social con Fake Accounts

Esta semana, el AI Security Institute de UK, ha publicado un informe sobre un par de incidentes con Red Teaming Agentic AI, donde estos hacen alarde de su capacidad de realizar ataques complejos, con múltiples fases, y donde buscan engañar a humanos para conseguir sus ataques, como haría cualquier adversario que necesita vulnerar una debilidad en las personas que administran los sistemas, para conseguir su objetivo.
El informe, marcado como "Security Incident INC-2026-07-28-01" fue publicado el pasado 4 de Agosto, y donde se centra en las acciones que los Red Team Agentic AI decidieron salirse a Internet y atacar proyectos y personas fuera del ámbito de la evaluación. Según cuentan en el informe, probando el comportamiento de los diferentes modelos frente a un reto concreto, el resultado fue el siguiente:

"Ejecutamos este desafío 122 veces en varios modelos. Nuestra investigación reveló que, en 10 de esas ejecuciones, un agente de IA tomó medidas autónomas y no autorizadas en el entorno real de internet, dirigiéndose a personas u organizaciones reales. En total, catalogamos 19 acciones de este tipo. 
 
Casi todo este comportamiento (17 acciones) provino de un solo modelo, Mythos 5 de Anthropic, mientras que 2 acciones involucraron a GPT-5.6-Sol de OpenAI con los clasificadores cibernéticos (mecanismos para prevenir el uso indebido) desactivados. 
 
En el caso más grave, un agente intentó insertar código malicioso en un proyecto de código abierto. En un intento por lograr que el código fuera aprobado, el agente recurrió a la ingeniería social: creó identidades falsas en línea y las utilizó para presionar al mantenedor del proyecto para que aprobara el código. Un mantenedor humano lo detectó y se negó a aprobar el código malicioso."

Las Técnicas de Ingeniería Social son bien conocidas en el mundo del Red Team, y son fundamentales en muchos de los incidentes de seguridad que sufren las organizaciones hoy en día. Correos de Spear-Phishing, Spam-Phishing, llamadas telefónicas, SMSs, e incluso representaciones con actores en los centros de trabajo.
Uno de los Agentes IA, en este caso, intentó hacer un Supply Chain Attack, es decir, intentar atacar a un proyecto OpenSource que había identificado como parte de las piezas tecnológicas del reto que tenía que resolver.
Para atacar a este proyecto, hizo una Pull-Request (PR) con un código malicioso, que fue detectado por uno de los humanos mantenedores del proyecto y rechazado por contener malware. Para conseguir que este código fuera aprobado, decidió conseguir la aprobación usando diferentes técnicas. 
La primera de ellas, insertando un ataque de Prompt Injection para que cualquier Coding Agent que lo leyera ejecutar sus comandos. 
Pero además, hizo dos cosas más. La primera, realizar un ataque de Spear-Phishing contra todos los usuarios mantenedores del código.

La segunda, con una nueva cuenta falsa poner un comentario haciendo creer que era una persona que había revisado el código y que estaba perfecto para ser mergeado en el proyecto. Como si fuera un revisor humano colaborando con el proyecto.
En la conversación completa se puede ver varios hechos interesantes. El primero de ellos es cómo hace el ataque y cómo se crea una nueva persona para apoyarse a sí mismo. Pero cuando el humano lo detecta, intenta presionarle para que hable con él, midiendo el tiempo que tarda el humano en contestar: "han pasado muchas horas desde que dejaste el warning".  

Figura 8: "The Art of Pentesting" El nuevo libro de
0xWord para formarse como pentester

Por último, cuando, se da cuenta de que ha sido detectado, lo que hace es simular que ha sido un error genuino  normal y corriente en lugar de un ataque, e intenta cubrir sus acciones con nuevos mensajes.
Dentro del informe, donde se analiza en detalle este incidente, también tenemos información de las trazas de razonamiento, donde podemos ver qué está pensando el Agente IA en todo momento a la hora de realizar sus acciones, y es tremendo.
En la image anterior podemos ver cómo va encadenando las acciones y el razonamiento que va haciendo en cada momento, evaluando si realmente está en Internet o no, si el proyecto es real o es una simulación, y si debe interactuar con las personas o no.
En la siguiente imagen, podemos ver cómo decide preparar un ataque de Prompt Injection para otro posible Coding Agent que pudiera leer la pull request con una secuencia de comandos maliciosos.
Está clara la potencia de los modelos de IA para hacer Agentic AI en el mundo del Hacking y el Pentesting con IA, por lo que no podemos obviarlos y hay que utilizarlos masivamente. El problema, ya no es que consigan su objetivo sino cómo les decimos qué pueden hacer y qué no pueden hacer para conseguirlo.
Esta PsicopatIA de acciones, donde no importa lo que es legitimo o no, lo que está bien o no, lo tienen que seguir haciendo las personas. De todo esto, ya os había hablado en el experimento de "Problem Solving con IA: Ético o No Ético" donde os contaba las conversaciones que tengo con mis hijas sobre la resolució de problemas....pues bien, en el mundo del Problem Solving con Agentes IA, va a ser más necesario que nunca. 

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


sábado, abril 25, 2026

Los equipos de ingeniería que hacen software con Neo tiene ingenieros extra

Os he hablado varias veces de Neo de Sagittal.ai, pero hoy quería dejaros unos datos para que veáis como funciona como un miembro más haciendo tareas en la creación de software. Neo no está pensado para ayudarte a tirar lineas de código como un Copiloto. No, Neo está pensado para hacer tareas que se necesitan dentro de un equipo de desarrollo y resolver PR.
Puede ser que esa tarea sea resolver un problema de diseño en Figma, o que haya que revisar la calidad de un parche, o puede ser que haya que resolver un issue reportado, es decir, mucho más que ayudarte como un Copilot a tirar líneas de código. Para que entendáis esto un poco mejor, os he dejado el artículo publicado de "Cómo solucionar tres "Big Problems" del "Agentic AI Coding" usando Neo" y os dejo la conferencia que dio Palako sobre Neo, que puedes ver aquí mismo.

Figura 2: Por qué la IA no ha mejorado el rendimiento de tus Developers ... por ahora

Es fácil, si te quedas a primera vista, confundir a Neo con un GitHub Copilot, o con un Claude Code o Llama Code, pero nada de eso. No es eso. Es un Agente IA de Ingeniería de Software para hacer tareas integrado en un equipo de desarrollo de tecnología. Por supuesto, si tiene que tirar líneas de código para resolver una PR lo hace, pero no sólo eso. Y por supuesto, tiene los mismos problemas que todos los modelos de IA tirando código.


Esto sucede con todos los modelos de IA que generan código hoy en día. Todos tienen esos problemas. De hecho, no hay magia, Neo no es un Modelo de IA entrenado para tirar código. No, ni mucho menos. Neo se basa en todos los Modelos de IA entrenados para tirar código para hacer sus tareas. ¿Cómo te quedas? Pues lo mismo que los Agentes IA que hacen pentesting, que se basan en modelos entrenados. 
No es magia, es que Neo es un Agente IA para trabajar en Ingeniería del Software haciendo tareas que hacen los ingenieros del software. Así que se asignan tareas, y algunas las hace bien, y otras las hace mal, com cualquier otro ingeniero.
Para que os hagáis una idea, en el equipo que desarrolla el core de Neo se usa.... Neo. Es decir, que se está construyendo Neo a sí mismo, pero si miramos las PR abandonadas y hechas por Neo podemos ver que más de la mitad no han sido hechas correctamente por Neo... ¿Eso significa que Neo no funciona? Eso significa que ha podido hacer casi la mitad de las tareas que se han asignado, que si lo comparas con el resto de miembros humanos es significativamente menor.
Si miramos, los humanos han resuelto más tareas, con un total de 207 y con sólo un 10% de abandonos. No está mal para el equipo. Es lo que sucede cuando tienes un grupo de buenos ingenieros currando en un proyecto de software. Pero entonces... ¿De qué vale Neo? Bueno, la magia es que si comparamos a Neo con cada uno de los desarrolladores del equipo lo que tenemos se ve de otra manera. ¿Qué te parece esta gráfica?
Como podéis ver en esa gráfica, incluso con las tareas abandonadas, Neo hace el trabajo de PRs dos ingenieros de software en el equipo. Con sus problemas, con sus limitaciones, con su necesaria supervisión, pero gracias a tener a Neo, el equipo de ingeniería ve multiplicada su velocidad de ingeniería no solo en tirar líneas de código, sino en hacer PRs del proyecto que si no tendrán que hacer el resto de tus programadores humanos.
Pero no sólo eso, es que a medida que el equipo sabe cuáles son las PR que Neo puede hacer, o cada vez que se incrementan sus capacidades, su capacidad de hacer más y mejor PRs crece, de manera consistente, por lo que es un miembro más confiable del equipo.

Figura 9: Por qué Neo

Neo está específicamente diseñado para un entorno corporativo con equipos de entre 5 y 15 personas que siguen un proceso, ya sea ligero o pesado, coordinado en herramientas colaborativas y donde la especificación suele estar dispersa en varias herramientas y cambia constantemente. Y si es tu caso, deberías probarlo cuanto antes. Eso sí, sólo si eres de los que cree que meterse en líos de Deuda Cognitiva es algo a evitar.


Puedes ver varias demos de Neo en acción para hacerte una mejor idea del concepto, y contactar con Sagittal AI para un piloto en tu empresa.
Además si te interesa la IA y la Ciberseguridad, tienes en este enlace todos los posts, papers y charlas que he escrito, citado o impartido sobre este tema: +300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  

viernes, abril 17, 2026

Cómo solucionar tres "Big Problems" del "Agentic AI Coding" usando Neo

El avance de la IA Generativa y Agéntica no es nada menos que espectacular y, casi indudablemente, la mayor y más rápida revolución tecnológica de la historia. Llevamos unos años oyendo la promesa de agentes autónomos y desarrolladores multiplicados por diez, sin embargo, cuando miras a un equipo de desarrollo de software en un entorno corporativo, los atascos aún son los de siempre. La realidad es que aunque las demos presentan unos escenarios idílicos, esta tecnología no está todavía al nivel al que se nos presenta.

Neo es el producto que hacemos en Sagittal AI, una empresa que no vende magia, sino que trata de maximizar el partido que se le puede sacar a la IA, aceptando sus limitaciones, y del cual hablé en esta conferencia que os dejo por aquí.
Pero hoy os quiero hablar de tres problemas concretos que, si has trabajado en equipos de desarrollo de software seguro que conoces bien. Vamos a verlos uno a uno.

Problema: La interfaz. De secretario/a del bot a delegar trabajo

El patrón actual te será familiar: abres el chat o el plugin del IDE, te conviertes en “prompt engineer”, le explicas al agente lo que quieres, le pegas medio ticket, añades fragmentos de código, corriges lo que ha entendido mal… y vuelta a empezar. El asistente de IA no está tanto a tu servicio como tú al suyo. 

El problema es que con ese esquema no puedes delegar de verdad. Tienes que estar presente, pendiente del chat, confirmando el plan, cada paso, y desbloqueando al agente cuando se atasca, o reconduciendo cuando se pierde. El cuello de botella sigue siendo tu tiempo. Mientras el humano tenga que estar “en la sala” para que las cosas avancen, la productividad solo sube un poco, nunca un orden de magnitud. Algunos CLIs e IDEs han intentado introducir gestión de tareas en background pero, en la práctica, son difíciles de configurar y usar y casi nadie las adopta.
Neo resuelve este problema de forma que la interacción entre IA y humano sea exactamente la misma que entre humano y humano. No hace falta una interfaz de usuario nueva. Si se trata de delegar, ya tenemos herramientas colaborativas para delegar y trabajar en equipo: Jira, GitHub, Azure DevOps, Confluence, Figma… 
A Neo se le asignan tareas como a cualquier miembro del equipo, se encarga de buscar contexto en tus tickets, documentos, código, crear la rama, implementar cambios, escribir pruebas, resolver el CI si falla, y actualizar el estado de las tareas según el "Way of Working" del equipo. 
Tú te vas a otra cosa y vuelves cuando hay PR lista para revisar, y lo haces en herramientas que llevan 15 años perfeccionando la UX para revisar código. ¿Que quieres iterar? Comentarios en la propia PR ¿Que no te gusta el resultado? Descarta la PR, y no has perdido ni el dinero ni el tiempo.

Problema: Seguridad. CVEs críticos y teatro de permisos

La mayoría de los desarrolladores trabajan en portátiles no plataformados y con permisos de administración. Los agentes que ejecutan corren con sus mismos permisos y las mismas credenciales que usan para acceder a repositorios, pipelines y entornos en la nube. Si alguien compromete el Agente IA o uno de sus conectores, no se queda en la máquina local: entra en la organización con la identidad del desarrollador.


Los MCPs y “tools” enchufados al Agente AI agravan aún más el tema. De repente el modelo puede hablar con bases de datos internas, paneles de administración o scripts de automatización. Cuando algo falla, lo que aparece publicado son CVEs de impacto alto o crítico, porque no estamos hablando de un pequeño leak, sino de ejecución remota, escaladas de privilegios o acceso directo a datos sensibles. Si no, respasa el libro de "Hacking IA: Jailbreak, Prompt Injection, Hallucinations & Unalignment.
Los fabricantes de estas herramientas tratan de mitigar el problema interrumpiendo al Agente IA para que el usuario confirme el uso de la herramienta o recurso, pero esto deja de hacer al agente independiente y al final se acaban ejecutando en un modo “sí a todo” que invalida la mitigación.

Neo parte de un planteamiento distinto. La configuración es gestionada por los equipos de IT y seguridad, no por cada desarrollador en su portátil. Sus permisos se acotan por integraciones y políticas corporativas, de forma parecida a cuando incorporas a un contractor externo. Además, no es un sistema en el que se considera al LLM inteligente y se le pone en un loop hasta que consiga su objetivo.
En su lugar, Neo tiene una serie de flujos deterministas optimizados para tareas de software, lo cual permite meter validaciones en cada paso del flujo, y dar a cada paso exclusivamente el contexto que necesita. Siguen siendo LLMs y el determinismo nunca está garantizado, pero Neo consigue de esta manera una ejecución mucho más predecible.

Problema: Productividad. acelerar solo al programador no mueve la aguja

Si preguntas a los desarrolladores, la mayoría dice que con IA va más rápido. Pero cuando miras las métricas del equipo, ya sea tiempos de entrega, funcionalidades desplegadas, bugs resueltos, … parece que los datos no concuerdan con la experiencia individual.

Al mirar el ciclo completo de una funcionalidad, queda bastante claro lo que está pasando: alguien pide una funcionalidad, se redacta y refina la especificación, se espera a dependencias (diseño, traducciones, otros equipos), se asigna, se desarrolla, se revisa el código, se diseña el plan de pruebas, se ejecutan los tests, se corrigen fallos y, si todo va bien, se despliega. 


El tiempo que el desarrollador pasa escribiendo código es sólo un tramo de esa cadena. Aunque reduzcas a la mitad este tiempo, las dependencias, revisiones, validaciones y esperas siguen igual. El lead time de la funcionalidad casi no se mueve.


Neo está diseñado para este escenario. A Neo no le das un prompt de dos líneas y por el otro lado sale un producto terminado, porque a un miembro del equipo tampoco le pides algo así. Neo ayuda a todos los miembros del equipo en todas las fases del ciclo de vida, aportando un poco a cada uno, acortando cada espera, y automatizando cada tarea monótona.

Como todo esto ocurre en las mismas herramientas colaborativas que ya usas para medir, el impacto se ve en lead time, throughput y calidad, no solo en la sensación subjetiva.

Cómo probar Neo en tu empresa.

Neo no es una herramienta para un proyecto individual ni para un equipo pequeño. Para eso, hay otras herramientas mejores. Neo no es tan potente como el último agente del que hayas oído hablar esta semana trabajando en un problema de forma autónoma todo un fin de semana. Ninguna demo de Neo te va a dejar boquiabierto.

Neo está específicamente diseñado para un entorno corporativo con equipos de entre 5 y 15 personas que siguen un proceso, ya sea ligero o pesado, coordinado en herramientas colaborativas y donde la especificación suele estar dispersa en varias herramientas y cambia constantemente.


Puedes ver varias demos de Neo en acción para hacerte una mejor idea del concepto, y contactar con Sagittal AI para un piloto en tu empresa.

Un saludo,

Autor: José Palazón, CEO de Sagital.ai

martes, abril 07, 2026

Cómo resolver los Captchas Cognitivos Visuales y Auditivos de GitHub con Gemini (o cualquier MM-LLM) sin despeinarte

Cuando empecé a jugar con los Captchas Cognitivos hace unos años estaba claro que los MM-LLMs iban a merendarte estos retos con una facilidad asombrosa, y esto es lo que ya sucede hoy en día. Este sábado, cuando estaba jugando con el Vibe Coding para Locomotive BASIC 1.0 de AMSTRAD CPC fui a recuperar la contraseña de mi cuenta de experimentos en GitHub, y de repente... me toca un Captcha Cognitivo.

Figura 1: Cómo resolver los Captchas Cognitivos Visuales y Auditivos
de GitHub con Gemini (o cualquier MM-LLM) sin despeinarte

El Captcha Cognitivo es de FunCaptcha, y por supuesto está dentro los atacados y explotados por el Crimeware. En estos servicios basados en generar Malware as as Service, puedes pedir exploits, scripts de ofuscación, de movimiento lateral, de búsqueda de datos sensibles en una post-explotación, o de generación de persistencia, y por supuesto de resolución de Captchas Cognitivos.

Entre estos servicios, cómo no, los negocios de resolución de Captchas Cognitivos as a Service, que están sacando el máximo partido posible al mundo de la Inteligencia Artificial. Así que, si los malos pueden, tú también puedes sacarle partido a la IA para hacer cosas buenas.
FunCaptcha utiliza retos Visuales Cogntivios para detectar a los humanos, y aunque al principio eran complejos de automatizar, desde la llegada de MM-LLMs ha sido un juego. Yo he estado jugando con ellos, ya que los utilizan HBO Max, Linkedin, Twitter/X, etcétera, y os he ido dejando artículos para que pudierais ver cómo funcionan:
En este caso, en el Formulario de Recuperación de Contraseñas de GitHub, que puedes probarlo para automatizar tu propia API, puedes ver que aparece el Captcha Cognitivo. Este puede ser visual o auditivo. En el visual, que es este primero, hay que alinear la orientación de dos objetos "extraños"

Figura 4: Captcha Cognitivo de FunCaptcha en GitHub


Para probarlo, subo una imagen inicialmente para ver qué tal analiza los dos objetos y su orientación, con la pregunta más sencilla posible. Nada de complicarse, a ver qué me contesta.

Figura 5: Preguntando si estás mirando hacia el mismo sitio?

Y la respuesta es de lo más elaborada, así que vamos a tener que decirle que se atenga a Sí o No para poder apificar esto sin desperdiciar muchos tokens, que no está la vida como para ir tirando tokens a lo loco por ahí.

Figura 6: Explicación larga para decir que lo puede hacer.

Pues nada, te haces un Agentic AI que recorte las imágenes, y le diga a Gemini que te diga si esos dos objetos están en la misma dirección. Si Sí, pues Submit, si No, pues nada, mover la flecha hacia un la derecha (comienza a la izquierda del todo siempre).

Figura 7: No están en la misma dirección, así que hay que mover la flecha

Cuando estén en la misma dirección, como este otro ejemplo, pues nada, habremos terminado y sólo hay que dar al botón de Submit. Algo que para un Agente IA de hoy en día no es nada difícil de realizar. Es por eso que en el mundo del Crimeware los MM-LLMs son tan importantes.

Figura 8: Cuando están orientados, pues Submit

Pero vamos ahora a la parte Auditiva. Es decir, a resolver el Captcha Cognitivo con los sonidos que nos ofrece el Formulario de Recuperación de Contraseñas de GitHub. Aquí, en este vídeo tenéis el audio completo de cómo funciona este reto de inteligencia auditiva.

Figura 9: Captcha Cogntivio Auditivo de FunCaptcha en GitHub

Usar el audio es algo que ya hemos estado viendo en otros artículos, y comenzamos hace mucho tiempo con ReCaptcha v2 de Google, porque esta es otra línea de investigación que permite conseguir el mismo objetivo por otros medios. A veces más costoso, a veces más fácil.
Hoy en día, con los MM-LLMs, es bastante sencillo, porque sólo he tenido que grabar el audio y subirlo a Gemini para obtener el resultado que deseaba.

Figura 10: Subiendo el audio a Gemini

Y el resultado lo tenemos a la primera, como podéis ver en la siguiente imagen, donde Gemini da la respuesta correcta. Pero como el Formulario de Recuperación de Contraseñas de GitHub está abierto, podéis probarlo vosotros mismos con diferentes imágenes y audios que os de.

Figura 11: Respuesta correcta. Submit.

Resolver los FunCaptcha, cada día es más sencillo, ya que cada vez funcionan mejor los MM-LLMs. En este ejemplo con Gemini se puede ver cómo a la primera resuelve el reto del Formulario de Recuperación de Contraseñas de GitHub.

Si te interesa la IA y la Ciberseguridad, tienes en este enlace todos los posts, papers y charlas que se han  escrito, citado o publicado en este blog sobre este tema: +300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


martes, marzo 03, 2026

Cómo migrar Arkanoid de C++ a TypeScript con OpenCode y desplegarlo en Workers de Cloudflare

Hola a todos los lectores de El lado del mal. Soy Carlos Luengo, recientemente he comenzado una nueva etapa profesional y acabo de aterrizar en Cloudflare como Senior Account Executive. Charlando el otro día con Chema Alonso sobre las capacidades de la parte developers, me lanzó el guante: 

"¿Sabes lo que molaría, Carlos? Ahora que le estas dando mucho al Vibe Coding porque nunca has programado podías probar a ver cómo migrar aplicaciones "Legacy" pesadas y meterlas en el ecosistema de Workers de Cloudflare. Molaría hacerlo con los juegos Retro. Ya sabes Gaming + Vibe Coding + IA + Workers. Mola todo, ¿no?".

Y bueno, pues el resto ya lo vais aquí, reto aceptado. 

Figura 1: Cómo migrar Arkanoid de C++ a TypeScript
con OpenCode y desplegarlo en Workers de Cloudflare 

El objetivo del laboratorio de hoy es coger un código clásico y monolítico escrito en C++, en este caso, un clon del mítico Arkanoid que casi cada programador ha hecho una vez en su vida, y migrarlo por completo a TypeScript para que corra de forma nativa en la web y desplegarlo en la infraestructura Serverless de Cloudflare Workers en Cloudflare Pages. La inspiración para esta locura vino de una iniciativa muy chula de Seb Grubb.

La magia de OpenCode y el Unified Billing de Cloudflare AI Gateway

En pleno 2026, no iba a ponerme a traducir punteros y bucles de memoria de C++ a mano. Para hacer el trabajo sucio hemos utilizado OpenCode, una herramienta brutal para lanzar Agentes de IA autónomos. Pero aquí viene lo interesante de la arquitectura que hemos montado:

Figura 2: Arrancando OpenCode desde la terminal.

En lugar de pelearnos con mil APIs distintas, hemos conectado OpenCode a través del AI Gateway de Cloudflare. Esto es una pasada porque, gracias al Unified Billing (facturación unificada), Cloudflare te permite hacer inferencia accediendo a una barbaridad de modelos del mercado de OpenAI, Anthropic, Meta, etcétera, centralizando el coste, la observabilidad y el control de rate limits en un solo panel. Para esta migración, hemos elegido darle caña a la bestia de Claude Sonnet 4.6.

Figura 3: Configurando los proveedores.

Fijaos cómo nos conectamos al end-point de Anthropic pasando directamente por la pasarela de Cloudflare AI Gateway.

Figura 4: Seleccionando el “modelo" Claude (Anthropic)
servido a través de Cloudflare AI Gateway.

El proceso de Migración Autónoma

Una vez preparado el entorno, abrimos la sesión en el repositorio donde teníamos nuestro triste código en C++. Le lanzamos el Prompt maestro a Sonnet 4.6 indicándole que analice los archivos originales, monte un andamiaje con Vite en TypeScript puro, correlacione las lógicas de colisión vectorial y convierta el pintado a HTML5 Canvas.

Figura 5: Espacio de trabajo listo en OpenCode para meter el prompt maestro.

El Prompt para conseguir la migración no es muy complejo, así que si quieres probar tú directamente todo el proceso, te lo dejo por aquí, para que solo tengas que copiar, pegar y adaptar a tu juego.

Actúa como un Ingeniero de Software Principal y Experto en Desarrollo de Videojuegos, especializado en C++, TypeScript, HTML5 Canvas y arquitecturas de despliegue en Cloudflare. 
 
Tu objetivo es migrar de forma autónoma, completa y sin requerir intervención humana el juego "Arkanoid" escrito en C++ (ubicado en este repositorio/directorio) a una aplicación web moderna en TypeScript.

### 1. CONTEXTO Y PILA TECNOLÓGICA (TECH STACK)
- *Origen:* Código C++ (Lógica de juego, física, gestión de memoria manual, bucles nativos).
- *Destino:* TypeScript estricto (strict: true).
- *Renderizado:* HTML5 <canvas> API (o WebGL si la complejidad del C++ lo requiere, pero prefiere Canvas 2D para Arkanoid por simplicidad).
- *Entorno de Construcción:* Vite (rápido, moderno y compatible con TS).
- *Despliegue:* Cloudflare Pages (se requerirá configuración de build).

### 2. REGLAS ESTRICTAS DE AUTONOMÍA
- NO te detengas para pedirme permiso a menos que falte un archivo crítico.
- Analiza todos los archivos C++ del repositorio primero. Lee los .h, .hpp y .cpp para entender la arquitectura (entidades como Paddle, Ball, Bricks, GameState, Collision).
- Escribe, crea y modifica los archivos directamente en el entorno de trabajo.
- Si encuentras librerías de C++ (como SDL2, SFML o Raylib), abstrae sus llamadas y reemplázalas por sus equivalentes nativos en la Web (por ejemplo: eventos del DOM para inputs, requestAnimationFrame para el Game Loop, API de Audio Web para sonido).

### 3. PLAN DE EJECUCIÓN PASO A PASO (Ejecuta en orden):
*PASO 1: Análisis y Scaffold del Proyecto Web*
- Inicializa un nuevo proyecto con Vite y TypeScript puro (Vanilla TS).
- Crea el package.json, tsconfig.json (con modo estricto) y vite.config.ts.
- Instala las dependencias necesarias (npm install o el gestor que use el entorno).
- Crea un index.html con un <canvas id="gameCanvas"></canvas> que ocupe de manera responsiva el espacio de la ventana sin deformar el aspect ratio.

*PASO 2: Migración de Core y Entidades*
- Traduce las clases y structs de C++ a Clases o Interfaces de TypeScript.
- Implementa la física vectorial y la detección de colisiones (AABB, círculo-rectángulo) manteniendo la matemática exacta del C++ original.
- Tipa todo explícitamente. NO uses any.

*PASO 3: Game Loop y Control de Tiempo*
- En C++, el bucle probablemente use while(running) y cálculos con Delta Time.
- En TypeScript, implementa una clase GameEngine o similar que utilice window.requestAnimationFrame.

Aquí os dejo el primer vídeo donde se ve al agente de OpenCode en acción. Fijaos cómo explora el repositorio, entiende la arquitectura antigua y empieza a escupir los nuevos archivos .ts de forma autónoma.

Figura 6: El agente analizando el código C++
e implementando el scaffolding del proyecto.

Tras un rato de "magia", el código base ya está portado. El siguiente paso es empaquetarlo y prepararlo para la plataforma moderna. El asistente automáticamente configuró el entorno de compilación y preparó la estructura de directorios (/dist) compatible con los estándares web.

Figura 7: Resumen de los comandos generados por la IA para el despliegue local y en Cloudflare Pages, con los 25 archivos modificados.

En este segundo vídeo, podéis ver la fase de Build. La IA ejecuta los comandos de terminal por nosotros, arregla las dependencias, compila el código TypeScript a JavaScript puro y configura las instrucciones de enrutamiento estático (creando el archivo _redirects y tocando el package.json) para que el ecosistema de Cloudflare entienda qué tienen que servir. 

Figura 8  Generando la compilación con Vite y
ajustando los parámetros para Cloudflare Pages.

Fijaos que si pulsamos en contexto podemos ver el coste completo de migrar el juego de C++ a TS, tan solo han sido 0.67$.

Despliegue Global: De C++ al Edge en segundos

Llegamos al final del experimento. Una vez que la aplicación web estaba ensamblada y libre de errores, solo quedaba publicarla. 

Figura 9: Comprobando credenciales con la CLI de Cloudflare y procesando el wrangler

A través del propio terminal gestionado por el agente, lanzamos la autenticación de Wrangler (npx wrangler whoami) y el comando de deploy.

Figura 10: ¡Boom! Despliegue completado, subido a la red global y generando la URL final.

La Propuesta de Valor

Chema Alonso me pedía ver esto por una razón. En el mundo real empresarial estamos rodeados de deudas técnicas monolíticas. La propuesta de valor de Cloudflare en estos escenarios es revolucionaria: pasas de mantener código ineficiente en servidores caros, a refactorizarlo masivamente con IA y empujarlo directamente al Edge.


Al desplegar en Cloudflare Pages apoyado por Cloudflare Workers, el juego ya no corre en un servidor centralizado. Se sirve desde el centro de datos más cercano a la casa del usuario que lo abra aprovechando la potencia de la red mundial Anycast de Cloudflare, con latencia ultra-baja, protección contra ataques DDoS y WAF integrado por defecto. Y todo ello gobernado por nuestro AI Gateway de Cloudflare que hace de puente seguro y unificado para los modelos generativos.

El Resultado

¿Queréis probar el resultado de esta migración autónoma? Podéis jugar al Arkanoid migrado que ya está volando en la red de Cloudflare, y revisar todo el código que se ha generado con Vibe-Coding en el repositorio de GitHub.

Figura 12: Chema Alonso probando el Arkanoid en Cloudflare
Espero que os haya gustado este "experimento". A seguir hackeando, y nos vemos en la nube - o mejor dicho, en el Edge -.

¡Saludos!

Autor: Carlos Luengo,  Senior Account Executive en Cloudflare. 

Entrada destacada

Hacking IA: Jailbreak, Prompt Injection, Hallucinations & Unalignment. Nuestro nuevo libro en 0xWord

Pocas veces me ha hecho tanta ilusión que saliera un nuevo libro en 0xWord como con este libro de " Hacking IA: Jailbreak, Prompt Inje...

Entradas populares