{
  "skill_name": "android-networking",
  "evals": [
    {
      "id": 1,
      "prompt": "How do I set up a Retrofit client with authentication in Android?",
      "expected_output": "Use OkHttp Interceptor to inject Bearer token in Authorization header. Build OkHttpClient with the interceptor and provide it to Retrofit.Builder(). Token logic belongs in the interceptor, not the API interface.",
      "assertions": [
        { "type": "contains", "value": "Interceptor" },
        { "type": "contains", "value": "Authorization" }
      ]
    },
    {
      "id": 2,
      "prompt": "Which JSON serialization should I use with Retrofit in Android?",
      "expected_output": "Use Kotlinx Serialization — it's Kotlin-native and supports sealed classes. Use @SerialName for JSON field mapping.",
      "assertions": [
        { "type": "contains", "value": "Kotlinx Serialization" },
        { "type": "contains", "value": "SerialName" }
      ]
    },
    {
      "id": 3,
      "prompt": "My Retrofit API method isn't a suspend function. Is that okay?",
      "expected_output": "No — all API calls must be suspend functions to avoid blocking the main thread. Mark them suspend and call from a coroutine scope.",
      "assertions": [
        { "type": "contains", "value": "suspend" },
        { "type": "contains", "value": "blocking" }
      ]
    }
  ],
  "should_not_trigger": [
    "Configure network_security_config.xml to block HTTP traffic",
    "Set up certificate pinning for high-security endpoints",
    "Load an image from a URL using Coil",
    "Set up an OkHttp MockWebServer for unit tests"
  ]
}
