Files
recordingtest/docs/contracts/diff-reporter.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

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

  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 하위 호환성