RFC-013: Inter-Gandalf Delegation Protocol (IMDP) — 4. Capability Manifests
AIGP Specification › RFC-013: Inter-Gandalf Delegation Protocol (IMDP) › 4. Capability Manifests
← 3. Domain Map · Section index · 5. Delegation Flow →
4. Capability Manifests
Each Gandalf advertises its capabilities via a capability manifest a structured declaration of what it can do, exposed at a well-known endpoint.
4.1 Manifest Endpoint
GET /imdp/v1/capabilitiesHeaders: X-AIGP-Signature: hmac-sha256={signature} X-AIGP-Timestamp: {iso_timestamp} X-AIGP-App-Id: {requesting_app_id}4.2 Manifest Schema
{ "protocol_version": "1", "gandalf_id": "identity-service", "domain": "identity", "version": "1.0.0", "capabilities": [ { "capability_id": "user_lookup", "description": "Look up user entitlements, group memberships, and management state", "input_context_types": ["user_identifier"], "output_context_types": ["user_entitlements"], "max_execution_seconds": 10, "delegation_allowed": true }, { "capability_id": "group_management", "description": "Create, modify, or remove group memberships", "input_context_types": ["user_entitlements", "group_identifier"], "output_context_types": ["group_state"], "max_execution_seconds": 30, "delegation_allowed": true }, { "capability_id": "sod_check", "description": "Evaluate separation of duties violations for a user or role assignment", "input_context_types": ["user_entitlements", "role_assignment"], "output_context_types": ["sod_result"], "max_execution_seconds": 15, "delegation_allowed": true } ], "max_concurrent_delegations": 5, "accepts_sub_delegation": true}4.3 Example Manifests
analytics-service Gandalf:
{ "gandalf_id": "analytics-service", "domain": "analytics", "capabilities": [ { "capability_id": "policy_conversion", "description": "Convert source policies to target format using playbook", "input_context_types": ["conversion_request", "source_policies"], "output_context_types": ["conversion_state"], "max_execution_seconds": 120, "delegation_allowed": true }, { "capability_id": "gap_analysis", "description": "Analyze gaps between source and target policy sets", "input_context_types": ["conversion_state"], "output_context_types": ["gap_report"], "max_execution_seconds": 60, "delegation_allowed": true } ]}governance-server Gandalf:
{ "gandalf_id": "governance-server", "domain": "policy", "capabilities": [ { "capability_id": "compliance_check", "description": "Evaluate compliance posture for an application or operation", "input_context_types": ["governance_posture", "operation_descriptor"], "output_context_types": ["compliance_result"], "max_execution_seconds": 15, "delegation_allowed": true }, { "capability_id": "cost_analysis", "description": "Analyze AI usage costs and budget status", "input_context_types": ["usage_records"], "output_context_types": ["cost_report"], "max_execution_seconds": 30, "delegation_allowed": true } ]}runbook-service Gandalf:
{ "gandalf_id": "runbook-service", "domain": "execution", "capabilities": [ { "capability_id": "artifact_generation", "description": "Generate scripts, configs, or policies from context", "input_context_types": ["manufacturing_context"], "output_context_types": ["artifact"], "max_execution_seconds": 60, "delegation_allowed": true }, { "capability_id": "run_execution", "description": "Execute a plan or artifact in a managed runtime", "input_context_types": ["execution_context", "artifact"], "output_context_types": ["execution_result"], "max_execution_seconds": 300, "delegation_allowed": true } ]}