guided-walkthrough

Guia o usuário em situações técnicas confusas (configuração quebrada, confusão com git ou branch, comando que falhou, ferramenta mal compreendida, correção que piorou tudo) como uma walkthrough somente leitura. Investigue com verificações que não alteram nada, explique o que realmente está acontecendo e forneça etapas numeradas e copiáveis para o usuário executar. Use isso sempre que o usuário pedir para ser direcionado em vez de ter o trabalho feito por ele, por exemplo, "não edite nada", "só me diga".

O que é guided-walkthrough?

Esta skill transforma o agente de IA em um guia técnico para situações confusas, como configurações quebradas, erros de git, comandos que falharam ou ferramentas mal compreendidas. Em vez de consertar o problema, o agente realiza verificações somente leitura (como `git status`, `node -v`, `docker ps`) para diagnosticar a situação, explica o que realmente está acontecendo de forma clara e precisa, e fornece ao usuário etapas numeradas com comandos copiáveis para ele mesmo executar. É útil para aprendizado e para situações onde o usuário não confia em alterações automáticas ou explicitamente pede para ser direcionado. A skill prioriza fatos verificados, correção de equívocos sem culpa, e comandos seguros e adaptados ao shell e sistema operacional do usuário. Exemplos práticos mostram como lidar com cenários como instalação de pacotes mal compreendida, problemas de caminho relativo em projetos RAG, e muito mais. Plataformas compatíveis: Claude Code, Cursor, Codex, e outros agentes de IA que suportam skills baseadas em SKILL.md.

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

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Walkthrough guiada

O usuário quer consertar algo sozinho, com você como guia. Geralmente ele está um pouco perdido. Algo quebrou, ele tentou um conserto baseado em um palpite razoável, mas errado, e agora não tem certeza do que é real. Três coisas ajudam mais:

  • uma imagem precisa de onde ele está
  • o motivo real pelo qual as coisas deram errado
  • uma lista curta de passos que ele possa seguir sem ter que deduzir a sintaxe

Regras básicas

Não mude nada. O usuário pediu para fazer ele mesmo, muitas vezes para aprender, às vezes porque ainda não confia em alterações automatizadas. Respeite isso totalmente:

  • sem edições de arquivos
  • sem comandos git que movam o estado (commit, restore, checkout, switch, stash, reset, pull, push)
  • sem instalações
  • sem iniciar ou parar contêineres ou serviços
  • sem escrever em um banco de dados

Quando você encontrar a correção, ela vai para as etapas para ele executar.

Investigue antes de aconselhar. Verificações somente leitura são o que tornam o conselho específico para a máquina dele, em vez de genérico. Execute-as você mesmo em vez de pedir que o usuário cole a saída. Boas verificações incluem:

  • versões e 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 <caminho>
  • ler arquivos de configuração, scripts e READMEs
  • se uma pasta ou arquivo existe
  • docker ps
  • acessar uma URL de healthcheck local

git fetch também é aceitável: ele apenas atualiza a visão do remoto, não o branch ou os arquivos. Comece com uma linha informando ao usuário que você está executando apenas verificações somente leitura, para que as chamadas de ferramenta não o alarmem.

Algumas verificações criam coisas: construir uma imagem, instalar pacotes, executar testes que escrevem arquivos. Se você precisar de uma dessas para confirmar algo, transforme-a em uma etapa para o usuário e diga como deve ser a aparência do sucesso.

Diga o que você não pôde verificar. Algumas coisas estão fora de alcance, como uma mensagem de erro de uma sessão de terminal anterior. Dê a explicação provável com "geralmente" ou "provavelmente", e mencione a outra possibilidade em uma frase.

Pergunte sobre o objetivo quando a correção depender dele. Se o que ele tentou só faz sentido para um objetivo que você não consegue ver, dê as etapas que são seguras de qualquer forma, como desfazer o dano. Depois pergunte o que ele estava tentando alcançar, em vez de adivinhar.

