<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Workflow on KnightLi Blog</title>
        <link>https://knightli.com/es/tags/workflow/</link>
        <description>Recent content in Workflow on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Sun, 31 May 2026 14:17:42 +0800</lastBuildDate><atom:link href="https://knightli.com/es/tags/workflow/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>¿Cuántos tokens extra consume un subagent? Costes y estrategia de uso en flujos multi-agent</title>
        <link>https://knightli.com/es/2026/05/31/subagent-multi-agent-token-cost/</link>
        <pubDate>Sun, 31 May 2026 14:17:42 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/31/subagent-multi-agent-token-cost/</guid>
        <description>&lt;p&gt;Usar subagents o un flujo multi-agent normalmente aumenta el uso de tokens. La pregunta no es si aumenta, sino cuánto aumenta y si la mejora en velocidad o estabilidad compensa ese coste adicional.&lt;/p&gt;
&lt;p&gt;Para tareas pequeñas, suele ser más barato que el agent principal haga el trabajo directamente. Los subagents tienen más sentido cuando la tarea se puede dividir con claridad, o cuando merece la pena una revisión independiente.&lt;/p&gt;
&lt;h2 id=&#34;un-subagent-no-es-un-hilo-paralelo-más-barato&#34;&gt;Un subagent no es un hilo paralelo más barato
&lt;/h2&gt;&lt;p&gt;Al ver subagents por primera vez, es fácil imaginarlos como hilos paralelos: el agent principal hace una parte, el subagent hace otra, la tarea termina antes y por tanto debería ser más eficiente.&lt;/p&gt;
&lt;p&gt;Pero no funciona así. Un subagent también es una llamada independiente al modelo. Necesita leer la tarea, entender el contexto, inspeccionar archivos, razonar sobre el problema y producir una salida. No es una copia gratuita del agent principal; es una ruta de razonamiento adicional.&lt;/p&gt;
&lt;p&gt;Por eso la pregunta clave no es &amp;ldquo;¿puede ejecutarse en paralelo?&amp;rdquo;, sino &amp;ldquo;¿el tiempo ahorrado o la mejora de calidad justifican el coste extra en tokens?&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-aumenta-el-uso-de-tokens&#34;&gt;Por qué aumenta el uso de tokens
&lt;/h2&gt;&lt;p&gt;Una llamada a un subagent suele añadir consumo de tokens en varias partes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la descripción de la tarea que escribe el agent principal;&lt;/li&gt;
&lt;li&gt;el contexto que se pasa al subagent;&lt;/li&gt;
&lt;li&gt;los archivos y detalles que el subagent lee;&lt;/li&gt;
&lt;li&gt;el razonamiento y la salida del propio subagent;&lt;/li&gt;
&lt;li&gt;la revisión, integración y verificación posterior del agent principal.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si varios agents leen los mismos archivos grandes, el desperdicio se vuelve más evidente. Esto ocurre especialmente en análisis de codebases, traducción de documentos largos y limpieza de contenido por lotes. Si la división es mala, muchos tokens se gastan en entender repetidamente el mismo contexto.&lt;/p&gt;
&lt;h2 id=&#34;releer-contexto-es-el-mayor-desperdicio-de-tokens&#34;&gt;Releer contexto es el mayor desperdicio de tokens
&lt;/h2&gt;&lt;p&gt;El mayor desperdicio no suele ser &amp;ldquo;abrir un agent más&amp;rdquo;, sino hacer que varios agents lean los mismos materiales una y otra vez.&lt;/p&gt;
&lt;p&gt;Por ejemplo, supongamos que una tarea debe procesar 6 artículos. Si 4 agents empiezan leyendo toda la estructura del sitio, toda la documentación de skills y toda la lista de artículos antes de tocar una parte pequeña, la paralelización sale cara. Una mejor opción es que el agent principal defina primero los límites y que cada subagent lea solo el directorio del artículo que le corresponde.&lt;/p&gt;
&lt;p&gt;Una división más barata suele verse así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;cada agent se encarga de un directorio claro;&lt;/li&gt;
&lt;li&gt;el contexto enviado a cada subagent es lo más corto posible;&lt;/li&gt;
&lt;li&gt;varios agents no repiten la misma exploración;&lt;/li&gt;
&lt;li&gt;el agent principal hace la revisión final una sola vez, en lugar de pedir a cada agent una revisión completa;&lt;/li&gt;
&lt;li&gt;las comprobaciones que se pueden automatizar con scripts se ejecutan una vez, no se repiten con varios agents.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En otras palabras, controlar el coste de los subagents depende sobre todo de los límites, no solo del número de agents.&lt;/p&gt;
&lt;h2 id=&#34;cuánto-puede-aumentar&#34;&gt;Cuánto puede aumentar
&lt;/h2&gt;&lt;p&gt;La siguiente tabla es una estimación aproximada. El consumo real depende de la longitud del contexto, el tamaño de los archivos, la complejidad de la tarea y el número de agents.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Escenario&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Aumento de tokens&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Un subagent procesa una tarea pequeña&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;Aproximadamente &lt;code&gt;1.2x - 2x&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;2-4 agents procesan en paralelo una tarea bien dividida&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;Aproximadamente &lt;code&gt;2x - 5x&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Varios agents leen muchos archivos y hacen análisis largos&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;Posiblemente &lt;code&gt;5x+&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;El agent principal y los subagents leen repetidamente los mismos archivos grandes&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;El desperdicio más evidente&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;No es una fórmula exacta de facturación, solo un rango práctico. El consumo real también depende de si cada agent necesita leer archivos completos, hacer razonamiento largo o esperar varias veces a que se le pase más contexto.&lt;/p&gt;
&lt;h2 id=&#34;cómo-escribir-una-tarea-de-subagent-que-consuma-menos-tokens&#34;&gt;Cómo escribir una tarea de subagent que consuma menos tokens
&lt;/h2&gt;&lt;p&gt;Cuanto más amplia sea la instrucción, más probable es que el subagent explore por su cuenta, y eso aumenta el consumo de tokens. Una instrucción más barata define los límites con claridad.&lt;/p&gt;
&lt;p&gt;Una buena tarea para subagent debería incluir:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;qué archivos o directorios puede procesar;&lt;/li&gt;
&lt;li&gt;qué archivos son solo de lectura y cuáles puede modificar;&lt;/li&gt;
&lt;li&gt;si puede sobrescribir archivos existentes;&lt;/li&gt;
&lt;li&gt;qué campos debe conservar, como &lt;code&gt;date&lt;/code&gt;, &lt;code&gt;slug&lt;/code&gt; y &lt;code&gt;aliases&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;qué debe incluir el informe final;&lt;/li&gt;
&lt;li&gt;qué no debe hacer, por ejemplo no ejecutar una build completa ni editar archivos no relacionados.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para una traducción, no basta con decir &amp;ldquo;traduce este artículo a varios idiomas&amp;rdquo;. Una instrucción más eficiente sería: &amp;ldquo;Procesa solo &lt;code&gt;content/post/2026/05/240&lt;/code&gt;; lee &lt;code&gt;index.zh-cn.md&lt;/code&gt;; crea solo los archivos que falten: &lt;code&gt;index.en.md&lt;/code&gt;, &lt;code&gt;index.zh-tw.md&lt;/code&gt;, &lt;code&gt;index.ja.md&lt;/code&gt; e &lt;code&gt;index.es.md&lt;/code&gt;; si ya existen, omítelos; conserva &lt;code&gt;date&lt;/code&gt; y &lt;code&gt;slug&lt;/code&gt;.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;La instrucción es un poco más larga, pero reduce las suposiciones y la exploración repetida. En conjunto suele salir más barata.&lt;/p&gt;
&lt;h2 id=&#34;dividir-por-archivo-o-directorio-es-más-barato-que-dividir-por-idioma-o-paso&#34;&gt;Dividir por archivo o directorio es más barato que dividir por idioma o paso
&lt;/h2&gt;&lt;p&gt;Para traducción por lotes, dividir por directorio de artículo suele ser mejor que dividir por idioma.&lt;/p&gt;
&lt;p&gt;Supongamos que hay 6 artículos y cada uno necesita versiones en inglés, chino tradicional, japonés y español. Es mejor que un agent se encargue de todos los idiomas dentro de un directorio de artículo, en lugar de asignar un agent a todos los archivos en inglés y otro a todos los archivos en japonés.&lt;/p&gt;
&lt;p&gt;La razón es simple: el front matter, los bloques de código, los enlaces, las tablas y el contexto semántico de un artículo solo necesitan leerse una vez. Si divides por idioma, varios agents leen el mismo texto fuente repetidamente y el consumo de tokens aumenta.&lt;/p&gt;
&lt;p&gt;La misma lógica aplica a tareas de código. Es mejor dividir por módulo, directorio o componente que por pasos como &amp;ldquo;primero analizar, luego implementar, luego probar&amp;rdquo;. Dividir por pasos suele obligar a cada agent a releer el mismo contexto.&lt;/p&gt;
&lt;h2 id=&#34;cuándo-merece-la-pena-usar-subagents&#34;&gt;Cuándo merece la pena usar subagents
&lt;/h2&gt;&lt;p&gt;El valor de los subagents viene principalmente de dos cosas: paralelismo y una perspectiva independiente.&lt;/p&gt;
&lt;p&gt;Casos adecuados:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;traducir varios artículos por lotes;&lt;/li&gt;
&lt;li&gt;editar varios directorios independientes;&lt;/li&gt;
&lt;li&gt;separar claramente trabajo de frontend, backend y pruebas;&lt;/li&gt;
&lt;li&gt;un agent implementa y otro revisa riesgos;&lt;/li&gt;
&lt;li&gt;cambios de alto riesgo que necesitan una segunda perspectiva.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En estos casos, el uso de tokens aumenta, pero el tiempo total puede bajar de forma notable. Además, cada agent puede concentrarse en una parte concreta del trabajo.&lt;/p&gt;
&lt;h2 id=&#34;cuándo-merece-la-pena-usar-un-agent-de-revisión&#34;&gt;Cuándo merece la pena usar un agent de revisión
&lt;/h2&gt;&lt;p&gt;Un agent de revisión no siempre vale la pena. Es más útil cuando la tarea es arriesgada, tiene mucho impacto o es fácil que el agent principal pase por alto detalles.&lt;/p&gt;
&lt;p&gt;Casos en los que puede valer la pena añadir un agent de revisión:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;cambios relacionados con inicio de sesión, pagos, permisos o borrado de datos;&lt;/li&gt;
&lt;li&gt;contenido multilingüe que afecta categorías, URLs o enlaces internos;&lt;/li&gt;
&lt;li&gt;refactors amplios que necesitan revisión independiente de regresiones;&lt;/li&gt;
&lt;li&gt;el usuario pide explícitamente code review o revisión de riesgos;&lt;/li&gt;
&lt;li&gt;el agent principal ya implementó el cambio y hace falta una segunda mirada sobre casos límite.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;También hay casos claros en los que no compensa: cambios pequeños en un solo archivo, ajustes de título, correcciones simples de front matter o ejecutar un solo comando. Para eso, la autocomprobación del agent principal suele ser suficiente.&lt;/p&gt;
&lt;h2 id=&#34;cuándo-no-merece-la-pena&#34;&gt;Cuándo no merece la pena
&lt;/h2&gt;&lt;p&gt;Los subagents no suelen merecer la pena en estos casos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;cambios pequeños en un solo archivo;&lt;/li&gt;
&lt;li&gt;preguntas y respuestas simples;&lt;/li&gt;
&lt;li&gt;ejecutar un único comando;&lt;/li&gt;
&lt;li&gt;cambios de alcance muy pequeño;&lt;/li&gt;
&lt;li&gt;tareas que no se pueden dividir claramente;&lt;/li&gt;
&lt;li&gt;tareas en las que el subagent debe esperar varias veces a que el agent principal le pase contexto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En estos casos, usar un subagent suele añadir sobrecarga. El agent principal es más rápido y más barato.&lt;/p&gt;
&lt;h2 id=&#34;mi-estrategia-por-defecto-ahorrar-tokens-primero-y-añadir-revisión-solo-por-riesgo&#34;&gt;Mi estrategia por defecto: ahorrar tokens primero y añadir revisión solo por riesgo
&lt;/h2&gt;&lt;p&gt;Si el objetivo es ahorrar tokens, una estrategia conservadora funciona bien:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tareas pequeñas: no usar subagents.&lt;/li&gt;
&lt;li&gt;Tareas medianas: no usar subagents.&lt;/li&gt;
&lt;li&gt;Tareas grandes por lotes: no usar subagents por defecto, salvo que el usuario pida explícitamente paralelizar para ganar velocidad.&lt;/li&gt;
&lt;li&gt;Tareas de alto riesgo: considerar un agent adicional de revisión, intercambiando tokens por estabilidad.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta estrategia renuncia a parte de la velocidad paralela, pero reduce la lectura repetida de contexto y el razonamiento duplicado.&lt;/p&gt;
&lt;p&gt;Si una tarea es grande pero no es de alto riesgo, primero conviene mirar scripts, comprobaciones por lotes y procesamiento local estructurado. Varios agents tienen más sentido cuando la división es muy clara o cuando el usuario quiere explícitamente más velocidad mediante paralelización.&lt;/p&gt;
&lt;h2 id=&#34;una-estrategia-más-equilibrada&#34;&gt;Una estrategia más equilibrada
&lt;/h2&gt;&lt;p&gt;Si quieres controlar el coste sin renunciar del todo al paralelismo, una estrategia intermedia sería:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;por defecto, el agent principal hace el trabajo directamente;&lt;/li&gt;
&lt;li&gt;considerar subagents solo cuando la tarea se puede dividir claramente por archivo o directorio;&lt;/li&gt;
&lt;li&gt;cada subagent lee solo los archivos que le corresponden;&lt;/li&gt;
&lt;li&gt;no permitir que varios agents lean los mismos archivos grandes;&lt;/li&gt;
&lt;li&gt;el agent principal hace la revisión final de campos clave, resultados de pruebas y Git diff;&lt;/li&gt;
&lt;li&gt;añadir un agent de revisión independiente solo en tareas de alto riesgo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así se evita paralelizar por paralelizar. Los subagents deberían servir a un objetivo claro de velocidad o calidad, no convertirse en la acción por defecto.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Los subagents y los flujos multi-agent siempre aumentan el uso de tokens. Un solo subagent puede añadir poco, pero varios agents en paralelo pueden multiplicar el coste.&lt;/p&gt;
&lt;p&gt;Que merezca la pena depende de la tarea. Si el trabajo se puede dividir con claridad, o si el riesgo justifica una revisión independiente, los tokens extra pueden tener sentido. Para cambios pequeños en un solo archivo, preguntas simples o comprobaciones rutinarias, es más barato que el agent principal lo haga directamente.&lt;/p&gt;
&lt;p&gt;En una frase: &lt;strong&gt;ahorra tokens en tareas pequeñas, divide solo cuando los límites sean claros y usa agents extra para estabilidad solo cuando el riesgo lo justifique.&lt;/strong&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>El mecanismo de domain skills de browser-harness: cómo evitar que los AI Agent repitan errores de automatización web</title>
        <link>https://knightli.com/es/2026/05/24/browser-harness-domain-skills-summary/</link>
        <pubDate>Sun, 24 May 2026 23:43:35 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/24/browser-harness-domain-skills-summary/</guid>
        <description>&lt;p&gt;Lo más interesante de &lt;code&gt;browser-use/browser-harness&lt;/code&gt; no es solo que permite a los AI Agent controlar Chrome real. También convierte la experiencia de operación web en &lt;code&gt;domain skills&lt;/code&gt; reutilizables.&lt;/p&gt;
