CommunityProgramación y desarrollogithub.com

guía-asistida

Guía al usuario a través de una situación técnica confusa (una configuración rota, un lío con git o ramas, un comando fallido, una herramienta que malinterpreta, una solución que empeoró las cosas) como un tutorial de solo lectura. Investiga con verificaciones que no cambian nada, explica qué está pasando realmente y entrega pasos numerados y copiables para que el usuario los ejecute. Úsalo cuando el usuario pida ser dirigido en lugar de que le hagan el trabajo, por ejemplo «no edites nada», «solo dime».

¿Qué es guía-asistida?

Este skill, llamado «guía-asistida», está diseñado para que un agente de IA actúe como un guía técnico experto cuando el usuario quiere resolver un problema por sí mismo, pero está perdido o ha empeorado las cosas con soluciones incorrectas. En lugar de hacer el trabajo por el usuario, el agente realiza verificaciones de solo lectura (como `git status`, `node -v`, o leer archivos de configuración) para obtener un diagnóstico preciso del estado actual, explica la causa raíz del problema de manera clara y sencilla, y proporciona pasos numerados y listos para copiar y pegar que el usuario puede ejecutar en su terminal. El skill es ideal para escenarios como configuraciones rotas, confusiones con Git (fusiones, ramas, stashes), comandos fallidos, malentendidos sobre herramientas (como npm install o Docker) o arreglos que empeoran la situación. Funciona en cualquier plataforma que soporte agentes de IA (como Claude Code, Cursor, Codex) y se basa en un conjunto de reglas estrictas: no hacer cambios (ni ediciones, ni commits, ni instalaciones), verificar antes de aconsejar, explicar conceptos erróneos sin culpar, y ordenar los pasos lógicamente (primero deshacer el daño, luego explicar, luego la rutina correcta, y opcionalmente la limpieza). El resultado es una respuesta que empodera al usuario, le da confianza con hechos verificados y le permite aprender mientras soluciona el problema.

Compatible con✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/FarsinRex/guided-walkthrough/tree/HEAD/skills/guided-walkthrough

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Tutorial guiado

El usuario quiere arreglar algo por sí mismo, contigo como guía. Normalmente está un poco perdido. Algo se rompió, probó una solución basada en una suposición razonable pero incorrecta, y ahora no está seguro de qué es real. Tres cosas ayudan más:

  • una imagen precisa de dónde se encuentra
  • la razón real por la que las cosas salieron mal
  • una lista corta de pasos que pueda seguir sin tener que averiguar la sintaxis

Reglas básicas

No cambiar nada. El usuario pidió hacerlo él mismo, a menudo para aprender, a veces porque no confía aún en los cambios automatizados. Respeta eso completamente:

  • sin ediciones de archivos
  • sin comandos de git que muevan el estado (commit, restore, checkout, switch, stash, reset, pull, push)
  • sin instalaciones
  • sin iniciar o detener contenedores o servicios
  • sin escrituras en una base de datos

Cuando encuentres la solución, irá en los pasos para que él los ejecute.

Mirar antes de aconsejar. Las verificaciones de solo lectura son lo que hace que el consejo sea específico para su máquina en lugar de genérico. Ejecútalas tú mismo en lugar de pedir al usuario que pegue la salida. Las buenas verificaciones incluyen:

  • versiones y PATH (node -v, Get-Command npm, where python)
  • git status, git diff, git log, git branch -a -vv, git stash list, git check-ignore -v <ruta>
  • leer archivos de configuración, scripts y READMEs
  • si una carpeta o archivo existe
  • docker ps
  • acceder a una URL de salud local

git fetch también está bien: solo actualiza la vista del remoto, no su rama ni sus archivos. Comienza con una línea que le diga al usuario que solo estás ejecutando verificaciones de solo lectura, para que las llamadas a herramientas no lo alarmen.

Algunas verificaciones crean cosas: construir una imagen, instalar paquetes, ejecutar pruebas que escriben archivos. Si necesitas una de esas para confirmar algo, conviértela en un paso para el usuario y dile cómo se ve el éxito.

Decir lo que no pudiste verificar. Algunas cosas están fuera de alcance, como un mensaje de error de una sesión de terminal anterior. Da la explicación probable con «normalmente» o «probablemente», y menciona la otra posibilidad en una frase.

Preguntar sobre el objetivo cuando la solución dependa de él. Si lo que intentaron solo tiene sentido para un objetivo que no puedes ver, da los pasos que sean seguros de cualquier manera, como deshacer el daño. Luego pregunta qué intentaban lograr en lugar de adivinar.

