Overview
Enable external consumers to use AICR as a validation planning engine by exposing public Go package exports and extracting portable validation types.
Context
External consumers want to use AICR's validation logic programmatically without using the CLI. Use cases include:
Embedding AICR types in custom data structures or APIs
Getting Job specs from AICR and deploying them with custom orchestration
Building higher-level validation workflows using AICR as a library
AICR needs to expose:
Portable Go types that can be embedded or extended
Planning functions that return Job specs without deploying them
Result extraction that is sidecar-safe
Utility functions for common operations
Architecture
AICR role : Provide planning functions (build Job specs from validation configs) and result extraction
Consumer role : Use AICR types, get Job specs, handle deployment and orchestration
Separation : AICR stays focused on validation logic, consumers handle deployment
Required Changes
This is a tracking issue for the following changes:
Phase 1: Extract Portable Types (Parallel)
Phase 2: Core Go Package Exports (Depends on Phase 1)
Deferred (Add Only When Second Consumer Demonstrates Need)
Implementation Order
Phase 1 : Extract portable types (Extract Validation as standalone portable type from pkg/recipe #732 , Extract ValidatorCatalog as standalone portable type #733 - parallel)
Phase 2 : Core Go package exports (Add public RenderJob() function returning Job specs #734 , Make ExtractResult sidecar-safe by reading from 'validator' container explicitly #795 , Export FilterEntriesBySpec() for external catalog filtering #736 - parallel, depends on Phase 1)
Deferred : Helpers - only if second consumer needs them
Benefits
External consumers can use AICR as a library
AICR types become reusable in other projects
Planning functions enable custom deployment strategies
Minimal public Go package surface keeps semver manageable
Prevents consumer divergence from AICR renderer
Internal testability through Plan() separation
Overview
Enable external consumers to use AICR as a validation planning engine by exposing public Go package exports and extracting portable validation types.
Context
External consumers want to use AICR's validation logic programmatically without using the CLI. Use cases include:
AICR needs to expose:
Architecture
Required Changes
This is a tracking issue for the following changes:
Phase 1: Extract Portable Types (Parallel)
Phase 2: Core Go Package Exports (Depends on Phase 1)
Deferred (Add Only When Second Consumer Demonstrates Need)
Implementation Order
Benefits