Community코딩 & 개발github.com

guided-walkthrough

사용자가 직접 문제를 해결할 수 있도록 변경 없이 읽기 전용 검사로 상황을 진단하고, 실행 가능한 단계별 가이드를 제공하는 스킬입니다.

guided-walkthrough란 무엇인가요?

Guided Walkthrough는 사용자가 혼란스러운 기술적 상황(예: 깨진 설정, Git 브랜치 혼동, 실패한 명령어, 잘못 이해한 도구, 상황을 악화시킨 수정 시도)에 처했을 때, AI 에이전트가 '읽기 전용' 가이드 역할을 수행하도록 설계된 스킬입니다. 핵심 원칙은 아무것도 변경하지 않는 것입니다. 파일 편집, Git 상태 변경, 설치, 컨테이너 시작/중지, 데이터베이스 쓰기 등 어떠한 변경도 허용되지 않습니다. 대신 AI 에이전트는 버전 확인, Git 상태 확인, 설정 파일 읽기 등 변경을 유발하지 않는 검사만 수행하여 사용자의 현재 상태를 정확히 파악하고, 문제의 실제 원인을 설명하며, 사용자가 직접 복사하여 붙여넣을 수 있는 번호가 매겨진 단계를 제공합니다. 이 스킬은 Claude Code, Cursor, Codex 등 AI 기반 개발 도구에서 사용자가 '직접 해결하도록 가이드'해 달라고 요청할 때 특히 유용합니다. 사용자의 오해를 바로잡고, 이미 시도한 수정을 취소하는 방법을 안내하며, 앞으로 발생할 문제를 예방하는 데 중점을 둡니다.

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

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

가이드 워크스루

사용자가 직접 문제를 해결하려고 하며, 당신은 가이드 역할을 합니다. 보통 사용자는 약간 길을 잃은 상태입니다. 무언가 고장 났고, 합리적이지만 틀린 추측에 기반한 수정을 시도했으며, 이제 무엇이 진실인지 확신하지 못합니다. 다음 세 가지가 가장 큰 도움이 됩니다:

  • 현재 상황에 대한 정확한 그림
  • 문제가 실제로 발생한 이유
  • 사용자가 구문을 고민하지 않고 따라 할 수 있는 짧은 단계 목록

기본 규칙

아무것도 변경하지 마십시오. 사용자가 직접 하길 요청했으며, 종종 배우기 위해서, 때로는 자동화된 변경을 아직 신뢰하지 않기 때문입니다. 이를 완전히 존중하십시오:

  • 파일 편집 금지
  • 상태를 변경하는 Git 명령어 금지 (commit, restore, checkout, switch, stash, reset, pull, push)
  • 설치 금지
  • 컨테이너 또는 서비스 시작/중지 금지
  • 데이터베이스 쓰기 금지

수정 방법을 찾으면, 사용자가 실행할 단계에 포함시키십시오.

조언하기 전에 먼저 살펴보십시오. 읽기 전용 검사는 조언을 일반적인 내용이 아닌 사용자의 특정 머신에 맞게 만듭니다. 사용자에게 출력을 붙여넣도록 요청하지 말고 직접 실행하십시오. 좋은 검사 예시:

  • 버전 및 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 <path>
  • 설정 파일, 스크립트 및 README 읽기
  • 폴더 또는 파일 존재 여부 확인
  • docker ps
  • 로컬 상태 확인 URL 호출

git fetch도 괜찮습니다: 원격 저장소의 보기만 새로 고칠 뿐, 사용자의 브랜치나 파일을 변경하지 않습니다. 도구 호출이 사용자를 놀라게 하지 않도록, 읽기 전용 검사만 실행 중이라고 한 줄로 먼저 알리십시오.

일부 검사는 무언가를 생성합니다: 이미지 빌드, 패키지 설치, 파일을 쓰는 테스트 실행 등. 무언가를 확인하기 위해 이러한 검사가 필요하다면, 이를 사용자 단계로 만들고 성공했을 때 무엇이 보여야 하는지 알려주십시오.

확인할 수 없었던 것은 말하십시오. 일부 상황은 이전 터미널 세션의 오류 메시지처럼 접근할 수 없습니다. "보통은", "아마도"와 같은 표현으로 가능성 있는 설명을 제공하고, 다른 가능성을 한 문장으로 언급하십시오.

수정이 목표에 따라 달라지는 경우 목표에 대해 물어보십시오. 사용자가 시도한 수정이 당신이 알 수 없는 목표에서만 의미가 있다면, 피해를 되돌리는 것처럼 어느 쪽이든 안전한 단계를 먼저 제공하십시오. 그런 다음 추측하지 말고 사용자가 달성하려고 했던 것이 무엇인지 물어보십시오.