&lt;p&gt;Esto importa porque la automatización de navegador rara vez es difícil solo por hacer clic en botones. Cada sitio tiene sus propios detalles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Qué páginas requieren login.&lt;/li&gt;
&lt;li&gt;Qué datos pueden obtenerse directamente por API.&lt;/li&gt;
&lt;li&gt;Qué botones no responden a clics DOM normales.&lt;/li&gt;
&lt;li&gt;Qué iframes, shadow DOM o popups bloquean el flujo.&lt;/li&gt;
&lt;li&gt;Qué selectores son estables y cuáles son clases temporales.&lt;/li&gt;
&lt;li&gt;Qué acciones involucran cuentas, pagos o cambios irreversibles y requieren confirmación humana.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si esa experiencia solo queda en un log de una tarea, el agente volverá a caer en los mismos problemas. &lt;code&gt;domain skills&lt;/code&gt; sirve para conservarla, de modo que el agente no empiece desde cero cada vez que abre un sitio.&lt;/p&gt;
&lt;h2 id=&#34;qué-son-los-domain-skills&#34;&gt;Qué son los domain skills
&lt;/h2&gt;&lt;p&gt;Puedes entender &lt;code&gt;domain skills&lt;/code&gt; como manuales de operación de sitios para agentes.&lt;/p&gt;
&lt;p&gt;No son documentación de usuario normal ni scripts de una sola vez. Son más bien conocimiento de sitio probado en campo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si el sitio es adecuado para usar navegador.&lt;/li&gt;
&lt;li&gt;Qué API debe usarse primero si existe.&lt;/li&gt;
&lt;li&gt;Qué URL conviene usar cuando el navegador es necesario.&lt;/li&gt;
&lt;li&gt;Qué estructuras DOM, aria-labels y comportamientos de botones fueron verificados.&lt;/li&gt;
&lt;li&gt;Qué enfoques comunes fallan.&lt;/li&gt;
&lt;li&gt;En qué escenarios se debe detener y pedir intervención humana.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este contenido puede ser revisado por humanos y leído por agentes durante tareas. Convierte la exploración improvisada en experiencia mantenible.&lt;/p&gt;
&lt;h2 id=&#34;no-es-para-que-el-agente-haga-clic-a-ciegas&#34;&gt;No es para que el agente haga clic a ciegas
&lt;/h2&gt;&lt;p&gt;Un buen browser agent no debería convertir todos los problemas en abrir una web, mirar capturas y pulsar botones.&lt;/p&gt;
&lt;p&gt;Una parte importante de &lt;code&gt;domain skills&lt;/code&gt; consiste precisamente en decirle al agente cuándo no usar el navegador.&lt;/p&gt;
&lt;p&gt;En sitios como ArXiv, la búsqueda de papers, metadatos y resúmenes pueden obtenerse mediante Atom API o etiquetas meta HTML. Las solicitudes HTTP suelen ser más rápidas, estables y fáciles de analizar que abrir un navegador.&lt;/p&gt;
&lt;p&gt;GitHub sigue una lógica parecida. Repositorios, usuarios y releases deberían usar primero la REST API. El contenido de archivos debería leerse desde &lt;code&gt;raw.githubusercontent.com&lt;/code&gt;. Solo páginas como GitHub Trending, sin API equivalente, requieren navegador.&lt;/p&gt;
&lt;p&gt;Esto muestra que browser-harness no parte de “el navegador lo resuelve todo”. Coloca el navegador en su lugar correcto: cuando API, HTTP y páginas estáticas no resuelven el problema, el agente opera una página real.&lt;/p&gt;
&lt;h2 id=&#34;guardan-conocimiento-por-sitio&#34;&gt;Guardan conocimiento por sitio
&lt;/h2&gt;&lt;p&gt;Los scripts tradicionales de automatización suelen escribirse alrededor de una tarea:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Abrir página -&amp;gt; escribir palabra clave -&amp;gt; pulsar botón -&amp;gt; descargar archivo
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ese script puede completar la tarea, pero la experiencia queda dispersa en el código. Si el sitio cambia, el script falla. Si cambia la tarea, gran parte de la experiencia no se reutiliza.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;domain skills&lt;/code&gt; tiene una granularidad más cercana a una base de conocimiento por sitio. Se preocupa por:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Qué selector de contenedor es estable en resultados de Amazon.&lt;/li&gt;
&lt;li&gt;Qué datos de GitHub deberían ir por REST API.&lt;/li&gt;
&lt;li&gt;Cómo difieren los &lt;code&gt;aria-label&lt;/code&gt; de botones en LinkedIn invitations.&lt;/li&gt;
&lt;li&gt;Qué páginas de Shopify Admin son embedded apps.&lt;/li&gt;
&lt;li&gt;Por qué los inputs de Shopify Polaris no siempre aceptan asignación JS normal de &lt;code&gt;value&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Cómo crear, listar y limpiar instancias de navegador en Browser Use Cloud.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas experiencias no son pasos de una sola tarea. Son criterios que muchas tareas futuras pueden reutilizar.&lt;/p&gt;
&lt;h2 id=&#34;ejemplo-búsqueda-de-productos-en-amazon&#34;&gt;Ejemplo: búsqueda de productos en Amazon
&lt;/h2&gt;&lt;p&gt;En Amazon, lo importante no es solo cómo buscar productos, sino qué ruta es más estable.&lt;/p&gt;
&lt;p&gt;Un enfoque fiable es usar una URL de búsqueda directa en lugar de abrir siempre la portada y simular escritura. Los resultados pueden extraerse de un contenedor como &lt;code&gt;[data-component-type=&amp;quot;s-search-result&amp;quot;]&lt;/code&gt;. La extracción de campos también tiene matices: título, precio, rating, número de reseñas y si es patrocinado tienen fuentes DOM más estables.&lt;/p&gt;
&lt;p&gt;Esto es valioso para un agente. Sin esa experiencia, el agente podría adivinar botones desde capturas y probar selectores una y otra vez. Con ella, puede ir directamente a una ruta de extracción más estable.&lt;/p&gt;
&lt;p&gt;Además, un skill puede registrar trampas. Algunos selectores que parecen válidos pueden leer mal resultados patrocinados o áreas de recomendación cruzada. Eso solo se aprende probando.&lt;/p&gt;
&lt;h2 id=&#34;ejemplo-gestión-de-invitaciones-en-linkedin&#34;&gt;Ejemplo: gestión de invitaciones en LinkedIn
&lt;/h2&gt;&lt;p&gt;LinkedIn se acerca más a flujos con cuentas reales, y por eso tiene más riesgo.&lt;/p&gt;
&lt;p&gt;En la página de gestión de invitaciones, los botones Accept e Ignore tienen formatos de &lt;code&gt;aria-label&lt;/code&gt; distintos. No se puede derivar uno del otro. Algunas tarjetas incluso renderizan Accept como &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; en lugar de &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt;, y un clic CDP normal puede no disparar la acción.&lt;/p&gt;
&lt;p&gt;Esto muestra que la automatización web real no termina al localizar un elemento. Etiquetas, eventos, soft navigation e implementación de componentes afectan si la acción realmente ocurre.&lt;/p&gt;
&lt;p&gt;Para un agente, esta experiencia también tiene una implicación de seguridad. Las acciones relacionadas con cuentas sociales, invitaciones, mensajes y publicaciones no deberían delegarse por completo. El skill puede registrar rutas y trampas, pero aceptar invitaciones en lote, enviar contenido externo o cambiar datos de cuenta debería conservar confirmación humana.&lt;/p&gt;
&lt;h2 id=&#34;ejemplo-shopify-admin&#34;&gt;Ejemplo: Shopify Admin
&lt;/h2&gt;&lt;p&gt;Shopify Admin muestra otro problema: un backend no siempre es una página única, sino una combinación de embedded apps y componentes complejos.&lt;/p&gt;
&lt;p&gt;Muchas apps de Shopify corren dentro de iframes. Los inputs Polaris React, Web Components y embedded apps tienen comportamientos distintos. Algunos inputs no se pueden llenar solo con &lt;code&gt;element.value = ...&lt;/code&gt;; requieren CDP keystrokes más parecidos a entrada real de teclado.&lt;/p&gt;
&lt;p&gt;El valor de este tipo de skill es que permite al agente identificar primero qué tipo de UI está viendo y luego elegir el método correcto.&lt;/p&gt;
&lt;p&gt;La experiencia de Shopify también enfatiza “no uses navegador si no hace falta”:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Para datos de producto e inventario de solo lectura, usar primero Storefront API.&lt;/li&gt;
&lt;li&gt;Si hay un token de Admin API, usar primero Admin API.&lt;/li&gt;
&lt;li&gt;Para editar código de tema, usar primero Shopify CLI.&lt;/li&gt;
&lt;li&gt;Usar navegador solo cuando no hay API, el cambio es puntual o se está explorando el admin.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esa es una lógica madura de elección de herramientas para agentes.&lt;/p&gt;
&lt;h2 id=&#34;ejemplo-browser-use-cloud&#34;&gt;Ejemplo: Browser Use Cloud
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;domain skills&lt;/code&gt; no solo sirve para clics en páginas. También puede registrar experiencia de API alrededor del runtime del navegador.&lt;/p&gt;
&lt;p&gt;La experiencia de Browser Use Cloud puede registrar cómo crear cloud browsers por REST API, listar navegadores activos, limpiar zombie browsers y obtener &lt;code&gt;liveUrl&lt;/code&gt; y &lt;code&gt;cdpUrl&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Esto significa que un skill no se limita a “cómo pulsar un botón”. Cualquier tarea recurrente con un método estable puede convertirse en skill:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Forma de llamar la API.&lt;/li&gt;
&lt;li&gt;Formato de cabeceras de autenticación.&lt;/li&gt;
&lt;li&gt;Estructura de request y response.&lt;/li&gt;
&lt;li&gt;Códigos de estado verificados.&lt;/li&gt;
&lt;li&gt;Modos de fallo frecuentes.&lt;/li&gt;
&lt;li&gt;Limpieza y reciclaje de recursos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para agentes, todo eso son capacidades reutilizables.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-es-más-fiable-que-razonar-sobre-la-marcha&#34;&gt;Por qué es más fiable que razonar sobre la marcha
&lt;/h2&gt;&lt;p&gt;Muchas personas esperan que un modelo grande entienda la página por sí mismo cada vez. En tareas reales, depender solo del razonamiento improvisado no es estable.&lt;/p&gt;
&lt;p&gt;Las razones son simples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La UI web cambia con frecuencia.&lt;/li&gt;
&lt;li&gt;El mismo botón puede tener varias implementaciones.&lt;/li&gt;
&lt;li&gt;Visible no significa clicable.&lt;/li&gt;
&lt;li&gt;Clicable no significa que la acción haya tenido efecto.&lt;/li&gt;
&lt;li&gt;Algunas tareas deberían usar API, no navegador.&lt;/li&gt;
&lt;li&gt;Algunas acciones requieren confirmación humana y no deberían decidirse solo por el modelo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Al escribir estas experiencias en archivos, se obtienen varias ventajas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Los humanos pueden revisarlas.&lt;/li&gt;
&lt;li&gt;Las experiencias erróneas pueden corregirse.&lt;/li&gt;
&lt;li&gt;El conocimiento del mismo sitio puede acumularse.&lt;/li&gt;
&lt;li&gt;Nuevos agentes pueden heredar experiencias anteriores.&lt;/li&gt;
&lt;li&gt;Descubrimientos temporales pueden convertirse en conocimiento duradero.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es más estable que ponerlo todo en un prompt o en el contexto de chat.&lt;/p&gt;
&lt;h2 id=&#34;cómo-puede-usarlo-un-equipo&#34;&gt;Cómo puede usarlo un equipo
&lt;/h2&gt;&lt;p&gt;En un equipo, &lt;code&gt;domain skills&lt;/code&gt; puede convertirse en una base ligera de conocimiento de automatización.&lt;/p&gt;
&lt;p&gt;Conviene registrar cosas como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rutas tras login en sistemas internos.&lt;/li&gt;
&lt;li&gt;Flujos de exportación de reportes.&lt;/li&gt;
&lt;li&gt;Manejo de popups frecuentes.&lt;/li&gt;
&lt;li&gt;Qué botones requieren confirmación humana.&lt;/li&gt;
&lt;li&gt;Qué páginas tienen alternativa por API.&lt;/li&gt;
&lt;li&gt;Qué selectores fueron probados y son fiables.&lt;/li&gt;
&lt;li&gt;Qué tareas el agente no debe ejecutar automáticamente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No hace falta que todo esté completo desde el inicio. Lo práctico es empezar por flujos de bajo riesgo, frecuentes y reversibles: lectura, descarga, organización y comprobación. Cuando el flujo sea estable, convertir la experiencia en skill.&lt;/p&gt;
&lt;p&gt;Para gestores de equipo, los archivos skill hacen visible el límite de automatización. Permiten revisar qué sabe el agente, qué puede hacer y dónde debe detenerse.&lt;/p&gt;
&lt;h2 id=&#34;límites-importantes&#34;&gt;Límites importantes
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;domain skills&lt;/code&gt; puede mejorar la tasa de éxito del agente, pero no debería automatizar por completo operaciones de alto riesgo.&lt;/p&gt;
&lt;p&gt;Hay límites que conviene mantener:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No registrar contraseñas, Cookie, token, datos de clientes ni URLs internas sensibles.&lt;/li&gt;
&lt;li&gt;Mantener confirmación humana para pagos, borrados, envíos masivos, cambios de cuenta y publicaciones externas.&lt;/li&gt;
&lt;li&gt;Escribir fecha de verificación y alcance del skill.&lt;/li&gt;
&lt;li&gt;Permitir que el skill caduque tras cambios del sitio y se vuelva a validar.&lt;/li&gt;
&lt;li&gt;No usar skills para evadir controles de riesgo o límites de plataforma.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En otras palabras, domain skill hace al agente más estable, no le da permiso ilimitado.&lt;/p&gt;
&lt;h2 id=&#34;conclusión&#34;&gt;Conclusión
&lt;/h2&gt;&lt;p&gt;El mecanismo de &lt;code&gt;domain skills&lt;/code&gt; de browser-harness muestra que la automatización web con AI Agent no puede depender solo de improvisación del modelo.&lt;/p&gt;
&lt;p&gt;Un browser agent útil necesita al menos tres capas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Control de bajo nivel: capturas, clics, entrada, descargas, CDP, HTTP.&lt;/li&gt;
&lt;li&gt;Conocimiento por sitio: prioridad de API, selectores estables, trampas de componentes, límites de login.&lt;/li&gt;
&lt;li&gt;Reglas humanas de seguridad: no entregar credenciales al modelo, confirmar acciones de alto riesgo y no escribir información sensible en skills.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;domain skills&lt;/code&gt; cubre la segunda capa. Permite que el agente entre a una tarea web con experiencia verificada en lugar de redescubrir todo cada vez.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;browser-harness domain skills: &lt;a class=&#34;link&#34; href=&#34;https://github.com/browser-use/browser-harness/tree/main/agent-workspace/domain-skills&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/browser-use/browser-harness/tree/main/agent-workspace/domain-skills&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Amazon product-search skill: &lt;a class=&#34;link&#34; href=&#34;https://github.com/browser-use/browser-harness/blob/main/agent-workspace/domain-skills/amazon/product-search.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/browser-use/browser-harness/blob/main/agent-workspace/domain-skills/amazon/product-search.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ArXiv scraping skill: &lt;a class=&#34;link&#34; href=&#34;https://github.com/browser-use/browser-harness/blob/main/agent-workspace/domain-skills/arxiv/scraping.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/browser-use/browser-harness/blob/main/agent-workspace/domain-skills/arxiv/scraping.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitHub scraping skill: &lt;a class=&#34;link&#34; href=&#34;https://github.com/browser-use/browser-harness/blob/main/agent-workspace/domain-skills/github/scraping.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/browser-use/browser-harness/blob/main/agent-workspace/domain-skills/github/scraping.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;LinkedIn invitation-manager skill: &lt;a class=&#34;link&#34; href=&#34;https://github.com/browser-use/browser-harness/blob/main/agent-workspace/domain-skills/linkedin/invitation-manager.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/browser-use/browser-harness/blob/main/agent-workspace/domain-skills/linkedin/invitation-manager.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Shopify admin skill: &lt;a class=&#34;link&#34; href=&#34;https://github.com/browser-use/browser-harness/blob/main/agent-workspace/domain-skills/shopify-admin/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/browser-use/browser-harness/blob/main/agent-workspace/domain-skills/shopify-admin/README.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Browser Use Cloud skill: &lt;a class=&#34;link&#34; href=&#34;https://github.com/browser-use/browser-harness/blob/main/agent-workspace/domain-skills/browser-use-cloud/cloud.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/browser-use/browser-harness/blob/main/agent-workspace/domain-skills/browser-use-cloud/cloud.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Claude-Mem: Agregar memoria a largo plazo entre sesiones al código Claude</title>
        <link>https://knightli.com/es/2026/05/01/claude-mem-persistent-memory-for-claude-code/</link>
        <pubDate>Fri, 01 May 2026 03:01:02 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/claude-mem-persistent-memory-for-claude-code/</guid>
        <description>&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; es un sistema de memoria persistente para &lt;code&gt;Claude Code&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Intenta resolver un problema muy específico: cada vez que un asistente de codificación de IA inicia una nueva sesión, a menudo olvida decisiones de arquitectura anteriores, obstáculos pasados, preferencias de proyecto y contexto de implementación.&lt;br&gt;
