Skip to content

Latest commit

Β 

History

History
760 lines (619 loc) Β· 28.1 KB

File metadata and controls

760 lines (619 loc) Β· 28.1 KB

MinKy - Team Knowledge Intelligence Platform


πŸš€ Quick Start (λ‹€μŒ μ„Έμ…˜ μ‹œμž‘ μ‹œ)

방법 1: μžλ™ PM μ‹œμŠ€ν…œ μ‚¬μš© (ꢌμž₯)

/pm                   # PM μ—μ΄μ „νŠΈ μ‹œμž‘ (μžλ™ μƒνƒœ 볡ꡬ)
/ci start             # CI/CD μ„Έμ…˜ μ‹œμž‘ (ν—¬μŠ€μ²΄ν¬ 포함)
/ci auto 5            # μžλ™ λͺ¨λ“œλ‘œ 5개 μž‘μ—… 연속 μ‹€ν–‰

방법 2: μˆ˜λ™ 확인

1. PLAN.md 읽기       β†’ "λ‹€μŒ μ„Έμ…˜ μš°μ„  μž‘μ—…" μ„Ήμ…˜ 확인
2. PROGRESS.md 읽기   β†’ "ν˜„μž¬ μ§„ν–‰ 상황" μ„Ήμ…˜ 확인
3. /health            β†’ μ‹œμŠ€ν…œ μƒνƒœ 확인
4. /queue next        β†’ λ‹€μŒ μž‘μ—… 확인

ν˜„μž¬ μƒνƒœ (2026-02-20):

  • βœ… PM μžλ™ν™” μ‹œμŠ€ν…œ μ™„μ„± (μƒνƒœκ΄€λ¦¬, μŠ€μΌ€μ€„λ§, ν”Όλ“œλ°±, μ•Œλ¦Ό)
  • βœ… CI/CD 톡합 μ‹œμŠ€ν…œ ꡬ좕 (지속적 μ‹€ν–‰, ν—¬μŠ€μ²΄ν¬, νŒŒμ΄ν”„λΌμΈ)
  • βœ… GitHub 이슈/PR μžλ™ν™” (이슈 뢄석, PR 생성, 기술 λ³΄κ³ μ„œ)
  • βœ… 이λ ₯ 기반 λ©€ν‹° μ—μ΄μ „νŠΈ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ (pm-orchestrate)
  • βœ… Phase 1 μ™„λ£Œ (ν…ŒμŠ€νŠΈ 1,511개 λͺ¨λ‘ 톡과)

πŸ€– PM/CI μžλ™ν™” ν”„λ‘œν† μ½œ

μžλ™ν™” μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                           PM Agent (Orchestrator)                        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚   state-    β”‚   β”‚    work-     β”‚   β”‚  feedback-  β”‚   β”‚  health-   β”‚ β”‚
β”‚  β”‚   manager   β”‚   β”‚   scheduler  β”‚   β”‚    loop     β”‚   β”‚  checker   β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β”‚
β”‚                      β–Ό                       β–Ό                          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚                    pm-orchestrate (이λ ₯ 기반)                       β”‚ β”‚
β”‚  β”‚   execution-patterns.json β†’ λ ˆμ‹œν”Ό 선택 β†’ 병렬 μ—μ΄μ „νŠΈ μ‹€ν–‰        β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚                      β”‚                                                  β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚                    Execution Layer (병렬 μ‹€ν–‰)                      β”‚ β”‚
β”‚  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚
β”‚  β”‚   tdd-      β”‚    task-    β”‚   code-     β”‚      security-          β”‚ β”‚
β”‚  β”‚   guide     β”‚   executor  β”‚  reviewer   β”‚      reviewer           β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

μ„Έμ…˜ μžλ™ μ‹œμž‘ ν”„λ‘œν† μ½œ

Claude Codeκ°€ μ„Έμ…˜μ„ μ‹œμž‘ν•  λ•Œ:

1. /health quick              # λΉ λ₯Έ ν—¬μŠ€ 체크
2. state-manager.restore()    # 이전 μƒνƒœ 볡ꡬ
3. work-scheduler.sync()      # GitHub/PLAN.md 동기화
4. feedback-loop.load()       # κ΄€λ ¨ νŒ¨ν„΄/μΈμ‚¬μ΄νŠΈ λ‘œλ“œ
5. PM μž‘μ—… 선택 λ˜λŠ” λŒ€κΈ°

μ£Όμš” μ»€λ§¨λ“œ

μ»€λ§¨λ“œ μ„€λͺ… μ‚¬μš© μ‹œμ 
/pm PM μ—μ΄μ „νŠΈ μ‹œμž‘ μ„Έμ…˜ μ‹œμž‘ μ‹œ
/pm-orchestrate 이λ ₯ 기반 λ©€ν‹° μ—μ΄μ „νŠΈ μ‹€ν–‰ λ³΅μž‘ν•œ μž‘μ—… μ‹œ
/ci start CI μ„Έμ…˜ μ‹œμž‘ (λŒ€ν™”ν˜•) μž‘μ—… μ‹œμž‘ μ‹œ
/ci auto N N개 μž‘μ—… μžλ™ μ‹€ν–‰ 연속 μž‘μ—… μ‹œ
/health μ‹œμŠ€ν…œ μƒνƒœ 확인 문제 λ°œμƒ μ‹œ
/queue μž‘μ—… λŒ€κΈ°μ—΄ 확인 λ‹€μŒ μž‘μ—… 확인
/state μƒνƒœ μ €μž₯/볡ꡬ μ„Έμ…˜ μ „ν™˜ μ‹œ
/feedback νŒ¨ν„΄/μΈμ‚¬μ΄νŠΈ 확인 μž‘μ—… μ „ μ°Έκ³ 
/notify μ•Œλ¦Ό/리포트 확인 μ§„ν–‰ 확인 μ‹œ