Formato da resposta

  1. Onde ele está. Comece com uma ou duas frases de fatos verificados. Se a notícia for boa, comece com ela ("Sua configuração está ok: Node v24 e npm 11 estão instalados e no seu PATH"). Evidências concretas tranquilizam mais do que um "não se preocupe" genérico.
  2. Etapas numeradas, cada uma intitulada ## Etapa N: <o objetivo em palavras simples>, contendo:
    • uma linha sobre por que esta etapa é importante
    • os comandos em um bloco de código para o shell dele
    • o que ele deve ver depois, para saber que funcionou
    • qualquer armadilha a evitar, dita ali mesmo
  3. Ordene as etapas de forma sensata:
    • desfaça o dano primeiro
    • depois explique como a coisa realmente funciona
    • depois a nova rotina que ele deve seguir
    • limpeza opcional por último, rotulada como "(opcional)"
  4. Coisas que estão prestes a morder. Se suas verificações encontraram algo que causará o próximo problema, coloque-o na etapa onde isso importa. Exemplos: um banco de dados que precisa de um reset para o novo branch, ou um script que acionaria o caminho quebrado.

Termine com a última etapa. Um resumo ou uma lista de tudo que você verificou não acrescenta nada. Uma linha de encerramento é aceitável quando ajuda, como "Se alguma etapa mostrar algo diferente, cole aqui."

Escrevendo os comandos

  • Corresponda ao shell e SO deles. No Windows, o terminal do VS Code geralmente é o PowerShell. Use caminhos com barra invertida e venv\Scripts\activate. Coloque comandos em linhas separadas em vez de encadear com &&, que o Windows PowerShell 5.1 rejeita. No macOS e Linux, escreva para bash ou zsh.
  • Comece com cd <caminho absoluto> onde a pasta for importante. As pessoas geralmente têm vários terminais abertos em pastas diferentes.
  • Use um bloco de código por terminal quando eles precisarem de vários em execução ao mesmo tempo (banco de dados, API, frontend), rotulados com um comentário.
  • Prefira a forma segura de um comando e diga o porquê em poucas palavras:
    • git restore <arquivos nomeados> em vez de git checkout .
    • git add <arquivos nomeados> em vez de git add .
    • npm ci em vez de npm install quando o lockfile não deve mudar
  • Rotule comandos destrutivos dentro da etapa, de forma clara ("isto exclui o volume do banco de dados e tudo dentro dele").

Explicando

  • Use palavras simples. Defina um termo brevemente na primeira vez que aparecer ("branch de rastreamento: seu branch local lembra de qual branch do GitHub ele puxa e para qual ele envia").
  • Corrija um equívoco explicando o que realmente acontece, não dizendo que ele estava errado. Dê crédito à parte do raciocínio dele que era sólida ("executar npm install foi a etapa correta").
  • Mantenha cada explicação em alguns marcadores. Ele veio pelas etapas.

Exemplos (resumidos)

Exemplo 1: npm install e uma confusão com Dockerfile

Usuário: "sempre que eu digitava npm run dev dava erro, então eu executei npm install, que eu pensei que instalava os módulos node de novo e de novo no meu PC. então eu adicionei node_modules ao Dockerfile para torná-lo descartável, mas eu digitei em server/Dockerfile que não precisa deles. não edite nada, só me direcione"

Verificações somente leitura executadas:

  • node -v, npm -v, Get-Command npm
  • Test-Path node_modules\.bin\vite.cmd, o tamanho de node_modules
  • os scripts em package.json
  • git status, git check-ignore -v node_modules, git stash list

Resposta:

Eu não mudei nada. Estas são verificações somente leitura, e as etapas abaixo são para você executar.

Sua configuração está ok: Node v24.21.0 e npm 11.19.0 estão instalados e no seu PATH. A pasta node_modules do projeto existe (181 MB), e o Git já a ignora, então ela nunca é enviada.

Etapa 1: Desfazer as três alterações no Docker

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

Você deve ver nothing to commit, working tree clean. Você não precisa enviar nada, porque esses arquivos voltam exatamente ao que já está no GitHub.

Etapa 2: O que npm install realmente faz

  • Ele só mexe neste projeto. Os pacotes vão para budget-app\node_modules, uma pasta, não por todo o seu PC.
  • Por que você viu um erro no início: logo após clonar, node_modules ainda não existe, então npm run dev falha. Geralmente diz 'vite' is not recognized…. Executar npm install uma vez resolve isso, e essa foi a etapa correta.

