이러한 배경 속에서 rails-upgrade-skill이 탄생했습니다. 이는 Claude의 지능을 활용하여 전체 Rails 업그레이드 프로세스를 안내하는 전문화된 AI 스킬입니다.
rails-upgrade-skill의 주요 특징
-
지능형 분석: Rails MCP 서버를 호출하여 실제 프로젝트 파일을 읽고, 사용자 지정 설정을 이해하며, 일반적인 조언이 아닌 개인화된 지침을 제공합니다.
-
사용자 지정 코드 보존: 사용자 지정 구성(예: 사용자 지정 SSL 미들웨어 또는 자동 로드 경로)을 자동으로 감지하고, 안전하게 마이그레이션하는 방법에 대한 명확한 지침과 함께 특정 경고를 제공하여 코드 로직 손실을 방지합니다.
-
순차적 강제: 버전 건너뛰기(예: 7.0에서 8.1로 바로 업그레이드)와 같은 위험한 관행을 방지하며, 올바른 순차 경로(7.0 → 7.1 → 7.2 → 8.0 → 8.1)를 자동으로 계획하고 각 단계를 개별적으로 안내합니다.
워크플로우 통합 및 맞춤화
이 스킬은 현재 작성자의 개인 워크플로우에 맞춰 Rails MCP Server(Rails 애플리케이션 정보 수집) 및 Neovim MCP Server(Neovim에서 파일 변경 사항 직접 적용)와 긴밀하게 연결되어 있습니다. 하지만 Skills의 장점은 사용자가 자신의 스택을 사용하지 않아도 된다는 점입니다. 저장소를 포크하고 SKILL.md 파일을 편집하여 자신의 편집기 및 워크플로우에 맞게 프로젝트 정보를 얻거나 변경 사항을 적용하는 방법을 지시할 수 있습니다.
스킬 사용 단계
-
설치: 저장소를 클론하고 빌드 스크립트를 실행한 후, Claude Desktop 앱의 설정에서 빌드된
.zip파일을 업로드합니다. -
프로젝트 컨텍스트 설정: 새 채팅에서
Switch to my_app project and show me the project information명령으로 Claude에 작업 중인 프로젝트를 알립니다. - 업그레이드 스킬 활성화:
Help me upgrade my Rails application to next available version프롬프트로 AI 스킬을 호출합니다.- 모드 1 (보고서 전용): Claude가 포괄적인 보고서를 제공하고, 사용자가 변경 사항을 수동으로 적용합니다.
- 모드 2 (대화형): Claude가 Neovim에서 열린 파일에 변경 사항을 직접 적용하도록 안내하고 제안합니다.
- 세 단계 프로세스:
- 1단계: 비권장 사항 감지: 애플리케이션 루트 디렉토리에서 실행할 bash 스크립트를 생성하여 비권장 패턴 및 변경 사항을 스캔하고 결과를 Claude에 다시 붙여넣습니다.
- 2단계: 포괄적인 보고서 생성: 프로젝트 분석 및 비권장 사항 감지 결과를 사용하여 우선순위(HIGH, MEDIUM, LOW) 및 구성 요소별로 분류된 상세 보고서를 생성합니다. 기존 사용자 지정 설정과 새로운 Rails 기본값을 지능적으로 병합하고, OLD vs. NEW 코드 예시와 설명을 제공합니다.
- 3단계: 변경 사항 적용 (
app:update보고서): 변경이 필요한 모든 파일을 요약하는 최종 보고서를 제공합니다. 대화형 모드에서는All files are ready on nvim buffers, update them all명령으로 승인된 변경 사항을 Neovim에서 열린 파일에 직접 적용합니다.
스킬 사용 후 최종 단계
AI 스킬은 업그레이드의 가장 복잡한 부분을 처리하여 90% 정도를 완료합니다. 이후에는 표준 Rails 절차를 따릅니다. 먼저 Gem을 업데이트하고, rails app:update 명령을 실행합니다. 이전에 스킬이 지능적으로 병합했으므로 구성 파일 충돌 시 덮어쓰기를 건너뛰고 새 파일(예: 초기화 파일, 마이그레이션)을 생성하도록 합니다. 마지막으로, 테스트 스위트를 실행하고 애플리케이션을 수동으로 테스트하여 최종 검증을 수행합니다.