normalizer PoC 구현 및 검증 #4

Closed
opened 2026-04-07 14:09:57 +09:00 by kimminsung · 2 comments
Owner

목표

Sprint Contract docs/contracts/normalizer.md 의 DoD 전부 충족.

범위

  • Recordingtest.Normalizer 라이브러리 + 기본 프로파일(default) 5규칙
  • YAML 프로파일 로더
  • xUnit 테스트 (규칙별 before/after, idempotent, json-configs 커버리지 매핑)
  • dotnet build + dotnet test 전부 green

사이클

  1. Generator 세션 (백그라운드 실행 중)
  2. Evaluator 세션 → /evaluate normalizer
  3. pass 시 PROGRESS.md Done 이동

Related: #2, #3

## 목표 Sprint Contract `docs/contracts/normalizer.md` 의 DoD 전부 충족. ## 범위 - `Recordingtest.Normalizer` 라이브러리 + 기본 프로파일(default) 5규칙 - YAML 프로파일 로더 - xUnit 테스트 (규칙별 before/after, idempotent, json-configs 커버리지 매핑) - `dotnet build` + `dotnet test` 전부 green ## 사이클 1. Generator 세션 (백그라운드 실행 중) 2. Evaluator 세션 → `/evaluate normalizer` 3. pass 시 PROGRESS.md Done 이동 Related: #2, #3
Author
Owner

normalizer PoC — Verdict: pass (v2)

Iteration history

  1. Generator v1 (3c5294a) — 5 rules + YAML profile + 8 tests. Self-flagged sidecar file write missing and permissive coverage test.
  2. Evaluator v1fail (DoD #6 sidecar missing, #7 coverage test || true shortcut).
  3. Generator v2 (05c7a3f) — sidecar overload, explicit 18-entry field→rule mapping, new mask_volatile_settings rule, 10/10 tests.
  4. Evaluator v2pass.

Final DoD

# DoD item Score
1 Normalize(input, profile) API pass
2 Default 프로파일 ≥5 rules (실제 6) pass
3 YAML 프로파일 선언 + 코드 변경 없이 확장 가능 pass
4 규칙별 before/after 단위 테스트 pass
5 2회 정규화 idempotent pass
6 사이드카 normalization.log 파일 쓰기 pass
7 json-configs.json suspected fields 전수 커버 (explicit mapping) pass
8 dotnet test all pass (10/10) pass

Follow-ups (non-blocking)

  • mask_volatile_settings 규칙의 JSON-path 스코핑 (현재 전역 필드명 매칭)
  • Float epsilon 구성화 (현재 6 decimals 하드코딩)

closing.

## normalizer PoC — Verdict: **pass** (v2) ✅ ### Iteration history 1. **Generator v1** (`3c5294a`) — 5 rules + YAML profile + 8 tests. Self-flagged sidecar file write missing and permissive coverage test. 2. **Evaluator v1** → **fail** (DoD #6 sidecar missing, #7 coverage test `|| true` shortcut). 3. **Generator v2** (`05c7a3f`) — sidecar overload, explicit 18-entry field→rule mapping, new `mask_volatile_settings` rule, 10/10 tests. 4. **Evaluator v2** → **pass**. ### Final DoD | # | DoD item | Score | |---|----------|-------| | 1 | `Normalize(input, profile)` API | pass | | 2 | Default 프로파일 ≥5 rules (실제 **6**) | pass | | 3 | YAML 프로파일 선언 + 코드 변경 없이 확장 가능 | pass | | 4 | 규칙별 before/after 단위 테스트 | pass | | 5 | 2회 정규화 idempotent | pass | | 6 | 사이드카 `normalization.log` 파일 쓰기 | pass | | 7 | `json-configs.json` suspected fields 전수 커버 (explicit mapping) | pass | | 8 | `dotnet test` all pass (**10/10**) | pass | ### Follow-ups (non-blocking) - `mask_volatile_settings` 규칙의 JSON-path 스코핑 (현재 전역 필드명 매칭) - Float epsilon 구성화 (현재 6 decimals 하드코딩) closing.
Author
Owner

비용 (retroactive)

단계 Tokens
Generator v1 (normalizer) ~53k
Evaluator v1 ~34k
Generator v2 (fix iteration) ~58k
Evaluator v2 ~35k
Orchestrator 분담 ~25k
합계 ~205k

재작업 1회로 토큰 증가.

### 비용 (retroactive) | 단계 | Tokens | |------|--------| | Generator v1 (normalizer) | ~53k | | Evaluator v1 | ~34k | | Generator v2 (fix iteration) | ~58k | | Evaluator v2 | ~35k | | Orchestrator 분담 | ~25k | | **합계** | **~205k** | 재작업 1회로 토큰 증가.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kimminsung/recordingtest#4