- 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>
1.6 KiB
1.6 KiB
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
- 동일 파일 2개 → identical 판정
- 1필드만 바뀐 JSON →
diff.json.hunks.length == 1 - 바이너리 파일 diff → hex summary 출력
- diff-triager에 통합: normalization gap 케이스에서 bucket=
normalization_gap분류 확인
Risks
- 큰 파일(수십 MB 모델)에서 성능 — 스트리밍 diff 필요
- JSON 스키마 변경 시 triager 하위 호환성