<!DOCTYPE html>
<html lang="es">
<head>
<base href="/">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<title>Desarrollo agéntico: construir con criterio, no más rápido — EstratégicaMente</title>
<meta name="description" content="El desarrollo agéntico no va de programar más rápido: es un nuevo paradigma. Cómo lo aplicamos en Simplicity for Grants© y qué cambia para tu organización.">
<meta name="theme-color" content="#0A2540">
<link rel="stylesheet" href="assets/css/style.css?v=56">
<style>
  .article-loading { padding: 8rem 2rem; text-align: center; color: var(--meta); font-family: var(--sans); }
  .article-error { padding: 8rem 2rem; text-align: center; color: var(--ink); font-family: var(--serif); }

  /* DISEÑO EDITORIAL para el cuerpo del artículo (CMS) */
  .article-body {
    font-family: var(--serif);
    font-size: 1.125rem;
    line-height: 1.75;
    color: var(--ink);
    max-width: 720px;
    margin: 0 auto;
  }
  .article-body p:first-of-type {
    font-family: var(--display);
    font-size: 1.5rem;
    font-style: italic;
    color: var(--ink-soft);
    line-height: 1.4;
    margin-bottom: 2.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--line);
  }
  .article-body p { margin-bottom: 1.25rem; }
  .article-body h2 {
    font-family: var(--display);
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 400;
    color: var(--navy);
    margin: 3rem 0 1.25rem;
    line-height: 1.15;
    letter-spacing: -0.01em;
  }
  .article-body h2::before {
    content: "◆";
    display: block;
    color: var(--gold);
    font-size: 0.7rem;
    margin-bottom: 0.75rem;
    letter-spacing: 0.5rem;
  }
  .article-body h3 {
    font-family: var(--display);
    font-size: 1.4rem;
    font-weight: 500;
    color: var(--navy);
    margin: 2.5rem 0 1rem;
    line-height: 1.2;
  }
  .article-body em, .article-body i { font-style: italic; color: var(--ink-soft); }
  .article-body strong, .article-body b { font-weight: 600; color: var(--navy); }
  .article-body u { text-decoration: underline; text-decoration-color: var(--gold); text-decoration-thickness: 2px; text-underline-offset: 4px; }
  .article-body s { color: var(--meta); }
  .article-body a {
    color: var(--gold);
    border-bottom: 1px solid currentColor;
    transition: opacity 0.2s;
  }
  .article-body a:hover { opacity: 0.7; }
  .article-body ul, .article-body ol {
    margin: 1.5rem 0 1.5rem 0;
    padding-left: 2rem;
  }
  .article-body ul li, .article-body ol li {
    margin-bottom: 0.75rem;
    padding-left: 0.5rem;
  }
  .article-body ul li::marker { color: var(--gold); }
  .article-body ol li::marker { color: var(--gold); font-weight: 600; }
  .article-body blockquote {
    border-left: 4px solid var(--gold);
    padding: 1.25rem 2rem;
    margin: 2.5rem 0;
    font-family: var(--display);
    font-style: italic;
    font-size: 1.35rem;
    line-height: 1.5;
    color: var(--navy);
    background: var(--paper);
  }
  .article-body img {
    max-width: 100%;
    height: auto;
    margin: 2rem auto;
    display: block;
    border-radius: 2px;
  }

  /* Alineaciones de Quill */
  .article-body .ql-align-center { text-align: center; }
  .article-body .ql-align-right { text-align: right; }
  .article-body .ql-align-justify { text-align: justify; }

  /* Imagen de portada */
  .article-image {
    margin: 2rem auto 3rem;
    max-width: 760px;
    aspect-ratio: 16/9;
    overflow: hidden;
    border-radius: 2px;
  }
  .article-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  /* ── Vídeo privacy-first + bloques de webinar (reutilizable en cualquier artículo) ── */
  .article-body .yt-facade{
    position:relative; width:100%; aspect-ratio:16/9; border-radius:8px; overflow:hidden;
    background:#0A2540 center/cover no-repeat; cursor:pointer; margin:2rem 0;
    border:1px solid var(--navy-line,#22405E); box-shadow:0 20px 50px -24px rgba(10,37,64,.55);
  }
  .article-body .yt-facade::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(10,37,64,.05),rgba(10,37,64,.45)); transition:background .3s; }
  .article-body .yt-facade:hover::after{ background:linear-gradient(180deg,rgba(10,37,64,.12),rgba(10,37,64,.55)); }
  .article-body .yt-facade iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
  .article-body .yt-play{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:3; pointer-events:none;
    width:78px; height:78px; border-radius:50%; background:var(--gold); color:var(--navy);
    display:flex; align-items:center; justify-content:center; box-shadow:0 12px 30px -8px rgba(0,0,0,.45); transition:transform .25s;
  }
  .article-body .yt-facade:hover .yt-play{ transform:translate(-50%,-50%) scale(1.08); }
  .article-body .yt-facade:focus-visible{ outline:3px solid var(--gold); outline-offset:3px; }
  .article-body .yt-play svg{ width:30px; height:30px; margin-left:4px; }
  .article-body .yt-badge{
    position:absolute; top:1rem; left:1rem; z-index:3; display:inline-flex; align-items:center; gap:.5rem;
    background:rgba(10,37,64,.78); color:#fff; font-family:var(--sans); font-size:.7rem; font-weight:700;
    letter-spacing:.12em; text-transform:uppercase; padding:.4rem .8rem; border-radius:4px;
  }
  .article-body .yt-badge .dot{ width:8px; height:8px; border-radius:50%; background:var(--gold); }
  .article-body .chapters-list{ list-style:none; padding:0; margin:1.25rem 0; display:grid; gap:.5rem; }
  .article-body .chapters-list li{ display:flex; gap:1rem; align-items:baseline; padding:.8rem 1rem; border:1px solid var(--line); border-radius:6px; background:#fff; }
  .article-body .chapters-list .ts{ font-weight:700; color:var(--gold); min-width:2.2rem; }
  .article-body .speaker-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; margin:1.25rem 0; }
  .article-body .speaker-card{ border:1px solid var(--line); border-radius:8px; padding:1.5rem; background:var(--cream-soft,#F4F6F8); }
  .article-body .speaker-card h3{ font-family:var(--display); color:var(--navy); margin:0 0 .25rem; font-size:1.1rem; }
  .article-body .speaker-card .role{ font-family:var(--sans); font-size:.82rem; color:var(--gold); font-weight:700; margin-bottom:.6rem; }
  .article-body .speaker-card p{ font-size:.9rem; color:var(--ink-soft); line-height:1.6; margin:0; }
  .article-body .webinar-cta{ display:flex; flex-wrap:wrap; gap:.75rem; justify-content:center; margin:2rem 0; }
  @media (max-width:600px){ .article-body .speaker-grid{ grid-template-columns:1fr; } }

  @media print {
    nav.nav, footer.footer, .breadcrumb, .article-meta::before { display: none !important; }
    body { background: white; }
    .article-body { max-width: 100%; }
  }
</style>
<link rel="icon" type="image/svg+xml" href="assets/favicon/favicon.svg?v=3">
<link rel="icon" type="image/png" sizes="32x32" href="assets/favicon/favicon-32.png?v=3">
<link rel="icon" type="image/png" sizes="16x16" href="assets/favicon/favicon-16.png?v=3">
<link rel="apple-touch-icon" sizes="180x180" href="assets/favicon/apple-touch-icon.png?v=3">
<link rel="icon" type="image/x-icon" href="assets/favicon/favicon.ico?v=3">

<link rel="canonical" href="https://estrategicamente.info/blog/desarrollo-agentico-nuevo-paradigma-construir-software">
<link rel="alternate" hreflang="es" href="https://estrategicamente.info/blog/desarrollo-agentico-nuevo-paradigma-construir-software">
<link rel="alternate" hreflang="en" href="https://estrategicamente.info/blog/desarrollo-agentico-nuevo-paradigma-construir-software">
<link rel="alternate" hreflang="x-default" href="https://estrategicamente.info/blog/desarrollo-agentico-nuevo-paradigma-construir-software">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@interimmanager">
<meta property="og:image" content="https://images.unsplash.com/photo-1519682718457-c82ce8296645?fm=jpg&amp;q=70&amp;w=1600&amp;auto=format&amp;fit=crop">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://images.unsplash.com/photo-1519682718457-c82ce8296645?fm=jpg&amp;q=70&amp;w=1600&amp;auto=format&amp;fit=crop">
<meta property="og:site_name" content="EstratégicaMente">
<meta property="og:locale" content="es_ES">
<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1">

<!-- Microsoft Clarity · heatmaps + session recordings -->
<script type="text/javascript">
  (function(c,l,a,r,i,t,y){
    c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
    t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
    y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
  })(window, document, "clarity", "script", "wqv1qcoy3k");
</script>
  <link rel="stylesheet" href="assets/css/accesibilidad.css">
    <link rel="stylesheet" href="assets/css/ai-governance.css">
  
<!-- ss-sigma-layer -->
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&display=swap" rel="stylesheet">
<link rel="stylesheet" href="assets/css/sigma.css?v=3">
<script type="application/ld+json">
{
 "@context": "https://schema.org",
 "@type": "WebPage",
 "@id": "https://estrategicamente.info/blog/desarrollo-agentico-nuevo-paradigma-construir-software#webpage",
 "url": "https://estrategicamente.info/blog/desarrollo-agentico-nuevo-paradigma-construir-software",
 "name": "Desarrollo agéntico: construir con criterio, no más rápido — EstratégicaMente",
 "inLanguage": "es",
 "isPartOf": {
  "@id": "https://estrategicamente.info/#website"
 },
 "speakable": {
  "@type": "SpeakableSpecification",
  "cssSelector": [
   "h1",
   ".respuesta-directa"
  ]
 },
 "publisher": {
  "@id": "https://estrategicamente.info/#organization"
 }
}
</script>
<meta property="og:type" content="article"><meta property="og:title" content="Desarrollo agéntico: construir con criterio, no más rápido"><meta property="og:url" content="https://estrategicamente.info/blog/desarrollo-agentico-nuevo-paradigma-construir-software"><meta name="ssr" content="supabase"></head>
<body>

<nav class="nav" id="nav">
  <div class="nav-inner">
    <a class='nav-brand' href='/'><img src="assets/logos/estrategicamente-logo.svg" alt="EstratégicaMente"></a>
    <ul class="nav-menu" id="nav-menu">
      <li class="nav-dropdown">
        <button type="button" class="nav-dropdown-toggle" aria-haspopup="true"><span data-lang="es">Simplicity</span><span data-lang="en">Simplicity</span><span class="nav-caret" aria-hidden="true"></span></button>
        <ul class="nav-dropdown-menu">
        <li><a href='/asesoramiento'><span data-lang="es">Advisory</span><span data-lang="en">Advisory</span></a></li>
        <li><a href='/grants'><span data-lang="es">Grants</span><span data-lang="en">Grants</span></a></li>
        <li><a href='/grantify'><span data-lang="es">Grantify</span><span data-lang="en">Grantify</span></a></li>
        <li><a href='/processes'><span data-lang="es">Processes</span><span data-lang="en">Processes</span></a></li>
        <li><a href='/consilium'><span data-lang="es">Consilium</span><span data-lang="en">Consilium</span></a></li>
        <li><a href='/lab'><span data-lang="es">Lab</span><span data-lang="en">Lab</span></a></li>
        <li><a href='/criteria'><span data-lang="es">CriterIA©</span><span data-lang="en">CriterIA©</span></a></li>
        </ul>
      </li>
      <li><a href='/blog'><span data-lang="es">Blog</span><span data-lang="en">Blog</span></a></li>
      <li class="nav-dropdown">
        <button type="button" class="nav-dropdown-toggle" aria-haspopup="true"><span data-lang="es">Sobre nosotros</span><span data-lang="en">About</span><span class="nav-caret" aria-hidden="true"></span></button>
        <ul class="nav-dropdown-menu">
        <li><a href='/sobre'><span data-lang="es">Sobre nosotros</span><span data-lang="en">About us</span></a></li>
        <li><a href='/contacto'><span data-lang="es">Contacto</span><span data-lang="en">Contact</span></a></li>
        <li><a href='/recursos'><span data-lang="es">Recursos gratuitos</span><span data-lang="en">Free resources</span></a></li>
        </ul>
      </li>
    </ul>
    <div class="nav-right">
      <a class='btn-eu-ai-act' href='/recursos-eu-ai-act' title='Checklist gratuito EU AI Act'><span class="btn-eu-badge">GRATIS</span><span class="btn-eu-text" data-lang="es">EU AI Act</span><span class="btn-eu-text" data-lang="en">EU AI Act</span></a>
      <div class="lang-toggle"><button data-lang="es" class="active">ES</button><button data-lang="en">EN</button></div>
      
      <button class="nav-toggle" id="nav-toggle"><span></span><span></span><span></span></button>
    </div>
  </div>
</nav>

<article class="article-page" id="article-root"><div class="container-narrow"><div class="breadcrumb" style="margin-top:6rem;margin-bottom:1.5rem;"><a href="index.html">EstratégicaMente</a> <span class="sep">◆</span> <a href="blog.html">Blog</a></div><div class="article-meta" style="font-family:var(--sans);font-size:0.75rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold);margin-bottom:1.5rem;">4 jul 2026 · G. Taboada</div><h1 style="font-family:var(--display);font-size:clamp(2.25rem,5vw,4rem);font-weight:400;line-height:1.05;color:var(--navy);margin-bottom:2rem;max-width:760px;margin-left:auto;margin-right:auto;">Desarrollo agéntico: construir con criterio, no más rápido</h1><div class="article-image" style="margin:2rem auto 3rem;max-width:760px;aspect-ratio:16/9;overflow:hidden;"><img src="https://images.unsplash.com/photo-1519682718457-c82ce8296645?fm=jpg&amp;q=70&amp;w=1600&amp;auto=format&amp;fit=crop" alt="Desarrollo agéntico: construir con criterio, no más rápido" style="width:100%;height:100%;object-fit:cover;"></div><div class="article-body"><p class="ql-align-justify"><em>El pasado 1 de junio pusimos en producción CRAFT©, la herramienta que redacta memorias técnicas de subvención dentro de nuestra suite Simplicity for Grants©. La construimos en semanas, no en meses. Y aquí viene lo interesante: las horas más valiosas del proyecto no las dedicamos a programar. Las dedicamos a pensar.</em></p><p class="ql-align-justify">

</p><p class="ql-align-justify">Durante meses, la conversación sobre inteligencia artificial y software se ha obsesionado con un único número: la velocidad. Cuántas líneas de código genera un agente por minuto, cuántas horas de «picar código» desaparecen del calendario. Es una lectura comprensible. También es una lectura equivocada, y quien se quede en ella va a perderse el verdadero cambio.</p><p class="ql-align-justify">

</p><p class="ql-align-justify">Porque el <strong>desarrollo agéntico</strong> no consiste en programar más rápido. Consiste en construir software de otra manera. La IA ya no autocompleta tu frase: lee los requisitos, planifica las tareas, escribe el código, lo ejecuta, lo prueba y se corrige a sí misma. Y cuando una máquina asume ese ciclo completo, lo que cambia no es tu herramienta. Es tu trabajo.</p><p class="ql-align-justify">

</p><h2 class="ql-align-justify">De tocar el violín a dirigir la orquesta</h2><p class="ql-align-justify">
</p><p class="ql-align-justify">La mejor forma de entenderlo es una imagen sencilla. Hasta ahora, un buen desarrollador era un buen instrumentista: dominaba su violín —su lenguaje, su framework— y su valor se medía por lo bien y lo rápido que tocaba. En el desarrollo agéntico, ese profesional se convierte en director de orquesta. Ya no toca cada nota: define la partitura, marca el tempo, escucha el conjunto y corrige al instante lo que desafina.</p><p class="ql-align-justify">
</p><p class="ql-align-justify">El director no es menos músico que el violinista. Es músico en otro nivel. Y la orquesta sin director, por muy virtuosos que sean sus agentes, solo produce ruido a gran velocidad.</p><p class="ql-align-justify">

</p><blockquote style="border-left:3px solid var(--gold); padding-left:1.25rem; margin:2.5rem 0; font-size:1.15rem; font-style:italic;" class="ql-align-justify">«Cuando la máquina escribe el código, el valor humano se muda a lo que hay antes del código: el problema, la arquitectura y el criterio.»</blockquote><p class="ql-align-justify">

</p><h2 class="ql-align-justify">El cuello de botella ha cambiado de sitio</h2><p class="ql-align-justify">
</p><p class="ql-align-justify">Ya vivimos un salto así. Cuando la industria pasó del ensamblador a los lenguajes de alto nivel, no desapareció la ingeniería: cambió el nivel de abstracción en el que se ejercía. Ahora el salto se repite, y el nuevo nivel es el de la especificación, la arquitectura y la validación.</p><p class="ql-align-justify">
</p><p class="ql-align-justify">Piénsalo con un ejemplo cotidiano de nuestro sector, el de las subvenciones. Si un agente puede implementar en horas lo que antes llevaba semanas, la pregunta decisiva deja de ser «¿cuánto tardamos en programarlo?» y pasa a ser «¿hemos definido bien qué debe hacer?». ¿Los requisitos son inequívocos o dejan margen a que quien pide y quien construye entiendan cosas distintas? ¿La arquitectura aguanta el crecimiento previsto? <strong>Un error de alcance ya no cuesta una tarde de retoques: se propaga por todo el sistema a la misma velocidad a la que se construye.</strong></p><p class="ql-align-justify">
</p><p class="ql-align-justify">Es la diferencia entre poner ladrillos y firmar los planos. Cuando los ladrillos se colocan solos, todo el peso del edificio recae en el plano. Y los planos, hoy más que nunca, hay que pensarlos despacio.</p><p class="ql-align-justify">

</p><h2 class="ql-align-justify">Lo hemos comprobado construyendo, no teorizando</h2><p class="ql-align-justify">
</p><p class="ql-align-justify">Esta no es una reflexión de tribuna. En <a href="https://estrategicamente.info/" rel="noopener noreferrer" target="_blank">EstratégicaMente </a>llevamos años aplicando el desarrollo agéntico en producción real, con la suite <a href="/blog/apex-draft-craft-subvenciones-con-criterio">Simplicity for Grants©</a> como banco de pruebas: APEX© evalúa la viabilidad de un proyecto con nuestro Score IMC©, DRAFT© estructura la candidatura y crea la prememoria y CRAFT© redacta la memoria técnica completa. Tres productos vivos, con clientes reales y dinero real en juego.</p><p class="ql-align-justify">
</p><p class="ql-align-justify">Los resultados de trabajar así son medibles: hemos reducido el tiempo de entrega a una tercera parte respecto a un desarrollo tradicional, con más de un 95 % de cobertura de pruebas, trazabilidad completa entre requisitos y código, y cada entregable sellado en la blockchain de Bitcoin como garantía de integridad. Y conviene subrayar de dónde salen esas cifras: no de usar un agente más potente que el del vecino, sino de haber rediseñado el proceso entero alrededor de especificaciones claras, criterios de aceptación explícitos y validación continua.</p><p class="ql-align-justify">
</p><p class="ql-align-justify">Por diseño, además, nuestras suites son agnósticas respecto a la IA subyacente. Los modelos cambiarán —cambian cada pocos meses—, pero una buena forma de trabajar permanece. Esa es la apuesta: metodología por encima de la herramienta de turno.</p><p class="ql-align-justify">

</p><h2 class="ql-align-justify">La IA premia la disciplina que ya tenías</h2><p class="ql-align-justify">
</p><p class="ql-align-justify">Aquí llega la lección incómoda, y también la más esperanzadora. El desarrollo agéntico premia a las organizaciones que ya tenían disciplina antes de que llegara la IA, y castiga a las que esperaban que la IA sustituyera la falta de ella. Un equipo sin procesos claros de requisitos, arquitectura y validación no va a «ir más rápido» con agentes: va a fabricar deuda técnica a velocidad industrial.</p><p class="ql-align-justify">
</p><p class="ql-align-justify">Es exactamente la tesis de la filosofía <strong>Slow AI / IA con criterio</strong> que defendemos desde hace tiempo: la tecnología multiplica lo que encuentra. Si encuentra criterio, multiplica criterio. Si encuentra caos, multiplica caos. Por eso la pregunta correcta nunca fue «¿qué agente compro?», sino «¿qué forma de trabajar quiero multiplicar?».</p><p class="ql-align-justify">

</p><blockquote style="border-left:3px solid var(--gold); padding-left:1.25rem; margin:2.5rem 0; font-size:1.15rem; font-style:italic;" class="ql-align-justify">«La ventaja competitiva ya no es de quien escribe código más rápido, sino de quien define mejor qué construir, por qué y con qué criterio.»</blockquote><p class="ql-align-justify">

</p><h2 class="ql-align-justify">Llegar antes, no llegar deprisa</h2><p class="ql-align-justify">
</p><p class="ql-align-justify">En EstratégicaMente ya hemos empezado a experimentar, a construir metodología y a transformar nuestros equipos para estar preparados cuando esta forma de desarrollar sea el estándar —y lo será antes de lo que parece—. No se trata de perseguir una moda tecnológica: se trata de anticipar un cambio estructural en cómo se construye el software, con la serenidad de quien llega antes porque pensó primero.</p><p class="ql-align-justify">
</p><p class="ql-align-justify">El desarrollo agéntico no es el final del trabajo de ingeniería. Es el principio de una ingeniería distinta, más cercana a la estrategia que a la sintaxis. Y esa es una noticia extraordinaria para quienes creemos en la tecnología con propósito: por primera vez en décadas, la parte más valiosa del software vuelve a ser la más humana.</p><p class="ql-align-justify">
</p><p class="ql-align-justify">Si este artículo te ha hecho mirar de otra forma lo que está pasando, compártelo con esa persona de tu equipo que sigue midiendo la IA en líneas de código por minuto. La conversación que abriréis vale más que cualquier herramienta.</p><p class="ql-align-justify">

</p><h2 class="ql-align-justify">Preguntas frecuentes</h2><p class="ql-align-justify">

</p><h3 class="ql-align-justify">¿Qué es el desarrollo agéntico?</h3><p class="ql-align-justify">
</p><p class="ql-align-justify">Es una forma de construir software en la que agentes de inteligencia artificial asumen el ciclo completo de implementación: leen requisitos, planifican tareas, escriben código, lo ejecutan, lo prueban y se corrigen dentro de un bucle autónomo supervisado por humanos. El trabajo humano se desplaza hacia la especificación, la arquitectura, los criterios de aceptación y la validación de resultados.</p><p class="ql-align-justify">

</p><h3 class="ql-align-justify">¿En qué se diferencia de usar un copiloto de código?</h3><p class="ql-align-justify">
</p><p class="ql-align-justify">Un copiloto sugiere fragmentos mientras una persona programa: acelera la escritura. Un agente ejecuta procesos completos de construcción con autonomía dentro de límites definidos: cambia el proceso. La diferencia es la misma que hay entre un corrector ortográfico y un redactor al que se le encarga el documento entero con un buen briefing.</p><p class="ql-align-justify">

</p><h3 class="ql-align-justify">¿Desaparecerán los programadores con el desarrollo agéntico?</h3><p class="ql-align-justify">
</p><p class="ql-align-justify">No. Cambia el nivel de abstracción en el que aportan valor, como ocurrió al pasar del ensamblador a los lenguajes de alto nivel. Los perfiles más valiosos serán quienes sepan definir especificaciones sin ambigüedad, diseñar arquitecturas sólidas, orquestar agentes y validar resultados conectando negocio y tecnología.</p><p class="ql-align-justify">

</p><h3 class="ql-align-justify">¿Qué necesita una organización para adoptar el desarrollo agéntico?</h3><p class="ql-align-justify">
</p><p class="ql-align-justify">Más que herramientas, necesita disciplina: procesos claros de definición de requisitos, arquitectura documentada, criterios de aceptación explícitos y validación continua. La IA multiplica la forma de trabajar existente, de modo que el primer paso es ordenar el método y después incorporar los agentes, nunca al revés.</p><p class="ql-align-justify">

</p><h3 class="ql-align-justify">¿Qué resultados reales produce este enfoque?</h3><p class="ql-align-justify">
</p><p class="ql-align-justify">En la suite Simplicity for Grants© de EstratégicaMente, construida con desarrollo agéntico y metodología propia, el tiempo de entrega se ha reducido a una tercera parte respecto a un desarrollo tradicional, con más de un 95 % de cobertura de pruebas, trazabilidad completa entre requisitos y desarrollo, y certificación de integridad de los entregables en la blockchain de Bitcoin.</p><p class="ql-align-justify">

</p><p class="ql-align-justify"><strong>¿Quieres ver el desarrollo agéntico funcionando sobre un caso real?</strong> Conoce la suite en el artículo sobre <a href="/blog/apex-draft-craft-subvenciones-con-criterio">APEX©, DRAFT© y CRAFT©</a> o escríbenos desde <a href="/contacto.html">contacto</a>. Te enseñamos cómo trabajamos —con método, con calma y con criterio— y qué puede significar para tu organización.</p>
<h2>Preguntas frecuentes</h2>
<h3>¿Qué es el desarrollo agéntico?</h3>
<p>Es un modo de construir software en el que agentes de IA ejecutan la implementación mientras la persona aporta el diseño, el criterio y los puntos de control. El valor ya no está en escribir el código, sino en decidir qué se construye, con qué arquitectura y con qué verificaciones.</p>
<h3>¿El desarrollo agéntico consiste en programar más rápido?</h3>
<p>No. La velocidad de generación de código ha dejado de ser el cuello de botella y, por tanto, ha dejado de ser una ventaja competitiva. Lo escaso es el criterio: saber qué construir, cómo verificarlo y cuándo parar. Construimos CRAFT© en semanas, y las horas más valiosas no fueron de programación, sino de reflexión.</p>
<h3>¿Qué papel tiene la supervisión humana?</h3>
<p>Es el núcleo del método. Los agentes ejecutan, pero la arquitectura, los puntos de control y la validación final son humanos. Sin esa supervisión no hay garantía de calidad ni cumplimiento normativo.</p>
</div></div></article>

<footer class="footer">
  <div class="container">
    <div class="footer-grid">
      <div class="footer-brand">
        <img src="assets/logos/estrategicamente-logo-dark.svg" alt="EstratégicaMente" class="footer-logo">
        <h4>ESTRATÉGICAMENTE</h4>
        <p>Elegir lo eficaz para hacerlo eficiente.</p>
      </div>
      <div class="footer-col">
        <h5>Soluciones</h5>
        <ul>
          <li><a href='/asesoramiento'>Advisory</a></li>
          <li><a href='/grants'>Simplicity for Grants</a></li>
          <li><a href='/grantify'>Grantify</a></li>
          <li><a href='/processes'>Simplicity for Processes</a></li>
          <li><a href='/lab'>Simplicity Lab</a></li>
        </ul>
      </div>
      <div class="footer-col">
        <h5>EstratégicaMente</h5>
        <ul>
          <li><a href='/sobre'>Sobre EstratégicaMente</a></li>
          <li><a href='/recursos'>Recursos</a></li>
          <li><a href='/blog'>Blog</a></li>
          <li><a href='/contacto'>Contacto</a></li>
        </ul>
      </div>
      <div class="footer-col">
        <h5>Legal</h5>
        <ul>
          <li><a href='/aviso-legal' rel='noopener' target='_blank'>Aviso legal</a></li>
          <li><a href='/politica-de-privacidad' rel='noopener' target='_blank'>Privacidad</a></li>
          <li><a href='/politica-de-ia' style='color: var(--gold);'>Política de IA</a></li>
          <li><a href='/politica-de-cookies' rel='noopener' target='_blank'>Cookies</a></li>
          <li><a href='/declaracion-de-accesibilidad' rel='noopener' target='_blank'>Accesibilidad</a></li>
        </ul>
      </div>
    </div>

    <!-- Banner obligatorio de financiación pública del proyecto Simplicity for Grants -->
    <div class="footer-financiacion" style="border-top: 1px solid rgba(245, 239, 224, 0.15); padding: 1.5rem 0 1.25rem; margin-top: 2rem;">
      <p style="text-align: center; font-family: var(--sans, Arial, sans-serif); font-size: 0.7rem; letter-spacing: 0.15em; text-transform: uppercase; color: rgba(245, 239, 224, 0.6); margin: 0 0 1rem;">
        <span data-lang="es">El proyecto Simplicity for Grants© ha sido cofinanciado por:</span>
        <span data-lang="en">The Simplicity for Grants© project has been co-financed by:</span>
      </p>
      <div style="display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 1.5rem; padding: 0 1rem;">
        <img src="assets/logos/logos-financiacion.png" alt="IGAPE · Unión Europea NextGenerationEU · Gobierno de España · Plan de Recuperación, Transformación y Resiliencia" style="max-width: 100%; height: auto; max-height: 60px; background: white; padding: 0.75rem 1rem; border-radius: 4px;">
      </div>
      <p style="text-align: center; font-family: var(--sans, Arial, sans-serif); font-size: 0.65rem; color: rgba(245, 239, 224, 0.4); margin: 1rem 0 0; line-height: 1.5;">
        <span data-lang="es">Expediente IG408M-2025-000-000234 · Programa IGAPE · Fondos NextGenerationEU del Plan de Recuperación, Transformación y Resiliencia (PRTR)</span>
        <span data-lang="en">File IG408M-2025-000-000234 · IGAPE Programme · NextGenerationEU funds from the Recovery, Transformation and Resilience Plan (PRTR)</span>
      </p>
    </div>

    <div class="footer-bottom">
      <p>© 2026 INTERIM MANAGER CONSULTING, S.L.</p>
    </div>
  </div>
</footer>

<script>
(function(){
  var API = "https://orfnafompycebfblkjdd.supabase.co/functions/v1/imc-articulos";
  var COM_API = "https://orfnafompycebfblkjdd.supabase.co/functions/v1/imc-comentarios";
  var params = new URLSearchParams(window.location.search);
  var slug = params.get("slug");
  if (!slug) {
    // En /blog/<slug> (rewrite de Netlify) la URL del navegador no lleva ?slug=,
    // así que extraemos el slug de la propia ruta.
    var pm = window.location.pathname.match(/\/blog\/+([^\/?#]+)/);
    if (pm && pm[1]) slug = decodeURIComponent(pm[1]);
  }
  var root = document.getElementById("article-root");

  function esc(s) {
    return String(s||"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;");
  }

  // === Comentarios ===
  window.loadComentarios = function(slug){
    var lista = document.getElementById('comentarios-lista');
    if (!lista) return;
    fetch(COM_API + '?slug=' + encodeURIComponent(slug))
      .then(function(r){ return r.json(); })
      .then(function(data){
        if (!data.comentarios || !data.comentarios.length){
          lista.innerHTML = '<p style="color:var(--meta); text-align:center; font-style:italic;">Sé el primero en comentar.</p>';
          return;
        }
        lista.innerHTML = data.comentarios.map(function(c){
          var fecha = new Date(c.created_at).toLocaleDateString('es-ES', {day:'numeric', month:'long', year:'numeric'});
          return '<div style="background:white; padding:1.25rem; border:1px solid var(--line); margin-bottom:0.75rem;">' +
            '<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:0.5rem;">' +
              '<strong style="color:var(--navy); font-family:var(--display);">' + esc(c.nombre) + '</strong>' +
              '<span style="font-size:0.75rem; color:var(--meta); font-family:var(--sans);">' + fecha + '</span>' +
            '</div>' +
            '<div style="font-family:var(--serif); line-height:1.6; color:var(--ink); white-space:pre-line;">' + esc(c.mensaje) + '</div>' +
          '</div>';
        }).join('');
      })
      .catch(function(){ lista.innerHTML = '<p style="color:var(--meta);">No se pudieron cargar los comentarios.</p>'; });
  };

  window.enviarComentario = function(slug, titulo){
    var msg = document.getElementById('c-msg');
    var btn = document.querySelector('#comentario-form button[type="submit"]');
    var nombre = document.getElementById('c-nombre').value.trim();
    var email = document.getElementById('c-email').value.trim();
    var mensaje = document.getElementById('c-mensaje').value.trim();
    if (!nombre || !email || !mensaje) { msg.textContent = 'Faltan campos.'; msg.style.color = '#C62828'; return; }

    btn.disabled = true; btn.textContent = 'Enviando…';
    fetch(COM_API, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ articulo_slug: slug, nombre: nombre, email: email, mensaje: mensaje })
    })
    .then(function(r){ return r.json().then(function(j){ return {ok:r.ok, data:j}; }); })
    .then(function(res){
      btn.disabled = false; btn.textContent = 'Publicar comentario';
      if (res.ok){
        msg.textContent = '✓ Comentario publicado. Gracias por participar.';
        msg.style.color = '#2E7D32';
        document.getElementById('comentario-form').reset();
        loadComentarios(slug);
      } else {
        msg.textContent = 'Error: ' + (res.data.error || 'desconocido');
        msg.style.color = '#C62828';
      }
    })
    .catch(function(err){
      btn.disabled = false; btn.textContent = 'Publicar comentario';
      msg.textContent = 'Error de red: ' + err.message;
      msg.style.color = '#C62828';
    });
  };

  if (!slug) {
    root.innerHTML = '<div class="article-error"><h1 style="font-family:var(--display);color:var(--navy);">Artículo no especificado</h1><p>Vuelve al <a href="blog.html" style="color:var(--gold);">blog</a> y selecciona un artículo.</p></div>';
    return;
  }

  fetch(API + "?action=get&slug=" + encodeURIComponent(slug))
    .then(function(r){ return r.json().then(function(j){ return {ok:r.ok, status:r.status, data:j}; }); })
    .then(function(res){
      if (!res.ok || !res.data.articulo) {
        root.innerHTML = '<div class="article-error"><h1 style="font-family:var(--display);color:var(--navy);">Artículo no encontrado</h1><p>El artículo que buscas no existe o ya no está disponible. <a href="blog.html" style="color:var(--gold);">Volver al blog</a>.</p></div>';
        document.title = "Artículo no encontrado — EstratégicaMente";
        return;
      }
      var a = res.data.articulo;
      document.title = a.titulo + " — EstratégicaMente";

      // ---- SEO dinámico: meta description, Open Graph, canonical, Article JSON-LD ----
      try {
        var canonical = "https://estrategicamente.info/blog/" + a.slug;
        var desc = (a.extracto || "").replace(/\s+/g, " ").trim();
        function upsertMeta(sel, attr, key, val){
          if (!val) return;
          var el = document.head.querySelector(sel);
          if (!el){ el = document.createElement("meta"); el.setAttribute(attr, key); document.head.appendChild(el); }
          el.setAttribute("content", val);
        }
        upsertMeta('meta[name="description"]', "name", "description", desc);
        upsertMeta('meta[property="og:title"]', "property", "og:title", a.titulo);
        upsertMeta('meta[property="og:description"]', "property", "og:description", desc);
        upsertMeta('meta[property="og:type"]', "property", "og:type", "article");
        upsertMeta('meta[property="og:url"]', "property", "og:url", canonical);
        if (a.imagen_url) upsertMeta('meta[property="og:image"]', "property", "og:image", a.imagen_url);
        upsertMeta('meta[name="twitter:title"]', "name", "twitter:title", a.titulo);
        upsertMeta('meta[name="twitter:description"]', "name", "twitter:description", desc);
        if (a.imagen_url) upsertMeta('meta[name="twitter:image"]', "name", "twitter:image", a.imagen_url);
        var link = document.head.querySelector('link[rel="canonical"]');
        if (!link){ link = document.createElement("link"); link.setAttribute("rel","canonical"); document.head.appendChild(link); }
        link.setAttribute("href", canonical);
        var article = {
          "@context": "https://schema.org",
          "@type": "BlogPosting",
          "headline": a.titulo,
          "description": desc,
          "author": { "@type": "Person", "name": a.autor || "Guillermo Taboada Martínez" },
          "publisher": { "@type": "Organization", "name": "EstratégicaMente", "logo": { "@type": "ImageObject", "url": "https://estrategicamente.info/assets/img/og-image.png" } },
          "mainEntityOfPage": { "@type": "WebPage", "@id": canonical },
          "inLanguage": "es"
        };
        if (a.fecha) { article.datePublished = a.fecha; article.dateModified = a.fecha; }
        if (a.imagen_url) article.image = a.imagen_url;
        var s1 = document.createElement("script"); s1.type = "application/ld+json"; s1.text = JSON.stringify(article); document.head.appendChild(s1);
      } catch(e) {}

      var imagenHtml = "";
      if (a.imagen_url) {
        imagenHtml = '<div class="article-image" style="margin: 2rem auto 3rem; max-width: 760px; aspect-ratio: 16/9; overflow: hidden;"><img src="' + esc(a.imagen_url) + '" alt="' + esc(a.titulo) + '" style="width:100%; height:100%; object-fit:cover;"></div>';
      }

        // Share buttons y comentarios
        var shareUrl = encodeURIComponent(window.location.href);
        var shareTitle = encodeURIComponent(a.titulo);
        var shareBlock =
          '<div style="max-width:720px; margin: 4rem auto 2rem; padding: 2rem 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align:center;">' +
          '<div style="font-family: var(--sans); font-size: 0.8rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--meta); margin-bottom: 1.5rem;">Compartir este artículo</div>' +
          '<div style="display:flex; gap:0.75rem; justify-content:center; flex-wrap:wrap;">' +
            '<a href="https://www.linkedin.com/sharing/share-offsite/?url=' + shareUrl + '" target="_blank" rel="noopener" style="display:inline-flex; align-items:center; gap:0.5rem; padding:0.65rem 1.25rem; background:#0077B5; color:white; text-decoration:none; font-family:var(--sans); font-size:0.85rem; letter-spacing:0.05em;">' +
              '<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M20.5 2h-17A1.5 1.5 0 002 3.5v17A1.5 1.5 0 003.5 22h17a1.5 1.5 0 001.5-1.5v-17A1.5 1.5 0 0020.5 2zM8 19H5v-9h3zM6.5 8.25A1.75 1.75 0 118.3 6.5a1.78 1.78 0 01-1.8 1.75zM19 19h-3v-4.74c0-1.42-.6-1.93-1.38-1.93A1.74 1.74 0 0013 14.19a.66.66 0 000 .14V19h-3v-9h2.9v1.3a3.11 3.11 0 012.7-1.4c1.55 0 3.36.86 3.36 3.66z"/></svg>' +
              'LinkedIn' +
            '</a>' +
            '<a href="https://twitter.com/intent/tweet?url=' + shareUrl + '&text=' + shareTitle + '" target="_blank" rel="noopener" style="display:inline-flex; align-items:center; gap:0.5rem; padding:0.65rem 1.25rem; background:#000; color:white; text-decoration:none; font-family:var(--sans); font-size:0.85rem; letter-spacing:0.05em;">' +
              '<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg>' +
              'X (Twitter)' +
            '</a>' +
            '<a href="https://api.whatsapp.com/send?text=' + shareTitle + '%20' + shareUrl + '" target="_blank" rel="noopener" style="display:inline-flex; align-items:center; gap:0.5rem; padding:0.65rem 1.25rem; background:#25D366; color:white; text-decoration:none; font-family:var(--sans); font-size:0.85rem; letter-spacing:0.05em;">' +
              '<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z"/></svg>' +
              'WhatsApp' +
            '</a>' +
          '</div>' +
          '</div>' +
          // Sección comentarios (Disqus o nativo simple)
          '<div id="comentarios" style="max-width:720px; margin: 3rem auto;">' +
          '<div style="font-family: var(--sans); font-size: 0.8rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--meta); margin-bottom: 1.5rem; text-align:center;">Comentarios</div>' +
          '<div id="comentarios-lista" style="margin-bottom: 2rem;"></div>' +
          '<form id="comentario-form" style="background:var(--paper); padding:1.5rem; border:1px solid var(--line);">' +
            '<div style="display:grid; grid-template-columns: 1fr 1fr; gap:0.75rem; margin-bottom:0.75rem;">' +
              '<input type="text" id="c-nombre" placeholder="Tu nombre" required style="width:100%; padding:0.6rem; border:1px solid var(--line); background:white; font-family:inherit; font-size:0.95rem;">' +
              '<input type="email" id="c-email" placeholder="Email (no se publica)" required style="width:100%; padding:0.6rem; border:1px solid var(--line); background:white; font-family:inherit; font-size:0.95rem;">' +
            '</div>' +
            '<textarea id="c-mensaje" placeholder="Tu comentario..." required rows="4" style="width:100%; padding:0.6rem; border:1px solid var(--line); background:white; font-family:inherit; font-size:0.95rem; margin-bottom:0.75rem;"></textarea>' +
            '<button type="submit" style="background:var(--navy); color:var(--cream); padding:0.7rem 1.5rem; border:0; font-family:var(--sans); font-size:0.85rem; letter-spacing:0.1em; text-transform:uppercase; cursor:pointer;">Publicar comentario</button>' +
            '<div id="c-msg" style="margin-top:0.75rem; font-size:0.85rem; color:var(--meta);"></div>' +
          '</form>' +
          '</div>';

        root.innerHTML = '<div class="container-narrow">' +
        '<div class="breadcrumb" style="margin-top: 6rem; margin-bottom: 1.5rem;"><a href="index.html">EstratégicaMente</a> <span class="sep">◆</span> <a href="blog.html">Blog</a></div>' +
        '<div class="article-meta" style="font-family: var(--sans); font-size: 0.75rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold); margin-bottom: 1.5rem;">' + esc(a.fecha_str) + ' · ' + esc(a.autor) + '</div>' +
        '<h1 style="font-family: var(--display); font-size: clamp(2.25rem, 5vw, 4rem); font-weight: 400; line-height: 1.05; color: var(--navy); margin-bottom: 2rem; letter-spacing: -0.025em; max-width: 760px; margin-left: auto; margin-right: auto;">' + esc(a.titulo) + '</h1>' +
        imagenHtml +
        '<div class="article-body">' + a.contenido + '</div>' +
        shareBlock +
        '<p style="text-align:center; margin: 4rem auto 2rem; max-width: 720px;"><a href="blog.html" style="color:var(--gold); font-family:var(--sans); font-size:0.85rem; letter-spacing:0.1em; text-transform:uppercase;">← Volver al blog</a></p>' +
      '</div>';

        // ---- Vídeo privacy-first: activa cualquier .yt-facade del cuerpo (no carga YouTube hasta el clic) ----
        try {
          var vbody = root.querySelector('.article-body');
          if (vbody) {
            var facades = vbody.querySelectorAll('.yt-facade[data-yt]');
            Array.prototype.forEach.call(facades, function(facade){
              function loadVideo(){
                var id = facade.getAttribute('data-yt');
                if (!id) return;
                var start = facade.getAttribute('data-start') || '0';
                var ifr = document.createElement('iframe');
                ifr.setAttribute('src', 'https://www.youtube-nocookie.com/embed/' + id + '?autoplay=1&rel=0&modestbranding=1&start=' + start);
                ifr.setAttribute('title', facade.getAttribute('data-title') || a.titulo);
                ifr.setAttribute('allow', 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share');
                ifr.setAttribute('allowfullscreen', '');
                facade.innerHTML = ''; facade.appendChild(ifr); facade.style.cursor = 'default';
                try { window.clarity && window.clarity('event', 'article_video_play'); } catch(e){}
              }
              facade.addEventListener('click', loadVideo);
              facade.addEventListener('keydown', function(e){ if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); loadVideo(); } });
              try {
                var vid = facade.getAttribute('data-yt');
                var vobj = {
                  "@context":"https://schema.org","@type":"VideoObject",
                  "name": facade.getAttribute('data-title') || a.titulo,
                  "description": (a.extracto || a.titulo || '').replace(/\s+/g,' ').trim(),
                  "thumbnailUrl": facade.getAttribute('data-thumb') || ('https://i.ytimg.com/vi/' + vid + '/maxresdefault.jpg'),
                  "uploadDate": facade.getAttribute('data-date') || a.fecha,
                  "contentUrl": "https://www.youtube.com/watch?v=" + vid,
                  "embedUrl": "https://www.youtube-nocookie.com/embed/" + vid,
                  "publisher": { "@type":"Organization", "name":"EstratégicaMente", "logo": { "@type":"ImageObject", "url":"https://estrategicamente.info/assets/logos/estrategicamente-logo.svg" } }
                };
                var sv = document.createElement('script'); sv.type = 'application/ld+json'; sv.text = JSON.stringify(vobj); document.head.appendChild(sv);
              } catch(e){}
            });
          }
        } catch(e){}

        // ---- FAQPage JSON-LD (desde la sección "Preguntas frecuentes") ----
        try {
          var fbody = root.querySelector('.article-body');
          var faqs = [];
          if (fbody) {
            var kids = fbody.children, inFaq = false;
            for (var fi = 0; fi < kids.length; fi++) {
              var kn = kids[fi], ktag = kn.tagName;
              if (ktag === 'H2') { inFaq = /preguntas frecuentes/i.test(kn.textContent || ""); continue; }
              if (inFaq && ktag === 'H3') {
                var q = (kn.textContent || "").trim(), ans = "", sib = kn.nextElementSibling;
                while (sib && sib.tagName === 'P') { ans += (ans ? " " : "") + (sib.textContent || "").trim(); sib = sib.nextElementSibling; }
                if (q && ans) faqs.push({ "@type": "Question", "name": q, "acceptedAnswer": { "@type": "Answer", "text": ans } });
              }
            }
          }
          if (faqs.length) {
            var s2 = document.createElement("script"); s2.type = "application/ld+json";
            s2.text = JSON.stringify({ "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": faqs });
            document.head.appendChild(s2);
          }
        } catch(e) {}

        // Cargar comentarios
        loadComentarios(slug);

        // Handler form
        document.getElementById('comentario-form').addEventListener('submit', function(e){
          e.preventDefault();
          enviarComentario(slug, a.titulo);
        });
    })
    .catch(function(err){
      root.innerHTML = '<div class="article-error"><h1 style="font-family:var(--display);color:var(--navy);">Error al cargar</h1><p>No hemos podido cargar el artículo. Vuelve al <a href="blog.html" style="color:var(--gold);">blog</a>.</p></div>';
    });
})();
</script>
<script src="assets/js/main.js?v=50"></script>
<script src="assets/js/accesibilidad.js"></script>
<script src="assets/js/ai-governance.js"></script>
</body>
</html>
