Files
recordingtest/docs/contracts/sut-prober.md
minsung 7ffbb1f757 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>
2026-04-07 13:57:20 +09:00

2.4 KiB

Sprint Contract — sut-prober

Owner: Generator (일반 세션) Depends on: 없음 Issue: #2

Goal

EG-BIM Modeler SUT의 정적 구조(플러그인·설정·어셈블리)를 덤프해 docs/sut-catalog/에 베이스라인 가능한 카탈로그를 생성한다. SUT는 실행하지 않는다.

Definition of Done

  • dotnet run --project src/Recordingtest.SutProber 실행으로 카탈로그 3종이 생성된다: plugins.json, json-configs.json, assemblies.json
  • plugins.jsonEG-BIM Modeler/Plugins/Eg*Plugin/ 187개(±) 전부를 담고, 각 항목은 { name, path, dlls[], size_bytes } 형식
  • json-configs.jsonEG-BIM Modeler/Json/*.json 각 파일별 { name, top_level_keys[], suspected_nondeterministic_fields[] }
  • assemblies.jsonHmEG*.dll, Editor*.dll, HmGeometry*.dll{ name, size, has_pdb }
  • 출력은 정렬되어 있어 두 번 실행해도 동일 (decimal/텍스트 diff 없음)
  • EG-BIM Modeler/ 폴더에 대한 쓰기 접근이 없다 (코드 리뷰로 확인)
  • 경로는 repo root 상대 경로로 기록(절대 경로 금지)

Interfaces / contracts

  • Inputs: EG-BIM Modeler/ (read-only), CLI 인자 --sut <path> (기본 EG-BIM Modeler)
  • Outputs: docs/sut-catalog/plugins.json, docs/sut-catalog/json-configs.json, docs/sut-catalog/assemblies.json
  • Side effects: 없음 (로그 제외)

Out of scope

  • SUT 실행 / 리플렉션 / 동적 분석
  • PDB 파싱 (engine-bridge의 몫)
  • UIA 트리 덤프 (recorder 또는 별도 PoC의 몫)

Evaluation plan

evaluator는 다음을 수행:

  1. dotnet build 성공
  2. dotnet run --project src/Recordingtest.SutProber -- --sut "EG-BIM Modeler" 실행, exit code 0 확인
  3. 세 카탈로그 파일 존재 확인 + JSON 파싱 유효성
  4. plugins.json 엔트리 수 ≥ 180
  5. 두 번째 실행 후 세 파일 git diff 결과가 비어있음을 확인 (결정성)
  6. grep -r "EG-BIM Modeler" src/Recordingtest.SutProber/ 결과에 File.Write|File.Delete|File.Create 호출 없음 확인

Risks / open questions

  • .NET 버전 합의 필요 (net8.0 제안). SUT와 다를 수 있으나 prober는 독립 프로세스이므로 무관.
  • 플러그인 폴더 구조가 일정한지 샘플 확인 필요.
  • 경로 구분자(Windows \) 정규화 정책 — 출력에서 /로 통일 권장.