CI/CD μ‹€ν–‰ λͺ¨λ“œ

λŒ€ν™”ν˜• λͺ¨λ“œ (Interactive)

/ci start
  • 각 μž‘μ—… μ™„λ£Œ ν›„ μ‚¬μš©μž 확인
  • μ•ˆμ „ν•œ κΈ°λ³Έ λͺ¨λ“œ

μžλ™ λͺ¨λ“œ (Autonomous)

/ci auto 5          # 5개 μž‘μ—… μžλ™ μ‹€ν–‰
/ci auto --no-limit # λ¬΄μ œν•œ μ‹€ν–‰
  • μ‚¬μš©μž 확인 없이 연속 μ‹€ν–‰
  • μ—λŸ¬ μ‹œ μžλ™ μΌμ‹œμ •μ§€

κ°μ‹œ λͺ¨λ“œ (Watch)

/ci watch
  • GitHub 이벀트 κ°μ‹œ
  • μƒˆ 이슈 감지 μ‹œ μžλ™ 처리

μž‘μ—… 흐름 μžλ™ν™”

GitHub 이슈 등둝
      β”‚
      β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ issue-manager       β”‚ β†’ 이슈 뢄석/라벨링
β”‚ (1μ‹œκ°„λ§ˆλ‹€ 동기화)   β”‚ β†’ PM μ½”λ©˜νŠΈ μΆ”κ°€
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
      β”‚
      β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ work-scheduler      β”‚ β†’ μš°μ„ μˆœμœ„ μ •λ ¬
β”‚                     β”‚ β†’ μ˜μ‘΄μ„± 확인
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
      β”‚
      β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ issue-developer     β”‚ β†’ 브랜치 생성
β”‚                     β”‚ β†’ μ½”λ“œ κ΅¬ν˜„
β”‚                     β”‚ β†’ μ½”λ“œ 리뷰
β”‚                     β”‚ β†’ 검증
β”‚                     β”‚ β†’ PR 생성
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
      β”‚
      β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ technical-writer    β”‚ β†’ 기술 λ³΄κ³ μ„œ μž‘μ„±
β”‚                     β”‚ β†’ LessonLearn/ μ €μž₯
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
      β”‚
      β–Ό
λ‹€μŒ μž‘μ—… μžλ™ μ‹œμž‘

μ„€μ • 파일

  • .claude/config.json - 전체 μ‹œμŠ€ν…œ μ„€μ •
  • .claude/state/ - μƒνƒœ νŒŒμΌλ“€
  • .claude/pipelines/ - CI/CD νŒŒμ΄ν”„λΌμΈ μ •μ˜
  • .claude/triggers/ - μ™ΈλΆ€ 트리거 파일

μ—λŸ¬ 볡ꡬ

레벨 쑰치 μ˜ˆμ‹œ
μžλ™ μž¬μ‹œλ„ 3νšŒκΉŒμ§€ μž¬μ‹œλ„ λΉŒλ“œ μ‹€νŒ¨, λ„€νŠΈμ›Œν¬
λ‘€λ°± 체크포인트 볡ꡬ μ½”λ“œ 리뷰 μ‹€νŒ¨
μŠ€ν‚΅ λ‹€μŒ μž‘μ—… μ§„ν–‰ μ΅œλŒ€ μž¬μ‹œλ„ 초과
쀑단 μˆ˜λ™ κ°œμž… μš”μ²­ 볡ꡬ λΆˆκ°€ μ—λŸ¬

자율 운영 ν”„λ‘œν† μ½œ (Autonomous Operation Protocol)

1. μžλ™ 루프 κ·œμΉ™

PM μ—μ΄μ „νŠΈκ°€ 자율 운영 쀑 따라야 ν•  루프 κ·œμΉ™μž…λ‹ˆλ‹€.

루프 μ§„μž… 쑰건:
- /ci auto N λ˜λŠ” /ci auto --no-limit μ‹€ν–‰ μ‹œ
- μ™ΈλΆ€ 트리거(.claude/triggers/queue/) 파일 감지 μ‹œ

루프 μ‹€ν–‰ κ·œμΉ™:
1. λΈ”λ‘œμ»€(blocker) μ—†μœΌλ©΄ λ‹€μŒ μž‘μ—…μœΌλ‘œ 계속 μ§„ν–‰
2. 5ν„΄λ§ˆλ‹€ /compact μ‹€ν–‰ β†’ μ»¨ν…μŠ€νŠΈ μ••μΆ• 및 정리
3. 10ν„΄λ§ˆλ‹€ 체크포인트 μ €μž₯ β†’ .claude/state/checkpoint-{timestamp}.json

