Spring gRPC reference documentation covering server, client, security, and configuration
92
Pending
Does it follow best practices?
Impact
92%
2.19xAverage score across 3 eval scenarios
Pending
The risk profile of this skill
{
"context": "Tests whether the agent uses @ImportGrpcClients for automatic stub discovery, GrpcChannelBuilderCustomizer with @Order for global customizers, ChannelBuilderOptions for per-channel customization, @GlobalClientInterceptor for global interceptors, and BearerTokenAuthenticationInterceptor with RestClientClientCredentialsTokenResponseClient for OAuth2 — all as documented in the Spring gRPC client reference.",
"type": "weighted_checklist",
"checklist": [
{
"name": "@ImportGrpcClients used",
"description": "Application or configuration class uses @ImportGrpcClients annotation (not manual @Bean stub declarations for both stubs)",
"max_score": 10
},
{
"name": "target/types parameters",
"description": "@ImportGrpcClients uses target and/or types parameters to bind stubs to named channels (not just basePackageClasses alone for both)",
"max_score": 10
},
{
"name": "Global client interceptor annotation",
"description": "Logging interceptor bean is annotated with @GlobalClientInterceptor",
"max_score": 10
},
{
"name": "Global customizer with @Order",
"description": "At least one GrpcChannelBuilderCustomizer bean carries an @Order annotation",
"max_score": 8
},
{
"name": "Per-channel customizer via ChannelBuilderOptions",
"description": "Per-channel retry configuration uses ChannelBuilderOptions.defaults().withCustomizer(...) rather than a global customizer",
"max_score": 10
},
{
"name": "BearerTokenAuthenticationInterceptor for OAuth2",
"description": "OAuth2 token attachment uses BearerTokenAuthenticationInterceptor (not a custom raw interceptor or header metadata)",
"max_score": 12
},
{
"name": "RestClientClientCredentialsTokenResponseClient used",
"description": "Token retrieval uses RestClientClientCredentialsTokenResponseClient.getTokenResponse() with OAuth2ClientCredentialsGrantRequest",
"max_score": 12
},
{
"name": "Channel addresses in properties",
"description": "Channel addresses configured via spring.grpc.client.channels.<name>.address properties (not hardcoded in Java code)",
"max_score": 8
},
{
"name": "spring-grpc-dependencies BOM",
"description": "pom.xml uses spring-grpc-dependencies as a BOM in dependencyManagement",
"max_score": 10
},
{
"name": "OAuth2 interceptor on per-channel basis",
"description": "BearerTokenAuthenticationInterceptor is applied only to the fraud check channel, not globally",
"max_score": 10
}
]
}evals