moai-adk 0.3.12__py3-none-any.whl → 0.4.0__py3-none-any.whl

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.

Potentially problematic release.


This version of moai-adk might be problematic. Click here for more details.

Files changed (92) hide show
  1. moai_adk/__init__.py +8 -1
  2. moai_adk/__main__.py +1 -1
  3. moai_adk/cli/commands/__init__.py +1 -1
  4. moai_adk/cli/commands/doctor.py +2 -2
  5. moai_adk/cli/commands/status.py +1 -1
  6. moai_adk/cli/commands/update.py +136 -90
  7. moai_adk/cli/prompts/init_prompts.py +1 -1
  8. moai_adk/core/__init__.py +1 -1
  9. moai_adk/core/git/branch.py +1 -1
  10. moai_adk/core/git/manager.py +1 -1
  11. moai_adk/core/project/detector.py +14 -2
  12. moai_adk/core/quality/__init__.py +1 -1
  13. moai_adk/core/quality/trust_checker.py +1 -1
  14. moai_adk/core/quality/validators/__init__.py +1 -1
  15. moai_adk/core/quality/validators/base_validator.py +1 -1
  16. moai_adk/core/template/__init__.py +1 -1
  17. moai_adk/core/template/backup.py +2 -1
  18. moai_adk/core/template/config.py +24 -0
  19. moai_adk/core/template/languages.py +1 -1
  20. moai_adk/core/template/merger.py +58 -1
  21. moai_adk/core/template/processor.py +41 -12
  22. moai_adk/templates/.claude/agents/alfred/cc-manager.md +558 -3
  23. moai_adk/templates/.claude/commands/alfred/0-project.md +480 -12
  24. moai_adk/templates/.claude/commands/alfred/1-plan.md +563 -0
  25. moai_adk/templates/.claude/commands/alfred/1-spec.md +15 -516
  26. moai_adk/templates/.claude/commands/alfred/2-build.md +15 -417
  27. moai_adk/templates/.claude/commands/alfred/2-run.md +460 -0
  28. moai_adk/templates/.claude/hooks/alfred/handlers/session.py +12 -0
  29. moai_adk/templates/.claude/skills/moai-claude-code/SKILL.md +67 -0
  30. moai_adk/templates/.claude/skills/moai-claude-code/examples.md +513 -0
  31. moai_adk/templates/.claude/skills/moai-claude-code/reference.md +419 -0
  32. moai_adk/templates/.claude/skills/moai-claude-code/templates/agent-full.md +332 -0
  33. moai_adk/templates/.claude/skills/moai-claude-code/templates/command-full.md +384 -0
  34. moai_adk/templates/.claude/skills/moai-claude-code/templates/plugin-full.json +349 -0
  35. moai_adk/templates/.claude/skills/moai-claude-code/templates/settings-full.json +552 -0
  36. moai_adk/templates/.claude/skills/moai-claude-code/templates/skill-full.md +499 -0
  37. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +68 -0
  38. moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +64 -0
  39. moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +67 -0
  40. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +69 -0
  41. moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +69 -0
  42. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +68 -0
  43. moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +67 -0
  44. moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +62 -0
  45. moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +74 -0
  46. moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +66 -0
  47. moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +66 -0
  48. moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +68 -0
  49. moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +59 -0
  50. moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +76 -0
  51. moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +61 -0
  52. moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +63 -0
  53. moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +64 -0
  54. moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +61 -0
  55. moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +54 -0
  56. moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +46 -0
  57. moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +68 -0
  58. moai_adk/templates/.claude/skills/moai-lang-clojure/SKILL.md +68 -0
  59. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +69 -0
  60. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +67 -0
  61. moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +66 -0
  62. moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +66 -0
  63. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +67 -0
  64. moai_adk/templates/.claude/skills/moai-lang-haskell/SKILL.md +67 -0
  65. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +66 -0
  66. moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +64 -0
  67. moai_adk/templates/.claude/skills/moai-lang-julia/SKILL.md +66 -0
  68. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +67 -0
  69. moai_adk/templates/.claude/skills/moai-lang-lua/SKILL.md +65 -0
  70. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +65 -0
  71. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +64 -0
  72. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +66 -0
  73. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +66 -0
  74. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +68 -0
  75. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +68 -0
  76. moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +67 -0
  77. moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +68 -0
  78. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +67 -0
  79. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +64 -0
  80. moai_adk/templates/.claude/skills/scripts/standardize_skills.py +166 -0
  81. moai_adk/templates/.claude/skills/scripts/verify_standardization.sh +43 -0
  82. moai_adk/templates/CLAUDE.md +153 -0
  83. moai_adk/templates/__init__.py +1 -1
  84. moai_adk/utils/__init__.py +1 -1
  85. moai_adk/utils/banner.py +1 -1
  86. moai_adk/utils/logger.py +1 -1
  87. {moai_adk-0.3.12.dist-info → moai_adk-0.4.0.dist-info}/METADATA +244 -3
  88. moai_adk-0.4.0.dist-info/RECORD +145 -0
  89. moai_adk-0.3.12.dist-info/RECORD +0 -90
  90. {moai_adk-0.3.12.dist-info → moai_adk-0.4.0.dist-info}/WHEEL +0 -0
  91. {moai_adk-0.3.12.dist-info → moai_adk-0.4.0.dist-info}/entry_points.txt +0 -0
  92. {moai_adk-0.3.12.dist-info → moai_adk-0.4.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,513 @@
1
+ # Claude Code 실전 예제 모음
2
+
3
+ > **실제 동작하는 예제 코드**
4
+ >
5
+ > 복사하여 바로 사용 가능한 검증된 예제
6
+
7
+ ---
8
+
9
+ ## 📋 목차
10
+
11
+ 1. [Agent 예제](#1-agent-예제)
12
+ 2. [Command 예제](#2-command-예제)
13
+ 3. [Skill 예제](#3-skill-예제)
14
+ 4. [Plugin 예제](#4-plugin-예제)
15
+ 5. [Settings 예제](#5-settings-예제)
16
+
17
+ ---
18
+
19
+ ## 1. Agent 예제
20
+
21
+ ### 예제 1: spec-builder (MoAI-ADK)
22
+
23
+ **파일**: `.claude/agents/alfred/spec-builder.md`
24
+
25
+ ```markdown
26
+ ---
27
+ name: spec-builder
28
+ description: "Use when: SPEC 작성, EARS 명세, 요구사항 분석이 필요할 때"
29
+ tools: Read, Write, Edit, MultiEdit, Grep, Glob, Bash, TodoWrite
30
+ model: sonnet
31
+ ---
32
+
33
+ # SPEC Builder 🏗️ - 시스템 아키텍트
34
+
35
+ **MoAI-ADK SPEC 작성 전문가**
36
+
37
+ ## 🎭 에이전트 페르소나
38
+
39
+ **아이콘**: 🏗️
40
+ **직무**: 시스템 아키텍트
41
+ **전문 영역**: SPEC 작성, EARS 명세, 요구사항 분석
42
+ **역할**: 비즈니스 요구사항을 체계적인 SPEC으로 변환
43
+ **목표**: 명확하고 테스트 가능한 SPEC 문서 작성
44
+
45
+ ## 🎯 핵심 역할
46
+
47
+ ### 1. SPEC 문서 작성
48
+ - EARS 5가지 구문 적용
49
+ - YAML Front Matter 7개 필수 필드
50
+ - HISTORY 섹션 관리
51
+
52
+ ### 2. 자동 실행 조건
53
+ - `/alfred:1-spec` 커맨드 실행 시
54
+ - 새로운 기능 요구사항 발생 시
55
+ - 기존 SPEC 개선 요청 시
56
+
57
+ ## 📐 워크플로우
58
+
59
+ ### STEP 1: 프로젝트 문서 분석
60
+ \`\`\`bash
61
+ # product.md 읽기
62
+ Read .moai/project/product.md
63
+
64
+ # 기존 SPEC 확인
65
+ ls .moai/specs/SPEC-*/spec.md
66
+ \`\`\`
67
+
68
+ ### STEP 2: SPEC 초안 작성
69
+ \`\`\`bash
70
+ Write .moai/specs/SPEC-{ID}/spec.md
71
+ \`\`\`
72
+
73
+ ## 💡 사용 가이드
74
+ \`\`\`bash
75
+ @agent-spec-builder "사용자 인증 기능 SPEC 작성"
76
+ \`\`\`
77
+ ```
78
+
79
+ ### 예제 2: code-analyzer (간단한 분석 에이전트)
80
+
81
+ **파일**: `.claude/agents/code-analyzer.md`
82
+
83
+ ```markdown
84
+ ---
85
+ name: code-analyzer
86
+ description: Use when: code quality analysis is needed
87
+ tools: Read, Grep, Bash(rg:*)
88
+ model: haiku
89
+ ---
90
+
91
+ # Code Analyzer 🔍 - 품질 관리자
92
+
93
+ 코드 품질 지표를 분석하고 개선 제안을 제공합니다.
94
+
95
+ ## 🎭 에이전트 페르소나
96
+
97
+ **아이콘**: 🔍
98
+ **직무**: 품질 관리자
99
+ **전문 영역**: 코드 품질 분석, 린팅, 테스트 커버리지
100
+ **역할**: 코드 품질 지표 측정 및 개선 제안
101
+ **목표**: 높은 코드 품질 유지
102
+
103
+ ## 🎯 핵심 역할
104
+
105
+ ### 1. 품질 지표 수집
106
+ - 테스트 커버리지 확인
107
+ - 린팅 오류 검출
108
+ - 복잡도 분석
109
+
110
+ ### 2. 자동 실행 조건
111
+ - 커밋 전 품질 검증 요청 시
112
+ - PR 생성 전 자동 검증
113
+
114
+ ## 📐 워크플로우
115
+
116
+ ### STEP 1: 코드 스캔
117
+ \`\`\`bash
118
+ rg "@TEST:" -n tests/
119
+ pytest --cov
120
+ \`\`\`
121
+
122
+ ### STEP 2: 보고서 생성
123
+ - 커버리지: {percentage}%
124
+ - 린팅 오류: {count}개
125
+
126
+ ## 💡 사용 가이드
127
+ \`\`\`bash
128
+ @agent-code-analyzer "현재 프로젝트 품질 분석"
129
+ \`\`\`
130
+ ```
131
+
132
+ ---
133
+
134
+ ## 2. Command 예제
135
+
136
+ ### 예제 1: /alfred:1-spec (MoAI-ADK)
137
+
138
+ **파일**: `.claude/commands/alfred/1-spec.md`
139
+
140
+ ```markdown
141
+ ---
142
+ name: alfred:1-spec
143
+ description: 프로젝트 문서 분석 및 SPEC 작성 (EARS 방식)
144
+ argument-hint: [feature-description]
145
+ allowed-tools:
146
+ - Read
147
+ - Write
148
+ - Edit
149
+ - Task
150
+ - Grep
151
+ - Glob
152
+ - TodoWrite
153
+ - Bash(git:*)
154
+ ---
155
+
156
+ # 📋 MoAI-ADK 1단계: SPEC 작성
157
+
158
+ ## 🎯 커맨드 목적
159
+
160
+ 프로젝트 문서를 분석하여 EARS 방식으로 SPEC 문서를 작성하고 Git 브랜치를 생성합니다.
161
+
162
+ ## 💡 사용 예시
163
+ \`\`\`bash
164
+ /alfred:1-spec "사용자 인증 기능"
165
+ \`\`\`
166
+
167
+ ## 📋 실행 흐름
168
+
169
+ 1. **Phase 1**: 프로젝트 문서 분석
170
+ - product.md 읽기
171
+ - 기존 SPEC 확인
172
+
173
+ 2. **Phase 2**: SPEC 작성
174
+ - EARS 방식 명세
175
+ - Git 브랜치 생성
176
+
177
+ ## 🔗 연관 에이전트
178
+
179
+ - **Primary**: spec-builder (🏗️ 시스템 아키텍트)
180
+ - **Secondary**: git-manager (🚀 릴리스 엔지니어)
181
+
182
+ ## ⚠️ 주의사항
183
+
184
+ - SPEC ID 중복 확인 필수
185
+ - EARS 5가지 구문 준수
186
+
187
+ ## 📋 다음 단계
188
+
189
+ - `/alfred:2-build SPEC-{ID}` - TDD 구현 시작
190
+ ```
191
+
192
+ ### 예제 2: /deploy-api (배포 커맨드)
193
+
194
+ **파일**: `.claude/commands/deploy-api.md`
195
+
196
+ ```markdown
197
+ ---
198
+ name: deploy-api
199
+ description: API 서버를 프로덕션 환경에 배포
200
+ argument-hint: [environment]
201
+ allowed-tools:
202
+ - Read
203
+ - Bash(git:*)
204
+ - Bash(npm:*)
205
+ ---
206
+
207
+ # 🚀 API 배포 커맨드
208
+
209
+ API 서버를 지정된 환경에 배포합니다.
210
+
211
+ ## 🎯 커맨드 목적
212
+
213
+ Git 태그 생성 및 환경별 배포 자동화
214
+
215
+ ## 💡 사용 예시
216
+ \`\`\`bash
217
+ /deploy-api production
218
+ /deploy-api staging
219
+ \`\`\`
220
+
221
+ ## 📋 실행 흐름
222
+
223
+ 1. **Phase 1**: Git 상태 확인
224
+ - 현재 브랜치 확인 (main 필수)
225
+ - 버전 태그 생성
226
+
227
+ 2. **Phase 2**: 배포 실행
228
+ - npm run build
229
+ - 환경별 배포 스크립트 실행
230
+
231
+ ## ⚠️ 주의사항
232
+
233
+ - main 브랜치에서만 실행 가능
234
+ - 모든 테스트 통과 필수
235
+ ```
236
+
237
+ ---
238
+
239
+ ## 3. Skill 예제
240
+
241
+ ### 예제 1: moai-alfred-tag-scanning
242
+
243
+ **파일**: `.claude/skills/moai-alfred-tag-scanning/SKILL.md`
244
+
245
+ ```markdown
246
+ ---
247
+ name: moai-alfred-tag-scanning
248
+ description: TAG 마커 직접 스캔 및 인벤토리 생성 (CODE-FIRST 원칙)
249
+ model: haiku
250
+ allowed-tools:
251
+ - Grep
252
+ - Read
253
+ ---
254
+
255
+ # TAG 스캐너
256
+
257
+ > CODE-FIRST 원칙: 중간 캐시 없이 코드를 직접 스캔
258
+
259
+ ## 🎯 목적
260
+
261
+ `@SPEC`, `@TEST`, `@CODE`, `@DOC` TAG를 코드에서 직접 스캔합니다.
262
+
263
+ ## 💡 사용법
264
+
265
+ "AUTH 도메인 TAG 목록 조회"
266
+
267
+ ## 📋 스캔 방법
268
+
269
+ \`\`\`bash
270
+ rg '@(SPEC|TEST|CODE|DOC):' -n .moai/specs/ tests/ src/ docs/
271
+ \`\`\`
272
+
273
+ ## ✅ 검증
274
+
275
+ - 모든 `@CODE` TAG는 대응하는 `@SPEC`이 있는가?
276
+ - 고아 TAG 없음
277
+ ```
278
+
279
+ ### 예제 2: moai-alfred-feature-selector
280
+
281
+ **파일**: `.claude/skills/moai-alfred-feature-selector/SKILL.md`
282
+
283
+ ```markdown
284
+ ---
285
+ name: moai-alfred-feature-selector
286
+ description: 프로젝트 유형별 최적 기능 선택 (37개 스킬 → 3~5개 자동 필터링)
287
+ model: haiku
288
+ allowed-tools:
289
+ - Read
290
+ ---
291
+
292
+ # MoAI Alfred Feature Selector
293
+
294
+ > 프로젝트 특성에 맞는 MoAI-ADK 기능 자동 선택
295
+
296
+ ## 🎯 목적
297
+
298
+ 프로젝트 유형을 분석하여 필요한 기능만 선택합니다.
299
+
300
+ ## 📋 프로젝트 분류
301
+
302
+ ### 언어별
303
+ - **Python**: pytest, mypy, ruff
304
+ - **TypeScript**: Vitest, Biome
305
+
306
+ ### 도메인별
307
+ - **CLI Tool**: 인자 파싱, POSIX 준수
308
+ - **Web API**: REST/GraphQL, 인증
309
+
310
+ ## 💡 사용법
311
+
312
+ "/alfred:0-project 실행 시 자동 호출"
313
+ ```
314
+
315
+ ---
316
+
317
+ ## 4. Plugin 예제
318
+
319
+ ### 예제 1: GitHub + Filesystem (기본)
320
+
321
+ **파일**: `.claude/settings.json` (mcpServers 섹션)
322
+
323
+ ```json
324
+ {
325
+ "mcpServers": {
326
+ "github": {
327
+ "command": "npx",
328
+ "args": ["-y", "@modelcontextprotocol/server-github"],
329
+ "env": {
330
+ "GITHUB_TOKEN": "${GITHUB_TOKEN}"
331
+ }
332
+ },
333
+ "filesystem": {
334
+ "command": "npx",
335
+ "args": [
336
+ "-y",
337
+ "@modelcontextprotocol/server-filesystem",
338
+ "${CLAUDE_PROJECT_DIR}/src",
339
+ "${CLAUDE_PROJECT_DIR}/tests"
340
+ ]
341
+ }
342
+ }
343
+ }
344
+ ```
345
+
346
+ ### 예제 2: MoAI-ADK 완전 구성
347
+
348
+ ```json
349
+ {
350
+ "mcpServers": {
351
+ "github": {
352
+ "command": "npx",
353
+ "args": ["-y", "@modelcontextprotocol/server-github"],
354
+ "env": {
355
+ "GITHUB_TOKEN": "${GITHUB_TOKEN}"
356
+ }
357
+ },
358
+ "moai-filesystem": {
359
+ "command": "npx",
360
+ "args": [
361
+ "-y",
362
+ "@modelcontextprotocol/server-filesystem",
363
+ "${CLAUDE_PROJECT_DIR}/.moai",
364
+ "${CLAUDE_PROJECT_DIR}/src",
365
+ "${CLAUDE_PROJECT_DIR}/tests",
366
+ "${CLAUDE_PROJECT_DIR}/docs"
367
+ ]
368
+ },
369
+ "brave-search": {
370
+ "command": "npx",
371
+ "args": ["-y", "@modelcontextprotocol/server-brave-search"],
372
+ "env": {
373
+ "BRAVE_API_KEY": "${BRAVE_API_KEY}"
374
+ }
375
+ }
376
+ }
377
+ }
378
+ ```
379
+
380
+ ---
381
+
382
+ ## 5. Settings 예제
383
+
384
+ ### 예제 1: Python 프로젝트
385
+
386
+ **파일**: `.claude/settings.json`
387
+
388
+ ```json
389
+ {
390
+ "permissions": {
391
+ "defaultMode": "default",
392
+ "allow": [
393
+ "Read",
394
+ "Write",
395
+ "Edit",
396
+ "Grep",
397
+ "Glob",
398
+ "Bash(git:*)",
399
+ "Bash(python:*)",
400
+ "Bash(pytest:*)",
401
+ "Bash(mypy:*)",
402
+ "Bash(ruff:*)"
403
+ ],
404
+ "ask": [
405
+ "Bash(pip install:*)",
406
+ "Bash(git push:*)"
407
+ ],
408
+ "deny": [
409
+ "Read(./.env)",
410
+ "Bash(sudo:*)",
411
+ "Bash(rm -rf:*)"
412
+ ]
413
+ }
414
+ }
415
+ ```
416
+
417
+ ### 예제 2: TypeScript 프로젝트
418
+
419
+ ```json
420
+ {
421
+ "permissions": {
422
+ "defaultMode": "default",
423
+ "allow": [
424
+ "Read",
425
+ "Write",
426
+ "Edit",
427
+ "Grep",
428
+ "Glob",
429
+ "Bash(git:*)",
430
+ "Bash(node:*)",
431
+ "Bash(npm:*)",
432
+ "Bash(pnpm:*)"
433
+ ],
434
+ "ask": [
435
+ "Bash(npm install:*)",
436
+ "Bash(pnpm install:*)",
437
+ "Bash(git push:*)"
438
+ ],
439
+ "deny": [
440
+ "Read(./.env)",
441
+ "Read(./secrets/**)",
442
+ "Bash(sudo:*)",
443
+ "Bash(rm -rf:*)"
444
+ ]
445
+ }
446
+ }
447
+ ```
448
+
449
+ ### 예제 3: MoAI-ADK 프로젝트 (훅 포함)
450
+
451
+ ```json
452
+ {
453
+ "permissions": {
454
+ "defaultMode": "default",
455
+ "allow": [
456
+ "Task",
457
+ "Read",
458
+ "Write",
459
+ "Edit",
460
+ "MultiEdit",
461
+ "Grep",
462
+ "Glob",
463
+ "TodoWrite",
464
+ "Bash(git:*)",
465
+ "Bash(python:*)",
466
+ "Bash(pytest:*)",
467
+ "Bash(mypy:*)",
468
+ "Bash(ruff:*)",
469
+ "Bash(moai-adk:*)",
470
+ "Bash(alfred:*)"
471
+ ],
472
+ "ask": [
473
+ "Bash(git push:*)",
474
+ "Bash(pip install:*)"
475
+ ],
476
+ "deny": [
477
+ "Read(./.env)",
478
+ "Read(./secrets/**)",
479
+ "Bash(sudo:*)",
480
+ "Bash(rm -rf:*)"
481
+ ]
482
+ },
483
+ "hooks": {
484
+ "SessionStart": [
485
+ {
486
+ "hooks": [
487
+ {
488
+ "command": "node $CLAUDE_PROJECT_DIR/.claude/hooks/alfred/session-notice.cjs",
489
+ "type": "command"
490
+ }
491
+ ],
492
+ "matcher": "*"
493
+ }
494
+ ],
495
+ "PreToolUse": [
496
+ {
497
+ "hooks": [
498
+ {
499
+ "command": "node $CLAUDE_PROJECT_DIR/.claude/hooks/alfred/pre-write-guard.cjs",
500
+ "type": "command"
501
+ }
502
+ ],
503
+ "matcher": "Edit|Write|MultiEdit"
504
+ }
505
+ ]
506
+ }
507
+ }
508
+ ```
509
+
510
+ ---
511
+
512
+ **최종 업데이트**: 2025-10-19
513
+ **작성자**: @Alfred