Skip to content

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-known discovery 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