# evidence 266 โ grpc-family-claims-verification # revision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916 # cwd: /shared/codebase/clean-architecture-backend-template # command: bash /tmp/gclaims.sh # ---- raw output ---- ==== CLAIM 1: grpc-core-api names no io.grpc / Spring / protobuf / JPA type ==== -- io.grpc: 3 -- springframework: 0 -- protobuf: 0 -- jakarta.persistence: 0 -- same four, in grpc-core-api TEST sources: io\.grpc 0 org\.springframework 0 com\.google\.protobuf 0 jakarta\.persistence 0 -- build.gradle of grpc-core-api: apply plugin: 'java-library' dependencies { } ==== CLAIM 2: no Stable leaf references :grpc-advanced: ==== -- registry allowed_dependencies mentioning an advanced leaf, from a non-advanced leaf: violations: none grpc-spring-boot-starter allowed_dependencies: ['grpc-core-api', 'grpc-proto-contract', 'grpc-codegen', 'grpc-policy', 'grpc-server', 'grpc-client', 'grpc-discovery', 'grpc-admin', 'grpc-observability', 'grpc-operation-ledger-jpa'] -- source-level references from src/grpc to grpc.advanced packages: 0 -- GrpcStableBuildInvariant: src/grpc/grpc-spring-boot-starter/src/main/java/dev/caskeleton/grpc/boot/GrpcPlatformStartupValidator.java src/grpc/grpc-core-api/src/test/java/dev/caskeleton/grpc/core/GrpcStableModuleCatalogTest.java src/grpc/grpc-core-api/src/main/java/dev/caskeleton/grpc/core/GrpcStableBuildInvariant.java src/grpc-advanced/grpc-advanced-bootstrap/src/main/java/dev/caskeleton/grpc/advanced/bootstrap/GrpcAdvancedModuleGuard.java ==== CLAIM 3: every grpc leaf has empty runtime_memberships ==== grpc leaves: 18 with non-empty runtime_memberships: [] adapter-inbound-grpc allowed_dependencies: ['domain-core', 'application-core', 'shared-contract'] ==== CLAIM 4: GrpcEvidenceGrade refuses a tls claim at CONTRACT grade ==== file: src/grpc/grpc-testkit/src/main/java/dev/caskeleton/grpc/testkit/GrpcEvidenceGrade.java package dev.caskeleton.grpc.testkit; /** * What a lane's results are evidence about. * *
The Stable plan splits its testkit into four modules so that in-process results cannot be * mistaken for network results. This repository expresses that with strict test lanes instead * (adaptation design ยง2), and this enum is what keeps the distinction legible from inside the code: * a claim about TLS backed by {@link #CONTRACT} evidence is refused, because in-process transport * never negotiated one. */ public enum GrpcEvidenceGrade { /** * In-process. Proves adapter, interceptor, status and idempotency behaviour. Proves nothing about * HTTP/2 framing, TLS, transport limits, keepalive or GOAWAY. */ CONTRACT, /** Real Netty on a real socket. The only grade that certifies transport behaviour. */ TRANSPORT, /** Real network faults at each evidence boundary. */ FAULT, /** Latency, saturation and drain budget under load. */ PERFORMANCE; /** * What a result at this grade may be cited for. * *
Computed rather than held in a field: an enum with a collection field is a mutable enum as
* far as any static analysis can tell, and the alternative โ a defensive copy per constant โ
* would be the same set built at class-init time for no benefit.
*/
public Set