| name | meta-workflow |
| description | Meta 환경 기본 워크플로우. semo-system/ 수정 → 버저닝 → 배포 → 로컬 동기화 체인 자동 실행. Use when (1) [Meta] 프리픽스 요청, (2) semo-system/ 수정 완료 후, (3) Meta 패키지 설치 환경. |
| tools | Bash, Read, Write, Edit, Glob, Grep |
| model | inherit |
| triggers | [Meta], [meta], 메타 작업, SEMO 수정, semo-system 수정 |
시스템 메시지: 이 Skill이 호출되면
[SEMO] - [META] Skill: meta-workflow 호출 - {작업 요약}시스템 메시지를 첫 줄에 출력
meta-workflow Skill
Purpose: Meta 환경에서 semo-system/ 수정 작업의 End-to-End 워크플로우 관리
기본 활성화
Meta 패키지 설치 시 이 스킬이 기본 동작으로 실행됩니다.
별도의 [Meta] 프리픽스 없이도, Meta 환경에서 semo-system/ 수정이 감지되면 자동으로 버저닝 → 배포 → 로컬 동기화 체인이 실행됩니다.
트리거 조건
| 조건 | 동작 |
|---|---|
| Meta 패키지 설치 + semo-system/ 수정 | 자동으로 meta-workflow 체인 실행 |
[Meta] 프리픽스 |
명시적 Meta 작업 요청 |
| 작업 완료 감지 (파일 변경) | 자동 버저닝 → 배포 → 동기화 |
NON-NEGOTIABLE Rules
- Meta 환경 필수:
semo-system/meta/존재 확인 - 버저닝 필수: 작업 완료 후
skill:version-manager자동 호출 - 로컬 동기화 필수: git push 후 심볼릭 링크 재생성
- Slack 알림 필수: 배포 완료 후
skill:notify-slack호출
Workflow
[요청 수신]
↓
Phase 1: 환경 검증
- meta 패키지 설치 확인
- GitHub 인증 확인 (gh auth status)
- 현재 브랜치 확인 (main 권장)
↓
Phase 2: 작업 수행
- semo-system/ 내 파일 수정
- 기존 스킬 활용 (skill-creator, write-code 등)
↓
Phase 3: 버저닝 & 배포
- 변경된 패키지 VERSION 범프
- CHANGELOG 생성
- git commit & push
- Slack 알림
↓
Phase 4: 로컬 동기화
- 심볼릭 링크 재생성
- .claude/CLAUDE.md 재생성 (필요 시)
🔴 모노레포 구조 (NON-NEGOTIABLE)
SEMO는 모노레포 구조입니다. 반드시 올바른 경로에서 작업하세요.
디렉토리 구조
/path/to/project/ # 사용자 프로젝트 (git repo 아님)
├── .claude/ # Claude 설정 (심링크)
├── semo-system/ # 로컬 심링크 타겟
│ └── ... (심링크)
│
└── semo/ # ← 실제 모노레포 (semicolon-devteam/semo)
├── .git/ # git 레포지토리
├── packages/
│ ├── cli/ # @team-semicolon/semo-cli
│ └── mcp-server/ # @team-semicolon/semo-mcp
└── semo-system/ # ← 실제 SEMO 패키지 소스
├── semo-core/
├── semo-skills/
├── semo-hooks/
└── meta/
모노레포 감지
# 모노레포 경로 찾기
MONOREPO_PATH=""
if [ -d "semo/.git" ]; then
MONOREPO_PATH="semo"
elif [ -d "../semo/.git" ]; then
MONOREPO_PATH="../semo"
fi
if [ -z "$MONOREPO_PATH" ]; then
echo "❌ 모노레포를 찾을 수 없습니다"
exit 1
fi
echo "✅ 모노레포 경로: $MONOREPO_PATH"
작업 위치 규칙
| 작업 유형 | 경로 | 설명 |
|---|---|---|
| 스킬/에이전트 수정 | semo/semo-system/ | 모노레포 내 실제 소스 |
| CLI 수정 | semo/packages/cli/ | npm 패키지 |
| git 커밋/푸시 | semo/ | 모노레포 루트 |
| 로컬 심링크 | ./semo-system/ | 사용자 프로젝트 |
Phase 1: 환경 검증
모노레포 확인
# 모노레포 경로 및 원격 확인
cd semo 2>/dev/null || cd ../semo 2>/dev/null
git remote -v | grep "semicolon-devteam/semo"
Meta 환경 확인
# Meta 패키지 설치 확인 (모노레포 내)
if [ -d "semo-system/meta" ]; then
echo "✅ Meta 환경 확인됨"
else
echo "❌ Meta 패키지가 설치되어 있지 않습니다"
exit 1
fi
GitHub 인증 확인
gh auth status
브랜치 확인
git branch --show-current
# main 브랜치가 아닌 경우 경고 표시
Phase 2: 작업 수행
사용자 요청에 따라 semo-system/ 내 파일을 수정합니다.
동작 범위
semo-system/semo-core/- 에이전트, 커맨드, 원칙semo-system/semo-skills/- 통합 스킬semo-system/meta/- 메타 스킬/에이전트semo-system/semo-remote/- 원격 통합semo-system/semo-hooks/- 훅 시스템
활용 가능한 스킬
| 스킬 | 용도 |
|---|---|
skill-creator |
새 스킬 생성 |
agent-manager |
에이전트 관리 |
command-manager |
커맨드 관리 |
Phase 3: 버저닝 & 배포
변경 패키지 감지
# git diff로 변경된 패키지 감지
git diff --name-only HEAD | grep "semo-system/" | cut -d'/' -f2 | sort -u
VERSION 범프 규칙
| 변경 유형 | 버전 범프 |
|---|---|
| Breaking Change | MAJOR (x.0.0) |
| 새 기능 추가 | MINOR (0.x.0) |
| 버그 수정, 문서 | PATCH (0.0.x) |
버저닝 체인
1. VERSION 파일 범프
2. CHANGELOG/{version}.md 생성
3. git add & commit
4. git push origin main
5. skill:notify-slack 호출
Slack 알림 형식
🚀 SEMO 배포 완료
패키지: {package_name}
버전: {old_version} → {new_version}
변경: {change_summary}
Phase 4: 로컬 동기화
git push 완료 후 항상 자동 실행
동기화 대상
# 심볼릭 링크 재생성
.claude/skills/* → semo-system/semo-skills/*
.claude/agents/* → semo-system/semo-core/agents/*
# Meta 포함 (설치된 경우)
.claude/skills/* → semo-system/meta/skills/*
.claude/agents/* → semo-system/meta/agents/*
동기화 명령
# 기존 심볼릭 링크 정리 및 재생성
# (semo-cli의 createStandardSymlinks 로직 활용)
# 1. 기존 스킬 심볼릭 링크 정리
find .claude/skills -type l -delete
# 2. semo-skills 재링크
for skill in semo-system/semo-skills/*/; do
skill_name=$(basename "$skill")
ln -sf "../../semo-system/semo-skills/$skill_name" ".claude/skills/$skill_name"
done
# 3. meta 스킬 재링크 (있는 경우)
if [ -d "semo-system/meta/skills" ]; then
for skill in semo-system/meta/skills/*/; do
skill_name=$(basename "$skill")
ln -sf "../../semo-system/meta/skills/$skill_name" ".claude/skills/$skill_name"
done
fi
# 4. CLAUDE.md 재생성 (스킬 목록 업데이트)
# → semo-cli regenerateClaudeMd 호출 또는 수동 업데이트
동기화 완료 메시지
[SEMO] - [META] Skill: meta-workflow 완료
✅ 버저닝: {package} {old} → {new}
✅ 원격 배포: git push 완료
✅ Slack 알림: 전송 완료
✅ 로컬 동기화: 심볼릭 링크 재생성 완료
Related Skills
version-manager- 버저닝 자동화notify-slack- Slack 알림skill-creator- 스킬 생성package-validator- 패키지 검증package-sync- 패키지 동기화