<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Software Engineering on KnightLi Blog</title>
        <link>https://www.knightli.com/es/tags/software-engineering/</link>
        <description>Recent content in Software Engineering on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Fri, 15 May 2026 08:46:23 +0800</lastBuildDate><atom:link href="https://www.knightli.com/es/tags/software-engineering/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Rechazar el Vibe Coding: el repositorio skills de Matt Pocock añade restricciones de ingeniería a la programación con IA</title>
        <link>https://www.knightli.com/es/2026/05/15/matt-pocock-skills-ai-engineering-workflow/</link>
        <pubDate>Fri, 15 May 2026 08:46:23 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/05/15/matt-pocock-skills-ai-engineering-workflow/</guid>
        <description>&lt;p&gt;Cuanto más rápido escribe código la IA, más rápido puede perder el control un proyecto. La cuestión real no es si un modelo puede generar funciones, sino si entiende el requisito, respeta el lenguaje del equipo y avanza con cambios pequeños dentro de la arquitectura existente.&lt;/p&gt;
&lt;p&gt;El repositorio &lt;code&gt;mattpocock/skills&lt;/code&gt; de Matt Pocock apunta en la dirección opuesta al vibe coding: no dejar que la IA tome todo el proceso de desarrollo, sino ponerla dentro de restricciones maduras de ingeniería de software.&lt;/p&gt;
&lt;p&gt;Proyecto: &lt;a class=&#34;link&#34; href=&#34;https://github.com/mattpocock/skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/mattpocock/skills&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;No se trata de un prompt mágico. Es un conjunto de agent skills que convierten aclaración de requisitos, modelado de dominio, TDD, diagnóstico y revisión arquitectónica en workflows adecuados para herramientas de AI Coding.&lt;/p&gt;
&lt;h2 id=&#34;primero-resolver-la-falta-de-alineación&#34;&gt;Primero resolver la falta de alineación
&lt;/h2&gt;&lt;p&gt;El fallo más común en AI Coding es creer que el modelo entendió cuando en realidad solo adivinó a partir de una descripción vaga.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;grill-me&lt;/code&gt; invierte la interacción. Antes de escribir código, el agente actúa como un revisor exigente y pregunta por ramas, límites y decisiones pendientes.&lt;/p&gt;
&lt;p&gt;Si pides una página de login, debería preguntar primero:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cómo funcionará recuperar contraseña.&lt;/li&gt;
&lt;li&gt;Si habrá login de terceros.&lt;/li&gt;
&lt;li&gt;Qué error mostrar cuando falle el login.&lt;/li&gt;
&lt;li&gt;Si bloqueo de cuenta, CAPTCHA o control de riesgo están dentro del alcance.&lt;/li&gt;
&lt;li&gt;A dónde redirigir tras el éxito.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Parece más lento, pero reduce retrabajo. Cuanto más barato es generar código, más caro se vuelve no haber aclarado el requisito.&lt;/p&gt;
&lt;h2 id=&#34;escribir-el-lenguaje-de-dominio-en-el-contexto&#34;&gt;Escribir el lenguaje de dominio en el contexto
&lt;/h2&gt;&lt;p&gt;Otro problema es el vocabulario genérico. El modelo no conoce los términos internos del equipo, así que los nombres de variables, funciones y documentos empiezan a desviarse.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;grill-with-docs&lt;/code&gt; pregunta mientras revisa &lt;code&gt;CONTEXT.md&lt;/code&gt;, ADRs o documentos de dominio. Los términos y decisiones confirmados pueden volver a esos documentos.&lt;/p&gt;
&lt;p&gt;Esto se parece al lenguaje ubicuo de DDD. Si el equipo dice customer en lugar de user, o transaction en lugar de order, la IA debe heredar esa terminología.&lt;/p&gt;
&lt;p&gt;El valor del contexto no está en acumular datos, sino en reducir la necesidad de adivinar.&lt;/p&gt;
&lt;h2 id=&#34;usar-tdd-para-limitar-la-velocidad&#34;&gt;Usar TDD para limitar la velocidad
&lt;/h2&gt;&lt;p&gt;La IA es peligrosa porque es rápida. Antes, escribir mucho mal código tomaba tiempo; ahora aparecen cientos de líneas en segundos. El problema no es la velocidad, sino la falta de ciclos de feedback.&lt;/p&gt;
&lt;p&gt;El skill &lt;code&gt;tdd&lt;/code&gt; devuelve el ciclo rojo-verde-refactor:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Escribir un test fallido para un comportamiento.&lt;/li&gt;
&lt;li&gt;Implementar lo mínimo para pasarlo.&lt;/li&gt;
&lt;li&gt;Refactorizar.&lt;/li&gt;
&lt;li&gt;Continuar con el siguiente corte vertical.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;La clave es avanzar comportamiento por comportamiento. La IA ejecuta; la persona controla dirección y límites.&lt;/p&gt;
&lt;h2 id=&#34;diagnosticar-con-un-ciclo&#34;&gt;Diagnosticar con un ciclo
&lt;/h2&gt;&lt;p&gt;Ante un bug, muchos agentes adivinan y parchean varias veces hasta empeorar el código.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;diagnose&lt;/code&gt; exige crear primero un ciclo de feedback:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reproducir el problema&lt;/li&gt;
&lt;li&gt;Minimizar el caso&lt;/li&gt;
&lt;li&gt;Formular una hipótesis&lt;/li&gt;
&lt;li&gt;Añadir observación o logs&lt;/li&gt;
&lt;li&gt;Corregir&lt;/li&gt;
&lt;li&gt;Añadir una prueba de regresión&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es un proceso clásico, pero en AI Coding es aún más importante. La IA prueba rápido; el proceso la mantiene cerca de la causa raíz.&lt;/p&gt;
&lt;h2 id=&#34;revisar-la-arquitectura-con-regularidad&#34;&gt;Revisar la arquitectura con regularidad
&lt;/h2&gt;&lt;p&gt;Que una tarea pase no significa que el código esté mejor. Muchas pequeñas modificaciones de IA pueden difuminar límites de módulos, complicar interfaces y hacer más difíciles los tests.&lt;/p&gt;
&lt;p&gt;Skills como &lt;code&gt;improve-codebase-architecture&lt;/code&gt; hacen que el agente mire el código desde más arriba:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Qué módulos mezclan responsabilidades.&lt;/li&gt;
&lt;li&gt;Qué interfaces son demasiado complejas.&lt;/li&gt;
&lt;li&gt;Qué rutas son difíciles de probar.&lt;/li&gt;
&lt;li&gt;Qué nombres no encajan con el lenguaje de dominio.&lt;/li&gt;
&lt;li&gt;Qué duplicaciones conviene consolidar.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No es una gran refactorización automática. Es observación estructurada y dirección de mejora; la decisión sigue siendo humana.&lt;/p&gt;
&lt;h2 id=&#34;lo-que-hay-que-limitar-es-la-libertad&#34;&gt;Lo que hay que limitar es la libertad
&lt;/h2&gt;&lt;p&gt;La idea central es sencilla: programar con IA no consiste en dejar improvisar al modelo, sino en darle objetivos, contexto, tests y condiciones de parada.&lt;/p&gt;
&lt;p&gt;Las personas definen el problema, los límites de arquitectura, las decisiones de negocio y los criterios de aceptación. La IA genera código, completa tests, repite cambios y hace refactors locales.&lt;/p&gt;
&lt;p&gt;Los fundamentos de ingeniería de software no quedaron obsoletos porque la IA mejoró. Aclarar requisitos, usar lenguaje de dominio, TDD, diagnóstico y revisión de arquitectura es cada vez más importante.&lt;/p&gt;
&lt;p&gt;Cada vez más personas podrán escribir código. La diferencia estará en quién puede insertar la IA en un sistema de ingeniería mantenible, verificable y capaz de evolucionar.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