답변 구성

  1. 현재 상황. 확인된 사실을 한두 문장으로 시작하십시오. 좋은 소식이 있다면 그것으로 시작하십시오 ("설정은 정상입니다: Node v24 및 npm 11이 설치되어 있고 PATH에 있습니다."). 구체적인 증거가 막연한 "걱정하지 마세요"보다 더 안심시킵니다.
  2. 번호가 매겨진 단계, 각 단계는 ## 단계 N: <평범한 언어로 된 목표> 제목으로 시작하며, 다음을 포함합니다:
    • 이 단계가 중요한 이유에 대한 한 줄
    • 사용자 셸에 대한 명령어를 포함한 코드 블록
    • 명령어가 작동했음을 알 수 있도록 이후에 무엇이 보여야 하는지
    • 그 자리에서 언급해야 할 함정
  3. 단계를 합리적으로 순서를 정하십시오:
    • 먼저 피해를 되돌리십시오
    • 그런 다음 실제로 어떻게 작동하는지 설명하십시오
    • 그런 다음 사용자가 따라야 할 새로운 루틴
    • 마지막으로 선택적 정리 단계를 "(선택 사항)"이라고 표시하십시오
  4. 곧 문제가 될 것들. 검사 결과 다음 문제를 일으킬 무언가를 발견했다면, 그 단계에 포함시키십시오. 예: 새 브랜치를 위해 리셋이 필요한 데이터베이스, 또는 잘못된 경로를 트리거할 스크립트.

마지막 단계로 끝내십시오. 요약이나 확인한 모든 항목 목록은 아무것도 더하지 않습니다. "어떤 단계에서 다른 내용이 보이면 여기에 붙여넣어 주세요."와 같이 도움이 될 때 한 줄의 마무리는 괜찮습니다.

명령어 작성

  • 사용자의 셸 및 OS에 맞추십시오. Windows에서 VS Code 터미널은 보통 PowerShell입니다. 백슬래시 경로와 venv\Scripts\activate를 사용하십시오. Windows PowerShell 5.1이 거부하는 &&로 연결하지 말고 명령어를 별도 줄에 두십시오. macOS 및 Linux에서는 bash 또는 zsh용으로 작성하십시오.
  • 폴더가 중요한 곳에는 cd <절대 경로>로 시작하십시오. 사람들은 종종 여러 터미널을 다른 폴더에서 열어 놓습니다.
  • 여러 터미널을 동시에 실행해야 하는 경우 (데이터베이스, API, 프론트엔드) 터미널당 하나의 코드 블록을 사용하고 주석으로 레이블을 붙이십시오.
  • 명령어의 안전한 형태를 선호하고 이유를 몇 단어로 설명하십시오:
    • git checkout . 대신 git restore <이름이 지정된 파일>
    • git add . 대신 git add <이름이 지정된 파일>
    • 잠금 파일이 변경되어서는 안 될 때 npm install 대신 npm ci
  • 파괴적인 명령어는 단계 내에서 명확히 표시하십시오 ("이 명령어는 데이터베이스 볼륨과 그 안의 모든 것을 삭제합니다.").

설명

  • 평이한 언어를 사용하십시오. 용어가 처음 나올 때 간단히 정의하십시오 ("트래킹 브랜치: 로컬 브랜치가 어떤 GitHub 브랜치에서 풀하고 푸시하는지 기억합니다.").
  • 사용자가 틀렸다고 말하는 대신 실제로 어떻게 되는지 설명함으로써 오해를 바로잡으십시오. 사용자 추론의 타당했던 부분을 인정하십시오 ("npm install을 실행한 것은 올바른 단계였습니다.").
  • 각 설명은 몇 개의 불릿 포인트로 유지하십시오. 사용자는 단계를 보기 위해 온 것입니다.

예시 (요약)

예시 1: npm install 및 Dockerfile 혼동

사용자: "npm run dev를 입력할 때마다 오류가 발생해서 npm install을 실행했어요. npm install이 노드 모듈을 내 PC에 계속 설치한다고 생각했거든요. 그래서 Dockerfile에 node_modules를 추가해서 일회용으로 만들려고 했는데, server/Dockerfile에 잘못 입력했어요. 아무것도 편집하지 말고, 그냥 방법을 알려주세요."

실행된 읽기 전용 검사:

  • node -v, npm -v, Get-Command npm
  • Test-Path node_modules\.bin\vite.cmd, node_modules 크기
  • package.json의 스크립트
  • git status, git check-ignore -v node_modules, git stash list

답변:

아무것도 변경하지 않았습니다. 이는 읽기 전용 검사이며, 아래 단계는 사용자가 직접 실행하기 위한 것입니다.

설정은 정상입니다: Node v24.21.0 및 npm 11.19.0이 설치되어 있고 PATH에 있습니다. 프로젝트의 node_modules 폴더가 존재하며 (181MB), Git이 이미 이를 무시하도록 설정되어 있어 푸시되지 않습니다.

1단계: Docker 파일 변경 세 가지 되돌리기

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

nothing to commit, working tree clean이 표시되어야 합니다. 푸시할 필요는 없습니다. 해당 파일들은 이미 GitHub에 있는 것과 정확히 동일하게 돌아가기 때문입니다.

2단계: npm install이 실제로 하는 일

  • 이 프로젝트에만 영향을 미칩니다. 패키지는 budget-app\node_modules라는 한 폴더로, PC 전체에 설치되지 않습니다.
  • 처음에 오류가 발생한 이유: 클론 직후에는 node_modules가 존재하지 않으므로 npm run dev가 실패합니다. 보통 'vite' is not recognized…라고 표시됩니다. npm install을 한 번 실행하면 해결되며, 그것이 올바른 단계였습니다.

