# 모듈을 여기 둔 논거
- Kept out of `adapter-outbound` on purpose: a UUID id/codec capability is
  infrastructure, not an outbound integration point, so `adapter-outbound` keeps its
  documented meaning (external HTTP / messaging / cache / notifications).

# 리프의 공개 타입 셋
HmacUserPrincipalPseudonymizer.java
RandomUploadIdentifierFactory.java
UuidCodec.java

# 각 타입 이름이 리프 밖에 나오는 곳 전수 (확장자 제한 없음)
#   HmacUserPrincipalPseudonymizer
    docs/superpowers/plans/2026-08-02-warning-zero-build-refactoring.md:78:  `HmacUserPrincipalPseudonymizerTest`, `StreamingResponseBodyAllowedFixture`, and
    src/app-bootstrap/src/main/java/dev/caskeleton/bootstrap/logging/PseudonymizationConfig.java:3:import dev.caskeleton.adapter.outbound.identifier.HmacUserPrincipalPseudonymizer;
    src/app-bootstrap/src/main/java/dev/caskeleton/bootstrap/logging/PseudonymizationConfig.java:23:    return new HmacUserPrincipalPseudonymizer(privacySettings.saltBytes());
    src/sample-portfolio/src/main/java/dev/caskeleton/sample/portfolio/bootstrap/logging/SamplePseudonymizationConfig.java:3:import dev.caskeleton.adapter.outbound.identifier.HmacUserPrincipalPseudonymizer;
    src/sample-portfolio/src/main/java/dev/caskeleton/sample/portfolio/bootstrap/logging/SamplePseudonymizationConfig.java:23:    return new HmacUserPrincipalPseudonymizer(privacySettings.saltBytes());
    .superpowers/sdd/2026-08-02-warning-zero-build-refactoring/task-2-brief.md:18:  `HmacUserPrincipalPseudonymizerTest`, `StreamingResponseBodyAllowedFixture`, and
    .superpowers/sdd/2026-08-02-warning-zero-build-refactoring/task-2-review.diff:14:src/adapter/outbound/identifier/src/test/java/dev/caskeleton/adapter/outbound/identifier/HmacUserPrincipalPseudonymizerTest.java
    .superpowers/sdd/2026-08-02-warning-zero-build-refactoring/task-2-review.diff:510:diff --git a/src/adapter/outbound/identifier/src/test/java/dev/caskeleton/adapter/outbound/identifier/HmacUserPrincipalPseudonymizerTest.java b/src/adapter/outbound/identifier/src/test/java/dev/caskeleton/adapter/outbound/identifier/HmacUserPrincipalPseudonymizerTest.java
    .superpowers/sdd/2026-08-02-warning-zero-build-refactoring/task-2-review.diff:512:--- a/src/adapter/outbound/identifier/src/test/java/dev/caskeleton/adapter/outbound/identifier/HmacUserPrincipalPseudonymizerTest.java
    .superpowers/sdd/2026-08-02-warning-zero-build-refactoring/task-2-review.diff:513:+++ b/src/adapter/outbound/identifier/src/test/java/dev/caskeleton/adapter/outbound/identifier/HmacUserPrincipalPseudonymizerTest.java
    .superpowers/sdd/2026-08-02-warning-zero-build-refactoring/task-2-review.diff:523: class HmacUserPrincipalPseudonymizerTest {
    .superpowers/sdd/2026-08-02-warning-zero-build-refactoring/task-2-review.diff:538:     assertThatThrownBy(() -> new HmacUserPrincipalPseudonymizer(null))
    .superpowers/sdd/2026-08-02-warning-zero-build-refactoring/task-2-report.md:46:  - `src/adapter/outbound/identifier/src/test/java/dev/caskeleton/adapter/outbound/identifier/HmacUserPrincipalPseudonymizerTest.java`
#   RandomUploadIdentifierFactory
    src/app-bootstrap/src/main/java/dev/caskeleton/bootstrap/autoconfigure/fileserver/FileserverServiceConfiguration.java:4:import dev.caskeleton.adapter.outbound.identifier.RandomUploadIdentifierFactory;
    src/app-bootstrap/src/main/java/dev/caskeleton/bootstrap/autoconfigure/fileserver/FileserverServiceConfiguration.java:94:    return new RandomUploadIdentifierFactory();
#   UuidCodec
    docs/adr/ADR-MONGO-002-bson-representation.md:44:pins `UuidCodec(STANDARD)` explicitly rather than inheriting a default, since inheriting the default
    src/sample-portfolio/README.md:333:- 36자 canonical UUID 와 PostgreSQL native `uuid`(128비트)를 서로 변환합니다. `UuidCodec` 같은 공용
    src/adapter/outbound/persistence-mongo/src/testkit/java/dev/caskeleton/adapter/outbound/mongo/testkit/mapping/MongoBsonSnapshot.java:16:import org.bson.codecs.UuidCodec;
    src/adapter/outbound/persistence-mongo/src/testkit/java/dev/caskeleton/adapter/outbound/mongo/testkit/mapping/MongoBsonSnapshot.java:59:        CodecRegistries.fromCodecs(new UuidCodec(UuidRepresentation.STANDARD)),

# UuidCodec 의 메서드를 부르는 줄 전수
    adapter/outbound/identifier/src/test/groovy/dev/caskeleton/adapter/outbound/identifier/UuidCodecSpec.groovy:11:        UuidCodec.normalize(input) == CANONICAL
    adapter/outbound/identifier/src/test/groovy/dev/caskeleton/adapter/outbound/identifier/UuidCodecSpec.groovy:21:        UuidCodec.normalize(null) == null
    adapter/outbound/identifier/src/test/groovy/dev/caskeleton/adapter/outbound/identifier/UuidCodecSpec.groovy:26:        UuidCodec.normalize("not-a-uuid")
    adapter/outbound/identifier/src/test/groovy/dev/caskeleton/adapter/outbound/identifier/UuidCodecSpec.groovy:34:        def uuid = UuidCodec.toUuid(CANONICAL)
    adapter/outbound/identifier/src/test/groovy/dev/caskeleton/adapter/outbound/identifier/UuidCodecSpec.groovy:37:        UuidCodec.fromUuid(uuid) == CANONICAL
