Evidence Receipt: Discovery Transport¶
Capability: CAP-DISC-001 Agent Discovery Transport
Authority¶
- Specification: DUADP / OSSA
- Runtime: Drupal (PHP)
- Extension: Symfony Serializer Normalizer
Acceptance Criteria¶
- 100% compliance with flat
.well-knowndiscovery schema. - Preserves Drupal cache tags and contexts.
- Does not subvert existing core module architectures.
Candidate Matrix¶
| Candidate | Native | Cacheable | Content Negotiation | .well-known Friendly |
Schema Control | Operational Complexity |
|---|---|---|---|---|---|---|
| JSON:API | ✓ | ✓ | Limited | ? | ? | Low |
| Core REST | ✓ | ✓ | Good | ? | ? | Low |
| Route + Normalizer | ✓ | ✓ | Excellent | ✓ | Excellent | Medium |
| Custom Controller | ❌ | Depends | Excellent | ✓ | Excellent | Medium |
Evidence (Reasoned)¶
Capability Evaluation Matrix¶
| Drupal Capability | OSSA Requirement | Result |
|---|---|---|
JSON:API nested {data: {type, attributes}} |
Flat discovery document | Incompatible |
| Core REST Entity Serialization | Exact flat schema | Partial |
| Custom Route + Custom Normalizer | Exact flat schema | Compatible |
| Native CacheableDependencyInterface | Proper HTTP cache bubbling | Compatible |
| Custom CacheableJsonResponse | Proper HTTP cache bubbling | Brittle (Prone to human error) |
Decision¶
Core JSON:API satisfies the JSON:API specification, but that specification is fundamentally incompatible with the flat OSSA discovery contract.
The lowest-authority implementation that preserves Drupal caching (via CacheableDependencyInterface) while maintaining exact schema control is a Custom Route + Custom Normalizer. The existing custom Controller is brittle and must be retired.
Remaining Delta¶
- Classification:
EXTENSION
Implementation Surface¶
+ ai_agents_ossa.routing.yml(Route definition)+ src/Normalizer/OssaAgentNormalizer.php+ ai_agents_ossa.services.yml(Normalizer tagging)
Retired Components¶
- src/Controller/OssaDiscoveryController.php- src/Controller/DuadpDiscoveryController.php
Native Coverage¶
- Native Coverage: 90% (Leverages Core Routing, Symfony Serializer, and Core Caching)
- Extension Required: Thin Adapter (Normalizer)
- Replacement Required: None
Signed by: Bluefly Governance Engine