<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="960" height="850" viewBox="0 0 960 850" role="img" aria-labelledby="title desc">
<style data-site-theme="n3wth">
  [fill="#6e6e73"] { fill: #6e6e73; }
  [fill="#f5f5f7"] { fill: #f5f5f7; }
  [fill="#1d1d1f"] { fill: #1d1d1f; }
  [fill="#fff"] { fill: #ffffff; }
  [stroke="#c7c7cc"] { stroke: rgba(8, 9, 11, 0.2); }
  [fill="#0071a4"] { fill: #054a6b; }
  [stroke="#6e6e73"] { stroke: #6e6e73; }
  [fill="#0a5c22"] { fill: #0a5c22; }
@media (prefers-color-scheme: dark) {
  [fill="#6e6e73"] { fill: #9aa0a8; }
  [fill="#f5f5f7"] { fill: #08090b; }
  [fill="#1d1d1f"] { fill: #f2f3f5; }
  [fill="#fff"] { fill: #0d0e10; }
  [stroke="#c7c7cc"] { stroke: rgba(255, 255, 255, 0.17); }
  [fill="#0071a4"] { fill: #a9e5ff; }
  [stroke="#6e6e73"] { stroke: #9aa0a8; }
  [fill="#0a5c22"] { fill: #8ef2ab; }
}
</style>
<title id="title">Locate the fix and the responsibility</title><desc id="desc">A decision tree first checks for a fitting existing component, then asks whether a new need is shared and stable, and whether a shared owner can support it. Reuse requires page testing; local code needs an owner; shared code needs package and consumer checks.</desc>
<defs><marker id="arrow" markerWidth="9" markerHeight="9" refX="8" refY="4.5" orient="auto" markerUnits="userSpaceOnUse"><path d="M0 0L9 4.5L0 9Z" fill="#6e6e73"/></marker></defs>
<rect width="960" height="850" fill="#f5f5f7"/><g font-family="system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"><text x="40" y="59" font-size="36" font-weight="600" fill="#1d1d1f" text-anchor="start"><tspan x="40" dy="0">Locate the fix and the responsibility</tspan></text><text x="40" y="98" font-size="24" font-weight="400" fill="#6e6e73" text-anchor="start"><tspan x="40" dy="0">A decision aid combining this note’s ownership rules with contribution criteria</tspan></text><rect x="40" y="145" width="550" height="124" rx="0" fill="#fff" stroke="#c7c7cc" stroke-width="2"/><text x="62" y="183" font-size="28" font-weight="600" fill="#0071a4" text-anchor="start"><tspan x="62" dy="0">Does an existing component fit?</tspan></text><text x="62" y="223" font-size="25" font-weight="400" fill="#1d1d1f" text-anchor="start"><tspan x="62" dy="0">Check behavior, context and accessibility.</tspan></text><path d="M590 208H647" fill="none" stroke="#6e6e73" stroke-width="3" marker-end="url(#arrow)"/><text x="614" y="184" font-size="22" font-weight="600" fill="#6e6e73" text-anchor="start"><tspan x="614" dy="0">Yes</tspan></text><rect x="660" y="151" width="260" height="115" rx="0" fill="#fff" stroke="#c7c7cc" stroke-width="2"/><text x="682" y="189" font-size="28" font-weight="600" fill="#0a5c22" text-anchor="start"><tspan x="682" dy="0">Reuse it</tspan></text><text x="682" y="229" font-size="25" font-weight="400" fill="#1d1d1f" text-anchor="start"><tspan x="682" dy="0">Test in the page.</tspan></text><path d="M315 269V308" fill="none" stroke="#6e6e73" stroke-width="3" marker-end="url(#arrow)"/><text x="330" y="301" font-size="22" font-weight="600" fill="#6e6e73" text-anchor="start"><tspan x="330" dy="0">No</tspan></text><rect x="40" y="320" width="550" height="145" rx="0" fill="#fff" stroke="#c7c7cc" stroke-width="2"/><text x="62" y="358" font-size="28" font-weight="600" fill="#0071a4" text-anchor="start"><tspan x="62" dy="0">Is the need shared and stable?</tspan></text><text x="62" y="398" font-size="25" font-weight="400" fill="#1d1d1f" text-anchor="start"><tspan x="62" dy="0">Evidence across products;</tspan><tspan x="62" dy="32.5">a useful boundary for common fixes.</tspan></text><path d="M590 392H647" fill="none" stroke="#6e6e73" stroke-width="3" marker-end="url(#arrow)"/><text x="614" y="368" font-size="22" font-weight="600" fill="#6e6e73" text-anchor="start"><tspan x="614" dy="0">No</tspan></text><rect x="660" y="332" width="260" height="124" rx="0" fill="#fff" stroke="#c7c7cc" stroke-width="2"/><text x="682" y="370" font-size="28" font-weight="600" fill="#1d1d1f" text-anchor="start"><tspan x="682" dy="0">Keep local</tspan></text><text x="682" y="410" font-size="25" font-weight="400" fill="#1d1d1f" text-anchor="start"><tspan x="682" dy="0">Name the owner.</tspan></text><path d="M315 465V509" fill="none" stroke="#6e6e73" stroke-width="3" marker-end="url(#arrow)"/><text x="331" y="499" font-size="22" font-weight="600" fill="#6e6e73" text-anchor="start"><tspan x="331" dy="0">Yes</tspan></text><rect x="40" y="522" width="550" height="160" rx="0" fill="#fff" stroke="#c7c7cc" stroke-width="2"/><text x="62" y="560" font-size="28" font-weight="600" fill="#0071a4" text-anchor="start"><tspan x="62" dy="0">Can a shared owner support it?</tspan></text><text x="62" y="600" font-size="25" font-weight="400" fill="#1d1d1f" text-anchor="start"><tspan x="62" dy="0">A stable API, versatile implementation,</tspan><tspan x="62" dy="32.5">and tests in representative contexts.</tspan></text><path d="M590 602H647" fill="none" stroke="#6e6e73" stroke-width="3" marker-end="url(#arrow)"/><text x="614" y="578" font-size="22" font-weight="600" fill="#6e6e73" text-anchor="start"><tspan x="614" dy="0">Yes</tspan></text><rect x="660" y="536" width="260" height="136" rx="0" fill="#fff" stroke="#c7c7cc" stroke-width="2"/><text x="682" y="574" font-size="28" font-weight="600" fill="#0a5c22" text-anchor="start"><tspan x="682" dy="0">Share it</tspan></text><text x="682" y="614" font-size="25" font-weight="400" fill="#1d1d1f" text-anchor="start"><tspan x="682" dy="0">Package checks</tspan><tspan x="682" dy="32.5">+ consumer checks</tspan></text><text x="40" y="741" font-size="25" font-weight="400" fill="#1d1d1f" text-anchor="start"><tspan x="40" dy="0">If readiness is unproven, keep ownership explicit while testing.</tspan><tspan x="40" dy="32.5">Reassess the boundary when evidence or usage changes.</tspan></text><path d="M40 788H920" fill="none" stroke="#c7c7cc" stroke-width="3"/><text x="40" y="822" font-size="22" font-weight="400" fill="#6e6e73" text-anchor="start"><tspan x="40" dy="0">Conceptual illustration • not measured data</tspan></text></g></svg>
