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:
44
docs/contracts/player.md
Normal file
44
docs/contracts/player.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# Sprint Contract — player
|
||||
|
||||
**Owner:** Generator
|
||||
**Depends on:** recorder 스키마 확정
|
||||
**Issue:** #2
|
||||
|
||||
## Goal
|
||||
|
||||
recorder가 생성한 시나리오 yaml을 SUT에 재생해 결과 저장 파일을 생성한다. 타이밍은 고정 sleep 금지, UIA/이벤트 기반 동기화.
|
||||
|
||||
## Definition of Done
|
||||
|
||||
- [ ] `Recordingtest.Player` 콘솔이 `--scenario <path> [--output-dir <path>]` 받음
|
||||
- [ ] 각 step 재생 전 `wait_for`(uia 이벤트/엘리먼트 property) 대기 구현
|
||||
- [ ] `target.uia_path`로 엘리먼트 재탐색 후 `offset_norm`으로 좌표 계산해 입력 전달
|
||||
- [ ] 재생 중 예외 발생 시 시나리오 스텝 index + 엘리먼트 탐색 실패 이유를 아티팩트로 기록
|
||||
- [ ] 체크포인트 step에서 현재 저장 파일을 `<output-dir>/checkpoint-<n>.*`로 복사
|
||||
- [ ] 재생 완료 시 exit code 0, 실패 시 non-zero + 아티팩트 경로 출력
|
||||
- [ ] 동일 시나리오 10회 재생 시 9회 이상 성공 (flaky 허용 상한)
|
||||
|
||||
## Interfaces
|
||||
|
||||
- **Inputs:** 시나리오 yaml, 아티팩트 출력 디렉터리
|
||||
- **Outputs:** checkpoint 저장 파일, 실패 아티팩트(스크린샷, UIA 덤프, 로그)
|
||||
- **Side effects:** SUT 프로세스 실행/종료
|
||||
|
||||
## Out of scope
|
||||
|
||||
- 정규화 (normalizer의 몫)
|
||||
- diff (diff-reporter의 몫)
|
||||
- 리포트 집계 (test-runner의 몫)
|
||||
|
||||
## Evaluation plan
|
||||
|
||||
1. recorder로 만든 간단 시나리오(Box 생성 저장)를 10회 재생 → 9회 이상 완료 파일 생성
|
||||
2. 의도적으로 잘못된 `uia_path`를 넣어 실패 → 아티팩트에 탐색 실패 이유 기록 확인
|
||||
3. 체크포인트 2개 시나리오 재생 → 각 checkpoint 파일 존재 확인
|
||||
4. 고정 sleep 호출 grep으로 0건 확인
|
||||
|
||||
## Risks
|
||||
|
||||
- plugin 로드 지연 → 첫 step 전 "plugin ready" 신호 필요
|
||||
- 시작 상태 초기화 (임시 프로젝트 파일 삭제) 미비 시 누적 오염
|
||||
- 재생 중 모달 대화상자 출현 시 대응 정책 필요
|
||||
Reference in New Issue
Block a user