Parent contract: #140
Program: #130
Source dependency: #141
Dependency
Do not implement until #140 is approved. This is slice A and gates every later Agent-data slice.
Owned paths
backend/agent_control/schemas.py
backend/agent_control/registry.py
backend/agent_control/router.py
backend/agent_control/source_projection.py
backend/api/v1/agent_control.py
tests/unit/test_agent_control_registry.py
tests/integration/test_agent_control_discovery_api.py
The coordinator alone owns backend/agent_control/builtin_registry.py, backend/api/v1/__init__.py, and integration conflict resolution.
Required behavior
Implement the v1 envelope/result/ref/gap/error contracts, authoritative registry, capabilities.list, and source.readiness. Project #141 capability intelligence.source.aihot through the generic Source projection; do not add an aihot.* command or provider-specific MCP/Chat tool. Preserve the five accepted workflow.* registry entries and fail closed on Project/RBAC/readiness boundaries.
Acceptance gate
Registry and schema discovery are deterministic and transport-neutral; availability and missing-plugin/source reasons are truthful; wrong Project or RBAC is denied without data; AIHOT usage authorization is an explicit readiness condition. Targeted unit and API integration tests pass before slice B starts.
Parent contract: #140
Program: #130
Source dependency: #141
Dependency
Do not implement until #140 is approved. This is slice A and gates every later Agent-data slice.
Owned paths
backend/agent_control/schemas.pybackend/agent_control/registry.pybackend/agent_control/router.pybackend/agent_control/source_projection.pybackend/api/v1/agent_control.pytests/unit/test_agent_control_registry.pytests/integration/test_agent_control_discovery_api.pyThe coordinator alone owns
backend/agent_control/builtin_registry.py,backend/api/v1/__init__.py, and integration conflict resolution.Required behavior
Implement the v1 envelope/result/ref/gap/error contracts, authoritative registry,
capabilities.list, andsource.readiness. Project #141 capabilityintelligence.source.aihotthrough the generic Source projection; do not add anaihot.*command or provider-specific MCP/Chat tool. Preserve the five acceptedworkflow.*registry entries and fail closed on Project/RBAC/readiness boundaries.Acceptance gate
Registry and schema discovery are deterministic and transport-neutral; availability and missing-plugin/source reasons are truthful; wrong Project or RBAC is denied without data; AIHOT usage authorization is an explicit readiness condition. Targeted unit and API integration tests pass before slice B starts.