λΈ”λ‘œμ»€ μ •μ˜ (루프 μΌμ‹œ μ •μ§€ 쑰건):
- λΉŒλ“œ μ‹€νŒ¨ 3회 연속
- ν…ŒμŠ€νŠΈ 컀버리지 80% 미달
- λ³΄μ•ˆ 이슈 CRITICAL 발견
- μž‘μ—… λŒ€κΈ°μ—΄μ΄ λΉ„μ–΄ 있음
- μˆ˜λ™ κ°œμž… μš”μ²­ ν”Œλž˜κ·Έ 감지

2. μžλ™ 컀밋 κ·œμΉ™

μž‘μ—… μ™„λ£Œ μ‹œ μžλ™μœΌλ‘œ 컀밋을 μƒμ„±ν•©λ‹ˆλ‹€.

컀밋 트리거:
- κΈ°λŠ₯ κ΅¬ν˜„ μ™„λ£Œ (ν…ŒμŠ€νŠΈ 톡과 ν›„)
- 버그 μˆ˜μ • μ™„λ£Œ (검증 ν›„)
- λ¦¬νŒ©ν† λ§ μ™„λ£Œ (λΉŒλ“œ 톡과 ν›„)

컀밋 λ©”μ‹œμ§€ μ»¨λ²€μ…˜:
feat: μƒˆ κΈ°λŠ₯ μΆ”κ°€
fix: 버그 μˆ˜μ •
test: ν…ŒμŠ€νŠΈ μΆ”κ°€/μˆ˜μ •
docs: λ¬Έμ„œ μ—…λ°μ΄νŠΈ
refactor: μ½”λ“œ λ¦¬νŒ©ν† λ§
chore: λΉŒλ“œ/μ„€μ • λ³€κ²½
perf: μ„±λŠ₯ κ°œμ„ 
ci: CI/CD μ„€μ • λ³€κ²½

컀밋 μž‘μ„±μž κ·œμΉ™:
- μž‘μ„±μž: Mario Cho <hephaex@gmail.com> 단독
- Co-Authored-By 쀄 μΆ”κ°€ κΈˆμ§€
- AI 생성 ν‘œμ‹œ 문ꡬ μΆ”κ°€ κΈˆμ§€
- 컀밋 λ©”μ‹œμ§€λŠ” 영문으둜 μž‘μ„± (본문은 ν•œκ΅­μ–΄ ν—ˆμš©)

컀밋 μ‹€ν–‰ μ˜ˆμ‹œ:

git add {λ³€κ²½λœ_νŒŒμΌλ“€}
git commit -m "$(cat <<'EOF'
feat: add vector embedding storage for documents

pgvector 기반 λ¬Έμ„œ μž„λ² λ”© μ €μž₯ 및 검색 κΈ°λŠ₯ κ΅¬ν˜„
- DocumentEmbedding λͺ¨λΈ μ •μ˜
- embedding_service.rs κ΅¬ν˜„
- /api/embeddings 라우트 μΆ”κ°€
EOF
)"

3. μ—λŸ¬ 볡ꡬ κ·œμΉ™

λ ˆλ²¨λ³„ 볡ꡬ μ „λž΅κ³Ό μ΅œλŒ€ μž¬μ‹œλ„ 횟수λ₯Ό μ •μ˜ν•©λ‹ˆλ‹€.

레벨 이름 쑰건 볡ꡬ μ „λž΅ μ΅œλŒ€ μž¬μ‹œλ„
L1 μžλ™ μž¬μ‹œλ„ μΌμ‹œμ  μ‹€νŒ¨ (λΉŒλ“œ, λ„€νŠΈμ›Œν¬) μ¦‰μ‹œ μž¬μ‹œλ„ 3회
L2 λ‘€λ°± μ½”λ“œ 리뷰 μ‹€νŒ¨, ν…ŒμŠ€νŠΈ μ‹€νŒ¨ λ§ˆμ§€λ§‰ 체크포인트둜 볡ꡬ 2회
L3 μŠ€ν‚΅ L1/L2 μ΅œλŒ€ μž¬μ‹œλ„ 초과 ν˜„μž¬ μž‘μ—… κ±΄λ„ˆλ›°κ³  λ‹€μŒ μ§„ν–‰ -
L4 쀑단 λ³΄μ•ˆ 이슈, 볡ꡬ λΆˆκ°€ μ—λŸ¬ 루프 쀑단 + μˆ˜λ™ κ°œμž… μš”μ²­ -
둀백 쑰건:
- cargo clippy μ—λŸ¬ 3회 연속 μˆ˜μ • μ‹€νŒ¨
- ν…ŒμŠ€νŠΈ 컀버리지가 80% μ•„λž˜λ‘œ ν•˜λ½
- API 톡합 ν…ŒμŠ€νŠΈ 2회 연속 μ‹€νŒ¨

둀백 절차:
1. ν˜„μž¬ 변경사항 git stash
2. λ§ˆμ§€λ§‰ 성곡 체크포인트 λ‘œλ“œ
3. .claude/state/current-task.json μƒνƒœλ₯Ό "failed"둜 μ—…λ°μ΄νŠΈ
4. μž‘μ—…μ„ work-queue.json 맨 λ’€λ‘œ 이동 (μž¬μ‹œλ„ μΉ΄μš΄ν„° 증가)
5. λ‹€μŒ μž‘μ—… 선택