Si un proyecto dura mucho tiempo, explicar repetidamente los mismos antecedentes se convierte en una pérdida de tiempo.&lt;/p&gt;
&lt;p&gt;La idea detrás de &lt;code&gt;Claude-Mem&lt;/code&gt; es comprimir las conversaciones de Claude Code en recuerdos, almacenarlas en una base de datos local y en un almacén de vectores, y luego recuperarlas a través de una herramienta de búsqueda.&lt;/p&gt;
&lt;h2 id=&#34;qué-problema-resuelve&#34;&gt;¿Qué problema resuelve?
&lt;/h2&gt;&lt;p&gt;Claude Code es bueno en tareas de código, pero el contexto de la sesión aún es limitado.&lt;/p&gt;
&lt;p&gt;Los puntos débiles comunes incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Una nueva sesión no sabe lo que hicieron las sesiones anteriores.&lt;/li&gt;
&lt;li&gt;Las decisiones de diseño del proyecto deben explicarse repetidamente.&lt;/li&gt;
&lt;li&gt;Los problemas que ya fueron depurados son fáciles de repetir&lt;/li&gt;
&lt;li&gt;Las tareas de larga duración carecen de continuidad.&lt;/li&gt;
&lt;li&gt;El conocimiento del proyecto es difícil de acumular a través de conversaciones.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; está diseñado en torno a estos problemas.&lt;/p&gt;
&lt;p&gt;No se trata simplemente de guardar registros de chat. En cambio, comprime las conversaciones en fragmentos de memoria que son más fáciles de recuperar. Cuando sea necesario más adelante, la búsqueda semántica puede recuperar el contexto relevante.&lt;/p&gt;
&lt;h2 id=&#34;cómo-funciona&#34;&gt;Cómo funciona
&lt;/h2&gt;&lt;p&gt;Según el diseño README, &amp;ldquo;Claude-Mem&amp;rdquo; consta principalmente de varias partes.&lt;/p&gt;
&lt;p&gt;La primera parte son los ganchos.&lt;/p&gt;
&lt;p&gt;Se integra con el flujo de sesión de Claude Code y captura datos de la conversación en el momento adecuado.&lt;/p&gt;
&lt;p&gt;La segunda parte es un trabajador en segundo plano.&lt;/p&gt;
&lt;p&gt;El trabajador procesa el contenido de la conversación en bruto y lo convierte en recuerdos más breves y fáciles de buscar.&lt;/p&gt;
&lt;p&gt;La tercera parte es el almacenamiento local.&lt;/p&gt;
&lt;p&gt;El proyecto utiliza &lt;code&gt;SQLite&lt;/code&gt; para metadatos estructurados y &lt;code&gt;Chroma&lt;/code&gt; para indexación de vectores. Esto preserva la información básica de la sesión al tiempo que admite la recuperación semántica.&lt;/p&gt;
&lt;p&gt;La cuarta parte es &amp;ldquo;mem-search&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Este es el punto de entrada de consulta para Claude Code. Cuando se necesita un contexto antiguo, se pueden buscar recuerdos relevantes a través de esta herramienta.&lt;/p&gt;
&lt;p&gt;El flujo general se puede entender así:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Las sesiones de Claude Code generan contenido&lt;/li&gt;
&lt;li&gt;Los ganchos capturan datos de la sesión&lt;/li&gt;
&lt;li&gt;El trabajador lo comprime y organiza de forma asincrónica.&lt;/li&gt;
&lt;li&gt;Los recuerdos se escriben en SQLite y Chroma.&lt;/li&gt;
&lt;li&gt;Las sesiones posteriores los recuperan mediante &lt;code&gt;mem-search&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;cuándo-es-útil&#34;&gt;¿Cuándo es útil?
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; es adecuado para proyectos de larga duración, no para tareas pequeñas y puntuales.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un repositorio se desarrolla durante muchos días.&lt;/li&gt;
&lt;li&gt;La estructura del código es compleja y tiene muchos antecedentes.&lt;/li&gt;
&lt;li&gt;Es necesario recordar las convenciones del proyecto, los hábitos de nomenclatura y las elecciones de arquitectura.&lt;/li&gt;
&lt;li&gt;Claude Code se utiliza a menudo para corregir errores, funciones y documentación.&lt;/li&gt;
&lt;li&gt;Quieres que la IA recuerde por qué se cambió algo antes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo le pide a Claude Code que haga un cambio de una línea, la memoria a largo plazo no es muy significativa.&lt;br&gt;
Pero si tratas a Claude Code como un colaborador a largo plazo, resulta útil.&lt;/p&gt;
&lt;h2 id=&#34;instalación-y-puesta-en-marcha&#34;&gt;Instalación y puesta en marcha
&lt;/h2&gt;&lt;p&gt;El README proporciona un flujo de instalación directo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g claude-mem
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Empiece con:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Verificar estado:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Deténgalo cuando sea necesario:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem stop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El objetivo detrás de estos comandos es conectar el sistema de memoria como un servicio local de larga duración al flujo de trabajo de Claude Code.&lt;/p&gt;
&lt;h2 id=&#34;cómo-utilizar-mem-search&#34;&gt;Cómo utilizar &lt;code&gt;mem-search&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;mem-search&lt;/code&gt; es el punto de entrada clave para recuperar la memoria.&lt;/p&gt;
&lt;p&gt;No pretende reemplazar la búsqueda ordinaria. Permite a Claude Code consultar conversaciones pasadas por significado.&lt;/p&gt;
&lt;p&gt;Por ejemplo, Claude Code puede buscar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Por qué un módulo fue diseñado de cierta manera&lt;/li&gt;
&lt;li&gt;Cómo se depuró un error anteriormente&lt;/li&gt;
&lt;li&gt;Reglas de nomenclatura acordadas en el proyecto.&lt;/li&gt;
&lt;li&gt;Compensaciones técnicas discutidas anteriormente&lt;/li&gt;
&lt;li&gt;El trasfondo detrás de una refactorización.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es diferente de la simple búsqueda de palabras clave.&lt;br&gt;
Si la compresión de memoria y la indexación de vectores funcionan bien, puede recuperar contenido semánticamente relacionado incluso si no recuerda la redacción exacta.&lt;/p&gt;
&lt;h2 id=&#34;en-qué-se-diferencia-de-la-documentación-del-proyecto&#34;&gt;¿En qué se diferencia de la documentación del proyecto?
&lt;/h2&gt;&lt;p&gt;La documentación del proyecto es buena para sacar conclusiones estables.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Notas de arquitectura&lt;/li&gt;
&lt;li&gt;Procedimientos de implementación&lt;/li&gt;
&lt;li&gt;Convenciones API&lt;/li&gt;
&lt;li&gt;Estructura de la base de datos&lt;/li&gt;
&lt;li&gt;Reglas de desarrollo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; es mejor para el contexto creado durante las conversaciones.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Por qué se rechazó un plan&lt;/li&gt;
&lt;li&gt;Cómo se solucionó un problema temporal&lt;/li&gt;
&lt;li&gt;La discusión detrás de una implementación.&lt;/li&gt;
&lt;li&gt;Las preferencias del proyecto aún no están escritas en los documentos.&lt;/li&gt;
&lt;li&gt;Antecedentes de tareas acumulados en múltiples conversaciones&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los dos no se reemplazan el uno al otro.&lt;br&gt;
Un buen flujo de trabajo es escribir conocimientos estables en los documentos del proyecto y utilizar el sistema de memoria para ayudar a recuperar el contexto conversacional.&lt;/p&gt;
&lt;h2 id=&#34;cosas-a-tener-en-cuenta&#34;&gt;Cosas a tener en cuenta
&lt;/h2&gt;&lt;p&gt;En primer lugar, una mayor memoria a largo plazo no siempre es mejor.&lt;/p&gt;
&lt;p&gt;Si cada conversación se guarda sin distinción, la recuperación posterior puede resultar ruidosa. Los recuerdos más valiosos son las decisiones del proyecto, los antecedentes de la implementación, el historial de depuración y las preferencias a largo plazo.&lt;/p&gt;
&lt;p&gt;En segundo lugar, la memoria no puede reemplazar el código y la documentación.&lt;/p&gt;
&lt;p&gt;El contexto antiguo encontrado por la IA es sólo una referencia. El juicio final aún depende del código actual, los resultados de las pruebas y los requisitos más recientes.&lt;/p&gt;
&lt;p&gt;En tercer lugar, preste atención a la privacidad y los datos locales.&lt;/p&gt;
&lt;p&gt;Dado que almacena el contenido de la conversación, debes saber qué proyectos son adecuados para él y qué información confidencial no debe entrar en la conversación.&lt;/p&gt;
&lt;p&gt;Cuarto, los sistemas de memoria necesitan mantenimiento.&lt;/p&gt;
&lt;p&gt;A medida que avanza un proyecto, los viejos recuerdos pueden quedar obsoletos. Si el contexto obsoleto se reutiliza incorrectamente, puede inducir a error en tareas posteriores.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-es-importante-este-tipo-de-herramienta&#34;&gt;Por qué es importante este tipo de herramienta
&lt;/h2&gt;&lt;p&gt;Las herramientas de codificación de IA están pasando de preguntas y respuestas únicas a una colaboración a largo plazo.&lt;/p&gt;
&lt;p&gt;En preguntas y respuestas únicas, el modelo solo necesita responder la pregunta actual.&lt;br&gt;
En una colaboración a largo plazo, es necesario conocer el historial del proyecto, las decisiones anteriores, las preferencias del equipo y los obstáculos que ya se han encontrado.&lt;/p&gt;
&lt;p&gt;Aquí es donde importan herramientas como &lt;code&gt;Claude-Mem&lt;/code&gt;: convierten el &amp;ldquo;recordar el contexto&amp;rdquo; de una capacidad de chat temporal en un sistema local que puede instalarse, ejecutarse y buscarse.&lt;/p&gt;
&lt;p&gt;Para proyectos de ingeniería reales, esto es más práctico que simplemente alargar la ventana de contexto del modelo.&lt;br&gt;
No es necesario contextualizar mucha información de una sola vez; es necesario recuperarlo en el momento adecuado.&lt;/p&gt;
&lt;h2 id=&#34;quién-debería-intentarlo&#34;&gt;¿Quién debería intentarlo?
&lt;/h2&gt;&lt;p&gt;Quizás quieras probarlo si:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usas Claude Code con frecuencia&lt;/li&gt;
&lt;li&gt;A menudo trabajas en el mismo proyecto durante varios días.&lt;/li&gt;
&lt;li&gt;El contexto del proyecto es complejo.&lt;/li&gt;
&lt;li&gt;Explicas repetidamente los mismos antecedentes a la IA.&lt;/li&gt;
&lt;li&gt;Quieres preservar la experiencia de las conversaciones.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si solo usas Claude Code ocasionalmente, o el proyecto es pequeño, es posible que aún no necesites este tipo de sistema.&lt;/p&gt;
&lt;h2 id=&#34;referencia&#34;&gt;Referencia
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/thedotmack/claude-mem&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;thedotmack/claude-mem&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;pensamiento-final&#34;&gt;Pensamiento final
&lt;/h2&gt;&lt;p&gt;El objetivo de &lt;code&gt;Claude-Mem&lt;/code&gt; no es &amp;ldquo;guardar registros de chat&amp;rdquo;. Ayuda a Claude Code a recuperar contexto útil en tareas posteriores.
A medida que la codificación de IA pase de tareas únicas a colaboraciones en proyectos de larga duración, los sistemas de memoria serán cada vez más importantes.&lt;br&gt;
No pueden reemplazar la documentación y las pruebas, pero pueden reducir las explicaciones repetidas y hacer que la IA se sienta más como un asistente que comprende el historial del proyecto.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Codex está empezando a controlar la computadora. ¿Qué significa eso para el futuro?</title>
        <link>https://knightli.com/es/2026/04/29/codex-computer-use-update/</link>
        <pubDate>Wed, 29 Apr 2026 11:28:25 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/29/codex-computer-use-update/</guid>
        <description>&lt;p&gt;La parte más importante de esta actualización del Codex no es que agregó otro botón común y corriente. Es que el Codex está empezando a avanzar hacia &amp;ldquo;controlar la computadora&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;En el pasado, usar IA generalmente significaba hacer preguntas en un cuadro de chat, copiar, pegar y luego operar manualmente el software.&lt;br&gt;
