jun-claude-code 0.0.16 → 0.1.0

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.
@@ -1,330 +1,37 @@
1
1
  ---
2
- name: "XML Tags Guide"
3
- description: "Claude Code 프롬프트용 XML 태그 표준 사용 가이드"
4
- keywords: [xml, tags, structuring, prompt-format, XML태그, 프롬프트형식]
5
- estimated_tokens: 2500
2
+ name: PromptStructuring-xml-tags
3
+ description: "XML 태그 표준 목록, 파일 유형별 권장 조합"
4
+ keywords: [xml, tags, role, instructions, rules, constraints]
5
+ estimated_tokens: 400
6
6
  ---
7
7
 
8
- # XML 태그 가이드
8
+ # XML 태그 표준
9
9
 
10
- ## 표준 태그 목록
10
+ ## 태그 목록
11
11
 
12
- | 태그 | 용도 | 대상 파일 |
12
+ | 태그 | 용도 | 사용 위치 |
13
13
  |------|------|----------|
14
- | `<role>` | Agent 정체성/책임 정의 | Agent |
15
- | `<instructions>` | 절차/단계 가이드 | Agent, Skill |
16
- | `<rules>` | 필수 준수 규칙 | 전체 |
17
- | `<constraints>` | 경계/제약 (긍정 표현) | Agent, CLAUDE.md |
18
- | `<output_format>` | 출력 구조 정의 | Agent |
19
- | `<examples>` / `<example type="good/bad">` | 예시 | Skill |
20
- | `<checklist>` | 검증 항목 | 전체 |
21
- | `<workflow>` | 다단계 프로세스 | CLAUDE.md, Hook |
22
- | `<phase name="...">` | 워크플로우 단계 | Hook |
23
- | `<delegation_rules>` | Subagent 위임 규칙 | CLAUDE.md, Hook |
24
- | `<reference>` | 문서 상호참조 | 전체 |
14
+ | `<role>` | Agent/도구의 역할 정의 | Agent 파일 |
15
+ | `<instructions>` | 단계별 지시사항 | Agent, Skill 파일 |
16
+ | `<rules>` | 준수 규칙 | Skill, Hook |
17
+ | `<constraints>` | 제약사항 | Agent, Skill 파일 |
18
+ | `<delegation_rules>` | Subagent 위임 규칙 | Hook, CLAUDE.md |
19
+ | `<phase>` | 워크플로우 단계 | Hook, Skill |
20
+ | `<checklist>` | 체크리스트 항목 | Hook, Skill |
21
+ | `<output_format>` | 출력 형식 정의 | Agent 파일 |
25
22
 
26
- ---
27
-
28
- ## 파일 유형별 권장 태그 조합
29
-
30
- ### Agent 파일
31
-
32
- ```
33
- 필수: <role>, <instructions>, <constraints>, <output_format>
34
- 선택: <rules>, <examples>, <reference>
35
- ```
36
-
37
- Agent는 **정체성 -> 절차 -> 제약 -> 출력** 순서로 구성한다.
38
-
39
- ### Skill 파일
40
-
41
- ```
42
- 필수: <instructions>, <rules>, <checklist>
43
- 선택: <examples>, <constraints>, <reference>
44
- ```
45
-
46
- Skill은 **절차 -> 규칙 -> 예시 -> 검증** 순서로 구성한다.
47
-
48
- ### CLAUDE.md
49
-
50
- ```
51
- 필수: <workflow>, <delegation_rules>, <constraints>
52
- 선택: <rules>, <reference>
53
- ```
23
+ ## 적용 원칙
54
24
 
55
- CLAUDE.md는 **워크플로우 -> 위임 규칙 -> 제약** 순서로 구성한다.
25
+ - 마크다운 제목(`##`)은 시각적 구분에 사용, XML 태그는 의미적 구분에 사용
26
+ - 중첩 가능: `<phase>` 안에 `<checklist>` 배치
27
+ - `name` 속성으로 식별: `<phase name="계획">`
56
28
 
57
- ### Hook 파일
29
+ ## Before/After
58
30
 
