claude-prism 0.4.0 → 0.5.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/README.md +47 -45
- package/bin/cli.mjs +4 -12
- package/hooks/scope-guard.mjs +21 -1
- package/lib/config.mjs +0 -2
- package/lib/installer.mjs +8 -21
- package/lib/messages.mjs +12 -51
- package/lib/pipeline.mjs +0 -2
- package/package.json +2 -3
- package/templates/commands/claude-prism/checkpoint.md +17 -1
- package/templates/commands/claude-prism/prism.md +19 -6
- package/templates/{rules.en.md → rules.md} +33 -3
- package/templates/skills/prism/SKILL.md +19 -6
- package/README.ko.md +0 -444
- package/templates/rules.ja.md +0 -249
- package/templates/rules.ko.md +0 -249
- package/templates/rules.zh.md +0 -249
|
@@ -105,11 +105,16 @@ One sentence: what we're building and why.
|
|
|
105
105
|
Tech stack, key decisions, 2-3 sentences max.
|
|
106
106
|
|
|
107
107
|
## Batch 1: [Name]
|
|
108
|
-
- [ ] Task 1.1: [description] → `path/to/file`
|
|
108
|
+
- [ ] Task 1.1: [S] [description] | Verify: Build → `path/to/file`
|
|
109
|
+
- Pass criterion: [specific assertion]
|
|
110
|
+
- [ ] Task 1.2: [M] [description] | Verify: TDD → `path/to/file`
|
|
111
|
+
- Prerequisite: Task 1.1
|
|
112
|
+
- Test: `path/to/test` — [what it verifies]
|
|
113
|
+
- Pass criterion: [specific assertion]
|
|
114
|
+
- [ ] Task 1.3: [L] [description] | Verify: TDD → `path/to/file`
|
|
115
|
+
- Prerequisite: Task 1.1, Task 1.2
|
|
109
116
|
- Test: `path/to/test` — [what it verifies]
|
|
110
117
|
- Pass criterion: [specific assertion]
|
|
111
|
-
- [ ] Task 1.2: ...
|
|
112
|
-
- [ ] Task 1.3: ...
|
|
113
118
|
|
|
114
119
|
## Batch 2: [Name]
|
|
115
120
|
- [ ] Task 2.1: ...
|
|
@@ -118,6 +123,20 @@ Tech stack, key decisions, 2-3 sentences max.
|
|
|
118
123
|
- [Known unknowns or potential blockers]
|
|
119
124
|
```
|
|
120
125
|
|
|
126
|
+
### 2-6. Task Sizing and Pre-Decomposition Check
|
|
127
|
+
|
|
128
|
+
**Size Tags (assign to every task):**
|
|
129
|
+
- **[S]** Small: <30 LOC, config/style/single-function changes
|
|
130
|
+
- **[M]** Medium: 30-100 LOC, feature implementation, component creation
|
|
131
|
+
- **[L]** Large: >100 LOC, multi-file rewrite, new module/architecture
|
|
132
|
+
|
|
133
|
+
**Batch composition by size**: S+S+M = 1 batch, L = 1 batch alone, S+S+S+S = 1 batch
|
|
134
|
+
|
|
135
|
+
**Pre-decomposition checklist (before creating plan):**
|
|
136
|
+
- [ ] Required types/interfaces have the necessary fields?
|
|
137
|
+
- [ ] External package APIs behave as expected?
|
|
138
|
+
- [ ] Cross-package dependencies identified and noted as prerequisites?
|
|
139
|
+
|
|
121
140
|
---
|
|
122
141
|
|
|
123
142
|
## 3. EXECUTE — Execution Protocol
|
|
@@ -212,6 +231,17 @@ After each batch:
|
|
|
212
231
|
- Preview next batch
|
|
213
232
|
- "Continue?"
|
|
214
233
|
|
|
234
|
+
**Checkpoint frequency policy:**
|
|
235
|
+
- **Phase boundary**: always stop (mandatory)
|
|
236
|
+
- **Batch boundary**: stop by default → after 3 consecutive approvals, increase batch size to 5-8 for the remainder of the phase
|
|
237
|
+
- **Blocker encountered**: always stop (mandatory)
|
|
238
|
+
|
|
239
|
+
**Progress dashboard (include at each checkpoint):**
|
|
240
|
+
```
|
|
241
|
+
Phase: [current phase] | Batch: [N/M] | Tasks: [done/total] ([%])
|
|
242
|
+
[████████░░] 80% — Next: [next batch name]
|
|
243
|
+
```
|
|
244
|
+
|
|
215
245
|
### 4-2. Direction Change
|
|
216
246
|
|
|
217
247
|
User says "change direction" → return to UNDERSTAND
|
|
@@ -71,8 +71,15 @@ AI agents optimize for speed, not correctness. Without structure, they skip unde
|
|
|
71
71
|
- Independent verification: each unit has a pass criterion
|
|
72
72
|
- Files specified: list files to create/modify per unit
|
|
73
73
|
- Dependencies noted: mark if unit depends on a previous one
|
|
74
|
-
9. **
|
|
75
|
-
|
|
74
|
+
9. **Assign size tags** to every task: [S] <30 LOC, [M] 30-100 LOC, [L] >100 LOC
|
|
75
|
+
- Batch composition: S+S+M = 1 batch, L = 1 batch alone
|
|
76
|
+
10. **Assign verification strategy** per task: `| Verify: TDD` or `| Verify: Build` or `| Verify: Visual`
|
|
77
|
+
11. **Pre-decomposition checklist**:
|
|
78
|
+
- Required types/interfaces have the necessary fields?
|
|
79
|
+
- External package APIs behave as expected?
|
|
80
|
+
- Cross-package dependencies identified and noted as prerequisites?
|
|
81
|
+
12. **Save plan** to `docs/plans/YYYY-MM-DD-<topic>.md`
|
|
82
|
+
13. **Get approval**: "Proceed with this plan?"
|
|
76
83
|
|
|
77
84
|
## E — EXECUTE
|
|
78
85
|
|
|
@@ -99,15 +106,21 @@ AI agents optimize for speed, not correctness. Without structure, they skip unde
|
|
|
99
106
|
|
|
100
107
|
## C — CHECKPOINT
|
|
101
108
|
|
|
102
|
-
|
|
109
|
+
20. After each batch, report using this format:
|
|
103
110
|
|
|
104
111
|
| Item | Before | After |
|
|
105
112
|
|------|--------|-------|
|
|
106
113
|
| [what changed] | [old behavior] | [new behavior] |
|
|
107
114
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
115
|
+
```
|
|
116
|
+
Phase: [current] | Batch: [N/M] | Tasks: [done/total] ([%])
|
|
117
|
+
[████████░░] 80% — Next: [next batch name]
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
21. Include: verification results, files modified, tests status
|
|
121
|
+
22. **Checkpoint policy**: after 3 consecutive approvals, increase batch size to 5-8 for the rest of the phase
|
|
122
|
+
23. Ask: "Continue to next batch?"
|
|
123
|
+
24. User can redirect, adjust scope, or stop at any checkpoint
|
|
111
124
|
|
|
112
125
|
## OMC Integration
|
|
113
126
|
|
package/README.ko.md
DELETED
|
@@ -1,444 +0,0 @@
|
|
|
1
|
-
# claude-prism
|
|
2
|
-
|
|
3
|
-
AI 코딩 문제 분해 도구 — Understand, Decompose, Execute, Checkpoint (UDEC)
|
|
4
|
-
|
|
5
|
-
```
|
|
6
|
-
╱╲
|
|
7
|
-
━━━━━━━━━▶ ╱ ╲ ──── U 이해 (Understand)
|
|
8
|
-
복잡한 ╱ ╲ ──── D 분해 (Decompose)
|
|
9
|
-
문제 ╱ PRISM╲──── E 실행 (Execute)
|
|
10
|
-
╱________╲─── C 확인 (Checkpoint)
|
|
11
|
-
스펙트럼
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
[](https://www.npmjs.com/package/claude-prism)
|
|
15
|
-
[](https://github.com/lazysaturday91/claude-prism/blob/main/LICENSE)
|
|
16
|
-
[](https://nodejs.org)
|
|
17
|
-
|
|
18
|
-
> `ai-coding` · `problem-decomposition` · `claude-code-hooks` · `claude-code-plugin` · `udec` · `scope-guard`
|
|
19
|
-
|
|
20
|
-
## 무엇인가
|
|
21
|
-
|
|
22
|
-
`claude-prism`은 UDEC 방법론 프레임워크를 Claude Code 프로젝트에 설치합니다.
|
|
23
|
-
|
|
24
|
-
- **U**nderstand (이해) — 행동하기 전에 정보 충분성을 판별. 구조화된 질문 (한 번에 하나씩, 객관식, 최대 3라운드)
|
|
25
|
-
- **D**ecompose (분해) — 복잡한 문제를 2-5분 크기의 검증 가능한 단위로 분해, TDD 기반
|
|
26
|
-
- **E**xecute (실행) — 적응형 배치 실행, 파일 경로별 컨텍스트 인식 검증 (TDD / 빌드 / lint-only)
|
|
27
|
-
- **C**heckpoint (확인) — 매 배치 후 보고, 다음 진행 전 사용자 확인
|
|
28
|
-
|
|
29
|
-
## 핵심 철학
|
|
30
|
-
|
|
31
|
-
> 이해하지 않은 것을 구현하지 마라. 분해하지 않은 것을 실행하지 마라.
|
|
32
|
-
|
|
33
|
-
AI 코딩의 가장 비싼 실패는 나쁜 코드가 아니라 — **틀린 것을 만드는 것**이다. AI 에이전트는 이해를 건너뛰고, 분해를 건너뛰고, 30분간 자율 실행한 뒤 사용자가 원하지 않은 것을 만들어냄. Prism은 CLAUDE.md에 방법론 규칙을 주입하여 Claude의 사고방식을 바꾼다.
|
|
34
|
-
|
|
35
|
-
## 설치
|
|
36
|
-
|
|
37
|
-
프로젝트 루트에서:
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
npx claude-prism init # 영어, hook 포함
|
|
41
|
-
npx claude-prism init --lang=ko # 한국어
|
|
42
|
-
npx claude-prism init --lang=ja # 일본어
|
|
43
|
-
npx claude-prism init --lang=zh # 중국어
|
|
44
|
-
npx claude-prism init --no-hooks # 규칙만, hook 없이
|
|
45
|
-
prism check # 설치 확인
|
|
46
|
-
npx claude-prism init --global # 글로벌 스킬로 설치 (모든 프로젝트에서 사용)
|
|
47
|
-
npx claude-prism update # 규칙과 커맨드를 최신으로 업데이트
|
|
48
|
-
npx claude-prism update --global # 글로벌 스킬도 업데이트
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## 설치 후 구조
|
|
52
|
-
|
|
53
|
-
```
|
|
54
|
-
프로젝트/
|
|
55
|
-
├── CLAUDE.md # PRISM:START ~ PRISM:END 규칙 주입
|
|
56
|
-
├── .claude-prism.json # 설정 (언어, hook 옵션)
|
|
57
|
-
├── .claude/
|
|
58
|
-
│ ├── commands/
|
|
59
|
-
│ │ └── claude-prism/ # 네임스페이스 커맨드
|
|
60
|
-
│ │ ├── prism.md # /claude-prism:prism
|
|
61
|
-
│ │ ├── checkpoint.md # /claude-prism:checkpoint
|
|
62
|
-
│ │ ├── plan.md # /claude-prism:plan
|
|
63
|
-
│ │ ├── doctor.md # /claude-prism:doctor
|
|
64
|
-
│ │ ├── stats.md # /claude-prism:stats
|
|
65
|
-
│ │ ├── help.md # /claude-prism:help
|
|
66
|
-
│ │ └── update.md # /claude-prism:update
|
|
67
|
-
│ ├── hooks/ # (선택, --no-hooks 시 생략)
|
|
68
|
-
│ │ ├── commit-guard.mjs
|
|
69
|
-
│ │ ├── debug-loop.mjs
|
|
70
|
-
│ │ ├── test-tracker.mjs
|
|
71
|
-
│ │ └── scope-guard.mjs
|
|
72
|
-
│ ├── rules/ # hook 규칙 로직
|
|
73
|
-
│ │ ├── commit-guard.mjs
|
|
74
|
-
│ │ ├── debug-loop.mjs
|
|
75
|
-
│ │ ├── test-tracker.mjs
|
|
76
|
-
│ │ └── scope-guard.mjs
|
|
77
|
-
│ ├── lib/ # hook 의존 모듈
|
|
78
|
-
│ │ ├── adapter.mjs
|
|
79
|
-
│ │ ├── state.mjs
|
|
80
|
-
│ │ ├── config.mjs
|
|
81
|
-
│ │ └── utils.mjs
|
|
82
|
-
│ └── settings.json # Claude Code hook 등록
|
|
83
|
-
└── docs/plans/ # /claude-prism:prism 실행 시 계획 파일 생성
|
|
84
|
-
└── YYYY-MM-DD-주제.md
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
## 커맨드
|
|
88
|
-
|
|
89
|
-
### 커맨드 레퍼런스
|
|
90
|
-
|
|
91
|
-
| 커맨드 | 언제 사용 | 목적 |
|
|
92
|
-
|--------|----------|------|
|
|
93
|
-
| `/claude-prism:prism` | 모든 작업 (코드/분석) | UDEC 전체 사이클; 분석 요청 시 U 단계에서 자동 정지 |
|
|
94
|
-
| `/claude-prism:plan` | 플랜 파일 관리 | 플랜 목록 조회, 생성, 진행률 |
|
|
95
|
-
| `/claude-prism:checkpoint` | 작업 중간 | 배치 진행 확인, 다음 미리보기 |
|
|
96
|
-
| `/claude-prism:doctor` | 설치 문제 | 건강 진단, 수정 제안 |
|
|
97
|
-
| `/claude-prism:stats` | 현재 상태 | 버전, hooks, 언어, 플랜 진행률 |
|
|
98
|
-
| `/claude-prism:help` | 커맨드 확인 | 커맨드 레퍼런스 |
|
|
99
|
-
| `/claude-prism:update` | 업데이트 후 | 규칙과 커맨드를 최신 버전으로 업데이트 |
|
|
100
|
-
|
|
101
|
-
### 워크플로우
|
|
102
|
-
|
|
103
|
-
```
|
|
104
|
-
사용자 요청 도착
|
|
105
|
-
│
|
|
106
|
-
▼
|
|
107
|
-
모호한가? ──Yes──▶ /claude-prism:prism (U 단계에서 명확화 후 진행 or 정지)
|
|
108
|
-
│
|
|
109
|
-
No
|
|
110
|
-
▼
|
|
111
|
-
복잡한가? ──Yes──▶ /claude-prism:prism (전체 UDEC)
|
|
112
|
-
│
|
|
113
|
-
No
|
|
114
|
-
▼
|
|
115
|
-
그냥 실행
|
|
116
|
-
│
|
|
117
|
-
▼
|
|
118
|
-
중간 확인 ───────▶ /claude-prism:checkpoint (배치 사이)
|
|
119
|
-
│
|
|
120
|
-
▼
|
|
121
|
-
플랜 관리 ───────▶ /claude-prism:plan (조회/생성)
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
### 실사용 패턴
|
|
125
|
-
|
|
126
|
-
**패턴 1: 기능 구현**
|
|
127
|
-
```
|
|
128
|
-
/claude-prism:prism → "로그인 기능 추가해줘"
|
|
129
|
-
→ Claude 질문: "JWT? 세션?" "OAuth 필요?"
|
|
130
|
-
→ 플랜 생성: docs/plans/2026-02-16-auth.md
|
|
131
|
-
→ Batch 1 실행 (3 tasks)
|
|
132
|
-
/claude-prism:checkpoint → "Batch 1 완료. Batch 2 진행할까요?"
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
**패턴 2: 모호한 요청 정리**
|
|
136
|
-
```
|
|
137
|
-
/claude-prism:prism → "성능 좀 개선해"
|
|
138
|
-
→ Claude: [Insufficient] "어떤 성능?"
|
|
139
|
-
1. 빌드 시간 (next build)
|
|
140
|
-
2. 런타임 (페이지 로딩/렌더링)
|
|
141
|
-
3. 번들 사이즈 (추천)
|
|
142
|
-
→ 합의 도달 → D/E/C 진행 (분석만이면 여기서 정지)
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
**패턴 3: 이전 작업 이어받기**
|
|
146
|
-
```
|
|
147
|
-
/claude-prism:plan → 기존 플랜 목록, 진행률 확인
|
|
148
|
-
/claude-prism:checkpoint → "플랜 X: 5/12 tasks 완료. Batch 3 다음."
|
|
149
|
-
→ "계속" → 실행 재개
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
**패턴 4: 문제 해결**
|
|
153
|
-
```
|
|
154
|
-
/claude-prism:doctor → 설치 건강 확인
|
|
155
|
-
/claude-prism:stats → hooks, 언어, OMC 상태 확인
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
### Before & After
|
|
159
|
-
|
|
160
|
-
**Before (AI 에이전트의 기본 행동)**
|
|
161
|
-
1. 사용자: "auth 모듈 리팩토링해"
|
|
162
|
-
2. AI: (생각 안 하고) 30분 자율 실행
|
|
163
|
-
3. 결과: 사용자가 원하지 않은 구조로 완성
|
|
164
|
-
|
|
165
|
-
**After (Prism 적용)**
|
|
166
|
-
1. 사용자: "auth 모듈 리팩토링해"
|
|
167
|
-
2. Claude (자동 질문):
|
|
168
|
-
- "목표: 기존 API 유지하면서 내부 구조만 개선하는 게 맞나요? (Yes/No)"
|
|
169
|
-
- "범위: 인증/인가 모두? 아니면 인증만?"
|
|
170
|
-
- "테스트: 기존 테스트는 그대로 두고 진행하는 게 맞나요?"
|
|
171
|
-
3. 사용자 확인 후 → 분해 단계 시작
|
|
172
|
-
4. 결과: 의도대로 완성
|
|
173
|
-
|
|
174
|
-
## CLI 커맨드
|
|
175
|
-
|
|
176
|
-
### prism check
|
|
177
|
-
|
|
178
|
-
설치 후 확인:
|
|
179
|
-
|
|
180
|
-
```bash
|
|
181
|
-
prism check
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
출력:
|
|
185
|
-
```
|
|
186
|
-
Commands: ✅
|
|
187
|
-
Rules: ✅
|
|
188
|
-
Hooks: ✅
|
|
189
|
-
Config: ✅
|
|
190
|
-
|
|
191
|
-
Status: ✅ All good
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
CI 통합용 JSON 출력:
|
|
195
|
-
|
|
196
|
-
```bash
|
|
197
|
-
prism check --ci
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
### prism doctor
|
|
201
|
-
|
|
202
|
-
설치 문제 진단 및 해결 방법 제시. oh-my-claudecode (OMC) 감지:
|
|
203
|
-
|
|
204
|
-
```bash
|
|
205
|
-
prism doctor
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
출력 (정상):
|
|
209
|
-
```
|
|
210
|
-
✅ Installation is healthy. No issues found.
|
|
211
|
-
|
|
212
|
-
OMC: ✅ v4.1.1
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
출력 (문제 있음):
|
|
216
|
-
```
|
|
217
|
-
Issues found:
|
|
218
|
-
|
|
219
|
-
❌ CLAUDE.md rules not found
|
|
220
|
-
❌ /claude-prism:prism command not installed
|
|
221
|
-
|
|
222
|
-
Suggested fixes:
|
|
223
|
-
|
|
224
|
-
💡 Run: npx claude-prism init
|
|
225
|
-
💡 Check: .claude/commands/claude-prism/prism.md exists
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
### prism stats
|
|
229
|
-
|
|
230
|
-
설치 상태 요약 (버전, 언어, hook 상태, 계획 파일, OMC 감지):
|
|
231
|
-
|
|
232
|
-
```bash
|
|
233
|
-
prism stats
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
출력:
|
|
237
|
-
```
|
|
238
|
-
Version: v0.3.1
|
|
239
|
-
Language: ko
|
|
240
|
-
Plans: 2 file(s)
|
|
241
|
-
OMC: ✅ v4.1.1
|
|
242
|
-
Hooks:
|
|
243
|
-
✅ commit-guard
|
|
244
|
-
✅ debug-loop
|
|
245
|
-
✅ test-tracker
|
|
246
|
-
✅ scope-guard
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
### prism reset
|
|
250
|
-
|
|
251
|
-
모든 hook 상태 초기화 (편집 횟수, 테스트 시간, 범위 추적). 새 작업 시작이나 대규모 리팩토링 후 사용:
|
|
252
|
-
|
|
253
|
-
```bash
|
|
254
|
-
prism reset
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
출력:
|
|
258
|
-
```
|
|
259
|
-
✅ Hook state cleared (edit counters, test timestamps)
|
|
260
|
-
|
|
261
|
-
🌈 Fresh start. All hooks reset.
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
## Hook (훅)
|
|
265
|
-
|
|
266
|
-
Hook은 선택 사항인 CLI 가드로, 개발 중 규율을 강제합니다. `prism init`에서 설치되며, `--no-hooks`로 건너뜁니다.
|
|
267
|
-
|
|
268
|
-
### commit-guard
|
|
269
|
-
|
|
270
|
-
최근 5분 내에 테스트가 실행되지 않으면 커밋을 차단합니다 (.claude-prism.json의 `maxTestAge`로 설정 가능). `test-tracker`와 함께 작동하여 테스트가 언제 마지막으로 실행되었는지 추적합니다.
|
|
271
|
-
|
|
272
|
-
```json
|
|
273
|
-
{
|
|
274
|
-
"hooks": {
|
|
275
|
-
"commit-guard": {
|
|
276
|
-
"enabled": true,
|
|
277
|
-
"maxTestAge": 300
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
```
|
|
282
|
-
|
|
283
|
-
**동작:**
|
|
284
|
-
- `test-tracker`를 통해 테스트 실행 감지
|
|
285
|
-
- 조건: (현재 시간 - 마지막 테스트 실행 시간) > maxTestAge이면 커밋 차단
|
|
286
|
-
- 테스트 없는 코드 배포 방지
|
|
287
|
-
|
|
288
|
-
### debug-loop
|
|
289
|
-
|
|
290
|
-
같은 파일의 편집 패턴을 분석합니다. **발산 편집** (같은 코드 영역 반복 — 삽질 가능성)과 **수렴 편집** (다른 영역: import, 로직, JSX — 정상적인 점진적 작업)을 구별합니다.
|
|
291
|
-
|
|
292
|
-
```json
|
|
293
|
-
{
|
|
294
|
-
"hooks": {
|
|
295
|
-
"debug-loop": {
|
|
296
|
-
"enabled": true,
|
|
297
|
-
"warnAt": 3,
|
|
298
|
-
"blockAt": 5
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
```
|
|
303
|
-
|
|
304
|
-
**동작:**
|
|
305
|
-
- 스니펫 분석으로 편집 패턴 추적
|
|
306
|
-
- **발산 패턴** (같은 영역): 3회에서 경고, 5회에서 차단
|
|
307
|
-
- **수렴 패턴** (다른 영역): 조용히 통과, 차단도 경고로 다운그레이드
|
|
308
|
-
- 무한 디버깅 루프를 감지하면서 정상적인 다영역 편집은 허용
|
|
309
|
-
|
|
310
|
-
### test-tracker
|
|
311
|
-
|
|
312
|
-
테스트 커맨드 실행을 감지하고 타임스탐프와 성공/실패 상태를 기록합니다. `commit-guard`가 최근 테스트 실행을 확인하는 데 사용합니다.
|
|
313
|
-
|
|
314
|
-
**감지하는 테스트:**
|
|
315
|
-
- `npm test`, `npm run test`
|
|
316
|
-
- `jest`, `vitest`
|
|
317
|
-
- `node --test`
|
|
318
|
-
- `npx mocha`, `mocha`
|
|
319
|
-
- `pytest`
|
|
320
|
-
- `cargo test`
|
|
321
|
-
- `go test`
|
|
322
|
-
- `make test`
|
|
323
|
-
|
|
324
|
-
**설정:**
|
|
325
|
-
```json
|
|
326
|
-
{
|
|
327
|
-
"hooks": {
|
|
328
|
-
"test-tracker": {
|
|
329
|
-
"enabled": true
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
```
|
|
334
|
-
|
|
335
|
-
**동작:**
|
|
336
|
-
- 모든 Bash 커맨드에서 실행
|
|
337
|
-
- 커맨드가 테스트 패턴과 일치하면 타임스탬프 기록
|
|
338
|
-
- 결과 기록 (종료 코드 기반 성공/실패)
|
|
339
|
-
- `commit-guard`가 이 상태를 읽어 커밋 허용/차단
|
|
340
|
-
|
|
341
|
-
### scope-guard
|
|
342
|
-
|
|
343
|
-
세션당 수정된 고유 소스 파일을 추적합니다. 계획 없이 범위가 늘어나면 경고 (범위 크리프 감지). Agent 인식: OMC sub-agent는 더 높은 임계값을 받습니다.
|
|
344
|
-
|
|
345
|
-
```json
|
|
346
|
-
{
|
|
347
|
-
"hooks": {
|
|
348
|
-
"scope-guard": {
|
|
349
|
-
"enabled": true,
|
|
350
|
-
"warnAt": 4,
|
|
351
|
-
"blockAt": 7,
|
|
352
|
-
"agentWarnAt": 8,
|
|
353
|
-
"agentBlockAt": 12
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
```
|
|
358
|
-
|
|
359
|
-
**동작:**
|
|
360
|
-
- 고유 소스 파일 추적 (`.ts`, `.tsx`, `.js`, `.jsx`, `.py`, `.go`, `.rs`, `.java`, `.c`, `.cpp`, `.h`, `.svelte`, `.vue`)
|
|
361
|
-
- 테스트 파일 제외 (`.test.`, `.spec.`, `_test.`)
|
|
362
|
-
- 표준 임계값: 4개 파일에서 경고, 7개에서 차단
|
|
363
|
-
- Agent 임계값 (OMC sub-agent 실행 중): 8개에서 경고, 12개에서 차단
|
|
364
|
-
- 경고: "/claude-prism:prism을 실행하여 작업을 분해하는 것을 고려하세요"
|
|
365
|
-
- 차단: "/claude-prism:prism을 실행하여 계속 진행하기 전에 분해하세요"
|
|
366
|
-
- **플랜 인식**: 플랜 파일 생성 시 (`docs/plans/*.md`) 임계값이 자동으로 2배
|
|
367
|
-
- 표준 + 플랜: 8개에서 경고, 14개에서 차단
|
|
368
|
-
- Agent + 플랜: 16개에서 경고, 24개에서 차단
|
|
369
|
-
|
|
370
|
-
## 설정
|
|
371
|
-
|
|
372
|
-
`.claude-prism.json`을 편집하여 동작 커스터마이즈:
|
|
373
|
-
|
|
374
|
-
```json
|
|
375
|
-
{
|
|
376
|
-
"language": "ko",
|
|
377
|
-
"hooks": {
|
|
378
|
-
"commit-guard": { "enabled": true, "maxTestAge": 300 },
|
|
379
|
-
"debug-loop": { "enabled": true, "warnAt": 3, "blockAt": 5 },
|
|
380
|
-
"test-tracker": { "enabled": true },
|
|
381
|
-
"scope-guard": { "enabled": true, "warnAt": 4, "blockAt": 7, "agentWarnAt": 8, "agentBlockAt": 12 }
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
```
|
|
385
|
-
|
|
386
|
-
**설정 항목:**
|
|
387
|
-
- `language` — 규칙 언어: `en` (영어), `ko` (한국어), `ja` (일본어), `zh` (중국어)
|
|
388
|
-
- `hooks.*` — 개별 hook 활성화/비활성화 또는 임계값 커스터마이즈
|
|
389
|
-
- `hooks.commit-guard.maxTestAge` — 테스트가 오래되었다고 간주되는 시간 (초, 기본값: 300)
|
|
390
|
-
- `hooks.debug-loop.warnAt/blockAt` — 경고/차단을 트리거하는 편집 횟수
|
|
391
|
-
- `hooks.scope-guard.warnAt/blockAt` — 표준 모드의 파일 개수
|
|
392
|
-
- `hooks.scope-guard.agentWarnAt/agentBlockAt` — OMC agent 모드의 파일 개수
|
|
393
|
-
|
|
394
|
-
## OMC (oh-my-claudecode) 통합
|
|
395
|
-
|
|
396
|
-
Prism은 환경에 [oh-my-claudecode](https://github.com/raidenppl/oh-my-claudecode)가 설치되어 있는지 자동으로 감지합니다. OMC가 있으면:
|
|
397
|
-
|
|
398
|
-
- **Agent용 높은 범위 임계값** — Sub-agent는 표준 `warnAt: 4, blockAt: 7` 대신 `agentWarnAt: 8, agentBlockAt: 12` 적용
|
|
399
|
-
- **상태 커맨드에 표시** — `prism stats`와 `prism doctor`에 OMC 감지 버전 표시
|
|
400
|
-
- **별도 설정 불필요** — 자동으로 감지
|
|
401
|
-
|
|
402
|
-
OMC 상태 확인:
|
|
403
|
-
|
|
404
|
-
```bash
|
|
405
|
-
prism stats # "OMC: ✅ v4.1.1" 또는 "OMC: ⏭️ not detected" 표시
|
|
406
|
-
prism doctor # 진단 정보에 OMC 감지 표시
|
|
407
|
-
```
|
|
408
|
-
|
|
409
|
-
이를 통해 OMC agent (executor, architect 등)가 태스크당 더 많은 파일을 수정할 수 있으며, 조직화된 멀티 agent 작업은 단일 agent 개발과 다른 제약 조건을 가짐을 인식합니다.
|
|
410
|
-
|
|
411
|
-
## 기술 사양
|
|
412
|
-
|
|
413
|
-
- **패키지명**: `claude-prism`
|
|
414
|
-
- **버전**: 0.3.1
|
|
415
|
-
- **CLI 커맨드**: `prism`
|
|
416
|
-
- **Node 버전**: >= 18
|
|
417
|
-
- **의존성**: 0 (순수 ESM 모듈)
|
|
418
|
-
- **라이선스**: MIT
|
|
419
|
-
- **저자**: lazysaturday91
|
|
420
|
-
|
|
421
|
-
## 프리즘 은유
|
|
422
|
-
|
|
423
|
-
백색광(복잡한 문제)이 프리즘에 들어가면 스펙트럼(구성요소)으로 분해된다. 각 색깔(단위)을 하나씩 다루고, 다시 합치면 완성된 것.
|
|
424
|
-
|
|
425
|
-
## 프레임워크 상세
|
|
426
|
-
|
|
427
|
-
전체 UDEC 프레임워크 문서는 설치 후 프로젝트의 `CLAUDE.md` 내 `PRISM:START` ~ `PRISM:END` 섹션을 참고하세요.
|
|
428
|
-
|
|
429
|
-
핵심 규칙:
|
|
430
|
-
|
|
431
|
-
1. **정보 충분성 판별** — 요청이 명확한가? 질문이 필요한가?
|
|
432
|
-
2. **최대 3라운드 질문** — 한 번에 하나씩, 객관식 우선
|
|
433
|
-
3. **분해 5원칙** — 단위 크기, 테스트 선행, 독립 검증, 파일 명시, 의존성 명시
|
|
434
|
-
4. **적응형 배치 + 체크포인트** — 복잡도별 배치 크기 조절 (단순 5-8 / 일반 3-4 / 복잡 1-2), 배치마다 보고
|
|
435
|
-
5. **컨텍스트 인식 검증** — 파일 경로별 검증 전략 (lib→TDD, components→빌드, config→lint)
|
|
436
|
-
6. **자기 교정** — 같은 파일 3회 편집 시 멈추고 재검토
|
|
437
|
-
|
|
438
|
-
## 라이선스
|
|
439
|
-
|
|
440
|
-
MIT
|
|
441
|
-
|
|
442
|
-
## Repository
|
|
443
|
-
|
|
444
|
-
https://github.com/lazysaturday91/claude-prism
|