jun-claude-code 0.2.5 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jun-claude-code",
3
- "version": "0.2.5",
3
+ "version": "0.3.1",
4
4
  "description": "Claude Code configuration template - copy .claude settings to your project",
5
5
  "main": "dist/index.js",
6
6
  "bin": "dist/cli.js",
@@ -28,19 +28,29 @@ color: blue
28
28
  요청을 분석하여 코드 탐색 전략을 결정합니다.
29
29
 
30
30
  - 요청의 핵심 키워드와 도메인 영역을 식별
31
- - 탐색 대상: Skill/Agent 문서 → 소스 코드 순서로 진행
31
+ - 탐색 대상: context 문서 → Skill/Agent 문서 → 소스 코드 순서로 진행
32
32
  - 탐색 범위를 판단하여 효율적으로 수집
33
33
 
34
- ### Step 2: Skill Agent 탐색
34
+ ### Step 2: .claude/context/ 사전 확인
35
+
36
+ 프로젝트 맥락을 먼저 파악합니다.
37
+
38
+ ```
39
+ - .claude/context/ 하위 INDEX.md들을 읽어 프로젝트 전체 맥락 파악
40
+ - 요청과 관련된 상세 문서(codebase/, business/, architecture/)가 있으면 확인
41
+ - 이미 문서화된 내용은 소스 코드 탐색 범위에서 제외하여 효율화
42
+ ```
43
+
44
+ ### Step 3: Skill 및 Agent 탐색
35
45
 
36
46
  ```
37
47
  - .claude/skills/ 에서 작업에 필요한 Skill 확인
38
48
  - .claude/agents/ 에서 관련 Agent 확인
39
49
  ```
40
50
 
41
- ### Step 3: 소스 코드 DEEP 탐색
51
+ ### Step 4: 소스 코드 DEEP 탐색
42
52
 
43
- 실제 소스 코드를 직접 탐색하여 패턴과 구현 방식을 파악합니다.
53
+ context 문서에서 파악한 맥락을 기반으로 정확하게 탐색합니다.
44
54
 
45
55
  ```
46
56
  - 유사한 기존 구현 찾기 (Grep, Glob 활용)
@@ -51,7 +61,7 @@ color: blue
51
61
  - import/export 관계 추적
52
62
  ```
53
63
 
54
- ### Step 4: Context 요약 출력
64
+ ### Step 5: Context 요약 출력
55
65
 
56
66
  수집한 모든 정보를 output_format에 맞춰 정리합니다.
57
67
 
@@ -68,6 +78,10 @@ color: blue
68
78
  - **탐색 범위**: (어떤 영역을 탐색했는지)
69
79
  - **판단 근거**: (왜 이 범위를 탐색했는지)
70
80
 
81
+ ## 0. 프로젝트 맥락 (context 문서 기반)
82
+ - **참조한 문서**: (확인한 .claude/context/ 문서 목록)
83
+ - **핵심 맥락**: (프로젝트 배경, 관련 도메인/모듈 정보)
84
+
71
85
  ## 1. 소스 코드 탐색 결과
72
86
  | 파일 | 확인 내용 | 핵심 발견 |
73
87
  |------|----------|----------|
@@ -97,7 +111,7 @@ color: blue
97
111
 
98
112
  ## 제약사항
99
113
 
100
- - `.claude/context/` 문서는 탐색하지 않습니다. 프로젝트 배경 정보가 필요하면 project-context-collector Agent를 안내합니다.
101
- - 실제 소스 코드와 `.claude/skills/`, `.claude/agents/` 문서만 탐색합니다.
114
+ - `.claude/context/` 문서를 사전 참조하여 프로젝트 맥락을 파악합니다.
115
+ - 상세한 프로젝트 배경 정보가 필요하면 project-context-collector Agent를 추가로 안내합니다.
102
116
 
103
117
  </constraints>
