```python
def best_harvest(yields):
    """Return the maximum total yield from non-consecutive days."""
    if not isinstance(yields, list):
        raise ValueError("Yields must be a list")
    for yield_val in yields:
        if not isinstance(yield_val, int):
            raise ValueError("Each yield must be an integer")
        if yield_val < 0:
            raise ValueError("Yield cannot be negative")

    if not yields:
        return 0

    n = len(yields)
    dp = [0] * n
    dp[0] = yields[0]
    dp[1] = max(yields[0], yields[1])

    for i in range(2, n):
        dp[i] = max(dp[i - 1], dp[i - 2] + yields[i])

    return dp[-1]
```