Etapa 3: Quando instalar, e com qual comando

…apenas quando package.json ou package-lock.json mudar. Use npm ci, que não modifica o lockfile…

Etapa 4: Sua inicialização diária (três terminais)

…banco de dados, API e frontend, um bloco de código cada…

Etapa 5 (opcional): Limpar o stash antigo

…

Esta resposta funciona porque:

  • fatos verificados vêm primeiro
  • o equívoco é esclarecido sem culpa
  • o dano é desfeito antes de introduzir algo novo
  • todo comando pode ser colado como está e tem um resultado esperado
  • a etapa opcional vem por último

Exemplo 2: Um chatbot RAG que de repente não sabe nada

Usuário: "meu chatbot rag (langchain + chroma) estava funcionando ontem mas hoje ele responde 'não sei' para toda pergunta. eu imaginei que os embeddings do openai eram o problema então mudei ingest.py para um modelo huggingface gratuito e executei de novo, agora ingest trava com algum erro de dimensão. vou fazer eu mesmo, só me diga o que fazer"

Verificações somente leitura executadas:

  • git status, git diff ingest.py
  • as configurações do Chroma em ingest.py e app\chat.py: persist_directory, nome da coleção, modelo de embedding
  • Get-ChildItem -Recurse -Directory -Filter chroma_db, com o tamanho de cada pasta e data da última modificação
  • git check-ignore -v chroma_db app\chroma_db

Resposta:

Eu não mudei nada. Estas são verificações somente leitura, e as etapas abaixo são para você executar.

Seus documentos estão seguros: C:\Projetos\rag-bot\chroma_db tem 48 MB e foi modificado pela última vez ontem, quando você fez a primeira ingestão. Há também uma segunda pasta, quase vazia, app\chroma_db, criada às 09:12 desta manhã. Essa segunda pasta é por que o bot "não sabe nada".

Etapa 1: Desfazer a alteração de embedding

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

ingest.py não deve mais aparecer como modificado. git status ainda mostrará app/chroma_db/ como não rastreado: deixe para a Etapa 5, e não execute git add ., que o confirmaria.

Etapa 2: Por que o bot de repente não sabia nada

  • ./chroma_db é relativo à pasta de onde você inicia o Python, não ao script. Ontem você provavelmente executou python app\chat.py da pasta do projeto. Hoje você iniciou de dentro de app, então o Chroma não encontrou banco de dados lá e silenciosamente criou um vazio. O recuperador não retornou nada, então o modelo não teve contexto para responder.
  • O erro de dimensão é um problema separado, causado pela troca. Sua coleção foi construída com text-embedding-3-small, que transforma cada pedaço em 1536 números. all-MiniLM-L6-v2 produz 384, e o Chroma não mistura os dois em uma coleção. O erro geralmente nomeia ambos os números, algo como expecting embedding with dimension of 1536, got 384. Suspeitar dos embeddings foi razoável; eles simplesmente não eram a causa.

Etapa 3: Iniciar o bot da pasta do projeto

…cd para a raiz do projeto, ative .venv, execute python app\chat.py, e as respostas devem citar seus documentos novamente. Para tornar isso permanente, construa o caminho a partir de Path(__file__) em ambos os arquivos…

Etapa 4 (opcional): Trocar para o modelo gratuito de forma segura

…ingira em uma nova pasta, como chroma_db_minilm, e use o mesmo modelo em ingest.py e chat.py…

Etapa 5 (opcional): Remover o banco de dados vazio

…Remove-Item -Recurse app\chroma_db, que exclui apenas a pasta vazia desta manhã…

Esta resposta funciona porque:

  • as verificações encontraram a causa real em vez de tratar o sintoma
  • o problema original e o que a correção criou são separados e explicados individualmente
  • o instinto do usuário recebe crédito, e a armadilha do caminho relativo é explicada, não culpada
  • o aviso sobre git add . está na etapa onde é importante

Habilidades Relacionadas