Set up AI dev environment for recordingtest (#2)
- CLAUDE.md with collaboration rules and Planner/Generator/Evaluator cycle - .claude/ agents, commands, skills, hooks per Claude Code conventions - Sprint Contracts for sut-prober, normalizer, recorder, player, diff-reporter - SUT catalog (EG-BIM Modeler, 187 plugins) and .gitignore excluding SUT tree - PROGRESS.md / PLAN.md as shared agent handoff state - Solution scaffold targeting sut-prober PoC Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
100
docs/sut-catalog/catalog.md
Normal file
100
docs/sut-catalog/catalog.md
Normal file
@@ -0,0 +1,100 @@
|
||||
# SUT Catalog (v0, 정적 분석)
|
||||
|
||||
> 수동 관찰 기반 초기 카탈로그. `sut-prober` PoC 완료 시 기계 생성 파일로 교체된다.
|
||||
> 마지막 갱신: 2026-04-07
|
||||
|
||||
## 개요
|
||||
|
||||
- **이름**: EG-BIM Modeler
|
||||
- **위치**: `EG-BIM Modeler/` (git 제외)
|
||||
- **실행파일**: `EG-BIM Modeler.exe` (.NET / WPF)
|
||||
- **구성**: `.deps.json`, `.runtimeconfig.json`, `.pdb` 동봉
|
||||
|
||||
## 핵심 어셈블리
|
||||
|
||||
| 이름 | 역할 | PDB |
|
||||
|------|------|-----|
|
||||
| `HmEG.dll` | 자체 3D 엔진 | ✅ (`HmEG.pdb`, `HmEG.xml`) |
|
||||
| `HmGeometry.dll` / `HmGeometry.V2.dll` | 지오메트리 커널 | ✅ |
|
||||
| `HmTriangle.dll` | 삼각분할 | ✅ |
|
||||
| `HmPG.dll` | (추정) 페러미터 그래프/프로파일 | - |
|
||||
| `HmCommonUI.dll`, `HmCommonBridge.dll` | 공통 UI / 네이티브 브릿지 | - |
|
||||
| `Editor02.HmEGAppManager.dll` | 앱 생명주기 / plugin 매니저 (MEF 로드 추정) | ✅ |
|
||||
| `Editor03.PluginInterface.dll` | Plugin 기본 계약 | ✅ |
|
||||
| `Editor04.CommandControl.dll` | 명령 파이프라인 UI | ✅ |
|
||||
| `Editor05.CommandCore.dll` | 명령 실행 코어 | ✅ |
|
||||
| `Editor06.CommandCustom.dll` | 커스텀 명령 | ✅ |
|
||||
| `Editor07.WidgetPluginInterface.dll` | 위젯 플러그인 계약 | ✅ |
|
||||
| `EditorCore.dll` | Editor 코어 | ✅ |
|
||||
| `Editor01.Localization.dll` | 다국어 | ✅ |
|
||||
| `Editor.AI01.HttpConnector.dll` | AI 연동 | ✅ |
|
||||
|
||||
## 렌더링
|
||||
|
||||
- **SharpDX** (D3D9/D3D11/DXGI/Direct2D, Mathematics, D3DCompiler)
|
||||
- 3D 뷰포트는 D3D surface → **UIA 사각지대**
|
||||
- `assimp.dll` / `AssimpNet.dll` → 메시 임포트
|
||||
- `freetype6.dll`, `SharpFont.dll` → 폰트
|
||||
- `SharpVectors.*` → SVG 지원
|
||||
|
||||
## UI 스택
|
||||
|
||||
- `MahApps.Metro`, `ControlzEx`, `Dragablz`
|
||||
- `CommunityToolkit.Mvvm`
|
||||
- `Microsoft.Xaml.Behaviors`, `System.Windows.Interactivity`
|
||||
- `System.Windows.Controls.WpfPropertyGrid`
|
||||
- `Microsoft.Web.WebView2.*` (WebView2 패널)
|
||||
|
||||
## 유틸/공용
|
||||
|
||||
- `Serilog` + `Serilog.Sinks.File`, `log4net`
|
||||
- `Newtonsoft.Json`, `Google.Protobuf`, `MemoryPack.Core`
|
||||
- `UnitsNet`, `FluentScheduler`, `System.Reactive`, `Flurl.Http`
|
||||
- `BaronSoftware.Auth.dll` — 인증/라이선스 추정 (**레코딩 시 민감정보 주의**)
|
||||
|
||||
## Json 설정 (텍스트 golden-file 1차 타깃)
|
||||
|
||||
`EG-BIM Modeler/Json/`:
|
||||
|
||||
- `Settings.json`, `DefaultSettings.json`
|
||||
- `CategoryCommands.json`, `DefaultCategoryCommands.json`
|
||||
- `CommandAlias.json`, `DefaultCommandAlias.json`
|
||||
- `KeyShortCut.json`, `DefaultKeyShortCut.json`
|
||||
- `MouseSnap.json`, `DefaultMouseSnap.json`
|
||||
- `StartupCommand.json`, `DefaultStartupCommand.json`
|
||||
- `Units.json`, `DefaultUnits.json`
|
||||
- `Materials.json`
|
||||
- `RecentFiles.json` — **확실히 비결정적** (최근 사용 파일 경로)
|
||||
|
||||
### 비결정성 후보 필드 (정규화 대상)
|
||||
|
||||
- `RecentFiles.json` 전체
|
||||
- 모든 `Settings.json` 내부의 경로·창 크기·마지막 실행 시간
|
||||
- GUID·타임스탬프 (포맷 확인 필요)
|
||||
|
||||
## 저장 파일 포맷
|
||||
|
||||
- `lmd.hme` — 자체 모델 포맷 (`.hme`)
|
||||
- `jversion.egm` — 버전/메타 파일
|
||||
- **바이너리 추정** — 별도 포맷 분석 contract 필요
|
||||
|
||||
## 로컬라이제이션
|
||||
|
||||
- `ko-KR`, `en-US`, `ja-JP`, `es-ES` 리소스 폴더
|
||||
- `Editor01.Localization.dll` 경유
|
||||
|
||||
## MEF Plugin
|
||||
|
||||
- 위치: `EG-BIM Modeler/Plugins/Eg*Plugin/`
|
||||
- **총 187개** (2026-04-07 스냅샷)
|
||||
- 카테고리: 생성(Box, Circle, Arc, Curve, Cone, Cylinder …), Boolean(Union/Intersection/Difference), Array(Linear/Polar/Crv), Align, Check(Border/Disjointed/Duplicated/NonManifold/Self-Intersection/Overlap/ZeroArea/ZeroCurve), Audit, Block(Edit), Chamfer, Clash, Cap, Cut, DeleteFaces, Import/Export 등
|
||||
- 전체 목록: [plugins.md](plugins.md)
|
||||
|
||||
## recordingtest 영향 요약
|
||||
|
||||
1. **1차 검증 타깃**: `Json/` 텍스트 파일 (정규화 쉬움)
|
||||
2. **2차**: `.hme`/`.egm` 파서 필요
|
||||
3. **3D 뷰포트**: 좌표 입력 + engine-bridge
|
||||
4. **Plugin 카탈로그**: sut-prober 자동 덤프
|
||||
5. **PDB 풍부** → engine-bridge 리플렉션 비용 낮음
|
||||
6. **인증/라이선스**: 자동화 테스트 환경에서 로그인 상태 유지/마스킹 필요
|
||||
Reference in New Issue
Block a user