오픈소스 CLI 도구 sdf는 Claude를 사용하여 스택형 GitHub PR을 관리합니다.

sdf(Stacked Diffs Flow)는 git과 gh 위에서 스택형 풀 리퀘스트 워크플로우를 자동화하는 오픈소스 CLI 도구입니다. 이 도구는 Claude CLI를 엔진으로 사용하여 복잡한 작업을 처리하며, Claude는 git과 gh와 함께 적절한 의존성으로 나열되어 시작 시 버전을 확인합니다. Claude CLI가 없는 경우 AI 기능은 점진적으로 저하됩니다.
주요 명령어 및 기능
이 도구는 Claude가 주요 작업을 수행하는 여러 명령어를 제공합니다:
sdf split— 큰 브랜치를 스택으로 분해합니다. Claude는 전체 diff를 분석하고 의미론적 주제를 식별하며, 동일한 파일이 여러 관심사를 포함하는 경우를 포함하여 허수준 정밀도로 계층화된 분할 계획을 제안합니다. 그런 다음 종속성 순서로 각 브랜치를 생성하고, 분할이 무손실인지 확인한 후 PR을 엽니다.sdf sync— 캐스케이드 리베이스 중 충돌 해결을 처리합니다. 업스트림 PR이 병합되고 다운스트림 브랜치에 충돌이 있을 때,sdf는 전체 스택 컨텍스트(각 브랜치가 수행하려던 작업, 업스트림에서 변경된 사항, 실제 충돌 마커)로 프롬프트를 구성하여 Claude CLI에 전달합니다. Claude는 충돌이 존재하는 이유를 이해하며, 단순히 위치만 파악하는 것이 아닌 의미론적으로 충돌을 해결합니다.sdf sync --with-content— Claude는 각 브랜치의 diff를 읽고 무엇과 왜를 설명하는 제목과 설명을 작성하여, 문장 작성으로 컨텍스트 전환을 원하지 않을 때 유용합니다.sdf ai intro— Claude Code가 세션 간에sdf의 명령어, 워크플로우 및 규칙을 이해할 수 있도록 스킬 파일을 생성합니다.
설치 및 이용 가능성
이 도구는 무료이며 MIT 라이선스가 적용되며, 소스는 GitHub에서 이용할 수 있습니다. brew install pavelpascari/tap/sdf를 통해 Homebrew로 설치할 수 있습니다. 문서는 stacked-diffs-flow.com/docs/getting-started에서 확인할 수 있습니다.
이러한 유형의 도구는 복잡한 코드베이스로 작업하며 여러 종속 풀 리퀘스트를 효율적으로 관리해야 하는 개발자에게 유용합니다. Claude CLI와의 통합은 단순한 텍스트 조작이 아닌 코드 변경의 의미론적 이해를 가능하게 합니다.
📖 Read the full source: r/ClaudeAI
👀 See Also

홀라보스 AI 런타임, 타입스크립트로 전환 및 지속적 MCP 포트 구현
Holaboss AI 로컬 에이전트 런타임이 TypeScript 전용으로 리팩토링되어 Python 종속성을 제거하고 번들 크기를 줄였습니다. 이제 MCP 서버 포트를 SQLite에 UNIQUE(port) 제약 조건으로 유지하여 재시작 시 충돌을 방지합니다.
Claude Garmin MCP 서버: 더 스마트한 훈련 조언을 위한 실제 피트니스 데이터
Claude Desktop을 Garmin Connect에 연결하는 MCP 서버로, 데이터 기반 훈련 계획을 위한 8가지 도구(회복 준비도, HRV, VO2max 등)를 제공합니다.

듀얼 DGX 스파크 vs 맥 스튜디오 M3 울트라: Qwen3.5 397B 로컬 실행 실용 비교
한 개발자가 1만 달러짜리 Mac Studio M3 Ultra 512GB와 1만 달러짜리 듀얼 DGX Spark 설정에서 로컬로 Qwen3.5 397B를 실행한 결과를 비교했습니다. Mac Studio는 800 GB/s 대역폭으로 30-40 tok/s를 달성했지만 프리필 속도는 느렸고, Spark는 더 빠른 컴퓨팅 성능으로 27-28 tok/s를 제공했지만 설정이 복잡했습니다.

Nit: AI 에이전트 토큰 효율성을 위해 최적화된 Zig 언어 기반 Git 대체 도구
Nit는 Zig로 작성된 네이티브 Git 대체 도구로, status, diff, log, show와 같은 일반적인 명령어에서 토큰 사용량을 35-87% 감소시킵니다. 이는 간결한 출력 기본값과 직접적인 libgit2 통합을 통해 하위 프로세스 오버헤드를 제거함으로써 달성됩니다.