Problem
The CLIENT role is currently only assigned to types annotated @FeignClient (ast_java.py:102). Classes that inject messaging templates (KafkaTemplate, RabbitTemplate, JmsTemplate, StreamBridge, ApplicationEventPublisher) get the MESSAGE_PRODUCER capability but no meaningful role — they fall through to OTHER.
This is wrong: a class whose job is to produce messages to Kafka/RabbitMQ is genuinely a client of another service, same as a Feign HTTP client. The CLIENT role should cover both HTTP and async outbound call wrappers.
Current behavior
@FeignClient → role: CLIENT, capability: HTTP_CLIENT
KafkaTemplate injection → role: OTHER, capability: MESSAGE_PRODUCER
Expected behavior
@FeignClient → role: CLIENT, capability: HTTP_CLIENT
KafkaTemplate injection → role: CLIENT, capability: MESSAGE_PRODUCER
Scope
- Role inference in
ast_java.py (likely _INJECTED_TYPES_TO_CAPABILITY or infer_role_for_type)
- Ontology glossary in
docs/AGENT-GUIDE.md, skills/explore-codebase/SKILL.md, agents/java-codebase-rag.md
VALID_ROLES documentation in docs/CONFIGURATION.md
- Likely ontology bump (re-index required)
Problem
The
CLIENTrole is currently only assigned to types annotated@FeignClient(ast_java.py:102). Classes that inject messaging templates (KafkaTemplate,RabbitTemplate,JmsTemplate,StreamBridge,ApplicationEventPublisher) get theMESSAGE_PRODUCERcapability but no meaningful role — they fall through toOTHER.This is wrong: a class whose job is to produce messages to Kafka/RabbitMQ is genuinely a client of another service, same as a Feign HTTP client. The
CLIENTrole should cover both HTTP and async outbound call wrappers.Current behavior
Expected behavior
Scope
ast_java.py(likely_INJECTED_TYPES_TO_CAPABILITYorinfer_role_for_type)docs/AGENT-GUIDE.md,skills/explore-codebase/SKILL.md,agents/java-codebase-rag.mdVALID_ROLESdocumentation indocs/CONFIGURATION.md