Back to list
semicolon-devteam

semo-architecture-checker

by semicolon-devteam

SEMO (Semicolon Orchestrate) - AI Agent Orchestration Framework Monorepo

1🍴 0📅 Jan 22, 2026

SKILL.md


name: semo-architecture-checker description: | .claude 디렉토리 구조 검증 및 자동 수정. Use when: (1) SEMO 업데이트 후 무결성 체크, (2) 심링크 깨짐 의심 시, (3) version-updater에서 자동 호출, (4) 새 세션 시작 시. tools: [Bash, Read]

🔔 시스템 메시지: 이 Skill이 호출되면 [SEMO] Skill: semo-architecture-checker 호출 시스템 메시지를 첫 줄에 출력하세요.

semo-architecture-checker Skill

.claude 디렉토리 구조 검증 및 자동 수정

호출 모드

모드동작사용 상황
(기본)검증 + 자동 수정수동 호출, 업데이트 후
--check-only검증만 수행, 수정 안함version-updater Phase 2에서 호출

--check-only 모드

검증만 수행하고 자동 수정하지 않습니다:

출력 포맷 (version-updater 파싱용):

[SEMO] Skill: semo-architecture-checker --check-only 실행

## 구조 검증 결과

| 항목 | 상태 | 비고 |
|------|------|------|
| semo-core | ✅ | 존재 |
| semo-{pkg} | ✅ | semo-pm |
| CLAUDE.md | ✅ | 심링크 유효 |
| _shared | ✅ | semo-core/_shared |
| agents/ | ⚠️ | 깨진 심링크 2개 |
| skills/ | ✅ | 8 symlinks |
| commands/SEMO | ❌ | .merged 마커 누락 |

**결과**: ⚠️ 문제 발견 (자동 수정 필요)

결과 상태:

  • ✅ 구조 정상 - 모든 검증 통과
  • ⚠️ 문제 발견 - 수정 필요 (version-updater가 기본 모드로 재호출 결정)

Purpose

SEMO가 설치된 .claude 디렉토리의 구조를 검증하고, 문제 발견 시 자동으로 수정합니다.

Trigger

  • /SEMO:health 명령어
  • version-updater 업데이트 완료 후 자동 호출
  • "심링크 확인", ".claude 확인", "SEMO 상태" 키워드

Workflow

1. 패키지 감지

# 설치된 모든 패키지 감지
INSTALLED_PKGS=()
for p in po next qa meta pm backend infra design; do
    [ -d ".claude/semo-$p" ] && INSTALLED_PKGS+=("$p")
done

# 첫 번째 패키지를 기본으로 사용
PKG="${INSTALLED_PKGS[0]:-}"

2. 검증 항목

항목검증수정
semo-core디렉토리 존재-
semo-{pkg}디렉토리 존재-
CLAUDE.md심링크 유효성재생성
_shared심링크 유효성 (semo-core/_shared)재생성
agents/.merged 마커 + 심링크 + 누락 감지재생성 + 추가
skills/.merged 마커 + 심링크 + 누락 감지재생성 + 추가
commands/SEMO/.merged 마커 + 심링크 + 누락 감지재생성 + 추가

3. 검증 실행

# 깨진 심링크 탐지
find .claude -type l ! -exec test -e {} \; -print 2>/dev/null

# .merged 마커 확인
[ -f ".claude/agents/.merged" ] && echo "agents: OK" || echo "agents: MISSING"
[ -f ".claude/skills/.merged" ] && echo "skills: OK" || echo "skills: MISSING"
[ -f ".claude/commands/SEMO/.merged" ] && echo "commands/SEMO: OK" || echo "commands/SEMO: MISSING"

# _shared 심링크 확인 (semo-core/_shared 참조용)
if [ -L ".claude/_shared" ]; then
  target=$(readlink ".claude/_shared")
  [ "$target" = "semo-core/_shared" ] && echo "_shared: OK" || echo "_shared: WRONG_TARGET ($target)"
elif [ -d ".claude/_shared" ]; then
  echo "_shared: DIRECTORY (should be symlink)"
else
  echo "_shared: MISSING"
fi

