{
  "schema": "vedokrok.public-item.v1",
  "release_id": "MHC-RPUB-20260920-75ad787a",
  "url": "/knowledge/separate-opposite-requirements-by-condition",
  "id": "MHC-D-RESEARCH-0433",
  "version": "0.1.0",
  "title": "Separate opposite requirements by condition",
  "summary": "The answer may be 'both,' provided the system knows when each one applies.",
  "kind": "heuristic",
  "body": "Name the condition that changes which property is desirable, then make system behavior conditional on it. Prefer a condition that is observable before the action. This can replace one compromised default with two explicit policies.",
  "limits": [
    "Conditional rules can become complex and inconsistent; keep the condition set small, testable and auditable."
  ],
  "topics": [
    "union-triz-structured-invention"
  ],
  "intents": [],
  "source_ids": [
    "RS-759A6DDEF8407409"
  ],
  "evidence": [
    {
      "claim": "Classical TRIZ lists separation in time, separation in space and separation upon condition among methods for resolving physical contradictions.",
      "source_id": "RS-759A6DDEF8407409",
      "role": "supports",
      "note": "These are solution-search heuristics; implementation still needs domain evidence, safety and feasibility checks.",
      "locator": "Methods for resolving physical contradictions"
    }
  ],
  "use_when": [
    "The system needs different behavior depending on state, risk, load, user or another observable condition."
  ],
  "avoid_when": [
    "Conditional rules can become complex and inconsistent; keep the condition set small, testable and auditable."
  ],
  "example": "Allow automatic deployment for low-risk changes that pass defined checks, but require human approval for high-impact permission or schema changes.",
  "check": "The system has an observable condition that determines which opposite behavior applies.",
  "sources": [
    {
      "id": "RS-759A6DDEF8407409",
      "title": "Contradictions",
      "url": "https://triz.org/contradictions/"
    }
  ],
  "relations": [],
  "collections": [
    {
      "id": "RC-0176FEADE3BB023B",
      "title": "Resolve the contradiction instead of polishing the compromise",
      "url": "/collections/resolve-the-contradiction-instead-of-polishing-the-compromise"
    }
  ]
}
