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