def evaluate(c):
    relevance_gate = c.get("event_relevance") == "DIRECT"
    value_gate = c.get("user_value") == "CLEAR"
    authority_gate = c.get("content_authority") == "SUFFICIENT"
    sensitivity_gate = bool(c.get("sensitivity_reviewed")) and c.get("harm_risk") != "HIGH"
    fresh = c.get("source_freshness") == "CURRENT" and bool(c.get("context_expiry_valid"))
    complete = bool(c.get("context_candidate") and c.get("provenance_complete") and c.get("review_owner_present"))
    decision = "UNKNOWN"; reason = "UNCLASSIFIED"; publish = False; review = False
    if not fresh:
        decision, reason, review = "DEFER", "SOURCE_OR_CONTEXT_STALE", True
    elif not complete:
        decision, reason, review = "DEFER", "PROVENANCE_OR_REVIEW_OWNER_MISSING", True
    elif not relevance_gate:
        decision, reason = "DO_NOT_USE", "NO_GENUINE_RELEVANCE"
    elif not value_gate:
        decision, reason = "DO_NOT_USE", "NO_DEFENSIBLE_USER_VALUE"
    elif not authority_gate:
        decision, reason, review = "DEFER", "CONTENT_AUTHORITY_NOT_ESTABLISHED", True
    elif c.get("sensitivity_level") == "HIGH" and not c.get("sensitivity_reviewed"):
        decision, reason, review = "REVIEW_REQUIRED", "HIGH_SENSITIVITY_REVIEW_REQUIRED", True
    elif c.get("harm_risk") == "HIGH" or c.get("commercial_opportunism") == "HIGH" or c.get("search_manipulation_risk") == "HIGH":
        decision, reason = "DO_NOT_USE", "UNRESOLVED_HARM_OR_OPPORTUNISM_RISK"
    elif c.get("sensitivity_level") == "MEDIUM" or c.get("harm_risk") == "MEDIUM" or c.get("commercial_opportunism") == "MEDIUM" or not c.get("disclosure_ready"):
        decision, reason, publish, review = "ADAPT", "CONTEXT_USABLE_WITH_ADAPTATION", True, False
    else:
        decision, reason, publish = "USE", "DIRECT_VALUE_AUTHORITY_LOW_RISK", True
    return {"relevance_gate":relevance_gate,"value_gate":value_gate,"authority_gate":authority_gate,"sensitivity_gate":sensitivity_gate,"ethical_decision":decision,"publish_allowed":publish,"review_required":review,"control_reason":reason}
