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

2.8 KiB

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 우선: 먼저 컴파일되게 만들고, 최적화는 나중에.

빌드

# 전체 체크
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 스캐폴딩)