Claude가 공식 @ableton-extensions/sdk를 사용하여 Ableton Live 확장을 구축하도록 가르치는 Skill
요약
이 Skill은 Claude Code에게 공식 @ableton-extensions/sdk를 사용하여 Ableton Live 확장을 구축하는 방법을 가르칩니다. 실제 검증된 API와 패턴을 제공하여, 모델이 존재하지 않는 기능을 환각(hallucinate)하는 것을 방지합니다. 사용자는 자연어 프롬프트만으로 복잡한 확장 개발을 요청할 수 있습니다.
핵심 포인트
- 공식 SDK 기반의 Ableton Live 확장 구축 가이드라인 제공
- 환각 현상 방지를 위해 검증된 API와 패턴 학습
- 자연어 설명만으로 스캐폴딩, 컨텍스트 메뉴 등 복잡한 기능 구현 가능
- 프로젝트 결과물은 .ablx 형식으로 빌드되는 완성도 높은 코드
Ableton Live 확장(extension)을 공식 @ableton-extensions/sdk로 구축하는 방법을 Claude에게 가르치는 코드 Skill입니다.
(Live의 Extension Host에서 실행되는 TypeScript / Node.js 코드).
Extensions SDK는 아직 초기 단계의 비공개 베타 버전이며, 본질적으로 모델 학습 데이터에 부재합니다. 따라서 별도의 지식 없이 Claude를 사용하면 API(extends Extension, song.beginUndoStep(), clip.warpMode.set() 등)를 *환각(hallucinates)*하여 (실제로는 존재하지 않는 것들로) 출력하게 됩니다. 이 Skill은 Claude에게 실제 검증된 API, 중요한 패턴, 주의해야 할 함정(gotchas), 그리고 복사-붙여넣기 가능한 프로젝트 템플릿을 통해 기반 지식을 제공합니다.
요약하자면—이 Skill을 설치한 후, Claude Code에게
파일은 단순히 skill 폴더의 zip 파일입니다. 다음 중 하나를 선택하세요:
개인용 (권장) — 모든 프로젝트에서 사용 가능
# 이 리포지토리에서
unzip ableton-extension.skill -d ~/.claude/skills/
# → ~/.claude/skills/ableton-extension/SKILL.md
또는 단순히 폴더를 복사하세요:
cp -R ableton-extension ~/.claude/skills/
프로젝트 범위 — 하나의 리포지토리와 함께 제공됨
mkdir -p .claude/skills && cp -R ableton-extension .claude/skills/
Claude Code를 재시작하거나 다시 엽니다. /skills로 확인하세요
("ableton-extension"이 보여야 합니다). 또는 단순히 Ableton-extension과 관련된 무언가를 요청하고 skill이 참고하는 것을 지켜보세요.
특별히 호출할 필요가 없습니다. 사용자가 Ableton Live 확장 작업을 할 때 skill은 자동으로 트리거됩니다. 평범한 언어로 원하는 바를 설명하기만 하면 됩니다. 예시 프롬프트:
"오디오 클립에 ***Reverse clip name***을 추가하는 새로운 Ableton Live 확장을 만들어 줘."
"MIDI 트랙의 시간 선택 영역에 컨텍스트 메뉴 액션을 추가하여 빈 클립으로 채우고, 이를 단일 되돌리기(undo) 단계로 처리해 줘."
"yt-dlp를 사용하여 URL에서 오디오를 다운로드하고 선택된 클립 슬롯에 넣는 확장을 만들어 줘."
*"세트의 모든 클립 이름을 한 번의 되돌릴 수 없는 작업으로 *<트랙 이름> N*으로 변경해 줘."
받게 되는 결과물: 올바른 activate() / initialize() 진입점, 적절하게 범위가 지정된 컨텍스트 메뉴 액션, 안전한 핸들 해석(handle resolution), 깔끔한 되돌리기를 위한 트랜잭션(transactions), 긴 작업에 대한 진행 상황 대화 상자(progress dialogs), 샌드박스 안전 파일 처리, 선택적 웹뷰 UI, 그리고 .ablx로 빌드되는 프로젝트입니다.
| 영역 | Claude가 정확하게 처리한 내용 |
|---|---|
| 스캐폴딩 (Scaffolding) | 공식 create-extension 흐름 또는 번들된 템플릿 사용 |
| 명령어 및 메뉴 | 모든 ContextMenuScope 포함 (*.ArrangementSelection 및 ClipSlotSelection) |
| 객체 모델 | Song → Track → Clip / Device / Scene / CuePoint … 탐색 처리 |
| 핸들러 (Handles) | resolve‑don't‑cache, instanceof 좁히기(narrowing), 제네릭 버전 인자 (MidiTrack<"1.0.0">) 지원 |
| 실행 취소 (Undo) | 비동기 Promise.all 그룹화 패턴을 포함한 withinTransaction 처리 |
| 장시간 작업 | 취소 기능/AbortSignal이 있는 withinProgressDialog 구현 |
| 파일 및 오디오 | importIntoProject, renderPreFxAudio, 저장소/임시 샌드박스 (+ mkdir/undefined 가드) 처리 |
| 사용자 지정 UI | webview 모달, close_and_send 프로토콜, Live 테마 CSS 적용 |
| 빌드 및 배포 | esbuild 번들링, manifest.json, .ablx 패키징 지원 |
| 문제점 (Gotchas) | 비연속적인 WarpMode 열거형(enum), 비트 대 초 단위 처리, 가져오기 우선 방식, CLI --temp/--storage-directory 옵션 처리 |
이 스킬로 구축된 4개의 작동하는 확장 프로그램은 examples/에 있습니다.
:
— 플래그십 쇼케이스. url-to-clip/를 우클릭합니다.
클립 슬롯(세션) 또는 오디오 트랙/시간 선택 영역(어레인지먼트) → *
폴더 (여기서 재배포되지 않음).
SDK는 베타 버전이며 변경될 수 있습니다. 새로운 베타가 출시되면:
- SDK의 TypeDoc HTML에서 재생성합니다 (SDK는
references/api.md아래에 렌더링된 문서를 제공합니다).
api/
-
새 개념을 읽고 발견한 모든 문제점(gotchas)은
docs/SKILL.md에 추가합니다. -
만약
initialize(activation, "x.y.z")가 변경되면 API 버전 문자열 예시를 업데이트합니다.
기여 환영 — 패턴을 추가하거나, 발견한 문제점을 수정하거나, 템플릿을 확장하는 이슈 및 PR은 환영합니다.
.
├── README.md # 현재 위치
├── LICENSE # MIT (© AKER)
...
커뮤니티 프로젝트이며, Ableton과 제휴하거나 보증하지 않습니다. Ableton과 Live는 Ableton AG의 상표입니다. Extensions SDK는 Ableton 소유이며 여기에 포함되어 있지 않으므로 — Ableton의 베타 프로그램에서 받으십시오. 이 저장소에는 해당 SDK를 사용하는 방법을 설명하는 문서/스킬 콘텐츠만 포함되어 있습니다.
aker-dev가 Claude Code로 제작했으며 · @ableton-extensions/[email protected]을 대상으로 테스트함.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기