@@ -22,7 +22,9 @@ _hook_dedup_check() {
22
22
  if [ "$self_dir" = "$global_dir" ]; then
23
23
  # project-level 동일 hook이 존재하면 → global은 skip
24
24
  local project_hook
25
- project_hook="$(pwd)/.claude/hooks/$hook_name"
25
+ local project_root
26
+ project_root="$(git rev-parse --show-toplevel 2>/dev/null)"
27
+ project_hook="${project_root:-.}/.claude/hooks/$hook_name"
26
28
  if [ -f "$project_hook" ]; then
27
29
  return 1 # global yields to project → skip
28
30
  fi
@@ -7,7 +7,8 @@
7
7
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
8
  CLAUDE_DIR="$(dirname "$SCRIPT_DIR")"
9
9
  GLOBAL_CLAUDE_DIR="$HOME/.claude"
10
- PROJECT_CLAUDE_DIR="$(pwd)/.claude"
10
+ PROJECT_ROOT="$(git rev-parse --show-toplevel 2>/dev/null)"
11
+ PROJECT_CLAUDE_DIR="${PROJECT_ROOT:-.}/.claude"
11
12
 
12
13
  # Dedup: project 우선, global은 project 버전 존재 시 양보
13
14
  if [ -f "$SCRIPT_DIR/_dedup.sh" ]; then
@@ -7,7 +7,8 @@
7
7
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
8
  CLAUDE_DIR="$(dirname "$SCRIPT_DIR")"
9
9
  GLOBAL_CLAUDE_DIR="$HOME/.claude"
10
- PROJECT_CLAUDE_DIR="$(pwd)/.claude"
10
+ PROJECT_ROOT="$(git rev-parse --show-toplevel 2>/dev/null)"
11
+ PROJECT_CLAUDE_DIR="${PROJECT_ROOT:-.}/.claude"
11
12
 
12
13
  # Dedup: project 우선, global은 project 버전 존재 시 양보
13
14
  if [ -f "$SCRIPT_DIR/_dedup.sh" ]; then
@@ -7,7 +7,8 @@
7
7
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
8
  CLAUDE_DIR="$(dirname "$SCRIPT_DIR")"
9
9
  GLOBAL_CLAUDE_DIR="$HOME/.claude"
10
- PROJECT_CLAUDE_DIR="$(pwd)/.claude"
10
+ PROJECT_ROOT="$(git rev-parse --show-toplevel 2>/dev/null)"
11
+ PROJECT_CLAUDE_DIR="${PROJECT_ROOT:-.}/.claude"
11
12
 
12
13
  # Dedup: project 우선, global은 project 버전 존재 시 양보
13
14
  if [ -f "$SCRIPT_DIR/_dedup.sh" ]; then
@@ -41,9 +42,11 @@ Plan 파일의 Context 섹션에 위 내용을 명시하여 작업 목적이 희
41
42
  ### Step 1.2: Context 수집
42
43
 
43
44
  - [ ] EnterPlanMode 진입 (복잡한 작업인 경우)
44
- - [ ] 관련 Context 문서 확인 (.claude/context/)
45
+ - [ ] **병렬 Context 수집 (정확도 향상)**:
46
+ - `project-context-collector` → .claude/context/ 문서에서 프로젝트 배경 수집
47
+ - `context-collector` → 소스 코드 + .claude/context/ 에서 패턴/구현 방식 수집
48
+ - 두 Agent를 병렬로 호출하여 작업 속도와 정확도를 높인다
45
49
  - [ ] 필요한 Skill 활성화 (.claude/skills/)
46
- - [ ] 기존 코드 탐색 (Explore Agent 또는 직접 탐색)
47
50
 
48
51
  ### Step 1.3: TaskList 생성
49
52
 
@@ -8,7 +8,7 @@ color: green
8
8
 
9
9
  # Context Generator Agent
10
10
 
11
- PR의 변경 내용을 분석하여 `.claude/context/` 하위에 codebase/business 문서를 자동 생성하고 업데이트합니다.
11
+ PR의 변경 내용을 분석하여 `.claude/context/` 하위에 codebase/business/architecture 문서를 자동 생성하고 업데이트합니다.
12
12
 
13
13
  ## 실행 조건
14
14
 
@@ -17,7 +17,14 @@ PR의 변경 내용을 분석하여 `.claude/context/` 하위에 codebase/busine
17
17
 
18
18
  ## 프로세스
19
19
 
20
- ### 1. Diff 수집
20
+ ### 1. PR 정보 분석
21
+
22
+ PR title/body에서 변경의 의도와 기대효과를 파악합니다.
23
+ - PR 제목에서 핵심 변경 의도 추출
24
+ - PR 본문에서 배경, 기대효과, 관련 이슈 파악
25
+ - 이후 단계에서 context 문서 작성 시 반영
26
+
27
+ ### 2. Diff 수집
21
28
 
22
29
  ```bash
23
30
  git diff HEAD~1 --name-only
@@ -25,34 +32,52 @@ git diff HEAD~1 --name-only
25
32
 
26
33
  변경된 파일 목록을 수집합니다.
27
34
 
28
- ### 2. 모듈 매핑
35
+ ### 3. 모듈 매핑
29
36
 
30
- 변경된 파일을 모듈 단위로 그룹화합니다.
37
+ 변경된 파일을 모듈/토픽 단위로 그룹화합니다.
31
38
  - `src/cli.ts` → `cli` 모듈
32
39
  - `src/copy.ts` → `copy-logic` 모듈
33
40
  - `.claude/agents/*.md` → `agents` 모듈
41
+ - `Dockerfile` → `deployment` 토픽
42
+ - `.github/workflows/*.yml` → `ci-cd` 토픽
34
43
 
35
- ### 3. 기존 Context 확인
44
+ ### 4. 기존 Context 확인
36
45
 
37
- `.claude/context/codebase/`와 `.claude/context/business/`에서 기존 문서를 확인합니다.
46
+ `.claude/context/codebase/`, `.claude/context/business/`, `.claude/context/architecture/`에서 기존 문서를 확인합니다.
38
47
  - 기존 문서가 있으면 → 업데이트
39
48
  - 기존 문서가 없으면 → 새로 생성
40
49
 
41
- ### 4. Codebase Context 생성
50
+ ### 5. Codebase Context 생성
42
51
 
43
52
  [ContextGeneration Skill](../../skills/ContextGeneration/SKILL.md)의 Codebase 규칙에 따라:
44
- - 모듈별 `.md` 파일 생성/업데이트
53
+ - PR 의도를 반영하여 모듈별 `.md` 파일 생성/업데이트
45
54
  - 파일 경로와 함수명만 참조 (원본 코드 포함 금지)
46
55
  - `codebase/INDEX.md` 업데이트
47
56
 
48
- ### 5. Business Context 생성
57
+ ### 6. Business Context 생성
49
58
 
50
59
  [ContextGeneration Skill](../../skills/ContextGeneration/SKILL.md)의 Business 규칙에 따라:
51
60
  - 기술 용어를 비즈니스 관점으로 변환
61
+ - PR 기대효과를 "사용자 관점"에 반영
52
62
  - 도메인별 `.md` 파일 생성/업데이트
53
63
  - `business/INDEX.md` 업데이트
54
64
 
55
- ### 6. 반영
65
+ ### 7. Architecture Context 생성
66
+
67
+ 인프라/아키텍처 변경이 있는 경우에만 생성합니다.
68
+
69
+ **생성 조건**:
70
+ - `Dockerfile`, `docker-compose.yml` → `deployment.md`
71
+ - `.github/workflows/*.yml` → `ci-cd.md`
72
+ - 폴더 구조 대규모 변경 → `layer-structure.md`
73
+ - DB migration, schema 파일 → `database-schema.md`
74
+ - nginx, terraform, k8s 설정 → 해당 토픽
75
+
76
+ [ContextGeneration Skill](../../skills/ContextGeneration/SKILL.md)의 Architecture 규칙에 따라:
77
+ - 토픽별 `.md` 파일 생성/업데이트
78
+ - `architecture/INDEX.md` 업데이트
79
+
80
+ ### 8. 반영
56
81
 
57
82
  - 생성된 context 문서는 `{브랜치명}-generated-context` 브랜치에 push됩니다.
58
83
  - 원본 PR 브랜치로 별도 PR이 생성되어 선택적으로 머지할 수 있습니다.
@@ -13,12 +13,15 @@ PR 변경 내용을 분석하여 `.claude/context/` 하위에 codebase/business
13
13
 
14
14
  ```
15
15
  .claude/context/
16
- ├── codebase/
17
- │ ├── INDEX.md # 모듈 목록 + 경로
18
- │ └── <module-name>.md # 모듈별 구현 참조
19
- └── business/
20
- ├── INDEX.md # 프로젝트 개요 + 도메인 목록
21
- └── <domain-area>.md # 비즈니스 레벨 요약
16
+ ├── codebase/ # 모듈별 구현 참조
17
+ │ ├── INDEX.md
18
+ │ └── <module-name>.md
19
+ ├── business/ # 비즈니스 레벨 요약
20
+ ├── INDEX.md
21
+ └── <domain-area>.md
22
+ └── architecture/ # 인프라 + 코드 아키텍처
23
+ ├── INDEX.md
24
+ └── <topic>.md
22
25
  ```
23
26
 
24
27
  <rules>
@@ -106,6 +109,62 @@ keywords: [비즈니스, 키워드]
106
109
  - `mergeSettingsJson()` -> "기존 설정을 보존하면서 새 설정 적용"
107
110
  - `copyClaudeFiles()` -> "템플릿 설정을 사용자 환경에 배포"
108
111
 
112
+ ## Architecture Context 규칙
113
+
114
+ ### 파일명
115
+ - **kebab-case** 사용 (예: `deployment.md`, `database-schema.md`, `layer-structure.md`)
116
+ - 아키텍처 토픽 단위로 분리
117
+
118
+ ### 분류
119
+
120
+ | 분류 | 대상 | 파일명 예시 |
121
+ |------|------|-----------|
122
+ | 인프라 | 서버 배포, CI/CD, 클라우드 구성, 모니터링 | `deployment.md`, `ci-cd.md` |
123
+ | 코드 아키텍처 | 레이어 구조, 디자인 패턴, 모듈 관계 | `layer-structure.md`, `module-dependencies.md` |
124
+ | 데이터 | DB 스키마, 캐시 전략, 마이그레이션 | `database-schema.md`, `cache-strategy.md` |
125
+
126
+ ### 필수 섹션
127
+
128
+ ```markdown
129
+ ---
130
+ name: <토픽명>
131
+ description: <한 줄 설명>
132
+ keywords: [관련, 키워드]
133
+ ---
134
+
135
+ # <토픽명>
136
+
137
+ <2-3문장 개요>
138
+
139
+ ## 구성 요소
140
+
141
+ | 요소 | 역할 | 설정 파일/경로 |
142
+ |------|------|--------------|
143
+ | ... | ... | ... |
144
+
145
+ ## 다이어그램 (선택)
146
+
147
+ <텍스트 기반 다이어그램>
148
+
149
+ ## 관련 Context
150
+
151
+ - [<모듈명>](../codebase/<module>.md)
152
+ - [<도메인명>](../business/<domain>.md)
153
+ ```
154
+
155
+ ## PR 내용 활용 규칙
156
+
157
+ Context 생성 시 PR 정보를 다음과 같이 활용합니다:
158
+
159
+ | PR 정보 | 활용 방법 |
160
+ |---------|----------|
161
+ | PR 제목 | 변경의 핵심 의도 파악 |
162
+ | PR 본문 | 기대효과, 배경, 관련 이슈 파악 |
163
+ | Diff | 실제 코드 변경 내용 분석 |
164
+
165
+ - PR 의도를 반영하여 context 문서의 "개요"와 "핵심 흐름"을 작성한다
166
+ - PR 본문의 기대효과를 Business Context의 "사용자 관점"에 반영한다
167
+
109
168
  </rules>
110
169
 
111
170
  ## INDEX.md 작성 규칙
@@ -148,6 +207,23 @@ description: 비즈니스 도메인 참조 목록
148
207
  | 설정 관리 | 사용자 설정 배포 및 관리 | [configuration-management.md](./configuration-management.md) |
149
208
  ```
150
209
 
210
+ ### architecture/INDEX.md
211
+
212
+ ```markdown
213
+ ---
214
+ name: Architecture Index
215
+ description: 인프라/코드 아키텍처 참조 목록
216
+ ---
217
+
218
+ # Architecture Context Index
219
+
220
+ ## 토픽 목록
221
+
222
+ | 토픽 | 분류 | 설명 | 문서 |
223
+ |------|------|------|------|
224
+ | 배포 구성 | 인프라 | 서버 배포 방식 | [deployment.md](./deployment.md) |
225
+ ```
226
+
151
227
  ## 증분 업데이트 원칙
152
228
 
153
229
  <checklist>
@@ -42,6 +42,11 @@ jobs:
42
42
  show_full_output: true
43
43
  claude_args: '--model opus --allowedTools "Bash(git:*),Bash(ls:*),Bash(mkdir:*),Read,Write,Edit,Glob,Grep"'
44
44
  prompt: |
45
+ # PR 정보
46
+ **제목**: ${{ github.event.pull_request.title }}
47
+ **본문**:
48
+ ${{ github.event.pull_request.body }}
49
+
45
50
  # 에이전트 정의
46
51
  ${{ steps.read-skills.outputs.agent_def }}
47
52
 
@@ -49,13 +54,15 @@ jobs:
49
54
  ${{ steps.read-skills.outputs.skill_guide }}
50
55
 
51
56
  # 작업 지시
52
- PR diff를 분석하고 .claude/context/ 아래에 컨텍스트 문서를 생성/업데이트하세요.
57
+ PR 정보와 diff를 분석하고 .claude/context/ 아래에 컨텍스트 문서를 생성/업데이트하세요.
53
58
 
54
59
  단계:
55
- 1. `git diff HEAD~1 --name-only`을 실행하여 변경된 파일 목록 가져오기
56
- 2. 변경된 모듈에 대해 .claude/context/codebase/<module>.md 생성 또는 업데이트
57
- 3. 영향을 받는 비즈니스 도메인에 대해 .claude/context/business/<domain>.md 생성 또는 업데이트
58
- 4. 디렉토리의 INDEX.md 파일 업데이트
60
+ 1. PR 제목과 본문에서 변경 의도와 기대효과를 파악
61
+ 2. `git diff HEAD~1 --name-only`로 변경된 파일 목록 가져오기
62
+ 3. 변경된 코드의 기능 단위별로 .claude/context/codebase/<module>.md 생성/업데이트
63
+ 4. 영향받는 비즈니스 도메인에 대해 .claude/context/business/<domain>.md 생성/업데이트
64
+ 5. 인프라/아키텍처 변경이 있으면 .claude/context/architecture/<topic>.md 생성/업데이트
65
+ 6. 각 디렉토리의 INDEX.md 파일 업데이트
59
66
 
60
67
  중요사항:
61
68
  - 컨텍스트 문서에 소스 코드를 포함하지 말고, 파일 경로와 함수 이름만 포함하세요