Sub-scope 12 (inbound-web) testkit + webfluxContractTest + jettyCompatTest + nginxProxyTest
revision=a24ece9cf797f7ea647e33bf846b115208ed1ba5
generatedAt=2026-08-30T07:46:41+00:00

=== OWNED FILES ===
cac69e5a01112ab3f652de4c245f5699e88977d4 jettyCompatTest/java/dev/caskeleton/adapter/inbound/web/testkit/budget/JettyWebBudgetIT.java 30
366f2581b9f56b80840965b89049a4ec23fcb26c jettyCompatTest/java/dev/caskeleton/adapter/inbound/web/testkit/contract/JettyContractRecordingIT.java 26
a2361a1e44f69a4045d9ed99d7333518a6d82587 jettyCompatTest/java/dev/caskeleton/adapter/inbound/web/testkit/fault/JettyCommitThenConnectionResetIT.java 28
65bc95581a55b3ac881ef1a2703c835aa5291b38 jettyCompatTest/java/dev/caskeleton/adapter/inbound/web/testkit/mvc/JettyWebContractIT.java 48
c6df351cf6301987eb10326333c900ff42a679e1 jettyCompatTest/java/dev/caskeleton/adapter/inbound/web/testkit/operation/JettyOperationHttpIT.java 27
75b9b6df0703efea778f03f8b9e1e69e12593712 jettyCompatTest/java/dev/caskeleton/adapter/inbound/web/testkit/order/JettyPipelineOrderIT.java 28
5e310429bed9a56e7c158c7ff2bf6c41653f8f97 jettyCompatTest/java/dev/caskeleton/adapter/inbound/web/testkit/performance/JettyLoadAndShutdownIT.java 63
a635453aabc5832810757c5d6625b85008e98d03 jettyCompatTest/java/dev/caskeleton/adapter/inbound/web/testkit/throttle/JettyWebThrottleIT.java 41
e5fcde1a925be6e7a76bae96ad2179914e0e1b73 jettyCompatTest/resources/application-web-contract.yaml 19
7960ff4e0fea2655d84ef6cc6262816032e9f35c nginxProxyTest/java/dev/caskeleton/adapter/inbound/web/testkit/proxy/NginxProxyContractIT.java 186
1c659d3b0a3845ecb7a90c5605d9c61fe50e18c9 nginxProxyTest/java/dev/caskeleton/adapter/inbound/web/testkit/proxy/NginxProxyHarness.java 151
cc0a876b0334845831a9f006929e8ceb11541c4b nginxProxyTest/java/dev/caskeleton/adapter/inbound/web/testkit/proxy/ProxyFixtureApplication.java 37
e03af04db93c53bf7b1e369e82698769940a2cce nginxProxyTest/resources/nginx/nginx.conf 45
8ade88cf28507e71c65dac2f2273cdfec29c1ebd nginxProxyTest/resources/nginx/proxy_headers.conf 22
47f89bf579dd2692128fe7744347d5252196b419 test/java/dev/caskeleton/adapter/inbound/web/testkit/arch/WebArchitectureRulesTest.java 112
3e5d8011e2b64d6d8545aab66547a39099417070 test/java/dev/caskeleton/adapter/inbound/web/testkit/budget/TomcatWebBudgetIT.java 30
5a6c1ba6a85c5e40a3078ed84c85e704a3ccf8d5 test/java/dev/caskeleton/adapter/inbound/web/testkit/contract/CrossStackParityTest.java 138
625c96808664d42072c8d9c5fe9f4123ce8ee545 test/java/dev/caskeleton/adapter/inbound/web/testkit/contract/TomcatContractRecordingIT.java 26
5756805acaef954de30c42fea632301188f4385d test/java/dev/caskeleton/adapter/inbound/web/testkit/fault/CommitThenConnectionResetIT.java 27
bf1880db25bebd8f374281c7bf8627751b829b8f test/java/dev/caskeleton/adapter/inbound/web/testkit/mvc/TomcatWebContractIT.java 44
39207a7677e807eb70ec69d3cee6e5f44bfb2ad5 test/java/dev/caskeleton/adapter/inbound/web/testkit/operation/TomcatOperationHttpIT.java 26
db3d28a86660a85176955f7b667c224721196641 test/java/dev/caskeleton/adapter/inbound/web/testkit/order/MvcPipelineOrderIT.java 27
e1fef5b5c50478649fe075c6cb5e352be88f8f53 test/java/dev/caskeleton/adapter/inbound/web/testkit/performance/TomcatLoadAndShutdownIT.java 63
3efaf4e3c673934a201d8ebca83545139246fe77 test/java/dev/caskeleton/adapter/inbound/web/testkit/throttle/TomcatWebThrottleIT.java 41
b4cbea7fc739bfe2b45fe4b4304d38c3b7605589 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/arch/ForbiddenClassAnnotationCondition.java 40
40e9aed2a3dd3f4cc815b8056127aa8618aaafaf testkit/java/dev/caskeleton/adapter/inbound/web/testkit/arch/ForbiddenMethodAnnotationCondition.java 40
13bd43997ebe3e428cdbbf83d88dc06747383678 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/arch/WebArchitectureRules.java 238
bfc0b31cf5844c5fcb49305fec7a340599d30296 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/arch/WebForbiddenTypeCatalog.java 78
bc8392f0fb0f1bfd8af4997afe438ce695a497d4 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/budget/BudgetFixtureController.java 57
f21f41aea1aa5835d47909961b82cd684462f675 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/budget/BudgetFixtureProtocol.java 52
76d53062ce9755c2dedf0ebc7e4b90efeec2d919 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/budget/HttpBudgetFixture.java 151
386c505d98ffc0e8a0c03c21df8032d16d5b03bc testkit/java/dev/caskeleton/adapter/inbound/web/testkit/budget/ReactiveBudgetFixtureController.java 56
2077429a828ec735655f2acf06f862c5927043f3 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/budget/WebBudgetContract.java 135
855dda799871a1d6e1151d6f9a2a54b6303d1329 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/contract/WebContractFixture.java 150
4e883946baead818ac019a4aea18a498d17d2678 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/contract/WebPlatformContractRecording.java 71
44670f56b46bbb88c337c4d6479d063e95b32f3a testkit/java/dev/caskeleton/adapter/inbound/web/testkit/contract/WebPlatformContractSuite.java 55
c922466ce06f020a2f1a63fd8fb7a9c9787f141a testkit/java/dev/caskeleton/adapter/inbound/web/testkit/contract/WireOutcome.java 44
a80bd4892bfffb7631fd9b941c01bf9992c2f867 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/contract/WireProbe.java 39
135d3f0d2ac959a7d4204c31eac0dd5bbb87c401 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/fault/FaultFixtureController.java 155
1f3d72f785a50846a949a78825753f1068d0abb5 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/fault/FaultFixtureProtocol.java 39
6a9d8fbe0fe856bd1e62a4436f6c04f0ed05e055 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/fault/FaultFixtureStore.java 67
69615aac5a75e7874483828a6ebfef694e0d2fc2 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/fault/HttpResponseLossFixture.java 128
9b6c45086249a3b1fdd903ad3199b4dc3e3e5550 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/fault/IdempotencyResponseLossContract.java 81
6b3b5296043c64b5dc01b650766ea92d6b66b37f testkit/java/dev/caskeleton/adapter/inbound/web/testkit/fault/ReactiveFaultFixtureController.java 153
95d08d19b99df55be14129000a1c055f82e81279 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/fault/ResponseLossFixture.java 46
84bdc97e2eca0d9d7f7fdb920e5b3922fa3843ad testkit/java/dev/caskeleton/adapter/inbound/web/testkit/fault/WebFaultInjector.java 40
6641a9b68a77426ab80fcaa86bfce2ea3ec8ec71 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/fault/WebFaultPoint.java 39
e102a4c681354e85f5c5e2cf7ca4111f4d292b73 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/mvc/ContractFixtureController.java 60
84f47ef5bdec87ffa5abc40080e1dab6f4952fdf testkit/java/dev/caskeleton/adapter/inbound/web/testkit/mvc/WebContractAssertions.java 149
519c6eb0d5ef30beade260b25b7bd942b230c536 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/operation/HttpOperationFixture.java 114
0b5fcb173eb367a32aa4dac528fa546958283e29 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/operation/OperationFixtureController.java 84
c99dcdfa76162551f0745959b448721e98e21922 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/operation/OperationFixtureSupport.java 140
2e8295c54f4a924204bc6e16c25796342568436c testkit/java/dev/caskeleton/adapter/inbound/web/testkit/operation/OperationHttpContract.java 148
60982e5edaacef35aeb911a64430a3785d1a045d testkit/java/dev/caskeleton/adapter/inbound/web/testkit/operation/ReactiveOperationFixtureController.java 92
05b86a427bf318d0478bc069c9b7dab77f982208 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/operation/TestDurableOperationStore.java 320
20507f10f57f69035c71da70896c83eb95be5f1c testkit/java/dev/caskeleton/adapter/inbound/web/testkit/order/HttpPipelineFixture.java 83
6e5a9b8b65402b1a6654663ee9052e676b24fcdf testkit/java/dev/caskeleton/adapter/inbound/web/testkit/order/PipelineOrderFixtureController.java 90
4dbd4dd58ced6cc91067733b7f39c02564ee4028 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/order/WebPipelineOrderContract.java 155
7e93d5e5e39f89dc7b7cc4c18b6197d8dea0e50f testkit/java/dev/caskeleton/adapter/inbound/web/testkit/order/WebPipelineRecorder.java 46
7593b562a46c87305048ba0e21f6dd52563ef2e3 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/order/WebPipelineStage.java 60
b5d327d958238a2cf8ce3dd648294763162f32d5 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/performance/GracefulShutdownProbe.java 66
3e63e76986caff108d01e279e28157b5aad7ff62 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/performance/WebLoadAndShutdownContract.java 119
af49059110ab0b8a33b2f3723f92633094c50295 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/performance/WebLoadFixture.java 230
1f7657b532ae6c9259726718a76efc998229f1c5 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/performance/WebLoadResult.java 95
2a302238936dcdd568239f8abbdeebd8a740c92a testkit/java/dev/caskeleton/adapter/inbound/web/testkit/proxy/ProxyFixtureController.java 101
0e28707d919a241b86ba80df881e65fe5f3b0d70 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/throttle/CountingRateLimiter.java 51
1dab476db140b9435be0bf30c4eae7c37e8f68ca testkit/java/dev/caskeleton/adapter/inbound/web/testkit/throttle/HttpThrottleFixture.java 172
f7ba0192cf8044ebc387c8ee1604396fd59f3922 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/throttle/ThrottleControlController.java 61
beed0cce7fe17d8d94238130b382ab27f5d860bb testkit/java/dev/caskeleton/adapter/inbound/web/testkit/throttle/ThrottleFixtureController.java 62
38d22a1911ba866dd1be784980a10964914dd8ff testkit/java/dev/caskeleton/adapter/inbound/web/testkit/throttle/ThrottleFixtureProtocol.java 28
d46a1c8363ce0c3887e2c9092e0c56a30875a57a testkit/java/dev/caskeleton/adapter/inbound/web/testkit/throttle/ThrottleFixtureSupport.java 75
4e74a1992c34cfbc13ad011e258ab37864345b06 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/throttle/WebThrottleHttpContract.java 122
5a5d402ccd3d1fb0546d246831d3ac884572ca3c testkit/java/dev/caskeleton/adapter/inbound/web/testkit/webflux/ReactiveContractFixtureController.java 73
cb369399b555863d9b32022b6cab730cea70b8a0 testkit/java/dev/caskeleton/webtestkit/BudgetFixtureApplication.java 72
11d949b868a31b1ef7aacfae68cf85501e6ee0ab testkit/java/dev/caskeleton/webtestkit/ContractFixtureApplication.java 74
ad8f6a08d87c8994d37b3b63b4d1b5168f6ea1e2 testkit/java/dev/caskeleton/webtestkit/PipelineOrderFixtureApplication.java 156
d6658e1e340d8fcb1dd336d61f7003ee43d0052d testkit/java/dev/caskeleton/webtestkit/ThrottleFixtureApplication.java 77
2a935728a0986be7a60378c00ed26867dee87165 testkit/resources/performance/web-load-profile.yaml 33
599a066ef96e73cff712c5e40a526c3f6f2d355f webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/budget/ReactiveBudgetFixtureApplication.java 44
4bfb455b5200848db14eb20ad1858ed74481b833 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/budget/ReactiveWebBudgetIT.java 29
b7c13ca25572fff133fd48f7d73936619d9971b2 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/contract/ReactiveContractRecordingIT.java 26
b7ec651a43e19595df51e71a487e68b1877fe53a webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/fault/ReactiveCommitThenConnectionResetIT.java 28
234ae235dfc863abe7aefa91e94428376968d2e4 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/operation/ReactiveOperationHttpIT.java 27
5d34c578e2a00b05c7de1b0d9c6487e4e9ca03ba webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/order/ReactivePipelineOrderFixtureApplication.java 93
914c6c98d2a5c0404793ce17597f413769612934 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/order/ReactivePipelineOrderFixtureController.java 87
cc94256d499f6e78defc238b2b57d3fa33da42c5 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/order/WebFluxPipelineOrderIT.java 27
7ba4fa6778b693ce766235cfad671e7b411f0541 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/performance/ReactorNettyLoadAndShutdownIT.java 68
7dc85dcc31ab463e7a7545ed51715a03ef92c4a9 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/streaming/ReactiveSseFixtureApplication.java 81
e1328f9da1d96d2d48bba21d774727c386528c82 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/streaming/WebFluxSseContractIT.java 120
c3eca519469e044e3600c889569312586436a982 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/throttle/ReactiveThrottleFixtureApplication.java 62
62e7540114a2f2f643393f5f95b7fd981e473a94 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/throttle/ReactiveWebThrottleIT.java 42
7e557f58852c5e6b42445c761427b1fc81adee88 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/webflux/ReactiveContractFixtureApplication.java 54
c2717c7d758813686d54183c5121e726a0cad668 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/webflux/ReactorNettyWebContractIT.java 128
e5fcde1a925be6e7a76bae96ad2179914e0e1b73 webfluxContractTest/resources/application-web-contract.yaml 19
file_count=94

