문서 갱신 — dev-guide·cimery/CLAUDE.md·wiki log Sprint 39 반영
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>
This commit is contained in:
minsung
2026-04-16 08:39:28 +09:00
parent e32c09df2d
commit a985e62254
3 changed files with 48 additions and 24 deletions

View File

@@ -1,10 +1,11 @@
---
title: cimery 개발 지침
updated: 2026-04-14
updated: 2026-04-15
related-adr:
- "[[ADR-001-tech-stack]]"
- "[[ADR-002-feature-dsl]]"
- "[[ADR-003-architecture-followups]]"
- "[[ADR-004-sprint-25-39-decisions]]"
---
# cimery 개발 지침
@@ -15,8 +16,9 @@ cimery 관련 작업 시 먼저 읽는 문서. CLAUDE.md에서 링크된다.
1. `Output/reports/ADR-001-tech-stack.md` — 기술 스택
2. `Output/reports/ADR-002-feature-dsl.md` — Feature DSL 아키텍처
3. `Output/reports/ADR-003-architecture-followups.md` — UI·IFC·CI/CD·USD·Plugin·Feature 카탈로그·LOD·UX 등
4. 본 문서 — 지침 요약·규약
5. `~/.claude/.../memory/` — 개인 선호·작업 방식
4. `Output/reports/ADR-004-sprint-25-39-decisions.md` — 거더교 MVP 확장·IFC4X3 Add2·proc-macro 스캐폴딩 15결정
5. 본 문서 — 지침 요약·규약
6. `~/.claude/.../memory/` — 개인 선호·작업 방식
ADR과 본 문서가 충돌하면 **ADR 우선**. ADR 개정은 새 ADR로 수행 (`status: superseded-by:`).
@@ -35,17 +37,18 @@ ADR과 본 문서가 충돌하면 **ADR 우선**. ADR 개정은 새 ADR로 수
## 아키텍처 파이프라인
```
Rust DSL (builder + macro_rules! 설탕)
└─ #[param(unit, range, default)] attribute 메타
└─ #[param(unit, range, default)] attribute 메타 ← 스캐폴딩(Sprint 38)
IR (JSON/MessagePack, 결정론적 직렬화)
salsa query (Feature 단위, Lazy/Reactive)
salsa query (Feature 단위, Lazy/Reactive) — Sprint 24 구현
Evaluator → GeomKernel trait
├─→ 자체 wgpu 뷰어 ()
─→ USD export (증분 Prim 단위, IFC alias 이중 태깅)
├─→ 자체 wgpu 뷰어 (egui 패널 + Ortho/Perspective)
─→ USD export (Sprint 21)
└─→ IFC4X3 Add2 export (Sprint 33~36, Alignment+PSC-I+Pset_BeamCommon)
```
CSV 라운드트립: 개발자 템플릿 → CSV export → 엔지니어 편집 → CSV import → DSL 소스 재생성.
CSV 라운드트립(Sprint 7): 개발자 템플릿 → CSV export → 엔지니어 편집 → CSV import → DSL 소스 재생성.
## 코드 규약
- **단위 강제:** 구조물 `Mm`, 선형 `M`. 암묵 변환 금지. 경계 함수 시그니처에 명시.
@@ -67,10 +70,10 @@ CSV 라운드트립: 개발자 템플릿 → CSV export → 엔지니어 편집
- 선택·필터: Category = **Feature kind**. cimery 고유 = 선형 기반 선택·규칙 선택·영향권 하이라이트.
- 개념 다른 영역은 "Revit Element ≠ cimery Feature instance"처럼 차이를 공식 문서화.
## Feature 카탈로그 (MVP 거더교)
- **Must (v1):** Girder · Deck Slab · Pier · Abutment · Bearing · Alignment(입력)
- **Should (v1.1):** Cross Beam · Expansion Joint · Parapet
- **Could (v2):** Foundation · Approach Slab · Drainage
## Feature 카탈로그 (MVP 거더교) — Sprint 39 시점
- **Must (v1) — 구현 완료:** Girder(PSC-I·SteelBox) · Deck Slab · Pier(T형·π형) · Abutment · Bearing · Alignment(입력) · 다경간
- **Should (v1.1) — 구현 완료:** Cross Beam · Expansion Joint · Parapet · Diaphragm(격벽) · Haunch · Skew · Camber · Variable Depth
- **Could (v2):** Foundation · Approach Slab · Drainage · IfcPile
- **Won't (v3+):** 철근·사장교·현수교·아치·트러스
## 사용자 설정 (VS Code 3계층 모델)
@@ -86,6 +89,8 @@ CSV 라운드트립: 개발자 템플릿 → CSV export → 엔지니어 편집
**12개 ADR-003 결정을 동시 진행 금지.**
첫 **Girder 1개**로 전 계층(DSL → IR → salsa → evaluator → OCCT → wgpu → USD) **한 번 관통**한 뒤 수평 확장. 뷰어 한 달·DSL 한 달 식 수평 접근은 치명적.
**Sprint 1~39 현황:** 수직 관통 완료. Girder·Deck·Pier·Abutment·Bearing 전부 DSL→IR→kernel→viewer→USD+IFC 파이프라인 연결됨. ADR-004 참조.
## 함정 체크리스트
- 두 OCCT 백엔드 수치 미세 차이 → cross-check 조기 검증.
- 기하 연산 비결정성 → 결정론 테스트 CI 1순위.