{ "assetKey": "a05-f004-retrydecision-reason-probe", "kind": "terminal", "command": "T=adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/transaction\nO=adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/observation\n\necho '# 프로덕션이 실제로 내는 사유 전수'\ngrep -n 'retryable persistence failure' adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/api/transaction/RetryDecision.java\ngrep -n 'RetryDecision\\.\\(fail\\|reconcile\\|retry\\)(' -A2 $T/DefaultJpaRetryPolicy.java | grep '\"'\n\necho\necho '# 같은 모듈이 저카디널리티를 이미 정의해 뒀다'\nsed -n '12,20p' $O/LowCardinality.java\nsed -n '24,34p' $O/LowCardinality.java\n\necho\necho '# 그 사유들을 그 가드에 실제로 넣어 본다'\nCP=adapter/outbound/persistence-jpa/build/classes/java/main\njavac -encoding UTF-8 -cp $CP -d /tmp/ed/probe /tmp/ed/ReasonProbe.java \\\n && java -Dstdout.encoding=UTF-8 -cp $CP:/tmp/ed/probe ReasonProbe", "cwd": "/shared/codebase/clean-architecture-backend-template/src", "exitCode": 0, "executedAt": "2026-09-02T03:27:21+00:00", "sourceRevision": "21234e38cdb9a926cbc92bb97a2aee2e4a7d2916", "raw": "evidence/raw/a05-f004-retrydecision-reason-probe.txt", "svg": "evidence/rendered/a05-f004-retrydecision-reason-probe.svg", "rawSha256": "dd1a3bf67f1ab2cb62a3f64c4a94b17dd6ea4acfa88b0886bb65e52717a9a2fd", "lines": 41, "redaction": "none — 코드베이스 정적 검색" }