=== 8.1 픽스처 애플리케이션이 조립하는 플랫폼 타입 ===
BudgetFixtureApplication              BudgetProblemMapper WebMvcBudgetFilter 
ContractFixtureApplication            WebProblemFactory 
PipelineOrderFixtureApplication       HandlerInterceptor OncePerRequestFilter WebPipelineRecorder 
ThrottleFixtureApplication            CountingRateLimiter ThrottleProblemWriter WebMvcThrottleFilter 
ReactiveBudgetFixtureApplication      BudgetProblemMapper WebFluxBudgetFilter 
ReactivePipelineOrderFixtureApplicationWebPipelineRecorder 
ReactiveSseFixtureApplication         StreamId StreamSequence WebFluxSseAdapter WebStreamPolicy 
ReactiveThrottleFixtureApplication    CountingRateLimiter ThrottleProblemWriter WebFluxThrottleFilter 
ReactiveContractFixtureApplication    WebProblemFactory WebProblemSanitizer 

=== 8.2 계약 클래스와 세 레인 ===
$ ls adapter/inbound/web/src/testkit/java/dev/caskeleton/adapter/inbound/web/testkit/*/ | grep -i contract
WebBudgetContract.java
adapter/inbound/web/src/testkit/java/dev/caskeleton/adapter/inbound/web/testkit/contract/:
WebContractFixture.java
WebPlatformContractRecording.java
WebPlatformContractSuite.java
IdempotencyResponseLossContract.java
ContractFixtureController.java
WebContractAssertions.java
OperationHttpContract.java
WebPipelineOrderContract.java
WebLoadAndShutdownContract.java
WebThrottleHttpContract.java
ReactiveContractFixtureController.java
exit=0

$ ls adapter/inbound/web/src/jettyCompatTest/java/dev/caskeleton/adapter/inbound/web/testkit/*/ adapter/inbound/web/src/webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/*/ 2>/dev/null | grep IT.java
JettyWebBudgetIT.java
JettyContractRecordingIT.java
JettyCommitThenConnectionResetIT.java
JettyWebContractIT.java
JettyOperationHttpIT.java
JettyPipelineOrderIT.java
JettyLoadAndShutdownIT.java
JettyWebThrottleIT.java
ReactiveWebBudgetIT.java
ReactiveContractRecordingIT.java
ReactiveCommitThenConnectionResetIT.java
ReactiveOperationHttpIT.java
WebFluxPipelineOrderIT.java
ReactorNettyLoadAndShutdownIT.java
WebFluxSseContractIT.java
ReactiveWebThrottleIT.java
ReactorNettyWebContractIT.java
exit=0

$ grep -n 'dependsOn' adapter/inbound/web/build.gradle
195:    dependsOn 'test', 'webJettyCompatTest', 'webFluxContractTest'
257:    dependsOn tasks.named('webSecurityBoundaryTest')
exit=0

=== 8.3/8.4 ArchUnit 규칙 팩의 소비자와 개수 고정 ===
$ grep -rn 'WebArchitectureRules' --include=*.java . | grep -v 'testkit/arch/WebArchitectureRules.java' | sed 's|adapter/inbound/web/src/||;s|app-bootstrap/src/|BOOT:|'
./BOOT:test/java/dev/caskeleton/bootstrap/architecture/WebProductionArchitectureTest.java:8:import dev.caskeleton.adapter.inbound.web.testkit.arch.WebArchitectureRules;
./BOOT:test/java/dev/caskeleton/bootstrap/architecture/WebProductionArchitectureTest.java:47:    for (var rule : WebArchitectureRules.all()) {
./test/java/dev/caskeleton/adapter/inbound/web/testkit/arch/WebArchitectureRulesTest.java:18:class WebArchitectureRulesTest {
./test/java/dev/caskeleton/adapter/inbound/web/testkit/arch/WebArchitectureRulesTest.java:33:            () -> WebArchitectureRules.controllersAreUseCaseAdapters().check(BAD_CONTROLLER))
./test/java/dev/caskeleton/adapter/inbound/web/testkit/arch/WebArchitectureRulesTest.java:76:    for (var rule : WebArchitectureRules.webScopedRules()) {
./test/java/dev/caskeleton/adapter/inbound/web/testkit/arch/WebArchitectureRulesTest.java:86:    assertThat(WebArchitectureRules.all()).hasSize(7);
./test/java/dev/caskeleton/adapter/inbound/web/testkit/arch/WebArchitectureRulesTest.java:87:    assertThat(WebArchitectureRules.webScopedRules()).hasSize(6);
./test/java/dev/caskeleton/adapter/inbound/web/testkit/arch/WebArchitectureRulesTest.java:88:    assertThat(WebArchitectureRules.crossLeafRules())
exit=0

$ grep -n 'hasSize' adapter/inbound/web/src/test/java/dev/caskeleton/adapter/inbound/web/testkit/arch/WebArchitectureRulesTest.java
86:    assertThat(WebArchitectureRules.all()).hasSize(7);
87:    assertThat(WebArchitectureRules.webScopedRules()).hasSize(6);
90:        .hasSize(1);
exit=0

=== 8.4b 자동설정이 세운 컨텍스트를 확인하는 테스트가 있는가 ===
$ grep -c 'WebMvcBudgetFilter\|WebMvcThrottleFilter\|WebIdempotencyGate' adapter/inbound/web/src/test/java/dev/caskeleton/adapter/inbound/web/mvc/autoconfigure/WebMvcPlatformAutoConfigurationTest.java
0
exit=1

$ grep -n 'void ' adapter/inbound/web/src/test/java/dev/caskeleton/adapter/inbound/web/mvc/autoconfigure/WebMvcPlatformAutoConfigurationTest.java
32:  void aServletApplicationGetsThePlatformBeans() {
48:  void theStandardBudgetProfileIsRegistered() {
60:  void aReactiveApplicationGetsNoneOfTheServletWiring() {
72:  void aNonWebApplicationGetsNoneOfItEither() {
80:  void theMasterSwitchTurnsEverythingOff() {
93:  void theRequestIdIsNotTrustedByDefault() {
103:  void anAdopterBeanReplacesThePlatformDefault() {
exit=0