L4 쀑단 μ‹œ μ•Œλ¦Ό:
- .claude/triggers/queue/manual-intervention-required.json 생성
- PROGRESS.md에 λΈ”λ‘œμ»€ λ‚΄μš© 기둝

4. μ»¨ν…μŠ€νŠΈ 관리

μƒνƒœ 파일 μœ„μΉ˜

파일 μ—­ν•  κ°±μ‹  μ£ΌκΈ°
.claude/state/current-task.json ν˜„μž¬ μ‹€ν–‰ 쀑인 μž‘μ—… μž‘μ—… μ‹œμž‘/μ™„λ£Œ μ‹œ
.claude/state/work-queue.json λŒ€κΈ° 쀑인 μž‘μ—… λͺ©λ‘ μž‘μ—… μΆ”κ°€/μ™„λ£Œ μ‹œ
.claude/state/agent-context.json μ—μ΄μ „νŠΈ 곡유 μ»¨ν…μŠ€νŠΈ 5ν„΄λ§ˆλ‹€
.claude/state/feedback.json νŒ¨ν„΄/μΈμ‚¬μ΄νŠΈ λˆ„μ  μž‘μ—… μ™„λ£Œ μ‹œ
.claude/state/ci-session.json ν˜„μž¬ CI μ„Έμ…˜ 정보 μ‹€μ‹œκ°„
.claude/state/checkpoint-{ts}.json 10ν„΄ μ£ΌκΈ° μŠ€λƒ…μƒ· 10ν„΄λ§ˆλ‹€

볡ꡬ 절차

μ„Έμ…˜ 볡ꡬ μˆœμ„œ:
1. .claude/state/ci-session.json 읽기 β†’ λ§ˆμ§€λ§‰ μ„Έμ…˜ μƒνƒœ 확인
2. .claude/state/current-task.json 읽기 β†’ μ€‘λ‹¨λœ μž‘μ—… 확인
3. .claude/state/work-queue.json 읽기 β†’ λŒ€κΈ°μ—΄ μƒνƒœ 볡ꡬ
4. .claude/state/agent-context.json 읽기 β†’ 곡유 μ»¨ν…μŠ€νŠΈ λ‘œλ“œ
5. μ€‘λ‹¨λœ μž‘μ—…μ΄ 있으면 재개, μ—†μœΌλ©΄ λŒ€κΈ°μ—΄ 맨 μ•ž μž‘μ—… μ‹œμž‘

μ»¨ν…μŠ€νŠΈ μ••μΆ• (/compact 트리거, 5ν„΄λ§ˆλ‹€):
- μ™„λ£Œλœ μž‘μ—… μš”μ•½μ„ agent-context.json에 μ €μž₯
- 였래된 상세 λ‘œκ·ΈλŠ” .history/에 μ•„μΉ΄μ΄λΈŒ
- ν˜„μž¬ μž‘μ—… μ»¨ν…μŠ€νŠΈλ§Œ λ©”λͺ¨λ¦¬μ— μœ μ§€

5. Sub-agent 톡신

ν‘œμ€€ 좜λ ₯ 포맷

Sub-agentλŠ” μ•„λž˜ JSON ꡬ쑰둜 κ²°κ³Όλ₯Ό λ°˜ν™˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.

{
  "agent": "agent-name",
  "task_id": "task-uuid",
  "status": "success | failure | partial",
  "result": {
    "summary": "μž‘μ—… κ²°κ³Ό ν•œμ€„ μš”μ•½",
    "artifacts": ["μƒμ„±λœ 파일 μ ˆλŒ€κ²½λ‘œ λͺ©λ‘"],
    "metrics": {
      "files_changed": 0,
      "lines_added": 0,
      "lines_removed": 0,
      "tests_added": 0
    }
  },
  "next_action": "continue | review | commit | rollback | stop",
  "error": null
}

μ—λŸ¬ μ½”λ“œ 체계

μ½”λ“œ 이름 의미 λŒ€μ‘
E001 BUILD_FAIL λΉŒλ“œ μ‹€νŒ¨ L1 μž¬μ‹œλ„
E002 TEST_FAIL ν…ŒμŠ€νŠΈ μ‹€νŒ¨ L1 μž¬μ‹œλ„
E003 COVERAGE_LOW 컀버리지 80% 미달 L2 λ‘€λ°±
E004 LINT_FAIL clippy/eslint μ‹€νŒ¨ L1 μž¬μ‹œλ„
E005 REVIEW_FAIL μ½”λ“œ 리뷰 CRITICAL L2 λ‘€λ°±
E006 SECURITY_ISSUE λ³΄μ•ˆ 취약점 발견 L4 쀑단
E007 CONFLICT git 좩돌 L2 둀백
E008 TIMEOUT μž‘μ—… νƒ€μž„μ•„μ›ƒ (30λΆ„) L3 μŠ€ν‚΅
E009 QUEUE_EMPTY λŒ€κΈ°μ—΄ λΉ„μ–΄ 있음 루프 μ’…λ£Œ
E010 UNKNOWN μ•Œ 수 μ—†λŠ” μ—λŸ¬ L4 쀑단