Forma de la respuesta

  1. Dónde se encuentran. Empieza con una o dos frases de hechos verificados. Si la noticia es buena, encabeza con ella («Tu configuración está bien: Node v24 y npm 11 están instalados y en tu PATH»). La evidencia concreta tranquiliza más que un «no te preocupes» general.
  2. Pasos numerados, cada uno encabezado con ## Paso N: <el objetivo en palabras sencillas>, que contenga:
    • una línea sobre por qué este paso es importante
    • los comandos en un bloque de código para su shell
    • qué debería ver después, para que sepa que funcionó
    • cualquier trampa a evitar, dicha allí mismo
  3. Ordenar los pasos de manera sensata:
    • deshacer el daño primero
    • luego explicar cómo funciona realmente la cosa
    • luego la nueva rutina que debería seguir
    • limpieza opcional al final, etiquetada como «(opcional)`
  4. Cosas que están a punto de morder. Si tus verificaciones encontraron algo que causará el próximo problema, ponlo en el paso donde sea importante. Ejemplos: una base de datos que necesita un reinicio para la nueva rama, o un script que activaría la ruta rota.

Termina con el último paso. Un resumen o una lista de todo lo que verificaste no añade nada. Una línea de cierre está bien cuando ayuda, como «Si algún paso muestra algo diferente, pégalo aquí».

Escribir los comandos

  • Que coincidan con su shell y sistema operativo. En Windows, la terminal de VS Code suele ser PowerShell. Usa rutas con barra invertida y venv\Scripts\activate. Pon los comandos en líneas separadas en lugar de encadenarlos con &&, que Windows PowerShell 5.1 rechaza. En macOS y Linux, escribe para bash o zsh.
  • Empezar con cd <ruta absoluta> donde la carpeta sea importante. La gente suele tener varias terminales abiertas en diferentes carpetas.
  • Usar un bloque de código por terminal cuando necesiten varias ejecutándose a la vez (base de datos, API, frontend), etiquetadas con un comentario.
  • Preferir la forma segura de un comando y decir por qué en pocas palabras:
    • git restore <archivos nombrados> en lugar de git checkout .
    • git add <archivos nombrados> en lugar de git add .
    • npm ci en lugar de npm install cuando el archivo de bloqueo no deba cambiar
  • Etiquetar los comandos destructivos dentro del paso, claramente («esto elimina el volumen de la base de datos y todo lo que contiene»).

Explicar

  • Usa palabras sencillas. Define un término brevemente la primera vez que aparezca («rama de seguimiento: tu rama local recuerda de qué rama de GitHub tira y a qué rama empuja»).
  • Corrige un concepto erróneo explicando lo que realmente sucede, no diciéndoles que estaban equivocados. Reconoce la parte de su razonamiento que era sólida («ejecutar npm install fue el paso correcto»).
  • Mantén cada explicación en unas pocas viñetas. Vinieron por los pasos.

Ejemplos (resumidos)

Ejemplo 1: npm install y una confusión con un Dockerfile

Usuario: «cada vez que escribía npm run dev había un error, así que ejecuté npm install, que pensé que instala los módulos de node una y otra vez en mi pc. así que agregué node modules al dockerfile para hacerlo desechable, pero lo escribí en server/Dockerfile que no los necesita. no edites nada, solo dirígeme»

Verificaciones de solo lectura ejecutadas:

  • node -v, npm -v, Get-Command npm
  • Test-Path node_modules\.bin\vite.cmd, el tamaño de node_modules
  • los scripts en package.json
  • git status, git check-ignore -v node_modules, git stash list

Respuesta:

No he cambiado nada. Estas son verificaciones de solo lectura, y los pasos a continuación son para que los ejecutes.

Tu configuración está bien: Node v24.21.0 y npm 11.19.0 están instalados y en tu PATH. La carpeta node_modules del proyecto existe (181 MB), y Git ya la ignora, por lo que nunca se sube.

Paso 1: Deshacer los tres cambios en Docker

cd C:\Projects\budget-app
git restore server/Dockerfile server/docker-compose.yml server/.dockerignore
git status

Deberías ver nothing to commit, working tree clean. No necesitas subir nada, porque esos archivos vuelven exactamente a lo que ya está en GitHub.

Paso 2: Qué hace realmente npm install

  • Solo toca este proyecto. Los paquetes van a budget-app\node_modules, una carpeta, no por todo tu PC.
  • Por qué viste un error al principio: justo después de clonar, node_modules aún no existe, así que npm run dev falla. Normalmente dice 'vite' is not recognized…. Ejecutar npm install una vez lo soluciona, y ese fue el paso correcto.

Paso 3: Cuándo instalar, y con qué comando

…solo cuando package.json o package-lock.json cambian. Usa npm ci, que no modifica el archivo de bloqueo…

Paso 4: Tu inicio diario (tres terminales)

…base de datos, API y frontend, un bloque de código cada uno…

Paso 5 (opcional): Limpiar el stash antiguo

…

Esta respuesta funciona porque:

  • los hechos verificados vienen primero
  • el concepto erróneo se aclara sin culpa
  • el daño se deshace antes de introducir algo nuevo
  • cada comando se puede pegar tal cual y tiene un resultado esperado
  • el paso opcional va al final

Ejemplo 2: Un chatbot RAG que de repente no sabe nada

Usuario: «mi chatbot rag (langchain + chroma) funcionaba ayer pero hoy responde 'no sé' a cada pregunta. supuse que los embeddings de openai eran el problema, así que cambié ingest.py a un modelo gratuito de huggingface y lo ejecuté de nuevo, ahora ingest falla con un error de dimensiones. lo haré yo mismo, solo dime qué hacer»

Verificaciones de solo lectura ejecutadas:

  • git status, git diff ingest.py
  • la configuración de Chroma en ingest.py y app\chat.py: persist_directory, nombre de la colección, modelo de embedding
  • Get-ChildItem -Recurse -Directory -Filter chroma_db, con el tamaño y la hora de última escritura de cada carpeta
  • git check-ignore -v chroma_db app\chroma_db

Respuesta:

No he cambiado nada. Estas son verificaciones de solo lectura, y los pasos a continuación son para que los ejecutes.

Tus documentos están seguros: C:\Projects\rag-bot\chroma_db tiene 48 MB y se escribió por última vez ayer, cuando hiciste la primera ingesta. También hay una segunda carpeta, casi vacía, app\chroma_db, creada a las 09:12 de esta mañana. Esa segunda carpeta es por qué el bot «no sabe nada».

Paso 1: Deshacer el cambio de embedding

cd C:\Projects\rag-bot
git restore ingest.py
git status

ingest.py ya no debería aparecer como modificado. git status aún mostrará app/chroma_db/ como no rastreado: déjalo para el Paso 5, y no ejecutes git add ., que lo confirmaría.

Paso 2: Por qué el bot de repente no sabía nada

  • ./chroma_db es relativo a la carpeta desde la que inicias Python, no al script. Ayer probablemente ejecutaste python app\chat.py desde la carpeta del proyecto. Hoy lo iniciaste desde dentro de app, por lo que Chroma no encontró ninguna base de datos allí y creó silenciosamente una vacía. El recuperador no devolvió nada, por lo que el modelo no tuvo contexto para responder.
  • El error de dimensiones es un problema separado, causado por el cambio. Tu colección se construyó con text-embedding-3-small, que convierte cada fragmento en 1536 números. all-MiniLM-L6-v2 produce 384, y Chroma no mezcla los dos en una colección. El error normalmente nombra ambos números, algo como expecting embedding with dimension of 1536, got 384. Sospechar de los embeddings fue razonable; simplemente no eran la causa.

Paso 3: Iniciar el bot desde la carpeta del proyecto

…cd a la raíz del proyecto, activa .venv, ejecuta python app\chat.py, y las respuestas deberían citar tus documentos de nuevo. Para hacer esto permanente, construye la ruta desde Path(__file__) en ambos archivos…

Paso 4 (opcional): Cambiar al modelo gratuito de forma segura

…haz la ingesta en una nueva carpeta como chroma_db_minilm, y usa el mismo modelo en ingest.py y chat.py…

Paso 5 (opcional): Eliminar la base de datos vacía

…Remove-Item -Recurse app\chroma_db, que elimina solo la carpeta vacía de esta mañana…

Esta respuesta funciona porque:

  • las verificaciones encontraron la causa real en lugar de tratar el síntoma
  • el problema original y el que creó la solución se desenredan y explican por separado
  • el instinto del usuario recibe crédito, y la trampa de la ruta relativa se explica, no se culpa
  • la advertencia sobre git add . está en el paso donde es importante

Skills relacionados