| name | callabo-init |
| description | Callabo 서비스 워크스페이스를 초기화합니다. 새 워크스페이스 생성, 브랜치 생성, 서비스 컴포넌트(callabo-server, callabo-webapp, magi) 선택 및 포트 설정, 서비스 간 연동 설정을 지원합니다. |
| trigger_keywords | 콜라보 워크스페이스, callabo workspace, 새 작업 환경, 콜라보 초기화, callabo init, 워크스페이스 생성, 콜라보 세팅, callabo setup |
Callabo 워크스페이스 초기화 스킬
Overview
Callabo 개발을 위한 새 워크스페이스를 초기화하는 스킬입니다.
핵심 기능:
- 워크스페이스 생성: 지정 경로에 새 개발 환경 구성
- 브랜치 생성: 각 레포지토리에 동일 브랜치 생성
- 컴포넌트 선택: callabo-server, callabo-webapp, magi 선택적 클론
- 포트 설정: 각 서비스의 포트를 개별 지정
- 서비스 연동: 서비스 간 API 엔드포인트 자동 설정
When to Use
이 스킬은 다음 상황에서 자동으로 활성화됩니다:
명시적 요청:
- "새 콜라보 워크스페이스 만들어줘"
- "callabo workspace 초기화해줘"
- "새 작업 환경 세팅해줘"
- "콜라보 프로젝트 복제해줘"
자동 활성화:
- 새로운 기능 개발 시작 전
- 독립적인 테스트 환경이 필요할 때
- 다른 포트에서 별도 인스턴스 실행 필요 시
Prerequisites
필수 도구
# Git
git --version
# UV (Python 패키지 매니저)
uv --version
# Yarn (callabo-webapp용)
yarn --version
# pnpm (magi용)
pnpm --version
# tmux (선택, 실행용)
tmux -V
Base 디렉토리 요구사항
~/callabo-base 디렉토리에 다음 레포지토리가 클론되어 있어야 합니다:
~/callabo-base/
├── callabo-server/ # Python FastAPI 백엔드
├── callabo-webapp/ # Next.js 프론트엔드
├── magi/ # AI 서비스
└── run.sh # tmux 실행 스크립트
Workflow
Step 1: 요구사항 확인
사용자에게 다음 정보를 확인:
| 항목 | 필수 | 예시 |
|---|---|---|
| 대상 디렉토리 | O | ~/work/feature-abc |
| 브랜치 이름 | O | feature/add-login |
| 컴포넌트 | 선택 | callabo-server,callabo-webapp |
| 서버 포트 | 선택 | 8100 |
| 웹앱 포트 | 선택 | 3100 |
| Magi 포트 | 선택 | 3300 |
Step 2: 스크립트 실행
./scripts/init-callabo-workspace.sh <target_dir> <branch_name> [options]
옵션:
| 옵션 | 설명 | 예시 |
|---|---|---|
--target |
클론할 레포 지정 | --target callabo-server,magi |
--server-session |
세션 토큰 | --server-session random |
server=host:port |
서버 엔드포인트 | server=localhost:8100 |
webapp=host:port |
웹앱 엔드포인트 | webapp=localhost:3100 |
magi=host:port |
Magi 엔드포인트 | magi=localhost:3300 |
Step 3: 서비스 연동 구성
스크립트가 자동으로 각 서비스의 .env 파일을 업데이트:
callabo-server/.env:
PORT=8100
UVICORN_PORT=8100
FRONT_HOST=http://localhost:3100
MAGI_HOST=http://localhost:3300
callabo-webapp/.env:
PORT=3100
NEXT_PUBLIC_SITE_URL=http://localhost:3100
NEXT_PUBLIC_API_BASE_URL=http://localhost:8100
NEXT_PUBLIC_MAGI_API_BASE_URL=http://localhost:3300
magi/.env:
PORT=3300
CALLABO_API_BASE_URL=http://localhost:8100
Examples
예시 1: 기본 워크스페이스 생성
사용자: 새 콜라보 워크스페이스 만들어줘. feature/login-ui 브랜치로
Claude: Callabo 워크스페이스를 초기화하겠습니다.
📋 설정 확인:
- 대상 디렉토리: ~/work/feature-login-ui
- 브랜치: feature/login-ui
- 컴포넌트: 전체 (callabo-server, callabo-webapp, magi)
- 포트: 기본값 사용
이대로 진행할까요?
사용자: 응
Claude: 워크스페이스 초기화 중...
✅ callabo-server 복제 완료
✅ callabo-webapp 복제 완료
✅ magi 복제 완료
✅ 브랜치 feature/login-ui 생성 완료
워크스페이스가 준비되었습니다:
~/work/feature-login-ui
예시 2: 커스텀 포트로 생성
사용자: 새 워크스페이스를 8100, 3100, 3300 포트로 만들어줘
Claude: 커스텀 포트 설정으로 워크스페이스를 초기화하겠습니다.
📋 설정:
- 대상 디렉토리: 지정해주세요
- 브랜치: 지정해주세요
- 포트 설정:
- Server: 8100
- Webapp: 3100
- Magi: 3300
사용자: ~/work/test 경로에 test-branch로 만들어줘
Claude: 워크스페이스 초기화 중...
[명령 실행]
./scripts/init-callabo-workspace.sh ~/work/test test-branch \
server=localhost:8100 \
webapp=localhost:3100 \
magi=localhost:3300
✅ 서비스 연동 설정 완료:
- callabo-server (8100) → webapp (3100), magi (3300)
- callabo-webapp (3100) → server (8100), magi (3300)
- magi (3300) → server (8100)
예시 3: 특정 컴포넌트만 클론
사용자: callabo-server랑 webapp만 클론해서 새 환경 만들어줘
Claude: 선택된 컴포넌트로 워크스페이스를 초기화하겠습니다.
📋 설정:
- 컴포넌트: callabo-server, callabo-webapp (magi 제외)
- 대상 디렉토리/브랜치를 알려주세요.
사용자: ~/work/api-test 에 api-test 브랜치로
Claude:
[명령 실행]
./scripts/init-callabo-workspace.sh ~/work/api-test api-test \
--target callabo-server,callabo-webapp
✅ callabo-server 복제 완료
✅ callabo-webapp 복제 완료
⏭️ magi 건너뜀 (미선택)
워크스페이스 준비 완료!
예시 4: 원격 서버 연동
사용자: 로컬에서 개발하고 magi는 dev 서버 것을 쓰고 싶어
Claude: dev 환경 magi를 연동한 워크스페이스를 생성합니다.
📋 설정:
- 컴포넌트: callabo-server, callabo-webapp (로컬)
- magi: dev 환경 연동 (별칭 사용)
[명령 실행]
./scripts/init-callabo-workspace.sh ~/work/local-dev local-dev \
--target callabo-server,callabo-webapp \
magi=dev
✅ 로컬 서비스와 dev magi 연동 설정 완료
Configuration
기본 경로 설정
| 경로 | 용도 |
|---|---|
~/callabo-base |
원본 레포지토리 위치 |
./scripts/init-callabo-workspace.sh |
초기화 스크립트 |
기본 포트
| 서비스 | 기본 포트 |
|---|---|
| callabo-server | 8000 |
| callabo-webapp | 3000 |
| magi | 3200 |
환경 별칭
| 별칭 | 설명 |
|---|---|
dev |
개발 서버 환경 |
sandbox |
샌드박스 환경 |
production |
프로덕션 환경 (주의) |
Best Practices
DO:
- 각 기능별로 독립된 워크스페이스 생성
- 포트 충돌을 피하기 위해 사용 중인 포트 확인
- 브랜치 이름을 명확하게 지정
- 작업 완료 후 불필요한 워크스페이스 정리
DON'T:
- 같은 포트로 여러 워크스페이스 동시 실행
- 프로덕션 별칭을 로컬 개발에 사용
- base 디렉토리의 원본 레포 직접 수정
Troubleshooting
스크립트 실행 권한 오류
chmod +x ./scripts/init-callabo-workspace.sh
Base 디렉토리 없음
# ~/callabo-base가 없는 경우
mkdir -p ~/callabo-base
cd ~/callabo-base
git clone <callabo-server-repo>
git clone <callabo-webapp-repo>
git clone <magi-repo>
포트 충돌
# 사용 중인 포트 확인
lsof -i :8000
lsof -i :3000
lsof -i :3200
# 프로세스 종료
kill -9 <PID>
의존성 설치 실패
# callabo-server
cd <workspace>/callabo-server
uv sync
# callabo-webapp
cd <workspace>/callabo-webapp
yarn install
# magi
cd <workspace>/magi
pnpm install
Integration
이 스킬은 다음 스킬과 연동됩니다:
| 스킬 | 연동 방식 |
|---|---|
| callabo-tmux | 생성된 워크스페이스를 tmux로 실행 |
| context-worktree | 워크스페이스 컨텍스트 관리 |
callabo-tmux와의 워크플로우
┌─────────────────────────────────────────────────────────────┐
│ 1. callabo-init: 워크스페이스 생성 │
│ └─ init-callabo-workspace.sh 실행 │
│ └─ 레포 클론, 브랜치 생성, .env 설정 │
│ │
│ 2. callabo-tmux: 서비스 실행 │
│ └─ run.sh 실행 │
│ └─ 의존성 확인, tmux 세션 생성, 서비스 시작 │
└─────────────────────────────────────────────────────────────┘
연속 사용 예시:
사용자: 새 워크스페이스 만들고 바로 실행해줘
Claude:
1. [callabo-init 활성화]
./scripts/init-callabo-workspace.sh ~/work/new-feature feature/new
2. [callabo-tmux 활성화]
echo "" | ./scripts/run.sh ~/work/new-feature
context-worktree와의 연동
context-worktree가 활성화된 경우:
- 새 작업 요청 시 자동으로 워크스페이스 생성 여부 판단
- 기존 작업과 유사하면 기존 워크스페이스 사용
- 비유사하면 callabo-init으로 새 워크스페이스 생성 제안
Resources
| 항목 | 경로 |
|---|---|
| 초기화 스크립트 | ./scripts/init-callabo-workspace.sh |
| 실행 스크립트 | ./scripts/run.sh |
| Base 디렉토리 | ~/callabo-base/ |