π νΈμΆ μ λ©μμ§: μ΄ Skillμ΄ νΈμΆλλ©΄
[SEMO] Skill: health-checkμμ€ν λ©μμ§λ₯Ό 첫 μ€μ μΆλ ₯νμΈμ.
health-check Skill
κ°λ° νκ²½ λ° μΈμ¦ μν μλ κ²μ¦ (ν΅ν© μ€ν¬)
π΄ νλ«νΌ μλ κ°μ§
μ΄ μ€ν¬μ νλ«νΌμ μλ κ°μ§νμ¬ ν΄λΉ νκ²½μ λ§λ λꡬλ₯Ό κ²μ¦ν©λλ€.
νλ«νΌ κ°μ§ μμ
# 1. SEMO λ©νλ°μ΄ν°μμ position νμΈ
POSITION=$(cat ~/.claude.json 2>/dev/null | jq -r '.SEMO.position // "unknown"')
# 2. νλ‘μ νΈ νμΌλ‘ Runtime κ°μ§
detect_runtime() {
if [ -f "next.config.ts" ] || [ -f "next.config.js" ] || [ -f "next.config.mjs" ]; then
echo "nextjs"
elif [ -f "build.gradle.kts" ] || [ -f "build.gradle" ]; then
echo "spring"
elif [ -f "docker-compose.yml" ] || [ -f "docker-compose.yaml" ]; then
echo "infra"
elif [ -f "go.mod" ]; then
echo "go"
else
echo "generic"
fi
}
νλ«νΌλ³ λꡬ λ§€ν
| νλ«νΌ | Position | νμ λꡬ | μ ν λꡬ | |--------|----------|-----------|----------| | nextjs | developer | gh, git, node, pnpm, supabase | postgresql | | spring | backend | gh, git, node, pnpm, supabase | postgresql | | infra | infra | gh, git, docker | kubectl, terraform, nginx | | design | designer | gh, git, node, pnpm, chrome | figma | | generic | - | gh, git, node, pnpm | - |
νΈλ¦¬κ±°
/SEMO:health-checkλͺ λ Ήμ΄- "νκ²½ νμΈ", "λꡬ νμΈ", "μ€μΉ νμΈ" ν€μλ
- onboarding-master Agentμμ μλ νΈμΆ
- orchestratorκ° μ 무 μμ μ μλ μ€ν (30μΌ κ²½κ³Ό μ)
κ²μ¦ νλͺ© μμ½
νμ λꡬ
| λꡬ | λͺ
λ Ήμ΄ | μ΅μ λ²μ |
|------|--------|----------|
| GitHub CLI | gh --version | - |
| Git | git --version | - |
| Node.js | node --version | v18.0.0 |
| pnpm | pnpm --version | - |
| Supabase CLI | supabase --version | - |
μΈμ¦ λ° κΆν
| νλͺ© | λͺ
λ Ήμ΄ |
|------|--------|
| GitHub μΈμ¦ | gh auth status |
| Organization | gh api user/orgs --jq '.[].login' \| grep semicolon-devteam |
| docs μ κ·Ό | gh api repos/semicolon-devteam/docs/contents/README.md |
| core-supabase | gh api repos/semicolon-devteam/core-supabase/contents/README.md |
μΈλΆ μλΉμ€
| νλͺ© | κ²μ¦ λ°©λ² |
|------|----------|
| API λ¬Έμ μ¬μ΄νΈ | curl HTTP 200 μ²΄ν¬ (https://core-interface-ashen.vercel.app) |
SEMO λ©νλ°μ΄ν°
- νμΌ:
~/.claude.json - νμ νλ:
SEMO.role,SEMO.position,SEMO.boarded,SEMO.boardedAt,SEMO.healthCheckPassed,SEMO.lastHealthCheck - κ²μ¦ μ€ν¬λ¦½νΈ:
# SEMO νλ μ‘΄μ¬ νμΈ
cat ~/.claude.json | jq -e '.SEMO' >/dev/null 2>&1 || echo "β SEMO λ©νλ°μ΄ν° μμ"
# νμ νλ κ²μ¦
REQUIRED_FIELDS=("role" "position" "boarded" "boardedAt" "healthCheckPassed" "lastHealthCheck")
for field in "${REQUIRED_FIELDS[@]}"; do
cat ~/.claude.json | jq -e ".SEMO.$field" >/dev/null 2>&1 || echo "β νμ νλ λλ½: $field"
done
# position κ° κ²μ¦ (developer)
POSITION=$(cat ~/.claude.json | jq -r '.SEMO.position')
VALID_POSITIONS=("developer" "po" "designer" "qa" "pm" "backend" "infra" "msa")
if [[ ! " ${VALID_POSITIONS[@]} " =~ " ${POSITION} " ]]; then
echo "β μλͺ»λ position κ°: $POSITION"
fi
κ²μ¦ μ±κ³΅ μ:
β
SEMO λ©νλ°μ΄ν°: μ μ
- role: fulltime
- position: developer
- boarded: true
- boardedAt: 2025-12-09T10:30:00Z
- healthCheckPassed: true
- lastHealthCheck: 2025-12-09T10:30:00Z
κ²μ¦ μ€ν¨ μ:
β SEMO λ©νλ°μ΄ν°: μ€λ₯ λ°κ²¬
**λ¬Έμ **:
- β νμ νλ λλ½: lastHealthCheck
- β μλͺ»λ position κ°: dev (μ¬λ°λ₯Έ κ°: developer)
**ν΄κ²°**:
μ¨λ³΄λ© νλ‘μΈμ€λ₯Ό μλ£νκ±°λ `/SEMO:onboarding`μ μ€ννμΈμ.
μ°Έμ‘°: SEMO Core Metadata Schema
SEMO ν¨ν€μ§ μ€μΉ μν
| νλͺ© | κ²μ¦ λ°©λ² |
|------|----------|
| ν¨ν€μ§ λλ ν 리 | .claude/semo-core/, .claude/semo-next/ μ‘΄μ¬ νμΈ |
| CLAUDE.md μ¬λ§ν¬ | .claude/CLAUDE.md β semo-next/CLAUDE.md |
| agents μ¬λ§ν¬ | .claude/agents β semo-next/agents |
| skills μ¬λ§ν¬ | .claude/skills β semo-next/skills |
| commands μ¬λ§ν¬ | .claude/commands/SEMO β ../semo-next/commands |
κΈλ‘λ² MCP μλ² μ€μ μν (~/.claude.json)
| νλͺ© | νμ | μ€λͺ
|
|------|------|------|
| mcpServers νλ | β
| ~/.claude.jsonμ mcpServers μ‘΄μ¬ |
| context7 | β
| λΌμ΄λΈλ¬λ¦¬ λ¬Έμ μ‘°ν |
| sequential-thinking | β
| ꡬ쑰μ μ¬κ³ λΆμ |
μ¬κ²μ¦ μ μ±
- μ¨λ³΄λ© μ: νμ μ€ν
- μ 무 μμ μ: 30μΌ κ²½κ³Ό μ μλ μ€ν
- μλ μμ² μ:
/SEMO:health-checkλͺ λ Ήμ΄
Related Skills
task-progress- μμ μ§ν μΆμ - Onboarding Agent - μ¨λ³΄λ© νλ‘μΈμ€
References
For detailed documentation, see:
- Check Items - λꡬ, μΈμ¦, λ©νλ°μ΄ν° κ²μ¦ μμΈ
- Output Format - μ±κ³΅/μ€ν¨ μΆλ ₯, ν΄κ²° λ°©λ²