{ "fixtures": [ { "name": "dangling_action_reference", "description": "Plan references an action that does not exist in the registry", "input": { "plan_id": "plan-001", "action_ref": "local/nonexistent-action", "project_refs": ["local/my-project"] }, "expected_error": "action not found: local/nonexistent-action" }, { "name": "unresolvable_project_path", "description": "Plan references a project with a path that cannot be resolved", "input": { "plan_id": "plan-002", "action_ref": "local/build-app", "project_refs": ["local/../../escape-project"] }, "expected_error": "unresolvable project path: local/../../escape-project" }, { "name": "missing_actor_for_phase", "description": "Action config missing the required actor for the current phase", "input": { "action_name": "local/incomplete-action", "phase": "execution", "actor_config": { "strategy_actor": "openai/gpt-4" } }, "expected_error": "missing actor for phase 'execution': execution_actor not configured" }, { "name": "dangling_parent_plan_id", "description": "Plan references a parent plan that does not exist", "input": { "plan_id": "plan-child-001", "parent_plan_id": "plan-parent-missing", "action_ref": "local/build-app" }, "expected_error": "parent plan not found: plan-parent-missing" }, { "name": "resource_type_not_registered", "description": "Resource references a type that is not in the resource type registry", "input": { "resource_name": "my-custom-resource", "resource_type": "custom/unregistered-type", "project_ref": "local/my-project" }, "expected_error": "resource type not registered: custom/unregistered-type" }, { "name": "circular_resource_dependency", "description": "Resource DAG contains a circular dependency chain", "input": { "resources": [ {"name": "res-a", "depends_on": ["res-b"]}, {"name": "res-b", "depends_on": ["res-c"]}, {"name": "res-c", "depends_on": ["res-a"]} ] }, "expected_error": "circular dependency detected: res-a -> res-b -> res-c -> res-a" } ] }