@taejung3852/project-scaffold 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.
- package/.hooks/convention-check.sh +79 -0
- package/.hooks/devlog-auto.sh +55 -0
- package/.obsidian-template/appearance.json +6 -0
- package/.obsidian-template/core-plugins.json +20 -0
- package/.obsidian-template/graph.json +22 -0
- package/.obsidian-template/snippets/folder-colors.css +55 -0
- package/AGENT.md +55 -0
- package/README.kr.md +247 -0
- package/README.md +247 -0
- package/SOUL.md +54 -0
- package/THIRD_PARTY_NOTICES.md +14 -0
- package/bin/project-scaffold.js +122 -0
- package/lib/agents-registry.js +197 -0
- package/lib/agents.js +203 -0
- package/lib/install.js +342 -0
- package/package.json +33 -0
- package/skills/brief/SKILL.md +63 -0
- package/skills/brief/agents/openai.yaml +4 -0
- package/skills/brief/references/dashboard.md +140 -0
- package/skills/brief/references/handoff.md +130 -0
- package/skills/brief/references/report.md +163 -0
- package/skills/review/SKILL.md +123 -0
- package/skills/review/agents/openai.yaml +4 -0
- package/skills/wiki/SKILL.md +73 -0
- package/skills/wiki/agents/openai.yaml +4 -0
- package/skills/wiki/references/ambiguity-check.md +16 -0
- package/skills/wiki/references/capture.md +119 -0
- package/skills/wiki/references/clear-path.md +82 -0
- package/skills/wiki/references/devlog.md +111 -0
- package/skills/wiki/references/ingest.md +118 -0
- package/skills/wiki/references/lint.md +83 -0
- package/skills/wiki/references/query.md +81 -0
- package/skills/wiki/references/setup.md +397 -0
- package/skills/wiki/references/unclear-path.md +51 -0
- package/templates/gitignore +14 -0
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
# wiki setup — 프로젝트 초기 인터뷰
|
|
2
|
+
|
|
3
|
+
프로젝트 시작 시 실행. 기존 코드베이스가 있으면 먼저 스캔해 컨벤션을 추론한 뒤,
|
|
4
|
+
2~3시간 인터뷰를 통해 팀 컨벤션을 확정하고 `wiki/conventions/`와 `AGENT.md`를 자동 생성한다.
|
|
5
|
+
|
|
6
|
+
## 목차
|
|
7
|
+
|
|
8
|
+
- Step 0: 기존 설정 확인과 코드베이스 스캔
|
|
9
|
+
- Step 1: 14개 인터뷰 카테고리 안내
|
|
10
|
+
- Step 2: 카테고리별 인터뷰와 즉시 저장
|
|
11
|
+
- Step 3: AGENT.md 생성
|
|
12
|
+
- Step 4: Graphify 확인
|
|
13
|
+
- 페이지 형식과 실행 규칙
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
## Step 0 — 기존 설정 확인
|
|
17
|
+
|
|
18
|
+
`wiki/conventions/`에 실제 컨벤션 문서(`.gitkeep` 제외한 `*.md` 파일)가 있는지 확인한다.
|
|
19
|
+
|
|
20
|
+
- **문서가 없으면**: Step 0.5로 진행
|
|
21
|
+
- **문서가 있으면**: 다음을 안내한다:
|
|
22
|
+
|
|
23
|
+
> "이미 설정된 컨벤션이 있습니다. 재설정하면 기존 `wiki/conventions/`가 덮어써집니다.
|
|
24
|
+
> 재설정할까요? (yes / no)"
|
|
25
|
+
|
|
26
|
+
- `no` → 종료
|
|
27
|
+
- `yes` → Step 0.5로 진행
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Step 0.5 — 코드베이스 스캔 (기존 프로젝트 감지)
|
|
32
|
+
|
|
33
|
+
코드베이스에 **소스 파일이 있는지** 확인한다 (`.git/`, `wiki/`, `skills/`, `scripts/` 제외).
|
|
34
|
+
|
|
35
|
+
- **소스 파일이 없으면** (완전히 빈 새 프로젝트): 스캔 생략, Step 1로 진행
|
|
36
|
+
- **소스 파일이 있으면** (기존 프로젝트): 아래 스캔을 실행한다
|
|
37
|
+
|
|
38
|
+
### 스캔 항목
|
|
39
|
+
|
|
40
|
+
| 항목 | 방법 |
|
|
41
|
+
|---|---|
|
|
42
|
+
| 주 언어 | 파일 확장자 빈도 (`find . -name "*.py" -o -name "*.ts" ...` 등) |
|
|
43
|
+
| 테스트 프레임워크 | `pytest.ini`, `setup.cfg [tool:pytest]`, `jest.config.*`, `vitest.config.*`, `go test`, `*.test.ts` 존재 여부 |
|
|
44
|
+
| 패키지 매니저·의존성 | `requirements.txt`, `pyproject.toml`, `package.json`, `go.mod`, `Cargo.toml` 읽기 |
|
|
45
|
+
| 폴더 구조 | 최상위 폴더명 목록 → feature-based / layer-based / flat 판단 |
|
|
46
|
+
| Git 커밋 형식 | `git log --oneline -20` → "feat:", "fix:", "[JIRA-]" 등 패턴 분석 |
|
|
47
|
+
| 브랜치 전략 | `git branch -a` → main/develop/feature/* 등 패턴 |
|
|
48
|
+
| 네이밍 패턴 | 실제 파일명 샘플 10개 → snake_case / camelCase / PascalCase 판단 |
|
|
49
|
+
|
|
50
|
+
### 스캔 결과 출력
|
|
51
|
+
|
|
52
|
+
```text
|
|
53
|
+
기존 코드베이스 감지 — 컨벤션을 추론했어요
|
|
54
|
+
|
|
55
|
+
✅ 확실 Python 3.x / FastAPI (requirements.txt에서 확인)
|
|
56
|
+
✅ 확실 pytest 사용 중 (pytest.ini 존재)
|
|
57
|
+
✅ 확실 커밋 형식 "feat: / fix:" (최근 15/20 커밋 적합)
|
|
58
|
+
⚠️ 추정 폴더 구조 layer-based (src/, tests/, docs/ 감지)
|
|
59
|
+
⚠️ 추정 함수명 snake_case (파일명 샘플 8/10 적합)
|
|
60
|
+
❓ 불명확 브랜치 전략 — main 1개만 존재
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
인터뷰 중 해당 카테고리에서 `(감지: pytest)` 형식으로 사전 제안값을 보여주고,
|
|
64
|
+
사용자가 확인 또는 수정할 수 있게 한다.
|
|
65
|
+
|
|
66
|
+
Step 1로 진행한다.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Step 1 — 인터뷰 개요 안내
|
|
71
|
+
|
|
72
|
+
다음 14개 카테고리를 보여주고 시작 여부를 확인한다:
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
인터뷰 카테고리 (예상 소요: 2~3시간)
|
|
76
|
+
|
|
77
|
+
1. 프로젝트 개요 8. HITL 리스크 기준
|
|
78
|
+
2. 기술 스택 9. 대시보드 설정
|
|
79
|
+
3. 네이밍 컨벤션 10. 코드리뷰 체크리스트
|
|
80
|
+
4. Git 컨벤션 11. 에러 핸들링
|
|
81
|
+
5. 아키텍처 규칙 12. 보안 컨벤션
|
|
82
|
+
6. TDD 규칙 13. 의존성 관리
|
|
83
|
+
7. devlog 템플릿 14. AI 비서 페르소나 (SOUL.md)
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
> "각 카테고리가 끝날 때마다 `wiki/conventions/` 페이지가 생성됩니다.
|
|
87
|
+
> 중간에 중단해도 완료된 카테고리는 보존됩니다. 시작할까요?"
|
|
88
|
+
|
|
89
|
+
- `yes` → Step 2로 진행
|
|
90
|
+
- `no` → 종료
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Step 2 — 카테고리별 인터뷰
|
|
95
|
+
|
|
96
|
+
각 카테고리를 순서대로 진행한다. **카테고리마다 아래 사이클을 반복한다:**
|
|
97
|
+
|
|
98
|
+
```text
|
|
99
|
+
[카테고리명] 시작 알림
|
|
100
|
+
→ Step 0.5 스캔 결과 중 해당 카테고리 관련 추론값이 있으면 먼저 보여준다
|
|
101
|
+
예: "현재 코드 기준으로 pytest 감지. 이걸로 확정할까요?"
|
|
102
|
+
→ 서브 질문들을 하나씩 순서대로 질문 (이미 추론된 항목은 확인만)
|
|
103
|
+
→ 각 답변마다 ambiguity-check.md 실행
|
|
104
|
+
→ 모든 서브 질문 완료
|
|
105
|
+
→ 카테고리 요약 보여주고 확인
|
|
106
|
+
→ wiki/conventions/[슬러그].md 즉시 생성
|
|
107
|
+
→ 다음 카테고리로
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**사전 제안값 표시 형식:**
|
|
111
|
+
|
|
112
|
+
> "테스트 프레임워크는 **pytest** (감지됨)로 확정할까요? 다른 게 있으면 말해줘."
|
|
113
|
+
|
|
114
|
+
스캔 결과가 없는 항목은 기존 인터뷰 방식과 동일하게 질문한다.
|
|
115
|
+
|
|
116
|
+
### ambiguity-check 규칙
|
|
117
|
+
|
|
118
|
+
모든 답변에 대해 `skills/wiki/references/ambiguity-check.md`의 기준을 적용한다.
|
|
119
|
+
기준을 통과할 때까지 follow-up을 멈추지 않는다.
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
### 카테고리 1 — 프로젝트 개요
|
|
124
|
+
**파일**: `wiki/conventions/01-project-overview.md`
|
|
125
|
+
|
|
126
|
+
서브 질문:
|
|
127
|
+
1. 이 프로젝트로 무엇을 달성하려 해?
|
|
128
|
+
2. 완성 기준이 뭐야? 어떻게 되면 끝이야?
|
|
129
|
+
3. 마일스톤이 있어? 몇 단계야?
|
|
130
|
+
4. 데드라인이 있어?
|
|
131
|
+
5. 혼자야 팀이야? 팀이면 역할 분담은?
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
### 카테고리 2 — 기술 스택
|
|
136
|
+
**파일**: `wiki/conventions/02-tech-stack.md`
|
|
137
|
+
|
|
138
|
+
서브 질문:
|
|
139
|
+
1. 주 언어가 뭐야?
|
|
140
|
+
2. 프레임워크가 정해졌어?
|
|
141
|
+
3. DB를 쓸 거야? 어떤 거?
|
|
142
|
+
4. 배포 환경은?
|
|
143
|
+
5. 외부 API 연동이 있어?
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
### 카테고리 3 — 네이밍 컨벤션
|
|
148
|
+
**파일**: `wiki/conventions/03-naming.md`
|
|
149
|
+
|
|
150
|
+
서브 질문:
|
|
151
|
+
1. 변수·함수명 스타일이 뭐야? (snake_case, camelCase, PascalCase...)
|
|
152
|
+
2. 클래스명 규칙은?
|
|
153
|
+
3. 파일명 규칙은?
|
|
154
|
+
4. 폴더 구조 패턴은? (feature-based, layer-based...)
|
|
155
|
+
5. 상수 표기법은?
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
### 카테고리 4 — Git 컨벤션
|
|
160
|
+
**파일**: `wiki/conventions/04-git.md`
|
|
161
|
+
|
|
162
|
+
서브 질문:
|
|
163
|
+
1. 브랜치 전략이 뭐야? (Git Flow, GitHub Flow...)
|
|
164
|
+
2. 브랜치명 형식은? (feat/, fix/, hotfix/...)
|
|
165
|
+
3. 커밋 메시지 형식은?
|
|
166
|
+
4. PR은 어떻게 올려? 리뷰어 지정이 있어?
|
|
167
|
+
5. merge 방식은? (squash, rebase, merge commit)
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
### 카테고리 5 — 아키텍처 규칙
|
|
172
|
+
**파일**: `wiki/conventions/05-architecture.md`
|
|
173
|
+
|
|
174
|
+
서브 질문:
|
|
175
|
+
1. 폴더 구조 패턴이 뭐야? (MVC, Clean Architecture, DDD...)
|
|
176
|
+
2. 레이어 간 의존성 방향 규칙이 있어?
|
|
177
|
+
3. 레이어 간 통신 방식은?
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
### 카테고리 6 — TDD 규칙
|
|
182
|
+
**파일**: `wiki/conventions/06-tdd.md`
|
|
183
|
+
|
|
184
|
+
서브 질문:
|
|
185
|
+
1. 테스트 프레임워크가 뭐야?
|
|
186
|
+
2. 테스트 파일 위치는? (같은 폴더? tests/ 폴더?)
|
|
187
|
+
3. 테스트명 형식은?
|
|
188
|
+
4. 최소 커버리지 기준은?
|
|
189
|
+
5. 단위·통합·E2E 어디까지 할 거야?
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
### 카테고리 7 — devlog 템플릿
|
|
194
|
+
**파일**: `wiki/conventions/07-devlog.md`
|
|
195
|
+
|
|
196
|
+
서브 질문:
|
|
197
|
+
1. 각 devlog 항목에 뭐가 들어가야 해?
|
|
198
|
+
2. 공유 대상이 누구야? (팀원, 상사, 공개?)
|
|
199
|
+
3. 형식은? (bullet, 서술형...)
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
### 카테고리 8 — HITL 리스크 기준
|
|
204
|
+
**파일**: `wiki/conventions/08-hitl-risk.md`
|
|
205
|
+
|
|
206
|
+
서브 질문:
|
|
207
|
+
1. 반드시 사람이 확인해야 하는 변경이 뭐야? (HIGH)
|
|
208
|
+
2. 자동 승인해도 되는 변경은? (LOW)
|
|
209
|
+
3. 알림만 받고 싶은 중간 수준은? (MEDIUM)
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
### 카테고리 9 — 대시보드 설정
|
|
214
|
+
**파일**: `wiki/conventions/09-dashboard.md`
|
|
215
|
+
|
|
216
|
+
서브 질문:
|
|
217
|
+
1. 가장 먼저 보고 싶은 정보가 뭐야?
|
|
218
|
+
2. 오늘 할 일 목록은 어떻게 보여줄까?
|
|
219
|
+
3. 마일스톤 진행도가 보여야 해?
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
### 카테고리 10 — 코드리뷰 체크리스트
|
|
224
|
+
**파일**: `wiki/conventions/10-code-review.md`
|
|
225
|
+
|
|
226
|
+
서브 질문:
|
|
227
|
+
1. PR 올리기 전 스스로 확인해야 할 것들이 뭐야?
|
|
228
|
+
2. 리뷰어가 반드시 봐야 할 것들은?
|
|
229
|
+
3. 자동으로 체크할 수 있는 게 뭐야?
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
### 카테고리 11 — 에러 핸들링
|
|
234
|
+
**파일**: `wiki/conventions/11-error-handling.md`
|
|
235
|
+
|
|
236
|
+
서브 질문:
|
|
237
|
+
1. 예외 처리 방식이 뭐야? (try-except 어디까지?)
|
|
238
|
+
2. 로깅 레벨 기준은? (DEBUG, INFO, ERROR 언제?)
|
|
239
|
+
3. 에러 메시지 형식은?
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
### 카테고리 12 — 보안 컨벤션
|
|
244
|
+
**파일**: `wiki/conventions/12-security.md`
|
|
245
|
+
|
|
246
|
+
서브 질문:
|
|
247
|
+
1. 환경변수 관리 방식이 뭐야? (.env, secret manager...)
|
|
248
|
+
2. 코드에 절대 하드코딩 금지인 것들은?
|
|
249
|
+
3. 인증·인가 처리 규칙이 있어?
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
### 카테고리 13 — 의존성 관리
|
|
254
|
+
**파일**: `wiki/conventions/13-dependencies.md`
|
|
255
|
+
|
|
256
|
+
서브 질문:
|
|
257
|
+
1. 패키지 추가 전 승인이 필요해?
|
|
258
|
+
2. 버전 고정 정책은? (pin, range...)
|
|
259
|
+
3. 허용·금지 패키지 목록이 있어?
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
### 카테고리 14 — AI 비서 페르소나
|
|
264
|
+
**파일**: `SOUL.md` (프로젝트 무관, 영구 보존)
|
|
265
|
+
|
|
266
|
+
> 이 카테고리만 wiki/conventions/ 가 아닌 루트 SOUL.md를 갱신한다.
|
|
267
|
+
> 프로젝트가 바뀌어도 비서 성격은 유지되어야 하기 때문이다.
|
|
268
|
+
|
|
269
|
+
서브 질문:
|
|
270
|
+
1. 말투는 어떻게 해줘? (격식체/비격식체, 반말/존댓말)
|
|
271
|
+
2. 내 개발 경험 수준은 어느 정도야? (설명 깊이 기준)
|
|
272
|
+
3. 틀린 게 있으면 바로 말해줘 vs 부드럽게 유도해줘?
|
|
273
|
+
4. 모르면 먼저 물어봐 vs 일단 시도해봐?
|
|
274
|
+
5. 주로 어떤 언어로 대화할 거야?
|
|
275
|
+
|
|
276
|
+
완료 후 SOUL.md를 답변 기반으로 갱신한다. 기존 SOUL.md가 있으면 덮어쓴다.
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## Step 3 — AGENT.md 생성
|
|
281
|
+
|
|
282
|
+
모든 14개 카테고리 완료 후 `AGENT.md`를 생성한다.
|
|
283
|
+
|
|
284
|
+
### AGENT.md 구조
|
|
285
|
+
|
|
286
|
+
```markdown
|
|
287
|
+
# AGENT.md — [프로젝트명] 에이전트 지시서
|
|
288
|
+
|
|
289
|
+
## 프로젝트 개요
|
|
290
|
+
(카테고리 1 요약)
|
|
291
|
+
|
|
292
|
+
## 기술 스택
|
|
293
|
+
(카테고리 2 요약)
|
|
294
|
+
|
|
295
|
+
## 핵심 불변 규칙 (항상 적용)
|
|
296
|
+
|
|
297
|
+
### TDD 강제
|
|
298
|
+
- 기능 코드 작성 전 반드시 테스트 파일 먼저 작성
|
|
299
|
+
- (카테고리 6의 TDD 규칙 핵심 embed)
|
|
300
|
+
|
|
301
|
+
### HITL 리스크 기준
|
|
302
|
+
- HIGH: 반드시 사람 확인 후 진행
|
|
303
|
+
- MEDIUM: 비동기 알림
|
|
304
|
+
- LOW: 자동 승인
|
|
305
|
+
(카테고리 8의 리스크 기준 embed)
|
|
306
|
+
|
|
307
|
+
### 보안 필수 규칙
|
|
308
|
+
- (카테고리 12의 핵심 규칙 embed)
|
|
309
|
+
|
|
310
|
+
## 컨벤션 참조
|
|
311
|
+
작업 전 관련 컨벤션 페이지를 읽고 따른다:
|
|
312
|
+
- 네이밍: @wiki/conventions/03-naming.md
|
|
313
|
+
- Git: @wiki/conventions/04-git.md
|
|
314
|
+
- 아키텍처: @wiki/conventions/05-architecture.md
|
|
315
|
+
- TDD: @wiki/conventions/06-tdd.md
|
|
316
|
+
- 에러 핸들링: @wiki/conventions/11-error-handling.md
|
|
317
|
+
- 보안: @wiki/conventions/12-security.md
|
|
318
|
+
- 의존성: @wiki/conventions/13-dependencies.md
|
|
319
|
+
|
|
320
|
+
## 스킬 사용법
|
|
321
|
+
- /wiki — setup·capture·devlog·ingest·query·lint
|
|
322
|
+
- /brief — 현황 브리핑·dashboard·report·handoff
|
|
323
|
+
- /review — 컨벤션 기반 변경사항 검토
|
|
324
|
+
|
|
325
|
+
## Intent Router
|
|
326
|
+
|
|
327
|
+
사용자가 스킬명을 기억하지 않아도 요청 의도에 따라 관련 스킬을 선택한다:
|
|
328
|
+
- 프로젝트의 현재 상태·다음 우선순위 → /brief
|
|
329
|
+
- 과거 결정·컨벤션·프로젝트 맥락 질문 → /wiki query
|
|
330
|
+
- 회의·결정 기록 → /wiki capture
|
|
331
|
+
- 작업 세션 기록 → /wiki devlog
|
|
332
|
+
- raw 소스 반영 또는 wiki 품질 점검 → /wiki ingest 또는 /wiki lint
|
|
333
|
+
- PR·push 전 변경사항 검토 → /review
|
|
334
|
+
|
|
335
|
+
## 비서 페르소나
|
|
336
|
+
@SOUL.md
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
## wiki/conventions/ 페이지 형식
|
|
342
|
+
|
|
343
|
+
각 페이지의 모든 규칙은 다음 4필드로 작성한다:
|
|
344
|
+
|
|
345
|
+
```markdown
|
|
346
|
+
---
|
|
347
|
+
title: "[카테고리명]"
|
|
348
|
+
type: convention
|
|
349
|
+
created: YYYY-MM-DD
|
|
350
|
+
updated: YYYY-MM-DD
|
|
351
|
+
---
|
|
352
|
+
|
|
353
|
+
# [카테고리명]
|
|
354
|
+
|
|
355
|
+
## [규칙명]
|
|
356
|
+
|
|
357
|
+
| 항목 | 내용 |
|
|
358
|
+
|---|---|
|
|
359
|
+
| **규칙** | 구체적인 규칙 서술 |
|
|
360
|
+
| **이유** | 이 규칙을 정한 이유 |
|
|
361
|
+
| **예시** | 올바른 예 / 잘못된 예 |
|
|
362
|
+
| **위반 시** | 에이전트·훅이 취할 액션 |
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## Step 4 — Graphify 설치
|
|
368
|
+
|
|
369
|
+
AGENT.md 생성 완료 후 graphify 설치 여부를 확인한다.
|
|
370
|
+
|
|
371
|
+
```bash
|
|
372
|
+
command -v graphify
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
- **설치되어 있으면**: 조용히 넘어간다.
|
|
376
|
+
- **설치 안 되어 있으면**: 한 줄로 안내한다.
|
|
377
|
+
|
|
378
|
+
> "wiki/ 쿼리 토큰을 최대 71.5배 절감할 수 있는 Graphify가 없어요. 설치할까요? (`pip install graphifyy && graphify install`)"
|
|
379
|
+
|
|
380
|
+
- **Yes** → 명령어 실행 후 완료 안내
|
|
381
|
+
- **No** → 조용히 건너뜀. 나중에 `/wiki ingest` 실행 시 재안내됨
|
|
382
|
+
|
|
383
|
+
---
|
|
384
|
+
|
|
385
|
+
## 규칙
|
|
386
|
+
|
|
387
|
+
| 항목 | 규칙 |
|
|
388
|
+
|---|---|
|
|
389
|
+
| ambiguity-check | 모든 답변에 반드시 실행. 통과할 때까지 follow-up |
|
|
390
|
+
| 중단 복구 | 이미 생성된 카테고리 파일은 재실행 시 스킵 가능 |
|
|
391
|
+
| 카테고리 순서 | 1→14 순서 고정. 건너뛰기 불가 |
|
|
392
|
+
| AGENT.md 생성 | 14개 전부 완료 후에만 생성 |
|
|
393
|
+
| SOUL.md | 카테고리 14 완료 시 갱신. AGENT.md와 별도로 영구 보존 |
|
|
394
|
+
| 기존 파일 덮어쓰기 | Step 0에서 명시적 동의 받은 경우에만 허용 |
|
|
395
|
+
| 코드베이스 스캔 | Step 0.5는 읽기만. 어떤 파일도 수정하지 않는다 |
|
|
396
|
+
| 사전 제안값 | 추론이 불명확(❓)한 항목은 제안 없이 직접 질문 |
|
|
397
|
+
| 스캔 실패 시 | 항목별로 조용히 건너뜀. 전체 스캔 실패해도 인터뷰 계속 진행 |
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# unclear-path — UNCLEAR 경로 상세 절차
|
|
2
|
+
|
|
3
|
+
`ambiguity-check.md`에서 **UNCLEAR**로 분류됐거나,
|
|
4
|
+
CLEAR 경로에서 follow-up 2회 초과 후에도 모호한 항목의 처리 절차.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 원칙
|
|
9
|
+
|
|
10
|
+
질문하지 않는다. **연구(스캔 결과·기본값)로 해결한다.**
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 처리 순서
|
|
15
|
+
|
|
16
|
+
```text
|
|
17
|
+
1. Step 0.5 스캔 결과에 해당 항목이 있나?
|
|
18
|
+
→ YES: 스캔 결과를 기본값으로 채택
|
|
19
|
+
|
|
20
|
+
2. 없으면: 해당 카테고리의 업계 표준 기본값 채택
|
|
21
|
+
예) 테스트 커버리지 미결정 → "80% (업계 일반 기준)"
|
|
22
|
+
|
|
23
|
+
3. 기본값 설정 후 다음 형식으로 한 줄 기록:
|
|
24
|
+
"(기본값) [항목]: [값] — 나중에 /wiki setup으로 바꿀 수 있어."
|
|
25
|
+
|
|
26
|
+
4. 여전히 기본값 선택 불가 (irreversible·보안·위험 항목):
|
|
27
|
+
딱 하나의 집중 질문만 허용.
|
|
28
|
+
"이것만 결정해줘: [핵심 선택지 A vs B]"
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## TBD 처리 (최후 수단)
|
|
34
|
+
|
|
35
|
+
기본값도 없고, 집중 질문에도 답이 없는 경우:
|
|
36
|
+
|
|
37
|
+
> "지금은 `TBD`로 표시하고 넘어갈게. 나중에 `/wiki setup`으로 이 항목만 다시 정할 수 있어."
|
|
38
|
+
|
|
39
|
+
`wiki/conventions/[해당카테고리].md`에 해당 항목을 `TBD`로 기록한다.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 기록 형식
|
|
44
|
+
|
|
45
|
+
```markdown
|
|
46
|
+
| 항목 | 값 | 출처 |
|
|
47
|
+
|---|---|---|
|
|
48
|
+
| 테스트 커버리지 | 80% | 기본값 (업계 기준) |
|
|
49
|
+
| 브랜치 전략 | Git Flow | Step 0.5 스캔 감지 |
|
|
50
|
+
| PR merge 방식 | TBD | 미결정 |
|
|
51
|
+
```
|