{ "assetKey": "a10-f004-pub-sub", "kind": "terminal", "command": "set -e\nK=src/adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/api/key\nO=src/adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/api/operations\nC=src/adapter/outbound/cache-redis/src/main/java/dev/caskeleton/adapter/outbound/cache/redis/sdk/config\necho \"# 세 타입이 조립 결과에 대해 하는 일\"\nsed -n \"23,26p;34,37p\" $O/PubSubChannel.java\nsed -n \"22,25p;33,36p\" $O/ShardedPubSubChannel.java\nsed -n \"22,32p;38,41p\" $O/PubSubPattern.java\necho\necho \"# requireRenderedSize 가 나오는 곳 전부 (첫 줄은 선언)\"\ngrep -rn \"requireRenderedSize\" src --include=*.java --include=*.groovy | sed \"s|.*/sdk/| sdk/|\"\necho\necho \"# 조각이 받는 규칙과 상한 상수\"\ngrep -n \"MAX_KEY_BYTES\\|Pattern TOKEN\\|Pattern IDENTIFIER\" $K/RedisKeyRules.java | sed \"s/^/ /\"\ngrep -n \"requireToken\\|requireIdentifier\" $K/RedisNamespace.java $K/RedisKeyName.java $K/RedisSlotTag.java | sed \"s|.*/sdk/api/key/| |\"\necho\necho \"# 키를 렌더하는 곳: 조각 사이에 슬롯 태그가 하나 더 들어간다\"\nsed -n \"39,46p\" $K/RedisKeyRenderer.java\necho\necho \"# 그 검사가 보는 상한은 생성자로 주입받는다\"\nsed -n \"22,30p\" $K/RedisKeyRenderer.java\necho\necho \"# 주입하는 곳\"\nprintf \" src/main 에서 new RedisKeyRenderer( : %s 건\\n\" \"$(grep -rn 'new RedisKeyRenderer(' src --include=*.java | grep '/src/main/' | wc -l)\"\nprintf \" src/test 에서 new RedisKeyRenderer( : %s 건\\n\" \"$(grep -rn 'new RedisKeyRenderer(' src --include=*.java | grep '/src/test/' | wc -l)\"\necho \" getMaxKeyBytes / getLimits 를 부르는 src/main 코드\"\ngrep -rn \"getMaxKeyBytes()\\|getLimits()\" src --include=*.java | grep \"/src/main/\" | sed \"s|.*/sdk/| sdk/|\"\necho \" 설정 자체는 등록되어 있다\"\ngrep -n \"APP_REDIS_LIMITS_MAX_KEY_BYTES\" docs/registries/env-keys.yaml | sed \"s/^/ /\"\nsed -n \"241p;254,256p\" $C/RedisSdkSettings.java | sed \"s/^/ /\"\necho\necho \"# 기본 이름공간\"\nsed -n \"153,155p\" $C/RedisSdkSettings.java", "cwd": "/shared/codebase/clean-architecture-backend-template", "exitCode": 0, "executedAt": "2026-09-02T11:21:34+00:00", "sourceRevision": "21234e38cdb9a926cbc92bb97a2aee2e4a7d2916", "raw": "evidence/raw/a10-f004-pub-sub.txt", "svg": "evidence/rendered/a10-f004-pub-sub.svg", "rawSha256": "2065e7b4fc9e1444b40416736114107f0bdbe625010d303acd70f1fb6e6d3e74", "lines": 89, "redaction": "none — 코드베이스 정적 검색" }