{
  "skill_name": "ios-dependency-injection",
  "evals": [
    {
      "id": 1,
      "prompt": "How should I implement ios dependency injection best practices?",
      "expected_output": "**Initializer Injection**: Preferred method. Pass dependencies through `init`.",
      "assertions": [
        {
          "type": "contains",
          "value": "init"
        },
        {
          "type": "contains",
          "value": "Factory"
        },
        {
          "type": "contains",
          "value": "@Injected"
        }
      ]
    },
    {
      "id": 2,
      "prompt": "What are the common anti-patterns to avoid in ios dependency injection?",
      "expected_output": "**Abstractions**: Inject protocols instead of concrete classes to facilitate testing (Mocks/Stubs).",
      "assertions": [
        {
          "type": "contains",
          "value": "Priority: P0"
        },
        {
          "type": "contains",
          "value": "Initializer Injection"
        },
        {
          "type": "contains",
          "value": "Abstractions"
        }
      ]
    },
    {
      "id": 3,
      "prompt": "Give me a quick-start example for ios dependency injection.",
      "expected_output": "**Factory**: Use the `Factory` library for lightweight, type-safe navigation-friendly DI.",
      "assertions": [
        {
          "type": "contains",
          "value": "Swinject"
        },
        {
          "type": "contains",
          "value": "Injected"
        },
        {
          "type": "contains",
          "value": "Singleton"
        }
      ]
    }
  ],
  "should_not_trigger": [
    "Set up a basic ios project from scratch",
    "How do I install ios dependencies?",
    "What is ios?",
    "Configure CI/CD for an unrelated platform"
  ]
}
