Files
hyungi_document_server/CLAUDE.md
Hyungi Ahn bec9579a8a chore: 프로젝트 구조 + 설계 문서 초기 커밋
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 11:22:04 +09:00

4.8 KiB

DEVONThink PKM 시스템 — Claude Code 작업 가이드

프로젝트 개요

Mac mini M4 Pro(64GB, 4TB) 기반 개인 지식관리(PKM) 시스템. DEVONthink 4를 중앙 허브로, Ollama AI 자동 분류 + 법령 모니터링 + 일일 다이제스트를 자동화한다.

핵심 문서 (반드시 먼저 읽을 것)

  1. docs/architecture.md — 전체 시스템 아키텍처 (DB 구조, 태그, AI, 자동화 전체)
  2. docs/industrial-safety-blueprint.md — 04_Industrial Safety DB 상세 설계
  3. docs/claude-code-commands.md — 단계별 작업 지시서

네트워크 환경

Mac mini (운영 서버):
  - Ollama: http://localhost:11434
  - DEVONthink: 로컬 실행 중
  - OmniFocus: 로컬 실행 중

Synology NAS (DS1525+):
  - 도메인: ds1525.hyungi.net
  - Tailscale IP: 100.101.79.37
  - 포트: 15001
  - WebDAV: webdav.hyungi.net/Document_Server/DEVONThink/
  - MailPlus IMAP: mailplus.hyungi.net:993 (SSL)

GPU 서버 (RTX 4070 Ti Super):
  - 역할: 임베딩(nomic-embed-text), 비전(Qwen2.5-VL-7B), 리랭킹(bge-reranker)
  - Tailscale IP: 별도 확인 필요

TKSafety: tksafety.technicalkorea.net (설정만, 나중에 활성화)

인증 정보

  • 위치: ~/.config/pkm/credentials.env
  • 템플릿: ./credentials.env.example
  • 스크립트에서 python-dotenv로 로딩

DEVONthink DB 구조 (13개)

운영 DB (신규 생성 완료):
  Inbox     — 모든 자료 최초 진입점
  Archive   — 이메일, 채팅 로그
  Projects  — 진행 중 프로젝트

도메인 DB (기존, 유지):
  00_Note_BOX, 01_Philosophie, 02_Language, 03_Engineering,
  04_Industrial safety, 05_Programming, 07_General Book,
  97_Production drawing, 99_Reference Data, 99_Technicalkorea

커스텀 메타데이터 필드 (DEVONthink에 등록 완료)

omnifocusTaskID  — Single-Line Text — OmniFocus 역링크
sourceURL        — URL             — 원본 출처
synologyPath     — Single-Line Text — NAS 원본 경로
lastAIProcess    — Date            — 마지막 AI 처리 일시
sourceChannel    — Single-Line Text — 유입 경로 (아래 값 중 하나)
dataOrigin       — Single-Line Text — work 또는 external

sourceChannel 값 (유입 경로 추적)

tksafety     — TKSafety API (업무 실적)      → dataOrigin = work
devonagent   — DEVONagent 자동 수집 (뉴스)    → dataOrigin = external
law_monitor  — 법령 API (법령 변경)           → dataOrigin = external
inbox_route  — Inbox → AI 분류               → AI 판별
email        — MailPlus 이메일               → AI 판별
web_clip     — Web Clipper 스크랩             → dataOrigin = external
manual       — 직접 추가                     → dataOrigin = work (기본)

AI 모델 구성

Tier 1 (Mac mini, 상시):
  qwen3.5:35b-a3b-q4_K_M — 태그 생성, 문서 분류, 요약
  → http://localhost:11434/api/generate

Tier 2 (Claude API, 필요시):
  claude-sonnet — 복잡한 분석, 장문 처리
  → CLAUDE_API_KEY 사용

Tier 3 (GPU 서버, 특수):
  nomic-embed-text  — 벡터 임베딩
  Qwen2.5-VL-7B    — 이미지/도면 OCR
  bge-reranker-v2-m3 — RAG 리랭킹

작업 순서

docs/claude-code-commands.md의 단계를 순서대로 진행:

  1. 프로젝트 구조 — README.md, deploy.md 작성 (구조는 이미 생성됨)
  2. Ollama 테스트 — 분류 프롬프트 최적화 → scripts/prompts/에 저장
  3. AppleScript — auto_classify.scpt, omnifocus_sync.scpt
  4. 법령 모니터링 — scripts/law_monitor.py + launchd plist
  5. 이메일 수집 — scripts/mailplus_archive.py + launchd plist
  6. Daily Digest — scripts/pkm_daily_digest.py + launchd plist
  7. DEVONagent 가이드 — docs/devonagent-setup.md (수동 설정 가이드)
  8. 테스트 — tests/ + docs/test-report.md

코딩 규칙

  • Python 3.11+ (Mac mini 기본)
  • 인증 정보는 반드시 credentials.env에서 로딩 (하드코딩 금지)
  • AppleScript는 DEVONthink/OmniFocus와 연동 (osascript로 호출)
  • 로그는 ~/Documents/code/DEVONThink_my\ server/logs/에 저장
  • launchd plist는 launchd/ 디렉토리에 생성, Mac mini에서 심볼릭 링크로 등록
  • 한글 주석 사용

배포 방법

MacBook Pro (개발) → Gitea push → Mac mini에서 git pull
Mac mini에서:
  cd ~/Documents/code/DEVONThink_my\ server/
  git pull
  source venv/bin/activate
  pip install -r requirements.txt
  # launchd 등록은 deploy.md 참조

주의사항

  • credentials.env는 git에 올리지 않음 (.gitignore에 포함)
  • DEVONthink, OmniFocus는 Mac mini에서 GUI로 실행 중이어야 AppleScript 작동
  • 법령 API (LAW_OC)는 승인 대기 중 — 스크립트만 만들고 실제 호출은 승인 후
  • TKSafety 연동은 설계만 완료, 구현은 나중에
  • GPU 서버 Tailscale IP는 별도 확인 후 credentials.env에 추가