μ—μ΄μ „νŠΈ κ°„ λ©”μ‹œμ§€ 전달

Orchestrator β†’ Sub-agent:
  .claude/triggers/queue/{task-id}.json

Sub-agent β†’ Orchestrator:
  .claude/triggers/processed/{task-id}-result.json

ν˜•μ‹:
{
  "task_id": "uuid",
  "agent": "issue-developer",
  "command": "implement",
  "payload": { ... },
  "timeout_minutes": 30
}

IMPORTANT: μ—μ΄μ „νŠΈ μ‹œμž‘ κ°€μ΄λ“œ

μ„Έμ…˜ μ‹œμž‘ μ‹œ λ°˜λ“œμ‹œ μ•„λž˜ νŒŒμΌλ“€μ„ λ¨Όμ € μ½μœΌμ„Έμš”:

1. PLAN.md      β†’ 무슨 일을 ν•΄μ•Ό ν•˜λŠ”μ§€ (ν•  일 λͺ©λ‘)
2. PROGRESS.md  β†’ μ–΄λ””κΉŒμ§€ μ§„ν–‰λ˜μ—ˆλŠ”μ§€ (μ™„λ£Œλœ μž‘μ—…)

μž‘μ—… 흐름

μ„Έμ…˜ μ‹œμž‘
    β”‚
    β”œβ”€β†’ PLAN.md 읽기 (ν•  일 확인)
    β”œβ”€β†’ PROGRESS.md 읽기 (μ§„ν–‰ 상황 확인)
    β”‚
    β–Ό
μž‘μ—… μˆ˜ν–‰
    β”‚
    β”œβ”€β†’ μž‘μ—… μ™„λ£Œ μ‹œ: PROGRESS.md μ—…λ°μ΄νŠΈ
    β”œβ”€β†’ μƒˆ ν•  일 발견 μ‹œ: PLAN.md μ—…λ°μ΄νŠΈ
    β”‚
    β–Ό
μ„Έμ…˜ μ’…λ£Œ
    β”‚
    └─→ .history/YYYY-MM-DD_description.md에 상세 둜그 μ €μž₯

파일 μ—­ν• 

