{ "assetKey": "a-circuit-breaker-permit-that-leaks-on-local-rejection", "kind": "terminal", "command": "p=adapter/outbound/httpclient/src/main/java/dev/caskeleton/adapter/outbound/httpclient/resilience/AttemptResiliencePipeline.java; i=adapter/outbound/httpclient/src/main/java/dev/caskeleton/adapter/outbound/httpclient/resilience/AttemptCircuitBreaker.java; echo '# execute 진입부 — 세 가드와 그 거부 경로'; grep -n 'tryAcquirePermission()\\|bulkhead.tryAcquire()\\|rateLimiter.onCompleted()\\|throw new Http' $p; echo; echo '# 정상 경로의 반납'; sed -n '118,121p' $p; echo; echo '# AttemptCircuitBreaker 의 추상 연산 전수'; sed -n '/^public interface AttemptCircuitBreaker/,/^ static /p' $i | grep -E '^ [A-Za-z].*;$'; echo; echo '# releasePermission — src 아래 java 매치 수'; grep -rc 'releasePermission' --include=*.java -r . | grep -v ':0' | wc -l; echo '# releasePermission 이 등장하는 파일 (저장소 전체)'; cd .. && grep -rl 'releasePermission' --include=*.java --include=*.md . | sed 's|^\\./||'", "cwd": "/shared/codebase/clean-architecture-backend-template/src", "exitCode": 0, "executedAt": "2026-09-02T00:24:28+00:00", "sourceRevision": "21234e38cdb9a926cbc92bb97a2aee2e4a7d2916", "raw": "evidence/raw/a-circuit-breaker-permit-that-leaks-on-local-rejection.txt", "svg": "evidence/rendered/a-circuit-breaker-permit-that-leaks-on-local-rejection.svg", "rawSha256": "66a824c54f7c4ff3b24653174a2e2c2668c3374577af20c4049cc99c4b334db4", "lines": 26, "redaction": "none — 분석 문서 발췌" }