# 🔴 누락 심링크 감지 (NEW - Issue #7)
# semo-core와 semo-{pkg}의 컴포넌트가 .claude/{dir}에 모두 심링크되어 있는지 확인
for skill in .claude/semo-core/skills/*/; do
  name=$(basename "$skill")
  [ ! -e ".claude/skills/$name" ] && echo "skills: MISSING $name"
done

4. 자동 수정

문제 발견 시 install-sax.sh와 동일한 로직으로 수정:

# CLAUDE.md 수정
rm -f ".claude/CLAUDE.md"
ln -s "semo-$PKG/CLAUDE.md" ".claude/CLAUDE.md"

# _shared 심링크 수정
rm -rf ".claude/_shared"
ln -s "semo-core/_shared" ".claude/_shared"

# 병합 디렉토리 수정
# → references/fix-logic.md 참조

5. 결과 보고

## .claude 디렉토리 검증 결과

| 항목 | 상태 | 비고 |
|------|------|------|
| 패키지 | ✅ | semo-pm |
| CLAUDE.md | ✅ | semo-pm/CLAUDE.md |
| _shared | ✅ | semo-core/_shared |
| agents/ | ⚠️ → ✅ | 심링크 2개 재생성 |
| skills/ | ✅ | 8 symlinks |
| commands/SEMO | ❌ → ✅ | 디렉토리 생성 + 4 symlinks |

**결과**: 2개 항목 자동 수정됨

🔴 세션 재시작 권장

심링크 재설정 후에는 세션 재시작을 권장합니다.

재시작이 필요한 경우

상황재시작 필요이유
심링크 디렉토리 → 실제 디렉토리 변환✅ 권장Claude Code가 캐시한 경로 무효화
새 skill/agent 심링크 추가✅ 권장새 컴포넌트 인식 필요
깨진 심링크 수정⚠️ 선택기존 캐시에 따라 다름
.merged 마커만 추가❌ 불필요경로 변경 없음

결과 메시지에 안내 포함

심링크가 재설정된 경우 아래 안내를 출력:

⚠️ **세션 재시작 권장**

심링크 구조가 변경되었습니다. Claude Code가 변경된 경로를 인식하도록
**새 세션을 시작**하는 것을 권장합니다.

재시작 방법: Claude Code 창을 닫고 다시 열기

판단 기준

# 심링크 재설정 여부 감지
SYMLINK_CHANGED=false

# 심링크 디렉토리가 실제 디렉토리로 변환된 경우
if [ "$dir_was_symlink" = true ]; then
  SYMLINK_CHANGED=true
fi

# 새 심링크가 생성된 경우
if [ $new_symlinks_count -gt 0 ]; then
  SYMLINK_CHANGED=true
fi

🔴 다중 패키지 감지

하나의 프로젝트에는 하나의 SEMO 패키지만 지원됩니다.

검증 로직

INSTALLED_PKGS=()
for p in po next qa meta pm backend infra design; do
    [ -d ".claude/semo-$p" ] && INSTALLED_PKGS+=("$p")
done

if [ ${#INSTALLED_PKGS[@]} -gt 1 ]; then
    # 다중 패키지 경고 출력
fi

출력 형식

다중 패키지가 감지된 경우:

🔴 **다중 패키지 설치 감지**

설치된 패키지: semo-next, semo-design

⚠️ 하나의 프로젝트에는 하나의 SEMO 패키지만 권장됩니다.
충돌로 인해 일부 기능이 정상 동작하지 않을 수 있습니다.

**해결 방법**: `./install-sax.sh {원하는패키지} --force`

결과 테이블에 포함

다중 패키지 감지 시 검증 결과 테이블 상단에 경고 추가:

항목상태비고
다중 패키지🔴semo-next, semo-design 동시 설치
semo-core존재
.........

🔴 Windows 환경 지원

Windows에서는 심링크 생성에 제약이 있습니다.

자동 폴백 동작

상황동작
심링크 생성 성공정상 심링크 사용
심링크 생성 실패파일/디렉토리 복사로 대체

결과 메시지

심링크 실패 시 아래와 같이 표시됩니다:

| 항목 | 상태 | 비고 |
|------|------|------|
| CLAUDE.md | ⚠️ | 복사됨 (Windows) |
| agents/ | ⚠️ | 3개 복사됨 |

⚠️ **Windows 환경 알림**

일부 심링크가 파일 복사로 대체되었습니다.
원본 파일 수정 시 수동으로 다시 설치해야 합니다.

심링크 사용을 원할 경우

  1. 개발자 모드 활성화: Windows 설정 → 개발자용 → 개발자 모드 ON
  2. 또는 관리자 권한 실행: 터미널을 관리자 권한으로 실행
  3. 재설치: ./install-sax.sh {패키지} --force

복사 모드의 제약

항목심링크복사
원본 수정 시 자동 반영
디스크 공간절약추가 사용
SEMO 업데이트 후자동 반영재설치 필요

References

Score

Total Score

50/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon