Files
ParaWiki/cimery/CLAUDE.md
minsung a985e62254
All checks were successful
Publish ParaWiki / build-and-deploy (push) Successful in 30s
문서 갱신 — dev-guide·cimery/CLAUDE.md·wiki log Sprint 39 반영
## Output/guides/cimery-dev-guide.md
- related-adr 에 ADR-004 추가, updated 2026-04-15.
- 권위 순서: ADR-004 삽입.
- 아키텍처 파이프라인 다이어그램: salsa(Sprint 24), USD(21), IFC4X3(33~36)
  구현 스프린트 표기.
- Feature 카탈로그 실제 구현 현황 반영:
  Must v1: 다경간·PSC-I/SteelBox·T형/π형 피어 전부 완료.
  Should v1.1: Diaphragm·Haunch·Skew·Camber·Variable Depth 구현 완료.
- 구현 우선순위: "수직 관통 완료" 현황 추가.

## cimery/CLAUDE.md
- 크레이트 구조 Sprint 39 현황으로 재작성:
  · ifc/ 신규 (Sprint 33~36)
  · macros/ 신규 (Sprint 38)
  · app/ (Sprint 23)
  · 의존 방향 업데이트: core → ir → {dsl, kernel, usd, ifc}
- 업그레이드 경로 표: 5개 축(incremental/kernel/viewer/dsl/ifc) 의
  현재·다음 단계 표.
- 참조 ADR 목록에 ADR-004 추가.

## wiki/log.md
- ADR-004 entry 추가 (2026-04-15).

PROGRESS.md 는 이전 커밋에서 반영 완료.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 08:39:28 +09:00

61 lines
2.8 KiB
Markdown

# cimery/CLAUDE.md
cimery 코드베이스 개발 지침. 최상위 CLAUDE.md + Output/guides/cimery-dev-guide.md의 상세판.
## 크레이트 구조 (Sprint 39 현황)
```
crates/
├── core/ 단위 타입(Mm·M), 에러, 도메인 열거형 ← 모두 의존
├── ir/ IR 구조체 + serde JSON 직렬화 ← dsl·kernel·usd·ifc 의존
├── dsl/ Girder 등 Feature 빌더 + 검증 ← ir 의존
├── kernel/ GeomKernel trait + StubKernel/PureRust/Occt ← ir 의존
├── incremental/ 증분 계산 DB (수동 + salsa 백엔드) ← kernel·ir 의존
├── evaluator/ IR → kernel 연결 레이어 ← incremental·kernel 의존
├── viewer/ egui+wgpu 뷰어, IFC 익스포트 통합 ← kernel·ifc 의존
├── usd/ USD 텍스트 익스포트 ← ir 의존
├── ifc/ IFC4X3 Add2 STEP Part21 익스포터 ← ir·core 의존 (Sprint 33~36)
├── macros/ proc-macro: #[derive(ParamSummary)] ← 독립 (Sprint 38)
└── app/ Tauri v2 데스크톱 런처 ← 전 크레이트 의존
```
의존 방향: core → ir → { dsl, kernel, usd, ifc } → incremental → evaluator → viewer → app
## 개발 규칙
- **단위 강제:** 구조물 `Mm(f64)`, 선형 `M(f64)`. `UnitExt` trait로 리터럴 지원.
- **암묵 변환 금지:** `From<Mm> for M` 존재하나 반드시 명시적으로 호출.
- **결정론:** 같은 IR JSON → 같은 기하. 연산 순서 고정.
- **테스트 4층:** IR 스냅샷 (insta) · 기하 불변량 · 두 커널 cross-check · proptest.
- **StubKernel:** 실제 OCCT 전 기하 검증용. 박스 형태 반환. Sprint 1 전용.
- **cargo check 우선:** 먼저 컴파일되게 만들고, 최적화는 나중에.
## 빌드
```bash
# 전체 체크
cargo check --workspace
# 전체 테스트
cargo test --workspace
# 특정 크레이트
cargo test -p cimery-core
```
## 업그레이드 경로 — 완료·진행·대기
| 경로 | 현재 | 다음 |
|---|---|---|
| `incremental` | 수동 + salsa-backend 양쪽 (Sprint 24) | WASM salsa 승격 |
| `kernel` | PureRust + OcctKernel(데스크톱) | opencascade.js(웹) |
| `viewer` | egui+wgpu 전체 씬 + Ortho 토글 | LOD · 성능 최적화 |
| `dsl` | builder + `#[derive(ParamSummary)]` 스캐폴딩 | `#[param(unit,range,default)]` 전면 |
| `ifc` | IFC4X3 Add2 Phase 1~3b + Pset_BeamCommon | LinearPlacement · ElementAssembly |
## 참조 ADR
- ADR-001: 기술 스택 (Rust + Tauri/PWA, OCCT, wgpu)
- ADR-002: Feature DSL 아키텍처 (builder, IR, salsa, evaluator, 테스트 4층)
- ADR-003: 후속 결정 (Feature 카탈로그, LOD, UX)
- ADR-004: Sprint 25~39 결정 (거더교 MVP 확장·IFC4X3 Add2·proc-macro 스캐폴딩)