All checks were successful
Publish ParaWiki / build-and-deploy (push) Successful in 30s
## 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>
61 lines
2.8 KiB
Markdown
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 스캐폴딩)
|