Files
ParaWiki/CLAUDE.md
minsung 9cbe76cc5e cimery Sprint 2 — PSC-I 기하학 + viewer 개편 + OCCT optional
kernel:
- PureRustKernel: PSC-I 단면 14-vertex polygon 스위프, flat normals
  56 triangles / 168 vertices, 법선 단위벡터 검증 포함
- opencascade 의존성 optional feature (--features occt)로 격리
  → OCCT 없이도 전체 빌드 가능
- psc_i.rs: 프로파일 검증, AABB, 법선 테스트 6개

viewer:
- camera.rs: arcball orbit (middle-mouse drag + scroll zoom)
- shader.wgsl: MVP matrix uniform + 방향성 조명 (콘크리트 베이지)
- lib.rs: depth buffer, index 렌더, 실제 Mesh 업로드
  StubKernel → PureRustKernel → OcctKernel 교체 경로 문서화

CLAUDE.md: MVP 품질 원칙 강화 ("아키텍처 임의 변경 절대 불가")

cargo test --workspace (viewer 제외) 43개 전부 통과

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 18:48:10 +09:00

72 lines
4.0 KiB
Markdown

# CLAUDE.md
## 나는 누구인가
- **이름:** 김민성 (kimminsung)
- **하는 일:** BIM SW 시니어 개발자. 25년간 3D 뷰어·에디터·모델링툴, DWG·CAD 엔진 개발.
- **핵심 가치:** 기능은 좁히되 **품질·아키텍처는 타협 없음.** MVP식이라도 스파게티 금지.
## 나의 역할
- **cimery 개발자** — Revit의 토목 버전 파라메트릭 모델링 도구 `cimery`(Civil + BIM + -ery) 설계·개발. MVP = 거더교.
- **ParaWiki 큐레이터** — AI가 활용할 파라메트릭 모델링 지식 저장소를 Obsidian 기반으로 구축.
## 비전
토목 엔지니어링 특성을 반영한 파라메트릭 모델링 도구를 시장에 공급.
두 단계: ① ParaWiki(AI용 세컨드 브레인) → ② cimery 개발. 타겟: 토목 설계자·시공사.
## 에이전트 작업 흐름 (필독)
작업을 **시작할 때** 항상 두 파일을 먼저 읽는다:
- **`PROGRESS.md`** — 지금까지 무엇이 끝났는지 (스냅샷 + 타임라인)
- **`PLAN.md`** — 무엇을 해야 하는지 (우선순위별 과제 목록)
작업 **중**: 착수한 PLAN 항목을 `- [~] 진행 중 (담당/에이전트명)`으로 표시.
작업 **완료 시:** `PROGRESS.md`에 한 줄 추가 + `PLAN.md`에서 해당 항목 제거.
**새 과제**가 생기면 `PLAN.md` 우선순위 위치에 즉시 삽입.
여러 에이전트가 병렬로 일할 때 이 두 파일이 유일한 조정 지점이다. 다른 문서(ADR·가이드)는 참조용, 상태는 여기에.
## 작업 규칙
- **언어:** 한국어 + 중요 용어 영어 병기 (예: 선형(alignment)).
- **톤:** 간결·명료. 장황 금지.
- **질문:** 한 번에 2~3개 이하, 각 한 줄.
- **결과물:** AI 활용 구조 1순위. 사람은 index 링크로 접근.
- **3대 잠정 설계 원칙:** ① 비(非)패밀리 조립 단위 ② 증분 인터랙티브 파라메트릭 ③ 선형·GIS 기반 좌표계.
- **MVP 원칙 (절대 원칙):**
> **기능은 좁히되, 품질·아키텍처는 절대 타협 없음.**
- 기능 축소 = OK. 아키텍처 임의 변경 = **절대 불가**.
- ADR에 확정된 결정(기술 스택·라이브러리·설계 패턴)을 "설치 번거로움", "빌드 복잡성"을 이유로 우회하는 것은 **금지**.
- 막히면 우회가 아니라 **문제를 해결**한다. 해결 못하면 사용자에게 정직하게 보고.
- 철근은 v2. **그 외 결정된 것은 결정된 대로 구현.**
## 권위 문서 (Source of Truth)
상세 지침은 전부 분리 문서에 있다. 본 CLAUDE.md는 포인터만 제공.
| 주제 | 문서 |
|---|---|
| **cimery 개발 지침** (기술 스택·코드 규약·함정·UX·구현 우선순위) | `Output/guides/cimery-dev-guide.md` |
| **아키텍처 결정(ADR)** | `Output/reports/ADR-001-tech-stack.md` · `ADR-002-feature-dsl.md` · `ADR-003-architecture-followups.md` |
| **위키 지식 저장소** | `wiki/index.md` |
| **Obsidian CLI 참조** | `Output/guides/obsidian-cli.md` |
| **Revit API 참조 자료** | `Output/guides/revit-api-guide.md` |
cimery 관련 작업 시작 시 `cimery-dev-guide.md`를 먼저 읽을 것. ADR과 지침이 충돌하면 **ADR 우선.**
## 위키 운영 규칙 (Karpathy LLM Wiki 패턴)
**폴더:**
- `raw/` — 불변 원본. 수정·삭제 금지.
- `wiki/` — AI가 컴파일하는 위키 페이지 (`index.md`·`log.md` 포함).
- `Output/` — 결과물 (ADR·리포트·가이드).
**10대 규칙:**
1. `raw/`는 절대 수정 금지.
2. wiki 페이지 생성·삭제 시 `wiki/index.md` 업데이트.
3. 오퍼레이션마다 `wiki/log.md` 기록.
4. 내부 참조는 wikilink `[[페이지명]]`.
5. wiki 페이지 상단 YAML frontmatter 필수.
6. 모순 발견 시 양쪽 소스 모두 인용.
7. 소스 요약은 사실만, 해석은 개념 페이지에서.
8. 질의 시 `wiki/index.md` 먼저, `raw/`는 마지막 수단.
9. 새 페이지보다 기존 페이지 업데이트 우선.
10. `index.md` 항목은 한 줄, 120자 이내.
각 폴더 세부 규칙은 해당 폴더의 `CLAUDE.md` 참조.