Sub-scope 02 (inbound-graphql) schema + scalar + compat revision=a24ece9cf797f7ea647e33bf846b115208ed1ba5 generatedAt=2026-08-30T08:31:40+00:00 === OWNED FILES === e47efeefc3586f233c7d348c8f185a621723859e src/main/java/dev/caskeleton/compat/GraphQlChangeKind.java 285 f47a29a0236d8ae96babe444de03f60a457681c2 src/main/java/dev/caskeleton/compat/GraphQlClientOwnerApproval.java 40 f1c0d907cf440e0cd408c779d3b5b9817bed6c19 src/main/java/dev/caskeleton/compat/GraphQlCompatibilityImpact.java 20 1476785faadce59d8a6f68a9b29d6de7ed7fee91 src/main/java/dev/caskeleton/compat/GraphQlCompatibilityPolicy.java 63 a3a72d7526427ed25a9e77b637f12cb37b763a93 src/main/java/dev/caskeleton/compat/GraphQlCompatibilityReport.java 50 79f2b155be11b607a4b734092efd14052540c45f src/main/java/dev/caskeleton/compat/GraphQlDeprecationGate.java 91 8258b3359088bc1abb994281f6d3dfc19e940bc1 src/main/java/dev/caskeleton/compat/GraphQlRemovalDecision.java 51 64fe8efa32273982c0fd5fb801ea55bbd63bdca1 src/main/java/dev/caskeleton/compat/GraphQlRemovalRequest.java 39 6a3e086faf77f5a3b09d96b2b2d3c93df61593ed src/main/java/dev/caskeleton/compat/GraphQlSchemaChange.java 61 177cd5f3b5bc48995a6df3d57f522b148142b7eb src/main/java/dev/caskeleton/compat/GraphQlSchemaComparator.java 791 5d728d6c04208d8047af5012d1856ae89be86ef3 src/main/java/dev/caskeleton/compat/GraphQlSchemaUsage.java 71 8d2e51a997a30b030fb60094f42c63073023cd40 src/main/java/dev/caskeleton/scalar/BigDecimalScalar.java 211 e1a93151a07fa71dd0c00b17a1ef0e40d8fb9a65 src/main/java/dev/caskeleton/scalar/DateScalar.java 105 7a8907d3c07d9659b097a2fc6b77bc413d1f7fda src/main/java/dev/caskeleton/scalar/GraphQlDecimalBounds.java 69 99fd7c63bf4b7c411eba8b5a49d518b51ee6d0d2 src/main/java/dev/caskeleton/scalar/GraphQlScalarWiringConfigurer.java 84 5e4a6608bb0b3b01d2edd71614f0ffd9ab604103 src/main/java/dev/caskeleton/scalar/InstantScalar.java 117 48356a0f4e3e9adb219c2d38c3db3ace7bbb3395 src/main/java/dev/caskeleton/scalar/LongScalar.java 189 29f48b4eff25f5f07ee71d013418332494109062 src/main/java/dev/caskeleton/scalar/UuidScalar.java 109 772376b683e92de6988d77ba789b4b0a2e871ab9 src/main/java/dev/caskeleton/schema/GraphQlContractVersion.java 29 652af3bd3ad05296b3370369c5bbd64cc1557b32 src/main/java/dev/caskeleton/schema/GraphQlMappingInspectionGate.java 52 b1eb5a2565aa19c0f6d761bd0880b9d19b375712 src/main/java/dev/caskeleton/schema/GraphQlMappingIssue.java 102 60f76512c3335b925bbcb57105f10d142cdf618f src/main/java/dev/caskeleton/schema/GraphQlMappingPolicy.java 30 abc186cfcd5b2be828a22b03c395659a41f06107 src/main/java/dev/caskeleton/schema/GraphQlOneOfInputValidator.java 55 228405fe469bbd3e14609f96f7af2bf084a7e2d9 src/main/java/dev/caskeleton/schema/GraphQlOneOfPolicy.java 35 73de6ccaf8d753b5eec448424dc57b642cb9ff47 src/main/java/dev/caskeleton/schema/GraphQlOneOfSchemaGate.java 77 3bf90c365a5ca498fb0595092ac2f8d842fea939 src/main/java/dev/caskeleton/schema/GraphQlOneOfViolationException.java 41 8969810a607e282bb61c51e6e0a1c8620bcde3ea src/main/java/dev/caskeleton/schema/GraphQlScalarDefinition.java 43 2f9f1cbaca2aab0b4898d2058ff18390ddecf2cc src/main/java/dev/caskeleton/schema/GraphQlScalarManifest.java 141 9de5a34f734e1770b6010ceeffe08e16e25d29de src/main/java/dev/caskeleton/schema/GraphQlScalarPolicy.java 37 1869a247c37cc53df916bf8bee08b5c771761db4 src/main/java/dev/caskeleton/schema/GraphQlSchemaAssembler.java 39 eb2256250d6b6e5e55089559fe7183dc404d1c6d src/main/java/dev/caskeleton/schema/GraphQlSchemaAssemblyException.java 52 fc09a237fd39e8ace0e153f4fa19133bb2ab7ede src/main/java/dev/caskeleton/schema/GraphQlSchemaAssemblyResult.java 189 24907e279619760e06dbd4c8e12c65aa5942cebb src/main/java/dev/caskeleton/schema/GraphQlSchemaContract.java 46 6b71fd3ecc60aed5b34cc2843874316aae05a8c5 src/main/java/dev/caskeleton/schema/GraphQlSchemaHash.java 46 a808ab5f80d6702e144bf1a76246a9cd3ae14cc5 src/main/java/dev/caskeleton/schema/GraphQlSchemaMappingException.java 34 3062ccea72f2a7b0f8a9777d9790bb9a843b0b51 src/main/java/dev/caskeleton/schema/GraphQlSchemaOwnership.java 29 4960c6cf963ced0e5f101bb7427492b62d63e9a6 src/main/java/dev/caskeleton/schema/GraphQlSchemaResource.java 82 00dbd91228499cec7562c5cd26c125d46a24605f src/test/java/dev/caskeleton/compat/GraphQlDeprecationGateTest.java 172 5dbaee0ae713d288d6b685bb33002c577ac41b29 src/test/java/dev/caskeleton/compat/GraphQlSchemaComparatorTest.java 343 eb56b126ee81eadf9ee782a426c273c98c835658 src/test/java/dev/caskeleton/scalar/GraphQlScalarContractTest.java 132 62a05f39cc5455916ba727e947a3e56e28631784 src/test/java/dev/caskeleton/scalar/GraphQlScalarSymmetryTest.java 131 c5aef66492904a9f75ba3d25c6efd6fd35116c57 src/test/java/dev/caskeleton/schema/GraphQlMappingInspectionGateTest.java 70 0608ec6545f5ee48d7f0ec1e46830002484d7903 src/test/java/dev/caskeleton/schema/GraphQlOneOfInputValidatorTest.java 131 be971ec8e0d7c8e26f88d7646caab97302e272e5 src/test/java/dev/caskeleton/schema/GraphQlScalarManifestTest.java 100 ea0d6ba9f36059ce25e1d9c6e1c8e51372d2ba9d src/test/java/dev/caskeleton/schema/GraphQlSchemaAssemblerTest.java 124 a2dc50376dc57ee072b2370c980eb05ba1052a1a src/test/java/dev/caskeleton/schema/GraphQlSchemaContractTest.java 74 file_count=46 === 8.1 파일 단위 배선 (autoconf / main_other / test) === TYPE autoconf main_other test GraphQlContractVersion 0 2 2 GraphQlMappingInspectionGate 3 0 2 GraphQlMappingIssue 0 3 3 GraphQlMappingPolicy 0 1 1 GraphQlOneOfInputValidator 0 0 1 GraphQlOneOfPolicy 0 2 1 GraphQlOneOfSchemaGate 0 0 2 GraphQlOneOfViolationException 0 2 1 GraphQlScalarDefinition 3 1 2 GraphQlScalarManifest 4 1 2 GraphQlScalarPolicy 0 1 1 GraphQlSchemaAssembler 0 0 3 GraphQlSchemaAssemblyException 0 3 1 GraphQlSchemaAssemblyResult 0 1 2 GraphQlSchemaContract 0 0 1 GraphQlSchemaHash 3 2 2 GraphQlSchemaMappingException 0 1 1 GraphQlSchemaOwnership 0 2 2 GraphQlSchemaResource 0 2 3 BigDecimalScalar 0 1 2 DateScalar 0 1 1 GraphQlDecimalBounds 0 1 1 GraphQlScalarWiringConfigurer 7 0 2 InstantScalar 0 2 1 LongScalar 0 1 2 UuidScalar 0 1 2 GraphQlChangeKind 0 4 1 GraphQlClientOwnerApproval 0 1 1 GraphQlCompatibilityImpact 0 2 1 GraphQlCompatibilityPolicy 0 0 2 GraphQlCompatibilityReport 0 3 1 GraphQlDeprecationGate 0 0 1 GraphQlRemovalDecision 0 1 1 GraphQlRemovalRequest 0 1 1 GraphQlSchemaChange 0 4 1 GraphQlSchemaComparator 0 0 3 GraphQlSchemaUsage 0 2 1 === 8.2 스키마 해시 사슬 === $ grep -rn 'GraphQlSchemaHash' adapter/inbound/graphql/src/main --include=*.java | sed 's|adapter/inbound/graphql/src/main/java/dev/caskeleton/adapter/inbound/graphql/||' autoconfigure/GraphQlPlatformActuatorEndpoint.java:4:import dev.caskeleton.adapter.inbound.graphql.schema.GraphQlSchemaHash; autoconfigure/GraphQlPlatformActuatorEndpoint.java:24: private final GraphQlSchemaHash schemaHash; autoconfigure/GraphQlPlatformActuatorEndpoint.java:40: GraphQlSchemaHash schemaHash, schema/GraphQlSchemaContract.java:20: GraphQlSchemaHash schemaHash, schema/GraphQlSchemaHash.java:18:public record GraphQlSchemaHash(String value) { schema/GraphQlSchemaHash.java:22: public GraphQlSchemaHash { schema/GraphQlSchemaHash.java:33: public static GraphQlSchemaHash sha256(String canonicalSdl) { schema/GraphQlSchemaHash.java:41: return new GraphQlSchemaHash(HexFormat.of().formatHex(digest)); schema/GraphQlSchemaAssemblyResult.java:94: public GraphQlSchemaHash schemaHash() { schema/GraphQlSchemaAssemblyResult.java:95: return GraphQlSchemaHash.sha256(canonicalSdl); exit=0 $ grep -rn 'GraphQlPlatformActuatorEndpoint' adapter/inbound/graphql/src --include=*.java | sed 's|adapter/inbound/graphql/src/[a-z]*/java/dev/caskeleton/adapter/inbound/graphql/||' autoconfigure/GraphQlPolicyRequestPathTest.java:28: * a production deployment without it, and {@link GraphQlPlatformActuatorEndpoint}, which reports it autoconfigure/GraphQlPlatformStartupValidatorTest.java:108: new GraphQlPlatformActuatorEndpoint( autoconfigure/GraphQlPlatformActuatorEndpoint.java:18:public final class GraphQlPlatformActuatorEndpoint { autoconfigure/GraphQlPlatformActuatorEndpoint.java:38: public GraphQlPlatformActuatorEndpoint( exit=0 $ grep -c '@Bean' adapter/inbound/graphql/src/main/java/dev/caskeleton/adapter/inbound/graphql/autoconfigure/GraphQlPlatformAutoConfiguration.java 39 exit=0 === 8.3 oneOf: 라이브러리 버전과 스키마 사용 === $ grep -n 'graphql-java:' adapter/inbound/graphql/gradle.lockfile | head -2 32:com.graphql-java:graphql-java:25.0=compileClasspath,runtimeClasspath,testCompileClasspath,testFixturesCompileClasspath,testFixturesRuntimeClasspath,testRuntimeClasspath 33:com.graphql-java:java-dataloader:6.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testFixturesCompileClasspath,testFixturesRuntimeClasspath,testRuntimeClasspath exit=0 $ grep -rn 'oneOf' adapter/inbound/graphql/src/main/resources adapter/inbound/graphql/src/test/resources 2>/dev/null | wc -l 0 exit=0 $ grep -n 'the platform enforces' adapter/inbound/graphql/src/main/java/dev/caskeleton/adapter/inbound/graphql/schema/GraphQlOneOfPolicy.java 4: * The September 2025 {@code @oneOf} input rules the platform enforces (design §7.5). exit=0 === 8.4 조립기가 막겠다고 선언한 위험 === $ sed -n '1,12p' adapter/inbound/graphql/src/main/java/dev/caskeleton/adapter/inbound/graphql/schema/GraphQlSchemaAssembler.java | grep -vE '^import|^package' /** * Assembles module-owned SDL fragments into one schema, deterministically. * *
Fragments are sorted by owning module and path before parsing. Filesystem and classpath * enumeration order is not stable across machines or packaging formats, and an unstable order would * both move the schema hash and change which of two conflicting declarations "wins" — so the order * is imposed here rather than inherited from discovery. exit=0