# CLAUDE.md ## 나는 누구인가 - **이름:** 김민성 (kimminsung) - **하는 일:** BIM SW 시니어 개발자. 25년간 3D 뷰어·에디터·모델링툴, DWG·CAD 엔진 개발. - **핵심 가치:** 기능은 좁히되 **품질·아키텍처는 타협 없음.** MVP식이라도 스파게티 금지. 차근차근. ## 나의 역할들 ### cimery 개발자 - **하는 일:** `cimery` — Revit의 토목 버전 파라메트릭 모델링 도구 설계·개발. (명칭: Civil + BIM + -ery) - **주요 관심사:** 토목 구조물(MVP: 거더교) 모델링, 선형·GIS 연동, 증분 인터랙티브 파라메트릭. - **기술 스택 (2026-04-14 확정):** Rust 기반. 웹(PWA) + 데스크톱(Tauri) 듀얼 타깃. 기하 커널은 OpenCascade.js(웹) / opencascade-rs(데스크톱) 이원화, `GeomKernel` trait로 추상화. 렌더 wgpu→WebGPU. 기존 C# 엔진은 알고리즘·지식만 승계. 상세: `Output/reports/ADR-001-tech-stack.md`. ### ParaWiki 큐레이터 - **하는 일:** AI가 읽고 활용할 수 있는 파라메트릭 모델링 지식 저장소를 Obsidian 기반으로 구축. - **주요 관심사:** AI 친화적 구조, 빠른 인덱싱·링크, 잠정 설계 원칙과 연결되는 자료 우선 수집. ## 나의 비전과 목표 - **이루고자 하는 것:** 토목 엔지니어링 특성을 반영한 파라메트릭 모델링 도구를 시장에 공급. - **두 단계 전략:** 1. ParaWiki — "AI를 위한 세컨드 브레인" 지식 저장소 구축. 2. AI와 함께 토목용 파라메트릭 모델링 도구 개발. - **타겟 독자/고객:** 토목 설계자, 시공사. ## AI에게 기대하는 것 - **전부.** 개념 QA, 코드 초안 생성, 아키텍처 제안, 논문→구현 번역, 코드 리뷰·리팩터링. - ParaWiki의 자료를 근거로 답할 것. - 제품 스펙을 확정하기 전에 **저장소 구축**을 우선 도울 것. ## 작업 규칙 - **언어:** 한국어로 작성. **중요 용어는 영어 병기** (예: 선형(alignment)). - **톤:** 간결·명료. 장황한 설명·불필요한 예시 나열 금지. - **질문:** 한 번에 **2~3개 이하**, 각 질문은 한 줄. - **결과물 형태:** AI가 활용하기 좋은 구조가 1순위. 사람은 최상위 index 링크로 접근. - **잠정 설계 원칙 (수집·개발의 나침반):** 1. 비(非)패밀리 조립 단위 2. 증분 인터랙티브 파라메트릭(incremental) 3. 선형·GIS 기반 좌표계 자료 편입 시 이 원칙 중 최소 하나와 연결되는지 확인. - **MVP 원칙:** 기능은 좁힘 + 품질·아키텍처는 타협 없음. 철근 설계는 v2로 미룸. ## 위키 운영 규칙 (Karpathy LLM Wiki 패턴) 폴더 구조: - `raw/` — **불변 원본.** 인풋 유형별 하위 폴더(ai-research/papers/standards/tools/notes). 이 아래 파일은 **절대 수정·삭제 금지.** - `wiki/` — **AI가 컴파일하는 위키 페이지.** 여기만 생성/수정 가능. `index.md`, `log.md` 포함. - `Output/` — **결과물** (아키텍처 문서, 코드 초안, 조사 보고서 등). **10대 규칙:** 1. `raw/`는 절대 수정 금지 (불변 원본). 2. wiki 페이지 생성·삭제 시 `wiki/index.md` 필수 업데이트. 3. 모든 오퍼레이션마다 `wiki/log.md`에 기록. 4. 내부 참조는 **wikilink** 형식 (`[[페이지명]]`). 5. 모든 wiki 페이지 상단에 **YAML frontmatter** (title, tags, sources, updated). 6. 모순 발견 시 **양쪽 소스 모두 인용.** 7. 소스 요약은 **사실만**, 해석은 개념 페이지에서. 8. 질의 시 `wiki/index.md` 먼저, `raw/`는 마지막 수단. 9. **새 페이지보다 기존 페이지 업데이트 우선.** 10. `index.md` 항목은 **한 줄, 120자 이내.** 각 주요 폴더의 세부 규칙은 해당 폴더의 `CLAUDE.md` 참조. ## Obsidian CLI 사용 이 프로젝트 볼트는 Obsidian 공식 CLI(1.12.4+)로 검색 가능. 파일시스템 grep보다 빠르고 Obsidian 인덱스·wikilink·백링크를 활용한다. **문법:** `obsidian key=value key=value` (Unix 플래그 아님) 값에 공백이 있으면 따옴표: `query="증분 파라메트릭"` **주요 명령:** - `obsidian search query="<질의>" path=wiki` — 파일명 목록 반환 - `obsidian search:context query="<질의>" path=wiki` — 매칭 라인 컨텍스트 포함 - `obsidian read file="<페이지명>"` — 파일 내용 읽기 (wikilink 이름으로 해결) - `obsidian backlinks file="<페이지명>"` — 백링크 조회 - `obsidian outline file="<페이지명>"` — 헤딩 목록 - `obsidian files folder=wiki` — wiki/ 파일 목록 - `obsidian open file="<페이지명>"` — 앱에서 페이지 열기 - `obsidian help` / `obsidian help ` — 전체·개별 도움말 **사용 원칙:** - `wiki/` 검색 시 `obsidian search:context` 우선 (Obsidian 앱이 실행 중이어야 함). 미실행·미설치 시 Grep 폴백. - 파일 읽기는 경로 대신 이름(`file=...`) 사용 가능 — Read 도구보다 wikilink 친화적. - 복잡한 질의·개념 QA는 `query` skill이 상위 레이어 (index.md → 필요 시 CLI 보조).