74 lines
2.4 KiB
Markdown
74 lines
2.4 KiB
Markdown
|
|
---
|
||
|
|
name: sync-team-workflow
|
||
|
|
description: 팀 글로벌 워크플로우를 현재 프로젝트에 동기화합니다
|
||
|
|
allowed-tools: "Bash, Read, Write, Edit, Glob, Grep"
|
||
|
|
---
|
||
|
|
|
||
|
|
팀 글로벌 워크플로우의 최신 버전을 현재 프로젝트에 적용합니다.
|
||
|
|
|
||
|
|
## 수행 절차
|
||
|
|
|
||
|
|
### 1. 글로벌 버전 조회
|
||
|
|
Gitea API로 template-common 리포의 workflow-version.json 조회:
|
||
|
|
```bash
|
||
|
|
GITEA_URL=$(python3 -c "import json; print(json.load(open('.claude/workflow-version.json')).get('gitea_url', 'https://gitea.gc-si.dev'))" 2>/dev/null || echo "https://gitea.gc-si.dev")
|
||
|
|
|
||
|
|
curl -sf "${GITEA_URL}/api/v1/repos/gc/template-common/raw/workflow-version.json"
|
||
|
|
```
|
||
|
|
|
||
|
|
### 2. 버전 비교
|
||
|
|
로컬 `.claude/workflow-version.json`과 비교:
|
||
|
|
- 버전 일치 → "최신 버전입니다" 안내 후 종료
|
||
|
|
- 버전 불일치 → 미적용 변경 항목 추출하여 표시
|
||
|
|
|
||
|
|
### 3. 프로젝트 타입 감지
|
||
|
|
자동 감지 순서:
|
||
|
|
1. `.claude/workflow-version.json`의 `project_type` 필드 확인
|
||
|
|
2. 없으면: `pom.xml` → java-maven, `build.gradle` → java-gradle, `package.json` → react-ts
|
||
|
|
|
||
|
|
### 4. 파일 다운로드 및 적용
|
||
|
|
Gitea API로 해당 타입 + common 템플릿 파일 다운로드:
|
||
|
|
|
||
|
|
#### 4-1. 규칙 파일 (덮어쓰기)
|
||
|
|
팀 규칙은 로컬 수정 불가 — 항상 글로벌 최신으로 교체:
|
||
|
|
```
|
||
|
|
.claude/rules/team-policy.md
|
||
|
|
.claude/rules/git-workflow.md
|
||
|
|
.claude/rules/code-style.md (타입별)
|
||
|
|
.claude/rules/naming.md (타입별)
|
||
|
|
.claude/rules/testing.md (타입별)
|
||
|
|
```
|
||
|
|
|
||
|
|
#### 4-2. settings.json (부분 갱신)
|
||
|
|
- `deny` 목록: 글로벌 최신으로 교체
|
||
|
|
- `allow` 목록: 기존 사용자 커스텀 유지 + 글로벌 기본값 병합
|
||
|
|
- `hooks`: 글로벌 최신으로 교체
|
||
|
|
|
||
|
|
#### 4-3. 스킬 파일 (덮어쓰기)
|
||
|
|
```
|
||
|
|
.claude/skills/create-mr/SKILL.md
|
||
|
|
.claude/skills/fix-issue/SKILL.md
|
||
|
|
.claude/skills/sync-team-workflow/SKILL.md
|
||
|
|
```
|
||
|
|
|
||
|
|
#### 4-4. Git Hooks (덮어쓰기 + 실행 권한)
|
||
|
|
```bash
|
||
|
|
chmod +x .githooks/*
|
||
|
|
```
|
||
|
|
|
||
|
|
### 5. 로컬 버전 업데이트
|
||
|
|
`.claude/workflow-version.json` 갱신:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"applied_global_version": "새버전",
|
||
|
|
"applied_date": "오늘날짜",
|
||
|
|
"project_type": "감지된타입"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 6. 변경 보고
|
||
|
|
- `git diff`로 변경 내역 확인
|
||
|
|
- 업데이트된 파일 목록 출력
|
||
|
|
- 변경 로그(글로벌 workflow-version.json의 changes) 표시
|
||
|
|
- 필요한 추가 조치 안내 (빌드 확인, 의존성 업데이트 등)
|