Agent Skills: semo-architecture-checker Skill

|

UncategorizedID: semicolon-devteam/semo/semo-architecture-checker

Install this agent skill to your local

pnpm dlx add-skill https://github.com/semicolon-devteam/semo/tree/HEAD/semo-system/semo-skills/semo-architecture-checker

Skill Files

Browse the full folder contents for semo-architecture-checker.

Download Skill

Loading file tree…

semo-system/semo-skills/semo-architecture-checker/SKILL.md

Skill Metadata

Name
semo-architecture-checker
Description
|

πŸ”” μ‹œμŠ€ν…œ λ©”μ‹œμ§€: 이 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

  • Fix Logic - μžλ™ μˆ˜μ • 둜직 상세