Ahora ese límite se está ampliando: la IA no solo te responde. Puede operar aplicaciones de escritorio según su objetivo.&lt;/p&gt;
&lt;p&gt;A corto plazo, esta es una característica nueva. A largo plazo, puede cambiar la cantidad de personas que usan computadoras.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-esta-característica&#34;&gt;¿Qué es esta característica?
&lt;/h2&gt;&lt;p&gt;En pocas palabras, la capacidad de uso de computadoras de Codex le permite acceder y operar el entorno de escritorio.&lt;/p&gt;
&lt;p&gt;Puede hacer cosas como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;seleccionar y controlar una aplicación&lt;/li&gt;
&lt;li&gt;recibir tareas en lenguaje natural&lt;/li&gt;
&lt;li&gt;abrir navegadores, herramientas de inteligencia artificial, archivos locales u otro software&lt;/li&gt;
&lt;li&gt;ingrese texto, haga clic en botones y espere resultados&lt;/li&gt;
&lt;li&gt;conectar varios pasos en una tarea&lt;/li&gt;
&lt;li&gt;seguir ejecutándose en segundo plano sin necesidad de que el usuario siga cada paso manualmente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Su función no es solo escribir un texto para usted, sino también completar un flujo de operación para usted.&lt;/p&gt;
&lt;p&gt;Esa es la diferencia clave entre un Agente y un chatbot común y corriente:&lt;br&gt;
un chatbot da principalmente respuestas; un Agente está más cerca de &amp;ldquo;recibir un objetivo y luego ejecutarlo&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-esto-es-importante&#34;&gt;Por qué esto es importante
&lt;/h2&gt;&lt;p&gt;En el pasado, gran parte de la automatización requería que supieras escribir guiones.&lt;/p&gt;
&lt;p&gt;Por ejemplo, supongamos que desea completar un flujo de trabajo entre software:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;abrir una página web&lt;/li&gt;
&lt;li&gt;encontrar información&lt;/li&gt;
&lt;li&gt;copiar contenido&lt;/li&gt;
&lt;li&gt;pásalo a otra herramienta de IA&lt;/li&gt;
&lt;li&gt;guardar un archivo&lt;/li&gt;
&lt;li&gt;abre el directorio local y comprueba el resultado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para automatizar esto de forma tradicional, es posible que necesite scripts de navegador, API, programas locales e incluso automatización de ventanas.&lt;/p&gt;
&lt;p&gt;Pero muchos usuarios comunes y corrientes no saben cómo escribir estas cosas.&lt;br&gt;
Incluso si lo hacen, puede que no valga la pena escribir un guión para una tarea temporal.&lt;/p&gt;
&lt;p&gt;Aquí es donde importa el uso de la computadora: empuja la &amp;ldquo;capacidad similar a un script&amp;rdquo; hacia el lenguaje natural.&lt;/p&gt;
&lt;p&gt;No es necesario que le diga exactamente dónde hacer clic.&lt;br&gt;
Puede decirle qué resultado desea y dejar que intente completar la tarea.&lt;/p&gt;
&lt;h2 id=&#34;flujos-de-trabajo-que-pueden-cambiar&#34;&gt;Flujos de trabajo que pueden cambiar
&lt;/h2&gt;&lt;p&gt;Creo que los primeros flujos de trabajo que cambiarán no serán trabajos extremadamente serios o de alto riesgo, sino tareas molestas, fragmentadas, repetitivas y para las que no vale la pena escribir un programa dedicado.&lt;/p&gt;
&lt;h3 id=&#34;1-mover-información-a-través-del-software&#34;&gt;1. Mover información a través del software
&lt;/h3&gt;&lt;p&gt;El caso más típico es el de mover información entre aplicaciones.&lt;/p&gt;
&lt;p&gt;Anteriormente, podía alternar entre un navegador, un documento, una ventana de chat y una carpeta local.&lt;br&gt;
En el futuro, podrás encargar este tipo de tarea a un Agente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;encontrar cierto tipo de información&lt;/li&gt;
&lt;li&gt;resumirlo en un documento&lt;/li&gt;
&lt;li&gt;guárdelo en un directorio específico&lt;/li&gt;
&lt;li&gt;abre el resultado para que lo revises&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este trabajo no es difícil, pero requiere atención.&lt;br&gt;
El valor de un Agente es que absorbe estas pequeñas operaciones.&lt;/p&gt;
&lt;h3 id=&#34;2-coordinación-entre-múltiples-herramientas-de-ia&#34;&gt;2. Coordinación entre múltiples herramientas de IA
&lt;/h3&gt;&lt;p&gt;El flujo de trabajo real de muchas personas ya no se basa en una única herramienta de inteligencia artificial.&lt;/p&gt;
&lt;p&gt;Puede verse así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;una herramienta escribe código&lt;/li&gt;
&lt;li&gt;una herramienta busca información&lt;/li&gt;
&lt;li&gt;una herramienta genera imágenes&lt;/li&gt;
&lt;li&gt;una herramienta organiza documentos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Anteriormente, estas herramientas se conectaban mediante copiar y pegar manualmente.&lt;br&gt;
En el futuro, un Agente puede convertirse en la capa intermedia: abre herramientas, pasa contexto, espera resultados y organiza resultados.
Esto puede convertir &amp;ldquo;múltiples herramientas de IA trabajando juntas&amp;rdquo; de un proceso manual a un proceso semiautomático.&lt;/p&gt;
&lt;h3 id=&#34;3-automatización-del-software-de-oficina&#34;&gt;3. Automatización del software de oficina
&lt;/h3&gt;&lt;p&gt;Las hojas de cálculo, las presentaciones, los documentos y el correo electrónico comparten una característica: son potentes, pero muchas operaciones están fragmentadas.&lt;/p&gt;
&lt;p&gt;Si los agentes pueden controlar este software de forma fiable, la barrera a la automatización de oficinas disminuirá notablemente.&lt;/p&gt;
&lt;p&gt;No es necesario recordar dónde está un menú ni aprender atajos complicados.&lt;br&gt;
Solo necesitas describir el objetivo, como por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;convierta esta hoja de cálculo en un informe mensual&lt;/li&gt;
&lt;li&gt;hacer un resumen de una página de este documento&lt;/li&gt;
&lt;li&gt;combinar estos materiales en una explicación claramente estructurada&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las tediosas operaciones de los botones quedarán gradualmente ocultas detrás del lenguaje natural.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-para-los-usuarios-comunes&#34;&gt;Qué significa para los usuarios comunes
&lt;/h2&gt;&lt;p&gt;Para los usuarios comunes, este tipo de característica puede tener un impacto más directo que &amp;ldquo;el modelo se volvió un poco más inteligente&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Porque reduce la barrera operativa, no sólo la barrera del conocimiento.&lt;/p&gt;
&lt;p&gt;Muchas personas pueden describir lo que quieren, pero no saben dónde hacer clic o cómo combinar funciones dentro del software.&lt;br&gt;
Si los Agentes pueden hacerse cargo de esta parte, el uso de una computadora puede convertirse en:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;I describe the goal
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Agent operates the software
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;I check the result
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto está más cerca de la productividad real que un simple chat.&lt;/p&gt;
&lt;h2 id=&#34;su-impacto-en-el-software&#34;&gt;Su impacto en el software
&lt;/h2&gt;&lt;p&gt;Si este tipo de capacidad del Agente continúa madurando, el software en sí también se verá afectado.&lt;/p&gt;
&lt;p&gt;En el pasado, el diseño de software se basaba principalmente en el clic humano.&lt;br&gt;
En el futuro, es posible que también sea necesario que el software sirva para la operación del Agente.&lt;/p&gt;
&lt;p&gt;Esto significa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;los elementos de la interfaz deben ser más claros&lt;/li&gt;
&lt;li&gt;la retroalimentación de operación debe ser más estable&lt;/li&gt;
&lt;li&gt;los permisos locales deben ser más granulares&lt;/li&gt;
&lt;li&gt;el software puede proporcionar interfaces más adecuadas para las llamadas de los agentes&lt;/li&gt;
&lt;li&gt;A los usuarios les puede interesar más si la IA puede operar el software sin problemas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A largo plazo, los límites entre las aplicaciones pueden volverse más delgados.&lt;br&gt;
Es posible que a los usuarios les importe menos &amp;ldquo;qué aplicación debo abrir&amp;rdquo; y más &amp;ldquo;qué tarea quiero completar&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;no-lo-exageres-todavía&#34;&gt;No lo exageres todavía
&lt;/h2&gt;&lt;p&gt;Por supuesto, todavía no es momento de dejarlo ir por completo.&lt;/p&gt;
&lt;p&gt;Este tipo de capacidad todavía tiene varias limitaciones claras:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la estabilidad aún necesita observación&lt;/li&gt;
&lt;li&gt;las tareas complejas pueden fallar en el medio&lt;/li&gt;
&lt;li&gt;los límites de los permisos deben manejarse con cuidado&lt;/li&gt;
&lt;li&gt;Las operaciones de eliminación de cuentas, pagos y archivos no deben delegarse a la ligera.&lt;/li&gt;
&lt;li&gt;el consumo de cuotas no es algo que puedas ignorar por completo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces, en esta etapa, el mejor caso de uso es no dejar que se haga cargo de toda la computadora, sino permitir que maneje tareas de bajo riesgo, revisables y con muchos pasos.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;organización de materiales&lt;/li&gt;
&lt;li&gt;generar borradores&lt;/li&gt;
&lt;li&gt;mover contenido entre herramientas&lt;/li&gt;
&lt;li&gt;abrir y comprobar archivos&lt;/li&gt;
&lt;li&gt;ejecutar flujos de trabajo semiautomáticos que pueden ser revisados por un humano&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;una-última-línea&#34;&gt;Una última línea
&lt;/h2&gt;&lt;p&gt;La verdadera importancia de esta actualización del Codex es que empuja a la IA de &amp;ldquo;responder preguntas&amp;rdquo; a &amp;ldquo;operar el entorno&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;A corto plazo, es una característica del uso de la computadora.&lt;br&gt;
A largo plazo, puede marcar un cambio en la forma en que se utilizan las computadoras personales.&lt;/p&gt;
&lt;p&gt;En el futuro, es posible que dediquemos menos tiempo a recordar botones, buscar menús y cambiar de ventana.&lt;br&gt;
Más a menudo, describiremos el objetivo, dejaremos que un Agente lo ejecute y luego dejaremos que los humanos tomen el juicio final.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>¿Cuál es la diferencia entre ~/.codex/skills y Project .codex/skills en Codex?</title>
        <link>https://knightli.com/es/2026/04/29/difference-between-global-and-project-codex-skills/</link>
        <pubDate>Wed, 29 Apr 2026 11:08:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/29/difference-between-global-and-project-codex-skills/</guid>
        <description>&lt;p&gt;Al organizar las habilidades del Codex, la gente suele quedarse estancada en dos preguntas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Cuál es la diferencia entre &lt;code&gt;~/.codex/skills&lt;/code&gt; y &lt;code&gt;project/.codex/skills&lt;/code&gt;?&lt;/li&gt;
&lt;li&gt;¿Por qué existe una habilidad en el directorio pero no aparece en la sesión actual?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aquí está la versión corta.&lt;/p&gt;
&lt;h2 id=&#34;la-diferencia&#34;&gt;La diferencia
&lt;/h2&gt;&lt;p&gt;La forma más sencilla de recordarlo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;~/.codex/skills&lt;/code&gt; es tu biblioteca de habilidades global&lt;/li&gt;
&lt;li&gt;&lt;code&gt;project/.codex/skills&lt;/code&gt; es la biblioteca de habilidades local para ese repositorio&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;codexskills&#34;&gt;&lt;code&gt;~/.codex/skills&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Úselo para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Habilidades que reutilizas personalmente en todos los proyectos.&lt;/li&gt;
&lt;li&gt;flujos de trabajo generales que no están vinculados a un repositorio específico&lt;/li&gt;
&lt;li&gt;flujos de trabajo que claramente pertenecen a sus propios hábitos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;post-reescritura&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;post-traducir&lt;/code&gt;
-&lt;code&gt;git-commit-push&lt;/code&gt;
-&lt;code&gt;hugo-rsync-deploy&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bilibili-transcriptor-de-voz&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El rasgo clave de este tipo de habilidad es: &lt;strong&gt;todavía tiene sentido fuera del proyecto actual.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;proyectocodexskills&#34;&gt;&lt;code&gt;proyecto/.codex/skills&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Úselo para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;flujos de trabajo que solo se aplican a este repositorio&lt;/li&gt;
&lt;li&gt;reglas estrechamente acopladas a la estructura, scripts o plantillas del proyecto actual&lt;/li&gt;
&lt;li&gt;Habilidades que deben ser compartidas por el equipo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;un flujo de trabajo de publicación específico para este repositorio&lt;/li&gt;
&lt;li&gt;una plantilla de generación que solo funciona en este proyecto&lt;/li&gt;
&lt;li&gt;pasos de automatización estrechamente vinculados a scripts de proyectos privados&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El rasgo clave de este tipo de habilidad es: &lt;strong&gt;deja de ser significativo una vez que sale de este repositorio.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;cuándo-utilizar-habilidades-globales-y-cuándo-utilizar-habilidades-de-proyecto&#34;&gt;Cuándo utilizar habilidades globales y cuándo utilizar habilidades de proyecto
&lt;/h2&gt;&lt;p&gt;Esta regla general es suficiente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si se trata de tus hábitos personales, ponlo en &lt;code&gt;~/.codex/skills&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Si se trata de reglas del repositorio, colóquelo en &lt;code&gt;project/.codex/skills&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Si se puede reutilizar en todos los proyectos, prefiera global&lt;/li&gt;
&lt;li&gt;Si debe ser compartido por varias personas y evolucionar con el repositorio, prefiera el nivel de proyecto&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;el-repositorio-actual&#34;&gt;El repositorio actual
&lt;/h2&gt;&lt;p&gt;Basado en el estado actual:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;su máquina tiene &lt;code&gt;~/.codex/skills&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;este repositorio no tiene &lt;code&gt;.codex/skills&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que ahora mismo dependes principalmente de las habilidades globales.&lt;/p&gt;
&lt;p&gt;Eso significa que flujos de trabajo como &amp;ldquo;post-reescritura&amp;rdquo;, &amp;ldquo;post-traducción&amp;rdquo; y &amp;ldquo;git-commit-push&amp;rdquo; son actualmente más bien parte de su flujo de trabajo personal, no algo incluido explícitamente con este repositorio.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-existe-una-habilidad-en-el-disco-pero-puede-no-aparecer-en-la-sesión-actual&#34;&gt;Por qué existe una habilidad en el disco pero puede no aparecer en la sesión actual
&lt;/h2&gt;&lt;p&gt;Hay dos cosas diferentes aquí:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Existente en el disco&lt;/strong&gt;: el archivo de habilidad existe en un directorio local&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expuesto a la sesión&lt;/strong&gt;: la sesión actual lo registró en la lista de habilidades disponibles&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estos no son lo mismo.&lt;/p&gt;
&lt;p&gt;Entonces esto puede suceder:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ya existe una habilidad en &lt;code&gt;~/.codex/skills&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;pero no aparece en la lista después de &lt;code&gt;/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por lo general, esto no significa que la habilidad esté rota. Más a menudo significa: &lt;strong&gt;la sesión actual no la ha vuelto a indexar.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;cómo-hacer-que-una-habilidad-esté-disponible-en-la-sesión-actual&#34;&gt;Cómo hacer que una habilidad esté disponible en la sesión actual
&lt;/h2&gt;&lt;p&gt;La lista de verificación práctica es breve.&lt;/p&gt;
&lt;h3 id=&#34;1-colóquelo-en-el-directorio-correcto&#34;&gt;1. Colóquelo en el directorio correcto
&lt;/h3&gt;&lt;p&gt;Mundiales:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/.codex/skills/&amp;lt;skill-name&amp;gt;/SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Nivel de proyecto:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;project/.codex/skills/&amp;lt;skill-name&amp;gt;/SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;2-haga-que-el-encabezado-skillmd-sea-reconocible&#34;&gt;2. Haga que el encabezado &lt;code&gt;SKILL.md&lt;/code&gt; sea reconocible
&lt;/h3&gt;&lt;p&gt;Como mínimo, necesita:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;name: your-skill-name
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;description: What this skill does
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;3-abra-una-nueva-sesión-después-de-crearla-o-editarla&#34;&gt;3. Abra una nueva sesión después de crearla o editarla
&lt;/h3&gt;&lt;p&gt;En muchos casos, una habilidad no aparece porque la sesión actual ya fijó su lista de habilidades disponibles cuando comenzó.&lt;/p&gt;
&lt;p&gt;Entonces, si crea una habilidad en medio de una sesión, es posible que ya exista en el disco, pero es posible que esta sesión no la reconozca.&lt;/p&gt;
&lt;p&gt;El flujo de trabajo más confiable es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ponga en práctica la habilidad&lt;/li&gt;
&lt;li&gt;Finalizar la sesión actual&lt;/li&gt;
&lt;li&gt;Vuelva a ingresar al proyecto.&lt;/li&gt;
&lt;li&gt;Abre una nueva sesión&lt;/li&gt;
&lt;li&gt;Compruebe si aparece debajo de &lt;code&gt;/&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;4-implemente-las-habilidades-para-el-proyecto-antes-de-comenzar&#34;&gt;4. Implemente las habilidades para el proyecto antes de comenzar
&lt;/h3&gt;&lt;p&gt;Si desea que &lt;code&gt;project/.codex/skills&lt;/code&gt; se reconozca de manera más confiable, coloque esas habilidades en el proyecto antes de ingresar al repositorio e iniciar la sesión.&lt;/p&gt;
&lt;h2 id=&#34;una-última-línea&#34;&gt;Una última línea
&lt;/h2&gt;&lt;p&gt;La conclusión más corta es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;~/.codex/skills&lt;/code&gt; es tu biblioteca de habilidades personales&lt;/li&gt;
&lt;li&gt;&lt;code&gt;project/.codex/skills&lt;/code&gt; es la biblioteca de reglas local del repositorio&lt;/li&gt;
&lt;li&gt;una habilidad existente en el directorio no significa que la sesión actual siempre la mostrará&lt;/li&gt;
&lt;li&gt;la solución más común es colocarlo en el directorio correcto, escribir un &lt;code&gt;SKILL.md&lt;/code&gt; válido y luego iniciar una nueva sesión&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Usar Agent Skills para sustituir la función de Copilot en VS Code que genera mensajes de commit</title>
        <link>https://knightli.com/es/2026/04/06/replace-vscode-generate-commit-message-after-copilot-quota/</link>
        <pubDate>Mon, 06 Apr 2026 13:09:49 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/06/replace-vscode-generate-commit-message-after-copilot-quota/</guid>
        <description>&lt;p&gt;La función &amp;ldquo;generar mensaje de commit&amp;rdquo; de GitHub Copilot en VS Code es muy práctica. Cuando se agota la cuota, el ciclo de reinicio puede ser muy largo.
