{
  "skill_name": "energykit",
  "evals": [
    {
      "id": 0,
      "name": "ev-charging-guidance-events",
      "prompt": "We make a home EV charger app for iOS 26. Show how to fetch cleaner-grid charging windows and report the charging session back to EnergyKit. Our draft generates a UUID() as the guidance token and sends one event when charging finishes. Also, should we build HomeKit scenes and a BGTaskScheduler job for this?",
      "expected_output": "Starts with the EnergyKit capability and com.apple.developer.energykit entitlement, discovers the venue, queries guidance with .shift, stores the real guidanceToken and attaches it to load events, rejects the fabricated UUID, reports begin, periodic active samples about every 15 minutes plus extra samples on user actions, pauses, new guidance or sharp power changes, and end, and keeps HomeKit automation and BackgroundTasks out of scope.",
      "files": [],
      "expectations": [
        "Treats the EnergyKit entitlement as a setup prerequisite",
        "Rejects a fabricated UUID token and uses the guidanceToken EnergyKit returned",
        "Reports a begin, active and end lifecycle",
        "Samples roughly every 15 minutes and adds events for significant changes",
        "Does not expand into HomeKit automation or BackgroundTasks implementation"
      ]
    },
    {
      "id": 1,
      "name": "insight-history-granularity",
      "prompt": "Our energy dashboard supports iOS 26.0 and later. We want a seven-day chart split by cleaner versus less clean grid power, and a monthly total. Which EnergyKit insight queries should we build?",
      "expected_output": "Uses .hourly granularity for the seven-day range and .daily only for ranges of at least a calendar month, requests .cleanliness only for the split chart and leaves options empty for totals, guards dataByGridCleanliness with a 26.1 availability check, and does not claim that every insight API requires 26.1.",
      "files": [],
      "expectations": [
        "Guards grid-cleanliness data with an iOS 26.1 availability check",
        "Does not say all insight APIs are 26.1 only",
        "Uses .hourly for seven days and .daily only for a month or longer",
        "Explains that empty options return totals only"
      ]
    },
    {
      "id": 2,
      "name": "energykit-scope-review",
      "prompt": "Review this heat-pump app design: no EnergyKit capability yet, it assumes forecasts exist in every country, it uses a hardcoded venue UUID, it reads MetricKit power data to fill the insights screen, and it logs one HVAC row per day.",
      "expected_output": "Adds the entitlement and handles permissionDenied, handles unsupportedRegion and guidanceUnavailable, discovers venues instead of hardcoding one, explains that insights come only from submitted EnergyKit load events so MetricKit is not a substitute, and reports separate HVAC events at start, each stage change and stop.",
      "files": [],
      "expectations": [
        "Requires the entitlement and handling of permissionDenied",
        "Handles unsupported regions and missing guidance",
        "Discovers venues rather than hardcoding a UUID",
        "States insights depend on submitted load events and MetricKit is not a replacement",
        "Reports distinct HVAC events for stage transitions"
      ]
    }
  ]
}
