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:
minsung
2026-04-07 13:57:20 +09:00
parent a48a8a2d1d
commit 7ffbb1f757
47 changed files with 1886 additions and 11 deletions

View File

@@ -0,0 +1,44 @@
# Sprint Contract — diff-reporter
**Owner:** Generator
**Depends on:** normalizer (정규화된 입력)
**Issue:** #2
## Goal
`*.approved``*.received` 쌍을 받아 의미 있는 diff를 생성하고, 실패 지점을 시각화한다. `diff-triager` 서브에이전트가 읽을 수 있는 구조화 출력도 제공.
## Definition of Done
- [ ] `Recordingtest.DiffReporter` 라이브러리 + CLI
- [ ] 입력: `--approved <path> --received <path> --out <dir>`
- [ ] JSON/텍스트 파일은 라인·객체 단위 의미 diff, 바이너리는 hex 요약 diff
- [ ] 출력: `diff.json`(구조화), `diff.md`(사람용), `diff.html`(옵션, side-by-side)
- [ ] `diff.json` 스키마: `{ file, hunks[], summary: { added, removed, changed } }`
- [ ] 동일 파일 비교 시 "identical"로 단정, exit code 0
- [ ] 차이 존재 시 exit code 1 + 요약을 stdout 1줄
- [ ] diff-triager 에이전트가 `diff.json`만 읽어 bucket 분류 가능 (통합 테스트 1개)
## Interfaces
- **Inputs:** 두 파일 경로
- **Outputs:** `diff.json`, `diff.md`, (옵션) `diff.html`
- **Side effects:** 없음
## Out of scope
- 정규화 자체 (normalizer)
- triage 분류 로직 (diff-triager 에이전트)
- 자동 approve (`/approve` 커맨드)
## Evaluation plan
1. 동일 파일 2개 → identical 판정
2. 1필드만 바뀐 JSON → `diff.json.hunks.length == 1`
3. 바이너리 파일 diff → hex summary 출력
4. diff-triager에 통합: normalization gap 케이스에서 bucket=`normalization_gap` 분류 확인
## Risks
- 큰 파일(수십 MB 모델)에서 성능 — 스트리밍 diff 필요
- JSON 스키마 변경 시 triager 하위 호환성