59
31
  ```
60
- 필수: <phase name="...">, <checklist>
61
- 선택: <delegation_rules>, <rules>, <reference>
62
- ```
63
-
64
- Hook은 **Phase별 단계 -> 검증 체크리스트** 순서로 구성한다.
65
-
66
- ---
67
-
68
- ## Before/After 예시
69
-
70
- ### 예시 1: Agent - 역할 설명
71
-
72
- **Before** (마크다운만 사용):
73
-
74
- ```markdown
75
- # Code Writer Agent
32
+ Before: ## 역할 정의 (마크다운만)
33
+ After: <role> ... </role> (의미 구분 명확)
76
34
 
77
- ## 역할
78
-
79
- 코드를 작성하는 전문 Agent입니다.
80
-
81
- ## 해야 할 일
82
-
83
- 1. task-planner의 계획에 따라 코드 작성
84
- 2. 프로젝트 규칙 준수
85
- 3. 작은 단위로 구현
86
-
87
- ## 출력
88
-
89
- 작성한 파일 목록과 변경 내용을 정리하여 출력합니다.
35
+ Before: ## 지시사항 / ## 규칙 (구분 모호)
36
+ After: <instructions> ... </instructions> + <rules> ... </rules>
90
37
  ```
91
-
92
- **After** (XML 태그로 의미 구분):
93
-
94
- ```markdown
95
- # Code Writer Agent
96
-
97
- <role>
98
- task-planner의 계획에 따라 실제 코드를 작성하는 전문 Agent
99
- </role>
100
-
101
- <instructions>
102
- 1. task-planner의 계획에 따라 코드 작성
103
- 2. 프로젝트 규칙 준수
104
- 3. 작은 단위로 구현하여 빌드 가능 상태 유지
105
- </instructions>
106
-
107
- <output_format>
108
- ## 작성한 파일
109
-
110
- ### 1. [파일 경로]
111
- - 변경 유형: 신규 생성 / 수정
112
- - 주요 내용: ...
113
- </output_format>
114
- ```
115
-
116
- **개선 포인트**: `<role>`로 정체성, `<instructions>`로 절차, `<output_format>`으로 출력 구조를 명확히 분리
117
-
118
- ---
119
-
120
- ### 예시 2: Skill - 규칙 목록
121
-
122
- **Before** (마크다운만 사용):
123
-
124
- ```markdown
125
- # 코딩 규칙
126
-
127
- ## 규칙
128
-
129
- - 하나의 모듈은 하나의 책임만 가진다
130
- - 순환 의존을 만들지 않는다
131
- - Promise 처리 시 then-catch 패턴을 사용한다
132
-
133
- ## 확인
134
-
135
- - 이 파일의 책임은 하나인가?
136
- - 순환 의존이 없는가?
137
- ```
138
-
139
- **After** (XML 태그로 의미 구분):
140
-
141
- ```markdown
142
- # 코딩 규칙
143
-
144
- <rules>
145
- - 하나의 모듈은 하나의 책임만 가진다 (SRP)
146
- - 모듈 간 의존 방향은 단방향으로 유지한다
147
- - Promise 처리 시 then-catch 패턴을 사용한다
148
- </rules>
149
-
150
- <checklist>
151
- - [ ] 이 파일의 책임은 하나인가?
152
- - [ ] 의존 방향이 단방향인가?
153
- - [ ] then-catch 패턴을 사용했는가?
154
- </checklist>
155
- ```
156
-
157
- **개선 포인트**: `<rules>`와 `<checklist>`를 분리하여 "따라야 할 것"과 "검증할 것"을 명확히 구분
158
-
159
- ---
160
-
161
- ### 예시 3: Hook - Phase 구분
162
-
163
- **Before** (마크다운만 사용):
164
-
165
- ```markdown
166
- # Pre-commit Hook
167
-
168
- ## 단계 1: 계획 확인
169
-
170
- 계획이 있는지 확인합니다. 계획이 없으면 중단합니다.
171
-
172
- ## 단계 2: 코드 검증
173
-
174
- lint와 type check를 실행합니다.
175
-
176
- ## 단계 3: 커밋
177
-
178
- 변경사항을 커밋합니다.
179
- ```
180
-
181
- **After** (XML 태그로 Phase 구분):
182
-
183
- ```markdown
184
- # Pre-commit Hook
185
-
186
- <workflow>
187
-
188
- <phase name="계획 확인">
189
- 계획이 존재하는지 확인한다. 계획이 있을 때만 다음 Phase로 진행한다.
190
- </phase>
191
-
192
- <phase name="코드 검증">
193
- lint와 type check를 실행한다. 모든 검증을 통과할 때만 다음 Phase로 진행한다.
194
- </phase>
195
-
196
- <phase name="커밋">
197
- 변경사항을 커밋한다.
198
- </phase>
199
-
200
- </workflow>
201
- ```
202
-
203
- **개선 포인트**: `<workflow>` > `<phase>` 구조로 단계 간 경계와 진행 조건을 명확히 표현
204
-
205
- ---
206
-
207
- ## `->` 기호 사용 가이드
208
-
209
- `->` 기호는 **방향성이 있는 흐름**을 간결하게 표현할 때 사용한다.
210
-
211
- ### 단계 표현
212
-
213
- 순서가 있는 프로세스를 나타낸다.
214
-
215
- ```
216
- 계획 -> 구현 -> 검증 -> 리뷰
217
- Context 수집 -> TaskList 생성 -> 코드 수정 계획
218
- ```
219
-
220
- ### 변환 표현
221
-
222
- 입력이 출력으로 바뀌는 과정을 나타낸다.
223
-
224
- ```
225
- 부정 표현 -> 긍정 표현
226
- 마크다운 제목 -> XML 태그
227
- "~금지" -> "~전담/전용"
228
- ```
229
-
230
- ### 위임 표현
231
-
232
- 작업이 특정 Agent로 전달됨을 나타낸다.
233
-
234
- ```
235
- 코드 수정 -> code-writer Agent
236
- Git 작업 -> git-manager Agent
237
- 코드베이스 탐색 -> explore Agent
238
- ```
239
-
240
- ### 테이블에서 사용
241
-
242
- 변환 관계를 테이블로 정리할 때도 `->` 를 활용한다.
243
-
244
- ```markdown
245
- | Before | -> | After |
246
- |--------|-----|-------|
247
- | "~금지" | -> | "~전담" |
248
- | `## 역할` | -> | `<role>` |
249
- ```
250
-
251
- ---
252
-
253
- ## 주의사항
254
-
255
- ### XML 태그는 마크다운을 보완한다
256
-
257
- XML 태그는 마크다운을 대체하는 것이 아니라 **의미 계층을 추가**하는 것이다.
258
-
259
- ```markdown
260
- <rules>
261
- ## 네이밍 규칙
262
-
263
- | 대상 | 규칙 | 예시 |
264
- |------|------|------|
265
- | 변수 | camelCase | `userName` |
266
- | 상수 | UPPER_SNAKE | `MAX_COUNT` |
267
-
268
- ## 구조 규칙
269
-
270
- - 한 파일에 한 컴포넌트만 정의한다
271
- - index.ts를 통해 export한다
272
- </rules>
273
- ```
274
-
275
- 태그 내부에서 `##`, 테이블, 코드블록을 정상적으로 사용한다.
276
-
277
- ### 태그 중첩은 2단계까지
278
-
279
- ```markdown
280
- <!-- 허용: 2단계 -->
281
- <workflow>
282
- <phase name="계획">...</phase>
283
- </workflow>
284
-
285
- <!-- 지양: 3단계 이상 -->
286
- <workflow>
287
- <phase name="계획">
288
- <sub-step>...</sub-step> <!-- 과도한 중첩 -->
289
- </phase>
290
- </workflow>
291
- ```
292
-
293
- 3단계 이상 중첩이 필요하면 마크다운 제목(`###`)이나 리스트로 대체한다.
294
-
295
- ### 닫는 태그를 반드시 포함한다
296
-
297
- ```markdown
298
- <!-- 올바름 -->
299
- <role>
300
- Agent의 역할 설명
301
- </role>
302
-
303
- <!-- 오류 -->
304
- <role>
305
- Agent의 역할 설명
306
- ```
307
-
308
- 모든 XML 태그는 여는 태그와 닫는 태그를 쌍으로 작성한다.
309
-
310
- ### 태그 이름은 표준 목록에서 선택한다
311
-
312
- 이 가이드의 **표준 태그 목록**에 정의된 태그만 사용한다. 커스텀 태그가 필요한 경우 기존 태그로 대체할 수 있는지 먼저 검토한다.
313
-
314
- ---
315
-
316
- ## 체크리스트
317
-
318
- <checklist>
319
- - [ ] 파일 유형(Agent/Skill/CLAUDE.md/Hook)에 맞는 태그 조합을 사용했는가?
320
- - [ ] 태그 내부에서 마크다운 문법(제목, 테이블, 코드블록)을 정상 활용하는가?
321
- - [ ] 태그 중첩이 2단계 이하인가?
322
- - [ ] 모든 태그에 닫는 태그가 포함되어 있는가?
323
- - [ ] 표준 태그 목록에 정의된 태그만 사용했는가?
324
- - [ ] `->` 기호를 단계/변환/위임 표현에 활용했는가?
325
- </checklist>
326
-
327
- <reference>
328
- - `SKILL.md` - 프롬프트 구조화 개요 및 핵심 원칙
329
- - `positive-phrasing.md` - 부정 -> 긍정 전환 패턴
330
- </reference>
@@ -0,0 +1,84 @@
1
+ #!/bin/bash
2
+
3
+ # Read JSON input from stdin
4
+ input=$(cat)
5
+
6
+ # Extract data from JSON
7
+ cwd=$(echo "$input" | jq -r '.workspace.current_dir')
8
+ model=$(echo "$input" | jq -r '.model.display_name')
9
+ session_name=$(echo "$input" | jq -r '.session_name // empty')
10
+ remaining=$(echo "$input" | jq -r '.context_window.remaining_percentage // empty')
11
+ used_tokens=$(echo "$input" | jq -r '.context_window.total_input_tokens // empty')
12
+ total_tokens=$(echo "$input" | jq -r '.context_window.context_window_size // empty')
13
+
14
+ # Get short directory name (basename)
15
+ dir_name=$(basename "$cwd")
16
+
17
+ # Git information
18
+ git_info=""
19
+ if git -C "$cwd" rev-parse --git-dir > /dev/null 2>&1; then
20
+ branch=$(git -C "$cwd" -c core.useBuiltinFSMonitor=false -c core.fsmonitor=false symbolic-ref --short HEAD 2>/dev/null || echo "detached")
21
+
22
+ # Check for uncommitted changes
23
+ if ! git -C "$cwd" -c core.useBuiltinFSMonitor=false -c core.fsmonitor=false diff --quiet 2>/dev/null || \
24
+ ! git -C "$cwd" -c core.useBuiltinFSMonitor=false -c core.fsmonitor=false diff --cached --quiet 2>/dev/null; then
25
+ status="✗"
26
+ else
27
+ status=""
28
+ fi
29
+
30
+ git_info=" git:($(printf '\033[31m')${branch}$(printf '\033[0m'))${status}"
31
+ fi
32
+
33
+ # Format token information
34
+ format_token_count() {
35
+ local value=$1
36
+ if (( value >= 1000 )); then
37
+ printf "%.1fk" "$(bc <<< "scale=1; $value / 1000")"
38
+ else
39
+ echo "$value"
40
+ fi
41
+ }
42
+
43
+ # Get color based on usage percentage
44
+ get_color_for_percentage() {
45
+ local percentage=$1
46
+ if (( percentage >= 90 )); then
47
+ printf '\033[31m' # red
48
+ elif (( percentage >= 70 )); then
49
+ printf '\033[33m' # yellow
50
+ else
51
+ printf '\033[0m' # reset (no color)
52
+ fi
53
+ }
54
+
55
+ # Build status line in robbyrussell style
56
+ status_line="$(printf '\033[36m')${dir_name}$(printf '\033[0m')${git_info}"
57
+
58
+ # Add context percentage if available
59
+ if [ -n "$remaining" ]; then
60
+ # Calculate usage percentage (100 - remaining)
61
+ usage=$((100 - remaining))
62
+ color=$(get_color_for_percentage "$usage")
63
+ status_line="${status_line} | ctx:${color}${usage}%$(printf '\033[0m')"
64
+ fi
65
+
66
+ # Add token information if available
67
+ if [ -n "$used_tokens" ] && [ -n "$total_tokens" ]; then
68
+ used_formatted=$(format_token_count "$used_tokens")
69
+ total_formatted=$(format_token_count "$total_tokens")
70
+ # Calculate token usage percentage
71
+ token_usage=$(echo "scale=0; $used_tokens * 100 / $total_tokens" | bc)
72
+ color=$(get_color_for_percentage "$token_usage")
73
+ status_line="${status_line} | token:${color}${used_formatted}/${total_formatted}$(printf '\033[0m')"
74
+ fi
75
+
76
+ # Add model info
77
+ status_line="${status_line} | ${model}"
78
+
79
+ # Add session name if set
80
+ if [ -n "$session_name" ]; then
81
+ status_line="${status_line} [${session_name}]"
82
+ fi
83
+
84
+ printf "%s" "$status_line"