{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-learn/ai-for-docs/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"redocly_category":"Learn","type":"markdown"},"seo":{"title":"Use AI to find duplicate and underused APIs in your codebase","description":"Combine Reef API Scout discovery with structured AI review to spot overlapping endpoints and low-use services before you consolidate.","siteUrl":"https://redocly.com","image":"/assets/redocly-card.f670aae34a39545a5ea633a540cb3a4a333a1f23bb2ed3c4a1b17a5fbcf0ac85.db81178d.png","lang":"en-US","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"use-ai-to-find-duplicate-and-underused-apis-in-your-codebase","__idx":0},"children":["Use AI to find duplicate and underused APIs in your codebase"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Large organizations often discover the same capability twice because teams ship in parallel. You can run a discovery audit that starts with inventory from Reef API Scout, then uses a model to group similar endpoints and flag APIs with weak ownership or usage signals. The pairing keeps facts grounded while AI handles pattern matching at scale, which matches the broader lifecycle in ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/learn/ai-for-docs/ai-modern-api-docs"},"children":["How AI fits into modern API documentation"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"why-api-sprawl-shows-up-late","__idx":1},"children":["Why API sprawl shows up late"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Microservices, acquisitions, and partner integrations all add routes. Without a catalog, duplicate payment or profile APIs can coexist for years. Underused services still incur security review and on-call load. The pain appears when a new team rebuilds something that already exists, or when compliance asks for a complete API list you cannot produce quickly."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Sprawl is rarely malicious. Two product lines may both need a customer record, so each ships a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/customers"]}," surface with slightly different fields. A partner integration copies an internal spec and never syncs again. Platform teams inherit repos they did not author, so nobody feels safe deleting the older variant. Discovery work pays off when you can show overlap with evidence instead of asking teams to merge on faith alone."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-scout-gives-you-before-ai","__idx":2},"children":["What Scout gives you before AI"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/realm/scout/what-is-scout"},"children":["What is Scout?"]}," describes how Redocly Scout collects API definitions from repositories so you are not guessing from memory. Deploy and operate collection using the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/realm/scout"},"children":["Scout documentation"]}," and review ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/realm/scout/use-cases"},"children":["Scout use cases"]}," for common estate layouts. Scout answers which APIs exist and where their specs live. It does not by itself decide which duplicates to retire."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Treat Scout output as the allowlist for AI review. If a path never appears in inventory, the model should not invent it."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"inputs-for-an-ai-assisted-duplicate-review","__idx":3},"children":["Inputs for an AI-assisted duplicate review"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Export or paste a table of services with path prefixes, OpenAPI titles, owners, and optional traffic or consumer counts when your platform provides them. Add business context in a short paragraph: which domains are strategic, which systems are legacy-only, and whether multiple versions are intentional."]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Example row: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["payments-v2"]}," POST ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/charges"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["billing-legacy"]}," POST ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/payment/charges"]}," both owned by different teams, last deploy 18 months apart."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"prompt-skeleton-for-overlap-and-usage-signals","__idx":4},"children":["Prompt skeleton for overlap and usage signals"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"markdown","header":{"controls":{"copy":{}}},"source":"You are reviewing an API inventory for duplicate or underused APIs.\n\nGiven the table below:\n1. Group endpoints that appear to implement the same capability (name the cluster).\n2. Flag APIs with no clear owner or stale metadata.\n3. Note version pairs that look like unmigrated duplicates.\n4. List APIs that look underused based on the usage column (if present).\n5. Suggest one consolidation question per cluster for human owners.\n\n[paste inventory table]\n","lang":"markdown"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Keep clusters small enough that owners can respond in one meeting."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"signals-models-often-surface","__idx":5},"children":["Signals models often surface"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Models frequently cluster near-duplicate paths that differ only by prefix or verb choice. They also highlight parallel major versions when v1 and v2 both accept writes. Shadow APIs appear when OpenAPI exists in a repo but the service is not linked from any catalog entry. Underuse shows up when consumer counts are zero or when an API has rich spec text but no recent deploys. Treat every cluster as a hypothesis until owners confirm."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"duplicate-patterns-worth-naming-in-the-prompt","__idx":6},"children":["Duplicate patterns worth naming in the prompt"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ask the model to label clusters so owners recognize the pattern quickly:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Pattern"},"children":["Pattern"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"What it looks like"},"children":["What it looks like"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Typical owner action"},"children":["Typical owner action"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Twin resources"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Two CRUD surfaces on the same noun"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Pick one canonical API, deprecate the other"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Version fork"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["v1 and v2 both writable"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Freeze v1, document migration"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Shadow spec"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["OpenAPI in git, no runtime owner"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Archive or attach to a service"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Dormant API"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No consumers in telemetry"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Sunset or merge into a shared platform API"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When telemetry is missing, say so in the prompt. The model should flag uncertainty instead of ranking APIs as unused without data."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"turning-findings-into-a-consolidation-backlog","__idx":7},"children":["Turning findings into a consolidation backlog"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Rank clusters by customer impact and operational cost, not by spec similarity alone. For each accepted duplicate, record the canonical API, the deprecation window, and the doc redirect plan. Publish the result in your catalog configuration so search surfaces the winner, as described in ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/realm/config/catalog-classic"},"children":["API catalog configuration"]},". The ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/blog/api-catalogs-agentic-software"},"children":["API catalogs for agentic software"]}," article explains why a single searchable layer matters when both humans and agents consume your estate."]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"graph LR\n  A[Scout inventory] --> B[AI cluster review]\n  B --> C[Owner decisions]\n  C --> D[Reef catalog update]\n  D --> E[Deprecate duplicates]\n","diagramHtml":"<svg id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 1182.4375px;\" viewBox=\"0 0 1182.4375 70\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .error-icon{fill:#552222;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .error-text{fill:#552222;stroke:#552222;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .edge-thickness-normal{stroke-width:1px;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .edge-thickness-thick{stroke-width:3.5px;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .edge-pattern-solid{stroke-dasharray:0;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .marker{fill:#333333;stroke:#333333;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .marker.cross{stroke:#333333;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 svg{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 p{margin:0;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .label{font-family:\"Redocly Mermaid Sans\",sans-serif;color:#333;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .cluster-label text{fill:#333;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .cluster-label span{color:#333;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .cluster-label span p{background-color:transparent;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .label text,#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 span{fill:#333;color:#333;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .node rect,#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .node circle,#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .node ellipse,#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .node polygon,#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .rough-node .label text,#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .node .label text,#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .image-shape .label,#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .icon-shape .label{text-anchor:middle;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .rough-node .label,#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .node .label,#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .image-shape .label,#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .icon-shape .label{text-align:center;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .node.clickable{cursor:pointer;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .arrowheadPath{fill:#333333;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .edgePath .path{stroke:#333333;stroke-width:1px;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .flowchart-link{stroke:#333333;fill:none;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .cluster text{fill:#333;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .cluster span{color:#333;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 rect.text{fill:none;stroke-width:0;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .icon-shape,#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .icon-shape p,#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .icon-shape .label rect,#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 .node .neo-node{stroke:#9370DB;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 [data-look=\"neo\"].node rect,#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 [data-look=\"neo\"].cluster rect,#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}</style><g><marker id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\"><path d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\"><polygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></polygon></marker><marker id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"></path></marker><marker id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"></path></marker><g class=\"root\"><g class=\"clusters\"></g><g class=\"edgePaths\"><path d=\"M184.281,35L188.448,35C192.615,35,200.948,35,208.615,35C216.281,35,223.281,35,226.781,35L230.281,35\" id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58-L_A_B_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_A_B_0\" data-points=\"W3sieCI6MTg0LjI4MTI1LCJ5IjozNX0seyJ4IjoyMDkuMjgxMjUsInkiOjM1fSx7IngiOjIzNC4yODEyNSwieSI6MzV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58_flowchart-v2-pointEnd)\"></path><path d=\"M415.484,35L419.651,35C423.818,35,432.151,35,439.818,35C447.484,35,454.484,35,457.984,35L461.484,35\" id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58-L_B_C_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_B_C_0\" data-points=\"W3sieCI6NDE1LjQ4NDM3NSwieSI6MzV9LHsieCI6NDQwLjQ4NDM3NSwieSI6MzV9LHsieCI6NDY1LjQ4NDM3NSwieSI6MzV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58_flowchart-v2-pointEnd)\"></path><path d=\"M649.125,35L653.292,35C657.458,35,665.792,35,673.458,35C681.125,35,688.125,35,691.625,35L695.125,35\" id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58-L_C_D_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_C_D_0\" data-points=\"W3sieCI6NjQ5LjEyNSwieSI6MzV9LHsieCI6Njc0LjEyNSwieSI6MzV9LHsieCI6Njk5LjEyNSwieSI6MzV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58_flowchart-v2-pointEnd)\"></path><path d=\"M907.203,35L911.37,35C915.536,35,923.87,35,931.536,35C939.203,35,946.203,35,949.703,35L953.203,35\" id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58-L_D_E_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_D_E_0\" data-points=\"W3sieCI6OTA3LjIwMzEyNSwieSI6MzV9LHsieCI6OTMyLjIwMzEyNSwieSI6MzV9LHsieCI6OTU3LjIwMzEyNSwieSI6MzV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_A_B_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_B_C_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_C_D_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_D_E_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58-flowchart-A-0\" data-look=\"classic\" transform=\"translate(96.140625, 35)\"><rect class=\"basic label-container\" style=\"\" x=\"-88.140625\" y=\"-27\" width=\"176.28125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-58.140625, -12)\"><rect></rect><foreignObject width=\"116.28125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Scout inventory</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58-flowchart-B-1\" data-look=\"classic\" transform=\"translate(324.8828125, 35)\"><rect class=\"basic label-container\" style=\"\" x=\"-90.6015625\" y=\"-27\" width=\"181.203125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-60.6015625, -12)\"><rect></rect><foreignObject width=\"121.203125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>AI cluster review</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58-flowchart-C-3\" data-look=\"classic\" transform=\"translate(557.3046875, 35)\"><rect class=\"basic label-container\" style=\"\" x=\"-91.8203125\" y=\"-27\" width=\"183.640625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-61.8203125, -12)\"><rect></rect><foreignObject width=\"123.640625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Owner decisions</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58-flowchart-D-5\" data-look=\"classic\" transform=\"translate(803.1640625, 35)\"><rect class=\"basic label-container\" style=\"\" x=\"-104.0390625\" y=\"-27\" width=\"208.078125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-74.0390625, -12)\"><rect></rect><foreignObject width=\"148.078125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Reef catalog update</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58-flowchart-E-7\" data-look=\"classic\" transform=\"translate(1065.8203125, 35)\"><rect class=\"basic label-container\" style=\"\" x=\"-108.6171875\" y=\"-27\" width=\"217.234375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-78.6171875, -12)\"><rect></rect><foreignObject width=\"157.234375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Deprecate duplicates</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs><defs><filter id=\"diagram-7d6d7093f3fc8c10b407fa137247fba5295c969f169e7493a2d880fb8626fc58-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs></svg>","diagramHtmlDark":"<svg id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 1182.4375px;\" viewBox=\"0 0 1182.4375 70\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;fill:#ccc;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .error-icon{fill:#a44141;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .error-text{fill:#ddd;stroke:#ddd;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .edge-thickness-normal{stroke-width:1px;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .edge-thickness-thick{stroke-width:3.5px;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .edge-pattern-solid{stroke-dasharray:0;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .marker{fill:lightgrey;stroke:lightgrey;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .marker.cross{stroke:lightgrey;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 svg{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 p{margin:0;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .label{font-family:\"Redocly Mermaid Sans\",sans-serif;color:#ccc;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .cluster-label text{fill:#F9FFFE;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .cluster-label span{color:#F9FFFE;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .cluster-label span p{background-color:transparent;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .label text,#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 span{fill:#ccc;color:#ccc;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .node rect,#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .node circle,#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .node ellipse,#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .node polygon,#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .node path{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .rough-node .label text,#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .node .label text,#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .image-shape .label,#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .icon-shape .label{text-anchor:middle;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .rough-node .label,#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .node .label,#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .image-shape .label,#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .icon-shape .label{text-align:center;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .node.clickable{cursor:pointer;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .root .anchor path{fill:lightgrey!important;stroke-width:0;stroke:lightgrey;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .arrowheadPath{fill:lightgrey;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .edgePath .path{stroke:lightgrey;stroke-width:1px;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .flowchart-link{stroke:lightgrey;fill:none;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .edgeLabel p{background-color:hsl(0, 0%, 34.4117647059%);}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .labelBkg{background-color:rgba(87.75, 87.75, 87.75, 0.5);}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .cluster rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:rgba(255, 255, 255, 0.25);stroke-width:1px;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .cluster text{fill:#F9FFFE;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .cluster span{color:#F9FFFE;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:12px;background:hsl(20, 1.5873015873%, 12.3529411765%);border:1px solid rgba(255, 255, 255, 0.25);border-radius:2px;pointer-events:none;z-index:100;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 rect.text{fill:none;stroke-width:0;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .icon-shape,#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .image-shape{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .icon-shape p,#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .image-shape p{background-color:hsl(0, 0%, 34.4117647059%);padding:2px;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .icon-shape .label rect,#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .image-shape .label rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 .node .neo-node{stroke:#ccc;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 [data-look=\"neo\"].node rect,#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 [data-look=\"neo\"].cluster rect,#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 [data-look=\"neo\"].node polygon{stroke:url(#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 [data-look=\"neo\"].node path{stroke:url(#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4-gradient);stroke-width:1px;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 [data-look=\"neo\"].node circle{stroke:url(#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}</style><g><marker id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\"><path d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\"><polygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></polygon></marker><marker id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"></path></marker><marker id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"></path></marker><g class=\"root\"><g class=\"clusters\"></g><g class=\"edgePaths\"><path d=\"M184.281,35L188.448,35C192.615,35,200.948,35,208.615,35C216.281,35,223.281,35,226.781,35L230.281,35\" id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4-L_A_B_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_A_B_0\" data-points=\"W3sieCI6MTg0LjI4MTI1LCJ5IjozNX0seyJ4IjoyMDkuMjgxMjUsInkiOjM1fSx7IngiOjIzNC4yODEyNSwieSI6MzV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4_flowchart-v2-pointEnd)\"></path><path d=\"M415.484,35L419.651,35C423.818,35,432.151,35,439.818,35C447.484,35,454.484,35,457.984,35L461.484,35\" id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4-L_B_C_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_B_C_0\" data-points=\"W3sieCI6NDE1LjQ4NDM3NSwieSI6MzV9LHsieCI6NDQwLjQ4NDM3NSwieSI6MzV9LHsieCI6NDY1LjQ4NDM3NSwieSI6MzV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4_flowchart-v2-pointEnd)\"></path><path d=\"M649.125,35L653.292,35C657.458,35,665.792,35,673.458,35C681.125,35,688.125,35,691.625,35L695.125,35\" id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4-L_C_D_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_C_D_0\" data-points=\"W3sieCI6NjQ5LjEyNSwieSI6MzV9LHsieCI6Njc0LjEyNSwieSI6MzV9LHsieCI6Njk5LjEyNSwieSI6MzV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4_flowchart-v2-pointEnd)\"></path><path d=\"M907.203,35L911.37,35C915.536,35,923.87,35,931.536,35C939.203,35,946.203,35,949.703,35L953.203,35\" id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4-L_D_E_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_D_E_0\" data-points=\"W3sieCI6OTA3LjIwMzEyNSwieSI6MzV9LHsieCI6OTMyLjIwMzEyNSwieSI6MzV9LHsieCI6OTU3LjIwMzEyNSwieSI6MzV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_A_B_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_B_C_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_C_D_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_D_E_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4-flowchart-A-0\" data-look=\"classic\" transform=\"translate(96.140625, 35)\"><rect class=\"basic label-container\" style=\"\" x=\"-88.140625\" y=\"-27\" width=\"176.28125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-58.140625, -12)\"><rect></rect><foreignObject width=\"116.28125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Scout inventory</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4-flowchart-B-1\" data-look=\"classic\" transform=\"translate(324.8828125, 35)\"><rect class=\"basic label-container\" style=\"\" x=\"-90.6015625\" y=\"-27\" width=\"181.203125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-60.6015625, -12)\"><rect></rect><foreignObject width=\"121.203125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>AI cluster review</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4-flowchart-C-3\" data-look=\"classic\" transform=\"translate(557.3046875, 35)\"><rect class=\"basic label-container\" style=\"\" x=\"-91.8203125\" y=\"-27\" width=\"183.640625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-61.8203125, -12)\"><rect></rect><foreignObject width=\"123.640625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Owner decisions</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4-flowchart-D-5\" data-look=\"classic\" transform=\"translate(803.1640625, 35)\"><rect class=\"basic label-container\" style=\"\" x=\"-104.0390625\" y=\"-27\" width=\"208.078125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-74.0390625, -12)\"><rect></rect><foreignObject width=\"148.078125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Reef catalog update</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4-flowchart-E-7\" data-look=\"classic\" transform=\"translate(1065.8203125, 35)\"><rect class=\"basic label-container\" style=\"\" x=\"-108.6171875\" y=\"-27\" width=\"217.234375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-78.6171875, -12)\"><rect></rect><foreignObject width=\"157.234375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Deprecate duplicates</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><defs><filter id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><linearGradient id=\"diagram-2a30d933385d15f6300d61ca1b46fcb1ecf7b1a2e97f6947d2fb1bf816a373b4-gradient\" gradientUnits=\"objectBoundingBox\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\"><stop offset=\"0%\" stop-color=\"#cccccc\" stop-opacity=\"1\"></stop><stop offset=\"100%\" stop-color=\"hsl(180, 0%, 18.3529411765%)\" stop-opacity=\"1\"></stop></linearGradient></svg>"},"children":["graph LR\n  A[Scout inventory] --> B[AI cluster review]\n  B --> C[Owner decisions]\n  C --> D[Reef catalog update]\n  D --> E[Deprecate duplicates]\n"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The loop runs quarterly or after major acquisitions, not only once."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"best-practices","__idx":8},"children":["Best practices"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Start from collected specs, not from chat memory about what exists."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ask owners for one sentence on why two similar APIs both exist before you schedule decommission."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Track consumer migrations explicitly when you retire a duplicate."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Log model clusters with links to spec files so auditors can reproduce the review."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Share audit results in the same channel where architects already discuss standards, so consolidation does not feel like an surprise security review."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Time-box AI review to clusters under twenty APIs per pass. Larger batches produce vague groupings."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When you publish winners in the catalog, add a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["deprecated"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["successor"]}," field in metadata so search surfaces the replacement immediately."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-discovery-cannot-replace","__idx":9},"children":["What discovery cannot replace"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["AI does not see private traffic dashboards unless you paste aggregates, and it cannot sign deprecation notices for partner APIs. Scout coverage is only as complete as the repositories you connect. Political ownership disputes still need human negotiation."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"summary","__idx":10},"children":["Summary"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use Scout to inventory the estate, use structured AI passes to propose duplicate and underuse clusters, then let owners decide what to merge. Publish the canonical APIs in Reef so the next team finds one front door instead of three."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"learn-more","__idx":11},"children":["Learn more"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/reef"},"children":["Reef"]}," brings API Scout discovery and catalog publishing together so duplicate reviews turn into a maintained source of truth rather than a one-off spreadsheet."]}]},"headings":[{"value":"Use AI to find duplicate and underused APIs in your codebase","id":"use-ai-to-find-duplicate-and-underused-apis-in-your-codebase","depth":1},{"value":"Why API sprawl shows up late","id":"why-api-sprawl-shows-up-late","depth":2},{"value":"What Scout gives you before AI","id":"what-scout-gives-you-before-ai","depth":2},{"value":"Inputs for an AI-assisted duplicate review","id":"inputs-for-an-ai-assisted-duplicate-review","depth":2},{"value":"Prompt skeleton for overlap and usage signals","id":"prompt-skeleton-for-overlap-and-usage-signals","depth":2},{"value":"Signals models often surface","id":"signals-models-often-surface","depth":2},{"value":"Duplicate patterns worth naming in the prompt","id":"duplicate-patterns-worth-naming-in-the-prompt","depth":3},{"value":"Turning findings into a consolidation backlog","id":"turning-findings-into-a-consolidation-backlog","depth":2},{"value":"Best practices","id":"best-practices","depth":2},{"value":"What discovery cannot replace","id":"what-discovery-cannot-replace","depth":2},{"value":"Summary","id":"summary","depth":2},{"value":"Learn more","id":"learn-more","depth":2}],"frontmatter":{"seo":{"title":"Use AI to find duplicate and underused APIs in your codebase","description":"Combine Reef API Scout discovery with structured AI review to spot overlapping endpoints and low-use services before you consolidate."}},"lastModified":"2026-05-22T12:10:40.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/learn/ai-for-docs/ai-find-duplicate-underused-apis","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}