파일 λͺ©μ  μ—…λ°μ΄νŠΈ μ‹œμ 
PLAN.md ν•΄μ•Ό ν•  일, μš°μ„ μˆœμœ„, λ‹΄λ‹Ή μƒˆ μž‘μ—… μΆ”κ°€/μ™„λ£Œ μ‹œ
PROGRESS.md μ™„λ£Œλœ μž‘μ—…, 결정사항, 이슈 μž‘μ—… μ™„λ£Œλ§ˆλ‹€
.history/*.md 상세 μ„Έμ…˜ 둜그 μ„Έμ…˜ μ’…λ£Œ μ‹œ

Project Vision

MinKyλŠ” 3~9λͺ… μ†Œκ·œλͺ¨ νŒ€μ˜ 암묡지(tacit knowledge)λ₯Ό ν˜•μ‹μ§€λ‘œ μ „ν™˜ν•˜κ³ , νŒ€μ› λˆ„κ΅¬λ‚˜ ν•„μš”ν•  λ•Œ μžμ—°μ–΄λ‘œ μ°Ύμ•„ ν™œμš©ν•  수 있게 ν•˜λŠ” 지식 ν”Œλž«νΌμž…λ‹ˆλ‹€.

핡심 μ² ν•™

암묡지 β†’ 캑처 β†’ AI 이해 β†’ μ—°κ²° β†’ μžμ—°μ–΄ 검색 β†’ νŒ€ μ„±μž₯
  • νƒœκ·Έ/λΆ„λ₯˜κ°€ μ•„λ‹Œ 이해: AIκ°€ λ¬Έμ„œλ₯Ό "읽고 이해"ν•˜μ—¬ μžλ™μœΌλ‘œ μ—°κ²°
  • 검색이 μ•„λ‹Œ λŒ€ν™”: "이거 μ–΄λ””μžˆμ§€?" λŒ€μ‹  "우리 νŒ€μ—μ„œ 이런 문제 ν•΄κ²°ν•œ 적 μžˆμ–΄?"
  • 개인 μ„±μž₯ β†’ νŒ€ μ„±μž₯: ν•œ μ‚¬λžŒμ˜ ν•™μŠ΅μ΄ νŒ€ μ „μ²΄μ˜ μžμ‚°μ΄ 됨

Architecture Overview

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      Input Sources                          β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Obsidian   β”‚   Safari    β”‚   Slack     β”‚   Direct Input   β”‚
β”‚  Markdown   β”‚   Clipper   β”‚   Messages  β”‚   Chat/Upload    β”‚
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
       β”‚             β”‚             β”‚               β”‚
       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                  Knowledge Pipeline                          β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  1. Document Ingestion                                       β”‚
β”‚     - Markdown/HTML/PDF parsing                              β”‚
β”‚     - Metadata extraction                                    β”‚
β”‚                                                              β”‚
β”‚  2. AI Understanding (Claude)                                β”‚
β”‚     - 핡심 주제 μΆ”μΆœ                                          β”‚
β”‚     - ν•΄κ²°ν•œ 문제 식별                                        β”‚
β”‚     - κ΄€λ ¨ 기술/도ꡬ νƒœκΉ…                                     β”‚
β”‚     - μ—°κ²° κ°€λŠ₯ν•œ 지식 νŒŒμ•…                                    β”‚
β”‚                                                              β”‚
β”‚  3. Vector Embedding                                         β”‚
β”‚     - Document embeddings                                    β”‚
β”‚     - Chunk-level embeddings                                 β”‚
β”‚     - Semantic indexing                                      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Knowledge Store                           β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚   PostgreSQL         β”‚   Vector DB (pgvector/Qdrant)        β”‚
β”‚   - Documents        β”‚   - Embeddings                       β”‚
β”‚   - Metadata         β”‚   - Semantic search                  β”‚
β”‚   - Relations        β”‚   - Similarity matching              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   RAG Search Layer                           β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  User Question β†’ Query Understanding β†’ Vector Search         β”‚
β”‚       β†’ Context Assembly β†’ Claude Generation β†’ Answer        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Tech Stack

Backend (Rust)

  • Framework: Axum 0.8
  • Database: PostgreSQL + pgvector
  • Vector Search: pgvector (primary) / Qdrant (optional)
  • AI: Claude API (Anthropic)
  • Embedding: OpenAI text-embedding-3-small / Voyage AI
  • Async Runtime: Tokio

Frontend

  • Framework: React 18+
  • State: React Query / Zustand
  • UI: Tailwind CSS + shadcn/ui
  • Chat: Real-time WebSocket

Infrastructure

  • Container: Docker
  • DB Migration: sqlx-cli
  • CI/CD: GitHub Actions

Directory Structure

minky/
β”œβ”€β”€ CLAUDE.md                 # ν”„λ‘œμ νŠΈ κ°€μ΄λ“œ (이 파일)
β”œβ”€β”€ .history/                 # μ„Έμ…˜ 둜그
β”œβ”€β”€ BK/                       # λ°±μ—… 파일
β”œβ”€β”€ Docs/                     # λ¬Έμ„œ
β”‚
β”œβ”€β”€ app/                      # Python Backend (Legacy)
β”‚   β”œβ”€β”€ middleware/
β”‚   β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ routes/
β”‚   β”œβ”€β”€ schemas/
β”‚   β”œβ”€β”€ services/
β”‚   β”‚   β”œβ”€β”€ agents/           # AI μ—μ΄μ „νŠΈ
β”‚   β”‚   └── llm_providers/    # LLM 제곡자
β”‚   └── utils/
β”‚
β”œβ”€β”€ minky-rust/               # Rust Backend (Active)
β”‚   β”œβ”€β”€ Cargo.toml
β”‚   β”œβ”€β”€ migrations/           # SQL λ§ˆμ΄κ·Έλ ˆμ΄μ…˜
β”‚   └── src/
β”‚       β”œβ”€β”€ main.rs
β”‚       β”œβ”€β”€ lib.rs
β”‚       β”œβ”€β”€ config.rs
β”‚       β”œβ”€β”€ error.rs
β”‚       β”œβ”€β”€ middleware/       # 인증, λ‘œκΉ…
β”‚       β”œβ”€β”€ models/           # 데이터 νƒ€μž…, μŠ€ν‚€λ§ˆ
β”‚       β”œβ”€β”€ routes/           # API μ—”λ“œν¬μΈνŠΈ
β”‚       β”œβ”€β”€ services/         # λΉ„μ¦ˆλ‹ˆμŠ€ 둜직
β”‚       └── utils/
β”‚
β”œβ”€β”€ frontend/                 # React Frontend
β”‚   β”œβ”€β”€ public/
β”‚   └── src/
β”‚       β”œβ”€β”€ components/       # UI μ»΄ν¬λ„ŒνŠΈ
β”‚       β”œβ”€β”€ hooks/            # μ»€μŠ€ν…€ ν›…
β”‚       β”œβ”€β”€ pages/            # νŽ˜μ΄μ§€
β”‚       β”œβ”€β”€ services/         # API ν΄λΌμ΄μ–ΈνŠΈ
β”‚       β”œβ”€β”€ styles/           # CSS/Tailwind
β”‚       β”œβ”€β”€ utils/            # μœ ν‹Έλ¦¬ν‹°
β”‚       └── i18n/             # λ‹€κ΅­μ–΄
β”‚
β”œβ”€β”€ tests/                    # Python ν…ŒμŠ€νŠΈ
β”œβ”€β”€ migrations/               # Python DB λ§ˆμ΄κ·Έλ ˆμ΄μ…˜
β”œβ”€β”€ logs/                     # 둜그 파일
β”‚
└── .claude/                  # Claude Code μ„€μ •
    β”œβ”€β”€ agents/               # μ—μ΄μ „νŠΈ μ •μ˜ (21개)
    β”œβ”€β”€ commands/             # μ»€λ§¨λ“œ μ •μ˜ (23개)
    β”œβ”€β”€ skills/               # μŠ€ν‚¬ μ •μ˜ (6개)
    β”œβ”€β”€ config.json           # 전체 μ‹œμŠ€ν…œ μ„€μ •
    β”œβ”€β”€ state/                # μƒνƒœ 관리
    β”‚   β”œβ”€β”€ current-task.json
    β”‚   β”œβ”€β”€ work-queue.json
    β”‚   β”œβ”€β”€ agent-context.json
    β”‚   β”œβ”€β”€ feedback.json
    β”‚   └── ci-session.json
    β”œβ”€β”€ locks/                # λ™μ‹œ μž‘μ—… 잠금
    β”œβ”€β”€ pipelines/            # CI/CD νŒŒμ΄ν”„λΌμΈ μ •μ˜
    β”œβ”€β”€ triggers/             # μ™ΈλΆ€ 트리거
    β”‚   β”œβ”€β”€ queue/
    β”‚   └── processed/
    β”œβ”€β”€ logs/ci/              # CI 둜그
    β”œβ”€β”€ backups/              # μƒνƒœ λ°±μ—…
    └── references/           # 쑰사/레퍼런슀 μ €μž₯
        β”œβ”€β”€ _index.json       # 검색 인덱슀
        β”œβ”€β”€ research/         # 쑰사 κ²°κ³Ό
        β”œβ”€β”€ architecture/     # μ•„ν‚€ν…μ²˜ νŒ¨ν„΄
        β”œβ”€β”€ apis/             # API λ¬Έμ„œ
        └── best-practices/   # 베슀트 ν”„λž™ν‹°μŠ€

μ£Όμš” 파일 μœ„μΉ˜

λͺ©μ  경둜
Rust μ§„μž…μ  minky-rust/src/main.rs
Rust λͺ¨λΈ μ •μ˜ minky-rust/src/models/
Rust API 라우트 minky-rust/src/routes/
Rust μ„œλΉ„μŠ€ 둜직 minky-rust/src/services/
React μ»΄ν¬λ„ŒνŠΈ frontend/src/components/
React API 호좜 frontend/src/services/api.js

μƒˆ κΈ°λŠ₯ μΆ”κ°€ μ‹œ

1. λͺ¨λΈ μ •μ˜     β†’ minky-rust/src/models/{feature}.rs
2. μ„œλΉ„μŠ€ κ΅¬ν˜„   β†’ minky-rust/src/services/{feature}_service.rs
3. 라우트 μΆ”κ°€   β†’ minky-rust/src/routes/{feature}.rs
4. mod.rs 등둝   β†’ 각 λ””λ ‰ν† λ¦¬μ˜ mod.rs에 μΆ”κ°€
5. ν”„λ‘ νŠΈμ—”λ“œ    β†’ frontend/src/components/{Feature}/

Core Features (Implementation Priority)

Phase 1: Knowledge Understanding (Current Focus)

  1. Document Ingestion Pipeline

    • Markdown 파일 μ—…λ‘œλ“œ/μž„ν¬νŠΈ
    • 메타데이터 μΆ”μΆœ (제λͺ©, λ‚ μ§œ, 좜처)
    • 청크 λΆ„ν•  (semantic chunking)
  2. AI Document Analysis

    • Claude둜 λ¬Έμ„œ 뢄석
    • 핡심 주제 3-5개 μΆ”μΆœ
    • ν•΄κ²°ν•œ 문제/μΈμ‚¬μ΄νŠΈ 식별
    • κ΄€λ ¨ 기술/도ꡬ μžλ™ νƒœκΉ…
  3. Vector Embedding Storage

    • pgvector μ„€μ •
    • λ¬Έμ„œ μž„λ² λ”© 생성 및 μ €μž₯
    • 청크별 μž„λ² λ”©

Phase 2: Conversational Search

  1. RAG Search API

    • μžμ—°μ–΄ 질문 β†’ 벑터 검색
    • μ»¨ν…μŠ€νŠΈ μ‘°ν•©
    • Claude λ‹΅λ³€ 생성
    • 좜처 λ¬Έμ„œ 링크
  2. Chat Interface

    • λŒ€ν™”ν˜• UI
    • 슀트리밍 응닡
    • λŒ€ν™” νžˆμŠ€ν† λ¦¬

Phase 3: Knowledge Connection

  1. Auto-linking
    • κ΄€λ ¨ λ¬Έμ„œ μžλ™ μ—°κ²°
    • 지식 κ·Έλž˜ν”„ μ‹œκ°ν™”
    • "이것도 λ³Όλ§Œν•΄μš”" μΆ”μ²œ

Phase 4: Tacit Knowledge Capture

  1. Conversation Mining (Future)
    • Slack/Teams 연동
    • λŒ€ν™”μ—μ„œ 지식 μΆ”μΆœ
    • 확인 ν›„ μžλ™ μ €μž₯

API Endpoints (Target)

# Document Pipeline
POST   /api/documents/ingest      # λ¬Έμ„œ μ—…λ‘œλ“œ + AI 뢄석
GET    /api/documents/{id}        # λ¬Έμ„œ 쑰회 (뢄석 κ²°κ³Ό 포함)
GET    /api/documents/{id}/related # κ΄€λ ¨ λ¬Έμ„œ

# Knowledge Search (RAG)
POST   /api/search/ask            # μžμ—°μ–΄ 질문 β†’ AI λ‹΅λ³€
POST   /api/search/semantic       # 벑터 μœ μ‚¬λ„ 검색
GET    /api/search/history        # 검색 νžˆμŠ€ν† λ¦¬

# Chat
POST   /api/chat/message          # λŒ€ν™” λ©”μ‹œμ§€
GET    /api/chat/sessions         # λŒ€ν™” μ„Έμ…˜ λͺ©λ‘
WS     /api/chat/stream           # 슀트리밍 WebSocket

Document Understanding Schema

/// AIκ°€ λΆ„μ„ν•œ λ¬Έμ„œ 이해 κ²°κ³Ό
pub struct DocumentUnderstanding {
    pub document_id: Uuid,

    /// 핡심 주제 (3-5개)
    pub topics: Vec<String>,

    /// ν•œμ€„ μš”μ•½
    pub summary: String,

    /// ν•΄κ²°ν•œ 문제 (μžˆλ‹€λ©΄)
    pub problem_solved: Option<String>,

    /// 핡심 μΈμ‚¬μ΄νŠΈ
    pub insights: Vec<String>,

    /// κ΄€λ ¨ 기술/도ꡬ
    pub technologies: Vec<String>,

    /// λˆ„κ°€ μ•Œλ©΄ μ’‹μ„κΉŒ? (μ—­ν•  기반)
    pub relevant_for: Vec<String>,

    /// κ΄€λ ¨ λ¬Έμ„œ ID
    pub related_documents: Vec<Uuid>,

    /// 뢄석 μΌμ‹œ
    pub analyzed_at: DateTime<Utc>,
}

Development Guidelines

개발 μ„œλ²„ ν…ŒμŠ€νŠΈ ν•„μˆ˜

λ³€κ²½ ν›„ λ°˜λ“œμ‹œ 개발 μ„œλ²„λ‘œ ν…ŒμŠ€νŠΈν•˜μ—¬ μ—λŸ¬ 확인

Session Logging

.history/YYYY-MM-DD_task_description.md ν˜•μ‹μœΌλ‘œ μž‘μ—… 둜그 μ €μž₯

Commit Convention

feat: μƒˆ κΈ°λŠ₯
fix: 버그 μˆ˜μ •
refactor: λ¦¬νŒ©ν† λ§
docs: λ¬Έμ„œ
test: ν…ŒμŠ€νŠΈ

Code Quality

  • Rust: cargo clippy 톡과
  • Frontend: eslint + prettier
  • ν…ŒμŠ€νŠΈ 컀버리지 80% λͺ©ν‘œ

Key Design Decisions

1. νƒœκ·Έ λŒ€μ‹  AI 이해

  • μ‚¬μš©μžκ°€ νƒœκ·Έ κ³ λ―Όν•  ν•„μš” μ—†μŒ
  • AIκ°€ λ¬Έλ§₯을 μ΄ν•΄ν•˜κ³  μžλ™ μ—°κ²°
  • 검색은 μžμ—°μ–΄λ‘œ

2. 둜컬 μš°μ„ , ν΄λΌμš°λ“œ 선택

  • λ―Όκ°ν•œ νŒ€ 지식은 둜컬 μš°μ„ 
  • Vector DBλŠ” self-hosted κ°€λŠ₯
  • μ™ΈλΆ€ AI API 호좜만 λ„€νŠΈμ›Œν¬ ν•„μš”

3. 점진적 κ°€μΉ˜ 제곡

  • Phase 1λ§ŒμœΌλ‘œλ„ μ‚¬μš© κ°€λŠ₯
  • 각 Phaseκ°€ 독립적 κ°€μΉ˜ 제곡
  • νŒ€ 상황에 맞게 ν™•μž₯

Success Metrics

  • 검색 성곡λ₯ : μ§ˆλ¬Έμ— κ΄€λ ¨ λ‹΅λ³€ μ°ΎλŠ” λΉ„μœ¨
  • 지식 μž¬μ‚¬μš©λ₯ : μ €μž₯된 지식이 μ‹€μ œ ν™œμš©λ˜λŠ” λΉ„μœ¨
  • 암묡지 μ „ν™˜μœ¨: λŒ€ν™”/κ²½ν—˜ β†’ λ¬Έμ„œν™”λœ 지식
  • νŒ€μ› μ„±μž₯: λ‹€λ₯Έ νŒ€μ› μ§€μ‹μœΌλ‘œ 문제 ν•΄κ²°ν•œ 사둀

Next Actions

  1. pgvector PostgreSQL μ„€μ •
  2. Document Understanding νŒŒμ΄ν”„λΌμΈ κ΅¬ν˜„
  3. 벑터 μž„λ² λ”© μ €μž₯/검색 API
  4. RAG 기반 μžμ—°μ–΄ 검색
  5. λŒ€ν™”ν˜• μΈν„°νŽ˜μ΄μŠ€

References

μ™ΈλΆ€ μ°Έμ‘°

λ‚΄λΆ€ 레퍼런슀 (.claude/references/)

파일 λ‚΄μš©
_index.json 레퍼런슀 검색 인덱슀
research/2026-02-18_pkm-tools.md PKM 도ꡬ 비ꡐ 쑰사
architecture/rag-patterns.md RAG μ•„ν‚€ν…μ²˜ νŒ¨ν„΄
apis/embedding-apis.md Embedding API 비ꡐ

ν™œμš©: /ref-search μ»€λ§¨λ“œλ‘œ 검색, /ref-save둜 μƒˆ 레퍼런슀 μ €μž₯