{
  "schema": "vedokrok.public-item.v1",
  "release_id": "MHC-RPUB-20260920-75ad787a",
  "url": "/knowledge/make-dependencies-directional-where-possible",
  "id": "MHC-D-RESEARCH-9142",
  "version": "0.1.0",
  "title": "Make dependencies directional where possible",
  "summary": "Mutual dependency amplifies coordination.",
  "kind": "principle",
  "body": "Choose a stable abstraction or ownership direction so one side depends on a contract rather than both sides depending on internals. Keep truly reciprocal work explicit.",
  "limits": [
    "Modularity trades coordination inside a boundary for coordination across interfaces. Do not split systems simply to make diagrams or org charts look cleaner."
  ],
  "topics": [
    "union-systems-strategy-and-leverage-thinking"
  ],
  "intents": [],
  "source_ids": [
    "RS-E3F5E2F94A0C75BB"
  ],
  "evidence": [
    {
      "claim": "Parnas showed that modularization outcomes depend on decomposition criteria and argued for boundaries that hide changeable design decisions to improve flexibility and comprehensibility.",
      "source_id": "RS-E3F5E2F94A0C75BB",
      "role": "supports",
      "note": "This is foundational software-design reasoning; organizational adaptations require separate validation.",
      "locator": "Abstract and design comparison"
    }
  ],
  "use_when": [
    "When two components or teams repeatedly block each other because each requires internal knowledge of the other."
  ],
  "avoid_when": [
    "Modularity trades coordination inside a boundary for coordination across interfaces. Do not split systems simply to make diagrams or org charts look cleaner."
  ],
  "example": "A reporting layer depends on a published canonical model; the core model no longer depends on report-specific transformations.",
  "check": "A routine change on one side no longer automatically creates a reverse change request.",
  "sources": [
    {
      "id": "RS-E3F5E2F94A0C75BB",
      "title": "On the Criteria To Be Used in Decomposing Systems into Modules",
      "url": "https://doi.org/10.1145/361598.361623"
    }
  ],
  "relations": [
    {
      "from": "MHC-D-RESEARCH-9142",
      "to": "MHC-D-RESEARCH-9143",
      "type": "useful_with",
      "url": "/knowledge/break-a-dependency-before-optimizing-inside-it"
    }
  ],
  "collections": [
    {
      "id": "RC-28D91C30CEA1CB4A",
      "title": "Systems and strategic leverage: feedback, flow, modularity, robust options, and information value",
      "url": "/collections/systems-and-strategic-leverage-feedback-flow-modularity-robust-options-and-information-value"
    }
  ]
}
