Summary
Extend the AiResource extensions catalog processor in the ai-integrations workspace to validate agent-specific fields when spec.type: agent, rejecting invalid agent entities at ingestion with actionable errors. Add automated processor accept/reject tests; leave non-agent AiResources unchanged.
This issue corresponds to Jira RHIDP-15868. Field set and processor rules are defined in the OpenSpec change below.
Tasks
Acceptance Criteria
- Valid agent AiResource entities ingest successfully
- Invalid agent entities are rejected with actionable processor errors (required field missing/empty/wrong type; invalid optional shapes)
- Opaque
handoffs / tools string arrays are accepted without ref-format checks
- Non-agent AiResources continue existing extension processor behavior
- Automated tests cover accept and reject paths
- OpenSpec ingestion requirements for this story are satisfied
Specifications
All paths below are relative to workspaces/ai-integrations/.
openspec/changes/airesource-agent-typed-schema/proposal.md
openspec/changes/airesource-agent-typed-schema/design.md (especially D3–D5, D10 local processor precedent)
openspec/changes/airesource-agent-typed-schema/tasks.md (Section 5: Catalog processor validation; Section 7 verification as applicable)
openspec/changes/airesource-agent-typed-schema/specs/ai-resource-agent-ingestion/spec.md
openspec/changes/airesource-agent-typed-schema/specs/ai-resource-agent-schema/spec.md (field set / schema-layer context only)
OpenSpec PR (source of truth for this change): #4090
Out of Scope
Context
Summary
Extend the AiResource extensions catalog processor in the
ai-integrationsworkspace to validate agent-specific fields whenspec.type: agent, rejecting invalid agent entities at ingestion with actionable errors. Add automated processor accept/reject tests; leave non-agent AiResources unchanged.This issue corresponds to Jira
RHIDP-15868. Field set and processor rules are defined in the OpenSpec change below.Tasks
AIResourceExtensionsProcessor(or equivalent registered processor path) to validate agent-specific fields whenspec.type: agentspec.instructionswith an actionable error naming the fieldhandoffsnot an array,resetToolChoicenot a boolean) with actionable errorsstring[]forhandoffs/toolswithout entity-ref format enforcementowner/lifecyclespec.type: skill(and other non-agent) entities are unaffected by agent instructions rulesAcceptance Criteria
handoffs/toolsstring arrays are accepted without ref-format checksSpecifications
All paths below are relative to
workspaces/ai-integrations/.openspec/changes/airesource-agent-typed-schema/proposal.mdopenspec/changes/airesource-agent-typed-schema/design.md(especially D3–D5, D10 local processor precedent)openspec/changes/airesource-agent-typed-schema/tasks.md(Section 5: Catalog processor validation; Section 7 verification as applicable)openspec/changes/airesource-agent-typed-schema/specs/ai-resource-agent-ingestion/spec.mdopenspec/changes/airesource-agent-typed-schema/specs/ai-resource-agent-schema/spec.md(field set / schema-layer context only)OpenSpec PR (source of truth for this change): #4090
Out of Scope
KindValidator/ examples (RHIDP-15867— ai-integrations: AiResource agent typed schema (catalog-model validator + examples) #4128; depends on that work)RHIDP-15869)handoffs/tools(explicitly deferred)Context
RHIDP-15868(processor); epicRHIDP-15865; program ownershipRHDHPLAN-1507catalog-backend-module-catalog-backend-module-ai-resource-extensionsprocessor and tests rather than inventing a parallel validation path