Este artículo es un intento de sustituir esa función usando Agent Skills locales.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://knightli.com/2026/04/06/replace-vscode-generate-commit-message-after-copilot-quota/1.png&#34;
	width=&#34;645&#34;
	height=&#34;194&#34;
	srcset=&#34;https://knightli.com/2026/04/06/replace-vscode-generate-commit-message-after-copilot-quota/1_hu_6b81e604b29d8606.png 480w, https://knightli.com/2026/04/06/replace-vscode-generate-commit-message-after-copilot-quota/1_hu_5f11e2ea13cbceb8.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;Generar mensaje de commit&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;332&#34;
		data-flex-basis=&#34;797px&#34;
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;problema-y-objetivo&#34;&gt;Problema y objetivo
&lt;/h2&gt;&lt;p&gt;El objetivo de este artículo es ofrecer una alternativa que se pueda aplicar directamente: usar el skill agent &lt;code&gt;git-commit-push-zh&lt;/code&gt; para completar commits y push estandarizados.&lt;/p&gt;
&lt;h2 id=&#34;alternativa-git-commit-push-zh&#34;&gt;Alternativa: &lt;code&gt;git-commit-push-zh&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Este skill convierte los &amp;ldquo;cambios actuales&amp;rdquo; en un flujo fijo:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Revisar el estado de los cambios.&lt;/li&gt;
&lt;li&gt;Confirmar la rama actual.&lt;/li&gt;
&lt;li&gt;Añadir los cambios al área de staging.&lt;/li&gt;
&lt;li&gt;Generar un mensaje de commit en chino.&lt;/li&gt;
&lt;li&gt;Ejecutar commit.&lt;/li&gt;
&lt;li&gt;Hacer push a la rama remota.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Los comandos correspondientes son:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git status --short
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git branch --show-current
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git add -A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git commit -m &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;lt;中文提交信息&amp;gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git push origin &amp;lt;当前分支&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;convención-recomendada-para-mensajes-de-commit&#34;&gt;Convención recomendada para mensajes de commit
&lt;/h2&gt;&lt;p&gt;Se recomienda usar un formato unificado:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;类型&amp;gt;(&amp;lt;范围&amp;gt;): &amp;lt;中文摘要&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ejemplos de tipo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;feat&lt;/code&gt;: nueva funcionalidad&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fix&lt;/code&gt;: corrección de problema&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docs&lt;/code&gt;: actualización de documentación&lt;/li&gt;
&lt;li&gt;&lt;code&gt;refactor&lt;/code&gt;: refactorización de código&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chore&lt;/code&gt;: cambios de mantenimiento&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ejemplos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;feat(site): 新增全站 head 广告脚本注入&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fix(i18n): 修正 relref 相关文章链接路径&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chore(content): 合并 AI 工作流分类到 AI工具&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;fallos-habituales&#34;&gt;Fallos habituales
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;nothing to commit&lt;/code&gt;: no hay cambios para commit; basta con detener el push.&lt;/li&gt;
&lt;li&gt;Fallo en &lt;code&gt;push&lt;/code&gt;: revisa primero permisos, estado de la rama remota y conflictos.&lt;/li&gt;
&lt;li&gt;Excepción de SSH/permisos: confirma credenciales y permisos antes de reintentar.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;apéndice-skillmd-original&#34;&gt;Apéndice: &lt;code&gt;SKILL.md&lt;/code&gt; original
&lt;/h2&gt;&lt;p&gt;El siguiente contenido es la documentación original de &lt;code&gt;git-commit-push-zh&lt;/code&gt;, conservada tal cual para facilitar su reutilización y mantenimiento posteriores.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-md&#34; data-lang=&#34;md&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;name: git-commit-push-zh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;description: 在当前 Git 仓库中将“当前更改”完成一次标准提交流程：检查状态、暂存变更、生成中文提交信息、执行 commit 并 push 到当前分支对应远端。用户提出“提交代码”“提交当前更改”“生成中文提交信息并推送”“git commit push 中文说明”等请求时使用。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;# 中文提交并推送
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;使用此技能将当前仓库改动一次性提交并推送到远端。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 工作流程
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 查看变更状态：&lt;span class=&#34;sb&#34;&gt;`git status --short`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; 确认当前分支：&lt;span class=&#34;sb&#34;&gt;`git branch --show-current`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 暂存当前变更：&lt;span class=&#34;sb&#34;&gt;`git add -A`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;4.&lt;/span&gt; 生成中文提交信息（简洁、可检索）。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;5.&lt;/span&gt; 执行提交：&lt;span class=&#34;sb&#34;&gt;`git commit -m &amp;#34;&amp;lt;中文提交信息&amp;gt;&amp;#34;`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;6.&lt;/span&gt; 执行推送：&lt;span class=&#34;sb&#34;&gt;`git push origin &amp;lt;当前分支&amp;gt;`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 提交信息规范（中文）
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 建议格式：&lt;span class=&#34;sb&#34;&gt;`&amp;lt;类型&amp;gt;(&amp;lt;范围&amp;gt;): &amp;lt;中文摘要&amp;gt;`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; 类型示例：&lt;span class=&#34;sb&#34;&gt;`feat`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`fix`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`chore`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`docs`&lt;/span&gt;、&lt;span class=&#34;sb&#34;&gt;`refactor`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 摘要要求：准确描述本次改动，不写空话。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;4.&lt;/span&gt; 若仅少量变更，也保持可读性与可检索性。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;示例：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`feat(site): 新增全站 head 广告脚本注入`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`fix(i18n): 修正 relref 相关文章链接路径`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`chore(content): 合并 AI 工作流分类到 AI工具`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 错误处理
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 若无可提交变更（nothing to commit），明确告知并停止 push。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; 若 push 失败，先回报关键错误（权限、远端不存在、冲突等）。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 常见 SSH/权限问题可在用户确认后重试高权限环境。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## 输出约定
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; 汇报提交哈希、分支名、提交信息。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; 汇报 push 结果（成功或失败原因）。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; 仅在确有失败时提供下一步最小操作建议。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
        </item>
        
    </channel>
</rss>
