@kood/claude-code 0.6.3 → 0.6.5
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/dist/index.js +30 -17
- package/package.json +1 -1
- package/templates/.claude/commands/git-all.md +36 -48
- package/templates/.claude/commands/git-session.md +25 -52
- package/templates/.claude/commands/lint-fix.md +24 -47
- package/templates/.claude/commands/pre-deploy.md +24 -101
- package/templates/.claude/commands/version-update.md +31 -29
- package/templates/.claude/skills/genius-thinking/SKILL.md +426 -0
- package/templates/.claude/skills/startup-validator/SKILL.md +432 -0
package/dist/index.js
CHANGED
|
@@ -426,14 +426,10 @@ async function promptTemplateSelection(options) {
|
|
|
426
426
|
value: t
|
|
427
427
|
})),
|
|
428
428
|
{
|
|
429
|
-
min:
|
|
430
|
-
hint: "- Space to select
|
|
429
|
+
min: 0,
|
|
430
|
+
hint: "- Space to select, Enter to confirm (or skip to install extras only)"
|
|
431
431
|
}
|
|
432
432
|
);
|
|
433
|
-
if (response.values.length === 0) {
|
|
434
|
-
logger.warn("Operation cancelled.");
|
|
435
|
-
process.exit(0);
|
|
436
|
-
}
|
|
437
433
|
templates = response.values;
|
|
438
434
|
}
|
|
439
435
|
const invalidTemplates = templates.filter(
|
|
@@ -773,13 +769,22 @@ async function promptForExtrasInstallation(options, hasSkills, hasCommands, hasA
|
|
|
773
769
|
});
|
|
774
770
|
}
|
|
775
771
|
function showInstallationSummary(templates, flags, hasSkills, hasCommands, hasAgents, hasInstructions) {
|
|
772
|
+
const { installSkills, installCommands, installAgents, installInstructions } = flags;
|
|
773
|
+
const hasExtrasInstalled = installSkills && hasSkills || installCommands && hasCommands || installAgents && hasAgents || installInstructions && hasInstructions;
|
|
774
|
+
if (templates.length === 0 && !hasExtrasInstalled) {
|
|
775
|
+
logger.blank();
|
|
776
|
+
logger.info("No templates or extras installed.");
|
|
777
|
+
logger.blank();
|
|
778
|
+
return;
|
|
779
|
+
}
|
|
776
780
|
logger.blank();
|
|
777
781
|
logger.success("Claude Code documentation installed!");
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
782
|
+
if (templates.length > 0) {
|
|
783
|
+
logger.blank();
|
|
784
|
+
logger.info("Installed templates:");
|
|
785
|
+
templates.forEach((t) => logger.step(t));
|
|
786
|
+
}
|
|
787
|
+
if (hasExtrasInstalled) {
|
|
783
788
|
logger.blank();
|
|
784
789
|
logger.info("Installed extras:");
|
|
785
790
|
if (installSkills && hasSkills) {
|
|
@@ -797,8 +802,13 @@ function showInstallationSummary(templates, flags, hasSkills, hasCommands, hasAg
|
|
|
797
802
|
}
|
|
798
803
|
logger.blank();
|
|
799
804
|
logger.info("Next steps:");
|
|
800
|
-
|
|
801
|
-
|
|
805
|
+
if (templates.length > 0) {
|
|
806
|
+
logger.step("Read CLAUDE.md for project guidelines");
|
|
807
|
+
logger.step("Explore docs/ for detailed documentation");
|
|
808
|
+
} else {
|
|
809
|
+
logger.step("Explore .claude/ for installed extras");
|
|
810
|
+
logger.step('Run "npx @kood/claude-code init" again to install templates');
|
|
811
|
+
}
|
|
802
812
|
logger.blank();
|
|
803
813
|
}
|
|
804
814
|
var init = async (options) => {
|
|
@@ -810,9 +820,12 @@ var init = async (options) => {
|
|
|
810
820
|
process.exit(1);
|
|
811
821
|
}
|
|
812
822
|
const templates = await selectTemplates(options, availableTemplates);
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
823
|
+
if (templates.length > 0) {
|
|
824
|
+
await confirmOverwriteIfNeeded(targetDir, options.force ?? false);
|
|
825
|
+
await installTemplates(templates, targetDir);
|
|
826
|
+
}
|
|
827
|
+
const templatesToCheck = templates.length > 0 ? templates : availableTemplates;
|
|
828
|
+
const { hasSkills, hasCommands, hasAgents, hasInstructions } = await checkAllExtrasExist(templatesToCheck);
|
|
816
829
|
const flags = await promptForExtrasInstallation(
|
|
817
830
|
options,
|
|
818
831
|
hasSkills,
|
|
@@ -821,7 +834,7 @@ var init = async (options) => {
|
|
|
821
834
|
hasInstructions
|
|
822
835
|
);
|
|
823
836
|
await installExtras(
|
|
824
|
-
|
|
837
|
+
templatesToCheck,
|
|
825
838
|
targetDir,
|
|
826
839
|
flags,
|
|
827
840
|
{ hasSkills, hasCommands, hasAgents, hasInstructions },
|
package/package.json
CHANGED
|
@@ -2,58 +2,58 @@
|
|
|
2
2
|
description: 모든 변경사항 커밋 후 푸시
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
@../instructions/multi-agent/coordination-guide.md
|
|
6
|
-
@../instructions/multi-agent/execution-patterns.md
|
|
7
|
-
|
|
8
5
|
# Git All Command
|
|
9
6
|
|
|
10
|
-
>
|
|
7
|
+
> 모든 변경사항을 커밋하고 푸시.
|
|
11
8
|
|
|
12
9
|
---
|
|
13
10
|
|
|
14
|
-
<
|
|
11
|
+
<scripts>
|
|
15
12
|
|
|
16
|
-
##
|
|
13
|
+
## 사용 가능한 스크립트
|
|
17
14
|
|
|
18
|
-
|
|
15
|
+
| 스크립트 | 용도 |
|
|
16
|
+
|----------|------|
|
|
17
|
+
| `.claude/scripts/git/git-info.sh` | 상태 + diff 요약 출력 |
|
|
18
|
+
| `.claude/scripts/git/git-commit.sh "msg" [files]` | Co-Authored-By 포함 커밋 |
|
|
19
|
+
| `.claude/scripts/git/git-push.sh` | 안전한 푸시 |
|
|
20
|
+
| `.claude/scripts/git/git-all.sh "msg"` | add all + commit + push (단순 케이스) |
|
|
21
|
+
| `.claude/scripts/git/git-clean-check.sh` | clean 여부 확인 |
|
|
19
22
|
|
|
20
|
-
|
|
23
|
+
</scripts>
|
|
21
24
|
|
|
22
|
-
|
|
23
|
-
Task({
|
|
24
|
-
subagent_type: 'git-operator',
|
|
25
|
-
description: '모든 변경사항 커밋 후 푸시',
|
|
26
|
-
prompt: `
|
|
27
|
-
전체 커밋 모드:
|
|
28
|
-
- 모든 변경사항을 논리적 단위로 분리하여 전부 커밋
|
|
29
|
-
- 반드시 푸시 (git push)
|
|
30
|
-
- clean working directory 확인 필수
|
|
31
|
-
`
|
|
32
|
-
})
|
|
33
|
-
```
|
|
25
|
+
---
|
|
34
26
|
|
|
35
|
-
|
|
36
|
-
- Bash 도구로 git 명령 직접 실행
|
|
37
|
-
- @git-operator 없이 커밋/푸시 수행
|
|
38
|
-
- 커맨드 내에서 직접 파일 분석
|
|
27
|
+
<workflow>
|
|
39
28
|
|
|
40
|
-
|
|
41
|
-
- Task 도구로 @git-operator 에이전트 호출
|
|
42
|
-
- 모든 git 작업을 에이전트에 위임
|
|
43
|
-
- 완료 후 clean working directory 확인
|
|
29
|
+
## 워크플로우
|
|
44
30
|
|
|
45
|
-
|
|
31
|
+
### 단순 케이스 (단일 커밋)
|
|
46
32
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
33
|
+
```bash
|
|
34
|
+
# 1. 상태 확인
|
|
35
|
+
.claude/scripts/git/git-info.sh
|
|
36
|
+
|
|
37
|
+
# 2. 모든 변경사항 커밋 + 푸시
|
|
38
|
+
.claude/scripts/git/git-all.sh "feat: 기능 추가"
|
|
52
39
|
```
|
|
53
40
|
|
|
54
|
-
|
|
41
|
+
### 복잡한 케이스 (논리적 분리 필요)
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# 1. 상태 확인
|
|
45
|
+
.claude/scripts/git/git-info.sh
|
|
46
|
+
|
|
47
|
+
# 2. 그룹별 커밋
|
|
48
|
+
.claude/scripts/git/git-commit.sh "feat: A 기능" src/a.ts src/a.test.ts
|
|
49
|
+
.claude/scripts/git/git-commit.sh "fix: B 버그 수정" src/b.ts
|
|
50
|
+
|
|
51
|
+
# 3. clean 확인 후 푸시
|
|
52
|
+
.claude/scripts/git/git-clean-check.sh
|
|
53
|
+
.claude/scripts/git/git-push.sh
|
|
54
|
+
```
|
|
55
55
|
|
|
56
|
-
</
|
|
56
|
+
</workflow>
|
|
57
57
|
|
|
58
58
|
---
|
|
59
59
|
|
|
@@ -67,15 +67,3 @@ Task({
|
|
|
67
67
|
|
|
68
68
|
</mode>
|
|
69
69
|
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
<workflow>
|
|
73
|
-
|
|
74
|
-
1. 모든 변경사항 분석
|
|
75
|
-
2. 논리적 단위로 그룹핑
|
|
76
|
-
3. 각 그룹별 커밋 (반복)
|
|
77
|
-
4. clean working directory 확인
|
|
78
|
-
5. git push 실행
|
|
79
|
-
|
|
80
|
-
</workflow>
|
|
81
|
-
|
|
@@ -2,58 +2,43 @@
|
|
|
2
2
|
description: 현재 세션에서 수정한 파일만 커밋 후 푸시
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
@../instructions/multi-agent/coordination-guide.md
|
|
6
|
-
@../instructions/multi-agent/execution-patterns.md
|
|
7
|
-
|
|
8
5
|
# Git Session Command
|
|
9
6
|
|
|
10
|
-
>
|
|
7
|
+
> 현재 세션 파일만 선택적으로 커밋하고 푸시.
|
|
11
8
|
|
|
12
9
|
---
|
|
13
10
|
|
|
14
|
-
<
|
|
11
|
+
<scripts>
|
|
15
12
|
|
|
16
|
-
##
|
|
13
|
+
## 사용 가능한 스크립트
|
|
17
14
|
|
|
18
|
-
|
|
15
|
+
| 스크립트 | 용도 |
|
|
16
|
+
|----------|------|
|
|
17
|
+
| `.claude/scripts/git/git-info.sh` | 상태 + diff 요약 출력 |
|
|
18
|
+
| `.claude/scripts/git/git-commit.sh "msg" [files]` | Co-Authored-By 포함 커밋 |
|
|
19
|
+
| `.claude/scripts/git/git-push.sh` | 안전한 푸시 |
|
|
20
|
+
| `.claude/scripts/git/git-clean-check.sh` | clean 여부 확인 |
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
</scripts>
|
|
21
23
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
description: '세션 파일만 커밋 후 푸시',
|
|
26
|
-
prompt: `
|
|
27
|
-
세션 커밋 모드:
|
|
28
|
-
- 현재 세션 관련 파일만 선택적 커밋
|
|
29
|
-
- 반드시 푸시 (git push)
|
|
30
|
-
- 이전 세션의 미완성 작업은 제외
|
|
31
|
-
`
|
|
32
|
-
})
|
|
33
|
-
```
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
<workflow>
|
|
34
27
|
|
|
35
|
-
|
|
36
|
-
- Bash 도구로 git 명령 직접 실행
|
|
37
|
-
- @git-operator 없이 커밋/푸시 수행
|
|
38
|
-
- 커맨드 내에서 직접 파일 분석
|
|
28
|
+
## 워크플로우
|
|
39
29
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
-
|
|
43
|
-
- 현재 세션 파일만 선택
|
|
30
|
+
```bash
|
|
31
|
+
# 1. 상태 확인
|
|
32
|
+
.claude/scripts/git/git-info.sh
|
|
44
33
|
|
|
45
|
-
|
|
34
|
+
# 2. 현재 세션 파일만 선택하여 커밋
|
|
35
|
+
.claude/scripts/git/git-commit.sh "feat: 로그인 기능" src/auth/login.ts src/auth/logout.ts
|
|
46
36
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
□ Task 도구 사용 준비?
|
|
50
|
-
□ @git-operator 에이전트로 작업 위임?
|
|
51
|
-
□ Bash로 git 직접 실행 안 함?
|
|
37
|
+
# 3. 푸시
|
|
38
|
+
.claude/scripts/git/git-push.sh
|
|
52
39
|
```
|
|
53
40
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
</critical_requirements>
|
|
41
|
+
</workflow>
|
|
57
42
|
|
|
58
43
|
---
|
|
59
44
|
|
|
@@ -80,31 +65,19 @@ Task({
|
|
|
80
65
|
|
|
81
66
|
---
|
|
82
67
|
|
|
83
|
-
<workflow>
|
|
84
|
-
|
|
85
|
-
1. 모든 변경사항 분석
|
|
86
|
-
2. **현재 세션 관련 파일만 선택**
|
|
87
|
-
3. 논리적 단위로 그룹핑
|
|
88
|
-
4. 각 그룹별 커밋
|
|
89
|
-
5. git push 실행
|
|
90
|
-
|
|
91
|
-
</workflow>
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
68
|
<example>
|
|
96
69
|
|
|
97
70
|
```bash
|
|
98
71
|
# 상황: 로그인 기능 작업 중, 이전 프로필 기능은 미완성
|
|
99
72
|
|
|
100
|
-
git
|
|
73
|
+
.claude/scripts/git/git-info.sh
|
|
101
74
|
# modified: src/auth/login.ts (현재 세션)
|
|
102
75
|
# modified: src/auth/logout.ts (현재 세션)
|
|
103
76
|
# modified: src/profile/edit.ts (이전 세션)
|
|
104
77
|
|
|
105
78
|
# ✅ 로그인 관련만 커밋
|
|
106
|
-
git
|
|
107
|
-
git
|
|
79
|
+
.claude/scripts/git/git-commit.sh "feat: 로그인/로그아웃 기능 추가" src/auth/login.ts src/auth/logout.ts
|
|
80
|
+
.claude/scripts/git/git-push.sh
|
|
108
81
|
```
|
|
109
82
|
|
|
110
83
|
</example>
|
|
@@ -4,70 +4,47 @@ allowed-tools: Task
|
|
|
4
4
|
argument-hint: [파일/디렉토리 경로...]
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
@../instructions/multi-agent/coordination-guide.md
|
|
8
|
-
@../instructions/multi-agent/execution-patterns.md
|
|
9
|
-
|
|
10
7
|
# Lint Fix Command
|
|
11
8
|
|
|
12
|
-
>
|
|
9
|
+
> tsc/eslint 오류를 자동으로 수정.
|
|
13
10
|
|
|
14
11
|
---
|
|
15
12
|
|
|
16
|
-
<
|
|
13
|
+
<scripts>
|
|
17
14
|
|
|
18
|
-
##
|
|
15
|
+
## 사용 가능한 스크립트
|
|
19
16
|
|
|
20
|
-
|
|
17
|
+
| 스크립트 | 용도 |
|
|
18
|
+
|----------|------|
|
|
19
|
+
| `.claude/scripts/lint/lint-check.sh` | tsc + eslint 병렬 검사 |
|
|
20
|
+
| `.claude/scripts/lint/lint-file.sh [files]` | 특정 파일만 검사 |
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
</scripts>
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
Task({
|
|
26
|
-
subagent_type: 'lint-fixer',
|
|
27
|
-
description: 'tsc/eslint 오류 수정',
|
|
28
|
-
prompt: `
|
|
29
|
-
$ARGUMENTS 처리:
|
|
30
|
-
${$ARGUMENTS ? `특정 경로: ${$ARGUMENTS}` : '전체 프로젝트 검사'}
|
|
31
|
-
|
|
32
|
-
수행할 작업:
|
|
33
|
-
1. tsc + eslint 병렬 검사
|
|
34
|
-
2. 오류 분류 (간단/복잡)
|
|
35
|
-
3. TodoWrite로 오류 목록 생성
|
|
36
|
-
4. 간단한 오류: 즉시 수정
|
|
37
|
-
5. 복잡한 오류: Sequential Thinking으로 분석 후 수정
|
|
38
|
-
6. 전체 재검사로 완료 확인
|
|
39
|
-
`
|
|
40
|
-
})
|
|
41
|
-
```
|
|
24
|
+
---
|
|
42
25
|
|
|
43
|
-
|
|
44
|
-
- Bash 도구로 tsc/eslint 직접 실행 후 수동 수정
|
|
45
|
-
- @lint-fixer 없이 오류 수정
|
|
46
|
-
- 커맨드 내에서 직접 오류 분석/수정
|
|
26
|
+
<workflow>
|
|
47
27
|
|
|
48
|
-
|
|
49
|
-
- Task 도구로 @lint-fixer 에이전트 호출
|
|
50
|
-
- 모든 lint 작업을 에이전트에 위임
|
|
51
|
-
- 에이전트가 자동으로 간단/복잡 판단 후 처리
|
|
28
|
+
## 워크플로우
|
|
52
29
|
|
|
53
|
-
|
|
54
|
-
- 간단한 오류는 즉시 수정 (Sequential Thinking 불필요)
|
|
55
|
-
- 복잡한 오류만 Sequential Thinking 사용 (효율적)
|
|
56
|
-
- TodoWrite로 진행 상황 자동 추적
|
|
57
|
-
- 우선순위 자동 정렬 (타입 오류 → 린트 오류)
|
|
30
|
+
### 전체 검사
|
|
58
31
|
|
|
59
|
-
|
|
32
|
+
```bash
|
|
33
|
+
# 1. 병렬 검사 (tsc + eslint 동시)
|
|
34
|
+
.claude/scripts/lint/lint-check.sh
|
|
60
35
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
□ Task 도구 사용 준비?
|
|
64
|
-
□ @lint-fixer 에이전트로 작업 위임?
|
|
65
|
-
□ Bash로 tsc/eslint 직접 실행 안 함?
|
|
36
|
+
# 2. 오류 수정 후 재검사
|
|
37
|
+
.claude/scripts/lint/lint-check.sh
|
|
66
38
|
```
|
|
67
39
|
|
|
68
|
-
|
|
40
|
+
### 특정 파일 검사
|
|
69
41
|
|
|
70
|
-
|
|
42
|
+
```bash
|
|
43
|
+
# 특정 파일만
|
|
44
|
+
.claude/scripts/lint/lint-file.sh src/utils/api.ts src/components/Button.tsx
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
</workflow>
|
|
71
48
|
|
|
72
49
|
---
|
|
73
50
|
|
|
@@ -1,129 +1,52 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 배포 전 typecheck/lint/build 검증 및 수정.
|
|
3
|
-
allowed-tools: Bash
|
|
2
|
+
description: 배포 전 typecheck/lint/build 검증 및 수정.
|
|
3
|
+
allowed-tools: Bash, Read, Edit, mcp__sequential-thinking__sequentialthinking
|
|
4
4
|
argument-hint: [파일/디렉토리 경로...]
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
@../instructions/multi-agent/coordination-guide.md
|
|
8
|
-
@../instructions/multi-agent/execution-patterns.md
|
|
9
|
-
|
|
10
7
|
# Pre-Deploy Command
|
|
11
8
|
|
|
12
|
-
> 배포 전 typecheck/lint/build
|
|
9
|
+
> 배포 전 typecheck/lint/build 검증
|
|
13
10
|
|
|
14
11
|
---
|
|
15
12
|
|
|
16
|
-
<
|
|
13
|
+
<scripts>
|
|
17
14
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
|
21
|
-
|
|
22
|
-
|
|
|
15
|
+
## 사용 가능한 스크립트
|
|
16
|
+
|
|
17
|
+
| 스크립트 | 용도 |
|
|
18
|
+
|----------|------|
|
|
19
|
+
| `.claude/scripts/deploy/deploy-check.sh` | 전체 검증 (tsc + eslint + build) |
|
|
20
|
+
| `.claude/scripts/deploy/build-run.sh` | build만 실행 |
|
|
21
|
+
| `.claude/scripts/lint/lint-check.sh` | tsc + eslint 병렬 검사 |
|
|
22
|
+
| `.claude/scripts/pm/pm-detect.sh` | package manager 감지 |
|
|
23
23
|
|
|
24
|
-
</
|
|
24
|
+
</scripts>
|
|
25
25
|
|
|
26
26
|
---
|
|
27
27
|
|
|
28
|
-
<
|
|
28
|
+
<workflow>
|
|
29
29
|
|
|
30
|
-
##
|
|
30
|
+
## 워크플로우
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
- PR 생성 전 전체 검증
|
|
34
|
-
- 배포 전 품질 보증
|
|
35
|
-
- CI/CD 전 로컬 검증
|
|
32
|
+
### 전체 검증 (권장)
|
|
36
33
|
|
|
37
|
-
**호출 방법:**
|
|
38
34
|
```bash
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"배포 준비 완료 체크해줘"
|
|
42
|
-
"pre-deploy 검증해줘"
|
|
35
|
+
# 한 번에 tsc + eslint + build 검증
|
|
36
|
+
.claude/scripts/deploy/deploy-check.sh
|
|
43
37
|
```
|
|
44
38
|
|
|
45
|
-
|
|
46
|
-
- typecheck + lint + build 전체 자동화
|
|
47
|
-
- Build 실패 시 Sequential Thinking으로 원인 자동 분석
|
|
48
|
-
- 배포 가능 여부 최종 판단
|
|
49
|
-
- 독립적 context에서 실행 (메인 작업 병렬 가능)
|
|
50
|
-
|
|
51
|
-
**직접 검증 vs Agent:**
|
|
52
|
-
|
|
53
|
-
| 상황 | 권장 방법 |
|
|
54
|
-
|------|----------|
|
|
55
|
-
| 빠른 개발 중 | 직접 검증 (command) |
|
|
56
|
-
| PR 생성 전 | @deployment-validator |
|
|
57
|
-
| 배포 전 최종 확인 | @deployment-validator |
|
|
58
|
-
| CI/CD 전 로컬 확인 | @deployment-validator |
|
|
59
|
-
| 자동화된 검증 | @deployment-validator |
|
|
39
|
+
### 단계별 검증
|
|
60
40
|
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
## @security-reviewer Agent 활용
|
|
64
|
-
|
|
65
|
-
**언제 사용:**
|
|
66
|
-
- 배포 전 보안 취약점 검토
|
|
67
|
-
- 코드 변경 후 보안 검증
|
|
68
|
-
- 인증/권한/데이터 처리 로직 추가 시
|
|
69
|
-
|
|
70
|
-
**호출 방법:**
|
|
71
41
|
```bash
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
"배포 전 보안 검토해줘"
|
|
75
|
-
"보안 취약점 체크해줘"
|
|
76
|
-
```
|
|
42
|
+
# 1. lint 검사
|
|
43
|
+
.claude/scripts/lint/lint-check.sh
|
|
77
44
|
|
|
78
|
-
|
|
79
|
-
-
|
|
80
|
-
- 시크릿 노출 탐지 (API 키, 비밀번호 하드코딩)
|
|
81
|
-
- 입력 검증 체크 (SQL Injection, XSS, CSRF)
|
|
82
|
-
- 인증/권한 로직 검증
|
|
83
|
-
- 독립적 context에서 실행 (메인 작업 병렬 가능)
|
|
84
|
-
|
|
85
|
-
**검토 범위:**
|
|
86
|
-
- SQL Injection: Prisma raw query 사용 시
|
|
87
|
-
- XSS: HTML/dangerouslySetInnerHTML 사용 시
|
|
88
|
-
- CSRF: POST/PUT/DELETE 엔드포인트
|
|
89
|
-
- 인증: middleware 누락 여부
|
|
90
|
-
- 시크릿: .env 변수 하드코딩 여부
|
|
91
|
-
- 입력 검증: Zod validator 누락 여부
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
## @build-fixer Agent 활용
|
|
96
|
-
|
|
97
|
-
**언제 사용:**
|
|
98
|
-
- 빌드/타입 오류 다수 발생
|
|
99
|
-
- 빠른 자동 수정 필요
|
|
100
|
-
- 반복적인 타입 오류 일괄 수정
|
|
101
|
-
|
|
102
|
-
**호출 방법:**
|
|
103
|
-
```bash
|
|
104
|
-
@build-fixer
|
|
105
|
-
# 또는 자연어
|
|
106
|
-
"빌드 오류 수정해줘"
|
|
107
|
-
"타입 오류 자동 수정해줘"
|
|
45
|
+
# 2. 오류 수정 후 build
|
|
46
|
+
.claude/scripts/deploy/build-run.sh
|
|
108
47
|
```
|
|
109
48
|
|
|
110
|
-
|
|
111
|
-
- 최소 diff로 오류 수정
|
|
112
|
-
- 언어 자동 감지 (TypeScript, Python, Go 등)
|
|
113
|
-
- 여러 오류 효율적 처리
|
|
114
|
-
- Sequential Thinking 자동 적용
|
|
115
|
-
- 독립적 context에서 실행
|
|
116
|
-
|
|
117
|
-
**직접 수정 vs Agent:**
|
|
118
|
-
|
|
119
|
-
| 상황 | 권장 방법 |
|
|
120
|
-
|------|----------|
|
|
121
|
-
| 1-2개 단순 오류 | 직접 수정 (command) |
|
|
122
|
-
| 5개+ 반복적 오류 | @build-fixer |
|
|
123
|
-
| 리팩토링 후 다수 오류 | @build-fixer |
|
|
124
|
-
| 라이브러리 업그레이드 후 | @build-fixer |
|
|
125
|
-
|
|
126
|
-
</agent_usage>
|
|
49
|
+
</workflow>
|
|
127
50
|
|
|
128
51
|
---
|
|
129
52
|
|
|
@@ -4,15 +4,29 @@ allowed-tools: Bash, Read, Edit
|
|
|
4
4
|
argument-hint: <new-version | +1 | +minor | +major>
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
@../instructions/multi-agent/coordination-guide.md
|
|
8
|
-
@../instructions/multi-agent/execution-patterns.md
|
|
9
|
-
|
|
10
7
|
# Version Update Command
|
|
11
8
|
|
|
12
9
|
프로젝트 전체 버전을 업데이트하고 커밋.
|
|
13
10
|
|
|
14
11
|
**인수**: $ARGUMENTS
|
|
15
12
|
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
<scripts>
|
|
16
|
+
|
|
17
|
+
## 사용 가능한 스크립트
|
|
18
|
+
|
|
19
|
+
| 스크립트 | 용도 |
|
|
20
|
+
|----------|------|
|
|
21
|
+
| `.claude/scripts/version/version-find.sh` | 버전 파일 탐색 (package.json + .version()) |
|
|
22
|
+
| `.claude/scripts/version/version-bump.sh <current> <type>` | 새 버전 계산 |
|
|
23
|
+
| `.claude/scripts/git/git-commit.sh "msg" [files]` | 커밋 |
|
|
24
|
+
| `.claude/scripts/git/git-push.sh` | 푸시 |
|
|
25
|
+
|
|
26
|
+
</scripts>
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
16
30
|
<version_rules>
|
|
17
31
|
|
|
18
32
|
| 인수 | 동작 | 예시 |
|
|
@@ -24,39 +38,27 @@ argument-hint: <new-version | +1 | +minor | +major>
|
|
|
24
38
|
|
|
25
39
|
</version_rules>
|
|
26
40
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
1. **버전 파일 탐색**
|
|
30
|
-
```bash
|
|
31
|
-
# package.json 찾기 (root 또는 monorepo packages/)
|
|
32
|
-
fd -t f 'package.json' -E node_modules
|
|
41
|
+
---
|
|
33
42
|
|
|
34
|
-
|
|
35
|
-
rg "\.version\(['\"]" --type ts --type js -l
|
|
36
|
-
```
|
|
43
|
+
<workflow>
|
|
37
44
|
|
|
38
|
-
|
|
39
|
-
- 발견된 package.json 파일들
|
|
40
|
-
- 버전 코드 포함 파일들
|
|
45
|
+
## 워크플로우
|
|
41
46
|
|
|
42
|
-
|
|
47
|
+
```bash
|
|
48
|
+
# 1. 버전 파일 탐색
|
|
49
|
+
.claude/scripts/version/version-find.sh
|
|
43
50
|
|
|
44
|
-
|
|
51
|
+
# 2. 현재 버전 확인 (package.json 읽기)
|
|
45
52
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
```
|
|
53
|
+
# 3. 새 버전 계산
|
|
54
|
+
.claude/scripts/version/version-bump.sh 1.2.3 +1
|
|
55
|
+
# → 1.2.4
|
|
50
56
|
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
git commit -m "chore: 버전 X.X.X로 업데이트"
|
|
54
|
-
```
|
|
57
|
+
# 4. 모든 파일 Edit로 업데이트
|
|
55
58
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
```
|
|
59
|
+
# 5. 커밋
|
|
60
|
+
.claude/scripts/git/git-commit.sh "chore: 버전 1.2.4로 업데이트" package.json packages/*/package.json
|
|
61
|
+
```
|
|
60
62
|
|
|
61
63
|
</workflow>
|
|
62
64
|
|