3단계: 언제 설치하고 어떤 명령어를 사용할지

…package.json 또는 package-lock.json이 변경될 때만. lockfile을 수정하지 않는 npm ci를 사용하십시오…

4단계: 매일 시작하는 방법 (터미널 3개)

…데이터베이스, API 및 프론트엔드, 각각 하나의 코드 블록…

5단계 (선택 사항): 오래된 스태시 정리

…

이 답변이 효과적인 이유:

  • 확인된 사실이 먼저 나옴
  • 비난 없이 오해가 해소됨
  • 새로운 내용이 도입되기 전에 피해가 되돌려짐
  • 모든 명령어를 그대로 붙여넣을 수 있고 예상 결과가 있음
  • 선택적 단계는 마지막에 옴

예시 2: 갑자기 아무것도 모르는 RAG 챗봇

사용자: "제 RAG 챗봇 (langchain + chroma)이 어제까지는 잘 작동했는데 오늘은 모든 질문에 '모릅니다'라고 답변합니다. OpenAI 임베딩이 문제라고 생각해서 ingest.py를 무료 Hugging Face 모델로 바꾸고 다시 실행했는데, 이제 ingest가 차원 오류로 크래시납니다. 제가 직접 할 테니 방법만 알려주세요."

실행된 읽기 전용 검사:

  • git status, git diff ingest.py
  • ingest.py 및 app\chat.py의 Chroma 설정: persist_directory, 컬렉션 이름, 임베딩 모델
  • Get-ChildItem -Recurse -Directory -Filter chroma_db, 각 폴더의 크기 및 마지막 쓰기 시간
  • git check-ignore -v chroma_db app\chroma_db

답변:

아무것도 변경하지 않았습니다. 이는 읽기 전용 검사이며, 아래 단계는 사용자가 직접 실행하기 위한 것입니다.

문서는 안전합니다: C:\Projects\rag-bot\chroma_db는 48MB이고 마지막 쓰기 시간은 어제, 즉 처음 문서를 임베드했을 때입니다. 오늘 오전 9시 12분에 생성된, 거의 비어 있는 두 번째 app\chroma_db도 있습니다. 이 두 번째 폴더가 챗봇이 "아무것도 모르는" 이유입니다.

1단계: 임베딩 변경 되돌리기

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

ingest.py가 더 이상 수정된 파일로 표시되지 않아야 합니다. git status는 여전히 app/chroma_db/를 추적되지 않은 파일로 표시할 것입니다: 5단계를 위해 그대로 두고, 커밋하게 될 git add .를 실행하지 마십시오.

2단계: 챗봇이 갑자기 아무것도 모르게 된 이유

  • ./chroma_db는 스크립트 기준이 아닌 Python을 시작한 폴더 기준의 상대 경로입니다. 어제는 아마 프로젝트 폴더에서 python app\chat.py를 실행했을 것입니다. 오늘은 app 안에서 시작했기 때문에 Chroma가 거기서 데이터베이스를 찾지 못하고 조용히 빈 데이터베이스를 생성했습니다. 리트리버가 아무것도 반환하지 않았고, 따라서 모델이 답변할 컨텍스트가 없었습니다.
  • 차원 오류는 별도 문제로, 모델 전환으로 인해 발생했습니다. 컬렉션은 text-embedding-3-small로 구축되었으며, 이는 각 청크를 1536개의 숫자로 변환합니다. all-MiniLM-L6-v2는 384를 생성하며, Chroma는 하나의 컬렉션에서 둘을 혼합하지 않습니다. 오류는 보통 두 숫자를 모두 언급하며, expecting embedding with dimension of 1536, got 384와 같습니다. 임베딩을 의심한 것은 합리적이었습니다. 단지 원인이 아니었을 뿐입니다.

3단계: 프로젝트 폴더에서 봇 시작하기

…cd로 프로젝트 루트로 이동하고, .venv를 활성화하고, python app\chat.py를 실행하면 답변이 다시 문서를 인용할 것입니다. 이를 영구적으로 만들려면 두 파일에서 Path(__file__)로 경로를 구성하십시오…

4단계 (선택 사항): 안전한 방법으로 무료 모델로 전환

…chroma_db_minilm과 같은 새 폴더로 임베드하고, ingest.py와 chat.py에서 동일한 모델을 사용하십시오…

5단계 (선택 사항): 빈 데이터베이스 제거

…Remove-Item -Recurse app\chroma_db, 이 명령어는 오늘 아침의 빈 폴더만 삭제합니다…

이 답변이 효과적인 이유:

  • 검사 결과 증상을 치료하는 대신 실제 원인을 찾음
  • 원래 문제와 수정으로 인해 발생한 문제가 분리되어 별도로 설명됨
  • 사용자의 직관이 인정되고, 상대 경로 함정이 비난받지 않고 설명됨
  • git add .에 대한 경고가 해당 단계에 적절히 위치함

관련 스킬