sleepcode 1.0.0 → 1.2.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.
- package/.claude/settings.local.json +17 -0
- package/README.md +225 -178
- package/bin/index.js +503 -331
- package/package.json +17 -17
- package/templates/common/README.md +100 -97
- package/templates/common/ai_worker.ps1 +20 -0
- package/templates/common/ai_worker.sh +23 -23
- package/templates/common/log_filter.py +63 -63
- package/templates/common/run_forever.ps1 +59 -0
- package/templates/common/run_forever.sh +59 -59
- package/templates/rules/custom.md +69 -69
- package/templates/rules/nextjs.md +77 -77
- package/templates/rules/react-native.md +76 -76
- package/templates/rules/spring-boot.md +78 -78
- package/templates/settings/custom.json +19 -19
- package/templates/settings/nextjs.json +30 -30
- package/templates/settings/react-native.json +30 -30
- package/templates/settings/spring-boot.json +24 -24
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(git add:*)",
|
|
5
|
+
"Bash(git commit:*)",
|
|
6
|
+
"Bash(git push)",
|
|
7
|
+
"Bash(gh auth:*)",
|
|
8
|
+
"Bash(git remote set-url:*)",
|
|
9
|
+
"Bash(git restore:*)",
|
|
10
|
+
"Bash(npm whoami:*)",
|
|
11
|
+
"Bash(npm publish)",
|
|
12
|
+
"Bash(npm version:*)",
|
|
13
|
+
"Bash(NPM_TOKEN=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 npm publish:*)",
|
|
14
|
+
"Bash(NPM_TOKEN=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 npm publish)"
|
|
15
|
+
]
|
|
16
|
+
}
|
|
17
|
+
}
|
package/README.md
CHANGED
|
@@ -1,178 +1,225 @@
|
|
|
1
|
-
# SleepCode
|
|
2
|
-
|
|
3
|
-
**AI codes while you sleep** — Claude AI 야간 자동화 세팅 CLI
|
|
4
|
-
|
|
5
|
-
잠자는 동안 AI가 코드를 작성하고, 빌드하고, 테스트하고, 커밋합니다.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 설치
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npm install -g sleepcode
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
또는 npx로 바로 실행:
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
npx sleepcode
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## 빠른 시작
|
|
24
|
-
|
|
25
|
-
### 1. 프로젝트 루트에서 실행
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
cd my-project
|
|
29
|
-
npx sleepcode
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
인터랙티브 모드로 프로젝트 타입, 이름, AI 역할 등을 설정합니다.
|
|
33
|
-
|
|
34
|
-
### 2. 태스크 작성
|
|
35
|
-
|
|
36
|
-
`.
|
|
37
|
-
|
|
38
|
-
```markdown
|
|
39
|
-
# 작업 목록
|
|
40
|
-
|
|
41
|
-
- [ ] 로그인 화면 구현
|
|
42
|
-
- [ ] 회원가입 API 연동
|
|
43
|
-
- [ ] 홈 화면 UI 개선
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### 3. 실행
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
.
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
[
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
1
|
+
# SleepCode
|
|
2
|
+
|
|
3
|
+
**AI codes while you sleep** — Claude AI 야간 자동화 세팅 CLI
|
|
4
|
+
|
|
5
|
+
잠자는 동안 AI가 코드를 작성하고, 빌드하고, 테스트하고, 커밋합니다.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 설치
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install -g sleepcode
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
또는 npx로 바로 실행:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npx sleepcode
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 빠른 시작
|
|
24
|
+
|
|
25
|
+
### 1. 프로젝트 루트에서 실행
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
cd my-project
|
|
29
|
+
npx sleepcode
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
인터랙티브 모드로 프로젝트 타입, 이름, AI 역할 등을 설정합니다.
|
|
33
|
+
|
|
34
|
+
### 2. 태스크 작성
|
|
35
|
+
|
|
36
|
+
`.sleepcode/tasks.md` 에 AI가 수행할 작업을 작성합니다:
|
|
37
|
+
|
|
38
|
+
```markdown
|
|
39
|
+
# 작업 목록
|
|
40
|
+
|
|
41
|
+
- [ ] 로그인 화면 구현
|
|
42
|
+
- [ ] 회원가입 API 연동
|
|
43
|
+
- [ ] 홈 화면 UI 개선
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### 3. 실행
|
|
47
|
+
|
|
48
|
+
**macOS / Linux:**
|
|
49
|
+
```bash
|
|
50
|
+
# 1회 실행
|
|
51
|
+
./.sleepcode/scripts/ai_worker.sh
|
|
52
|
+
|
|
53
|
+
# 무한 루프 (tmux 권장)
|
|
54
|
+
tmux new -s ai './.sleepcode/scripts/run_forever.sh'
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Windows (PowerShell):**
|
|
58
|
+
```powershell
|
|
59
|
+
# 1회 실행
|
|
60
|
+
powershell -File .\.sleepcode\scripts\ai_worker.ps1
|
|
61
|
+
|
|
62
|
+
# 무한 루프
|
|
63
|
+
powershell -File .\.sleepcode\scripts\run_forever.ps1
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### 4. 아침에 확인
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
git log --oneline --since="12 hours ago"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## 지원 프로젝트 타입
|
|
75
|
+
|
|
76
|
+
| 타입 | 설명 |
|
|
77
|
+
|------|------|
|
|
78
|
+
| `spring-boot` | Spring Boot (Kotlin/Java) — Gradle 빌드/테스트 |
|
|
79
|
+
| `react-native` | React Native (TypeScript) — tsc 타입체크 |
|
|
80
|
+
| `nextjs` | Next.js (TypeScript) — npm build/test/lint |
|
|
81
|
+
| `custom` | 직접 설정 — 빌드/테스트/린트 명령어 수동 입력 |
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## CLI 옵션
|
|
86
|
+
|
|
87
|
+
인터랙티브 모드 외에 CLI 인자로도 사용 가능합니다:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
npx sleepcode --type react-native --name my-app --role "쇼핑몰 앱 개발"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
| 옵션 | 설명 |
|
|
94
|
+
|------|------|
|
|
95
|
+
| `--type <type>` | 프로젝트 타입 (`spring-boot`, `react-native`, `nextjs`, `custom`) |
|
|
96
|
+
| `--name <name>` | 프로젝트 이름 |
|
|
97
|
+
| `--role <desc>` | AI 역할 설명 |
|
|
98
|
+
| `--figma-key <key>` | Figma API Key (선택) |
|
|
99
|
+
| `--interval <sec>` | 반복 간격 초 (기본: 30) |
|
|
100
|
+
| `-f, --force` | 기존 `.sleepcode/` 폴더 덮어쓰기 |
|
|
101
|
+
| `-h, --help` | 도움말 |
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## 생성되는 파일
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
.sleepcode/
|
|
109
|
+
rules.md # ✏️ AI 역할 + 작업 규칙 (수정하세요)
|
|
110
|
+
tasks.md # ✏️ 작업 목록 (수정하세요)
|
|
111
|
+
docs/ # ✏️ 참고 자료 (피그마 스크린샷, 기획서 등)
|
|
112
|
+
scripts/ # ⚙️ 시스템 스크립트 (수정하지 마세요)
|
|
113
|
+
ai_worker.sh/.ps1 # 1회 실행 스크립트 (OS별)
|
|
114
|
+
run_forever.sh/.ps1 # 무한 루프 스크립트 (OS별)
|
|
115
|
+
log_filter.py # 실시간 로그 필터
|
|
116
|
+
logs/ # 실행 로그 (자동 생성)
|
|
117
|
+
README.md # 사용 가이드
|
|
118
|
+
|
|
119
|
+
.claude/
|
|
120
|
+
settings.local.json # Claude 권한 설정
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## 작동 원리
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
rules.md + tasks.md → 프롬프트 조합 → claude -p (비대화형) → 코드 작성 → git commit → 반복
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
1. `rules.md`(AI 역할/규칙)와 `tasks.md`(작업 목록)를 합쳐서 프롬프트로 전달
|
|
132
|
+
2. Claude가 태스크를 하나씩 수행 (코드 작성 → 빌드/테스트 → 오류 수정)
|
|
133
|
+
3. 태스크 완료 시 `[x]` 체크 + `git commit`
|
|
134
|
+
4. 모든 태스크 완료되면 자동 종료 (또는 대기 후 반복)
|
|
135
|
+
|
|
136
|
+
### 실시간 로그
|
|
137
|
+
|
|
138
|
+
`stream-json` 출력을 `log_filter.py`가 파싱하여 핵심 메시지만 표시합니다:
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
[TEXT] 로그인 화면을 구현하겠습니다...
|
|
142
|
+
[TOOL] Edit: src/screens/LoginScreen.tsx
|
|
143
|
+
[TOOL] Bash: npx tsc --noEmit
|
|
144
|
+
[TEXT] 타입 체크 통과, 커밋합니다.
|
|
145
|
+
[TOOL] Bash: git commit -m "feat: 로그인 화면 구현"
|
|
146
|
+
[DONE] 완료
|
|
147
|
+
[COST] input: 50,000 / output: 12,000
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## tmux 관리
|
|
153
|
+
|
|
154
|
+
| 동작 | 명령어 |
|
|
155
|
+
|------|--------|
|
|
156
|
+
| 세션 생성 + 실행 | `tmux new -s ai './.sleepcode/scripts/run_forever.sh'` |
|
|
157
|
+
| 백그라운드 전환 | `Ctrl+B` → `D` |
|
|
158
|
+
| 세션 재접속 | `tmux attach -t ai` |
|
|
159
|
+
| 실시간 로그 | `tail -f .sleepcode/logs/worker_*.log` |
|
|
160
|
+
| 종료 | `tmux attach -t ai` → `Ctrl+C` |
|
|
161
|
+
| 세션 삭제 | `tmux kill-session -t ai` |
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## 사전 준비 (Prerequisites)
|
|
166
|
+
|
|
167
|
+
`npx sleepcode` 실행 시 **자동으로 필수 도구를 체크**합니다. 누락된 도구가 있으면 설치 방법을 안내하며, Claude CLI는 자동 설치를 제안합니다.
|
|
168
|
+
|
|
169
|
+
### 필수
|
|
170
|
+
|
|
171
|
+
| 도구 | 용도 | 자동 설치 |
|
|
172
|
+
|------|------|-----------|
|
|
173
|
+
| **Node.js** 18+ | CLI 실행 (`npx sleepcode`) | — |
|
|
174
|
+
| **Claude CLI** | AI 워커가 `claude -p` 명령으로 코드 작성 | npm으로 자동 설치 제안 |
|
|
175
|
+
| **Python 3** | 실시간 로그 필터 (`log_filter.py`) | 안내만 |
|
|
176
|
+
| **Git** | 코드 커밋 및 변경사항 관리 | 안내만 |
|
|
177
|
+
|
|
178
|
+
### 선택 (macOS/Linux만)
|
|
179
|
+
|
|
180
|
+
| 도구 | 용도 |
|
|
181
|
+
|------|------|
|
|
182
|
+
| **tmux** | 워커를 백그라운드 세션에서 실행 |
|
|
183
|
+
|
|
184
|
+
### 자동 체크 예시
|
|
185
|
+
|
|
186
|
+
```
|
|
187
|
+
사전 준비 확인 중...
|
|
188
|
+
✓ git (2.43.0)
|
|
189
|
+
✓ python3 (3.12.0)
|
|
190
|
+
✗ claude — 설치 필요
|
|
191
|
+
- tmux — 미설치 (선택사항)
|
|
192
|
+
|
|
193
|
+
? claude CLI를 설치할까요? (npm install -g @anthropic-ai/claude-code) [Y/n]: y
|
|
194
|
+
✓ claude CLI 설치 완료
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Claude CLI 권한 설정
|
|
198
|
+
|
|
199
|
+
AI 워커는 비대화형(`-p`) 모드에서 `--dangerously-skip-permissions` 플래그를 사용합니다.
|
|
200
|
+
최초 1회 동의가 필요합니다:
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
claude --dangerously-skip-permissions
|
|
204
|
+
# 동의 프롬프트 수락 후 Ctrl+C
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### Windows 지원
|
|
208
|
+
|
|
209
|
+
Windows에서는 `.sh` 대신 **PowerShell 스크립트(`.ps1`)가 자동 생성**됩니다. WSL 없이 바로 사용 가능합니다.
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## 커스터마이징
|
|
214
|
+
|
|
215
|
+
- **AI 역할/규칙 변경**: `.sleepcode/rules.md` 수정
|
|
216
|
+
- **작업 목록 변경**: `.sleepcode/tasks.md` 수정
|
|
217
|
+
- **참고 자료 추가**: `.sleepcode/docs/`에 파일 추가 (스크린샷, 기획서 등)
|
|
218
|
+
- **반복 간격 변경**: `.sleepcode/scripts/run_forever.sh` (또는 `.ps1`)의 sleep 값 수정
|
|
219
|
+
- **Claude 권한 변경**: `.claude/settings.local.json` 수정
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## License
|
|
224
|
+
|
|
225
|
+
MIT
|