{"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 review API design for backward compatibility risks","description":"How to prompt an LLM to compare two OpenAPI versions for breaking changes, where human judgment ends, and how Redocly CLI plus Respect keep spec and live behavior aligned in CI.","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-review-api-design-for-backward-compatibility-risks","__idx":0},"children":["Use AI to review API design for backward compatibility risks"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Your public OpenAPI file is a promise to every client that already shipped. When a field disappears, a type tightens, or a path renames, the break often shows up first in someone else’s production log. A large language model can read two snapshots and narrate what changed. It is not a contract test. Pair that review with ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/api-standards"},"children":["API standards and governance"]}," in CI using ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/"},"children":["Explore Redocly CLI"]},", then let ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/respect/"},"children":["Redocly Respect"]}," exercise critical workflows against a real server."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This article covers what counts as breaking, how to prompt with two spec versions, and how CLI linting plus Respect’s Arazzo-aware runs complement AI judgment."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"why-compatibility-risk-hides-in-large-specs","__idx":1},"children":["Why compatibility risk hides in large specs"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Breaking changes are not always obvious renames. Optional can become required, enums can lose values clients still send, or a response schema can drop a field your SDK exposed. Line-by-line YAML diffs fatigue humans fast. A model can hold both trees and highlight operations where caller behavior likely changed."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The model may still hallucinate a reorder as a semantic change, or miss runtime behavior the spec never captured. Treat it as a reviewer that returns a prioritized list, and treat CI as the judge that fails the merge until the list is addressed or ruled out."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-counts-as-breaking-for-clients","__idx":2},"children":["What counts as breaking for clients"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Agree with consumers what “breaking” means before you prompt: removed paths, renamed fields, stricter types, new required properties, changed status semantics, narrower enums. Additive changes still belong in a changelog but need not fail the gate."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Have the model label each finding breaking, probably safe, or needs human decision. If some branches are additive-only, say that so new optional fields are not flagged as breaks."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"how-to-prompt-ai-with-two-openapi-versions","__idx":3},"children":["How to prompt AI with two OpenAPI versions"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"context-block-template","__idx":4},"children":["Context block template"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Paste something shaped like this before the two files:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"markdown","header":{"controls":{"copy":{}}},"source":"You are comparing two OpenAPI 3.1 documents for backward compatibility.\n\nRoles:\n- Document A: last published spec (tag v1.2.0).\n- Document B: candidate release on branch release/1.3.\n\nConsumer contract (plain language):\n- Mobile clients cache GET /users/{id} for 24 hours; removing any 200 response field they deserialize is breaking.\n- Webhooks must accept unknown JSON keys on callbacks.\n\nTasks:\n1. List operations where request or response schemas narrowed for existing clients.\n2. List renamed or removed paths, parameters, and schema properties with JSON pointers when possible.\n3. Flag changes to error models that might alter client branching on status plus body shape.\n4. Output a table: change, breaking Y/N/uncertain, suggested mitigation (deprecation header, versioned path, dual-write period).\n","lang":"markdown"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Paste both files with clear delimiters. If policy lives only in Slack, summarize it in the prompt instead of assuming the model knows your release train."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"review-checklist-for-the-model","__idx":5},"children":["Review checklist for the model"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Cover default responses, shared components reused across tags, and discriminator or oneOf shapes where a variant disappeared. Require operationIds on each row so tickets map to generators and tests."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"where-redocly-cli-takes-over","__idx":6},"children":["Where Redocly CLI takes over"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["AI output is not policy until it becomes rules and CI. ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/"},"children":["Explore Redocly CLI"]}," applies the same ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/rules/built-in-rules"},"children":["built-in rules"]}," and custom rules on every commit, so repeated enum removals fail the build instead of reappearing in chat."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/guides/configure-rules"},"children":["guide to configuring a ruleset"]}," with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recommended"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recommended-strict"]}," as baseline, then encode your compatibility policy explicitly. The ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/commands/lint"},"children":["lint command"]}," also validates ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/learn/arazzo/what-is-arazzo"},"children":["What is Arazzo?"]}," files next to your OpenAPI roots."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/configuration/apis"},"children":["Per-API configuration"]}," lets a public bundle stay stricter than an internal experimental service, similar to telling the model to ignore internal-only paths."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"where-respect-takes-over","__idx":7},"children":["Where Respect takes over"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Specs can parse yet still misdescribe production. ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/respect/"},"children":["Redocly Respect"]}," sends real requests and checks responses against OpenAPI and Arazzo expectations. ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/respect/use-cases"},"children":["use cases for Respect"]}," include local runs, PR CI, and scheduled smoke tests against staging or production."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Model the journeys that define compatibility: login then profile, create then poll, cancel then verify. When the server diverges from the description, Respect fails where a static diff would stay green. Use AI to summarize failure logs for humans, not to skip the run."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-ai-cannot-prove","__idx":8},"children":["What AI cannot prove"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A model cannot prove every client tolerates a change. It does not execute your stack or know compensating behavior inside mobile apps. It should not be the only gate when SLAs attach to specific response shapes."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use AI to widen spec review, Respect to bind descriptions to deployed behavior, and humans for intentional breaks with explicit version bumps."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"best-practices","__idx":9},"children":["Best practices"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Always pass two concrete artifacts, for example bundled YAML from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["main"]}," and from your release branch, not a vague “what changed lately” question."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Ask for JSON pointers or operationIds so tickets map cleanly to engineering work."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Encode repeated AI findings as rules so the same mistake cannot return unnoticed."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Keep Arazzo workflows short and focused on compatibility-critical paths so CI stays fast and failures are interpretable."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-this-approach-cannot-replace","__idx":10},"children":["What this approach cannot replace"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This approach cannot replace consumer-driven contract tests owned by client teams, canary analysis, or database migration review when behavior shifts outside HTTP. It is a structured spec review plus deterministic tooling, not a full release certification."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"how-the-pieces-fit-together","__idx":11},"children":["How the pieces fit together"]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"graph LR\n  A[OpenAPI A plus OpenAPI B] --> B[LLM compatibility review]\n  B --> C[Human updates spec and rules]\n  C --> D[Redocly CLI lint]\n  D --> E[Respect Arazzo runs]\n  E --> F[CI or scheduled gate]\n","diagramHtml":"<svg id=\"diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 1623.953125px;\" viewBox=\"0 0 1623.953125 94\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e{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-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .error-icon{fill:#552222;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .error-text{fill:#552222;stroke:#552222;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .edge-thickness-normal{stroke-width:1px;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .edge-thickness-thick{stroke-width:3.5px;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .edge-pattern-solid{stroke-dasharray:0;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .edge-pattern-dashed{stroke-dasharray:3;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .edge-pattern-dotted{stroke-dasharray:2;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .marker{fill:#333333;stroke:#333333;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .marker.cross{stroke:#333333;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e svg{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e p{margin:0;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .label{font-family:\"Redocly Mermaid Sans\",sans-serif;color:#333;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .cluster-label text{fill:#333;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .cluster-label span{color:#333;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .cluster-label span p{background-color:transparent;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .label text,#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e span{fill:#333;color:#333;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .node rect,#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .node circle,#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .node ellipse,#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .node polygon,#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .rough-node .label text,#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .node .label text,#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .image-shape .label,#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .icon-shape .label{text-anchor:middle;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .rough-node .label,#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .node .label,#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .image-shape .label,#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .icon-shape .label{text-align:center;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .node.clickable{cursor:pointer;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .arrowheadPath{fill:#333333;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .edgePath .path{stroke:#333333;stroke-width:1px;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .flowchart-link{stroke:#333333;fill:none;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .cluster text{fill:#333;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .cluster span{color:#333;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e 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-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e rect.text{fill:none;stroke-width:0;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .icon-shape,#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .icon-shape p,#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .icon-shape .label rect,#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e .node .neo-node{stroke:#9370DB;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e [data-look=\"neo\"].node rect,#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e [data-look=\"neo\"].cluster rect,#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}</style><g><marker id=\"diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e_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-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e_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-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e_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-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e_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-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e_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-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e_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-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e_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-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e_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-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e_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-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e_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-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e_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-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e_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=\"M266.984,47L271.151,47C275.318,47,283.651,47,291.318,47C298.984,47,305.984,47,309.484,47L312.984,47\" id=\"diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e-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=\"W3sieCI6MjY2Ljk4NDM3NSwieSI6NDd9LHsieCI6MjkxLjk4NDM3NSwieSI6NDd9LHsieCI6MzE2Ljk4NDM3NSwieSI6NDd9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e_flowchart-v2-pointEnd)\"></path><path d=\"M560.609,47L564.776,47C568.943,47,577.276,47,584.943,47C592.609,47,599.609,47,603.109,47L606.609,47\" id=\"diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e-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=\"W3sieCI6NTYwLjYwOTM3NSwieSI6NDd9LHsieCI6NTg1LjYwOTM3NSwieSI6NDd9LHsieCI6NjEwLjYwOTM3NSwieSI6NDd9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e_flowchart-v2-pointEnd)\"></path><path d=\"M870.609,47L874.776,47C878.943,47,887.276,47,894.943,47C902.609,47,909.609,47,913.109,47L916.609,47\" id=\"diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e-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=\"W3sieCI6ODcwLjYwOTM3NSwieSI6NDd9LHsieCI6ODk1LjYwOTM3NSwieSI6NDd9LHsieCI6OTIwLjYwOTM3NSwieSI6NDd9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e_flowchart-v2-pointEnd)\"></path><path d=\"M1093.406,47L1097.573,47C1101.74,47,1110.073,47,1117.74,47C1125.406,47,1132.406,47,1135.906,47L1139.406,47\" id=\"diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e-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=\"W3sieCI6MTA5My40MDYyNSwieSI6NDd9LHsieCI6MTExOC40MDYyNSwieSI6NDd9LHsieCI6MTE0My40MDYyNSwieSI6NDd9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e_flowchart-v2-pointEnd)\"></path><path d=\"M1353.938,47L1358.104,47C1362.271,47,1370.604,47,1378.271,47C1385.938,47,1392.938,47,1396.438,47L1399.938,47\" id=\"diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e-L_E_F_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_E_F_0\" data-points=\"W3sieCI6MTM1My45Mzc1LCJ5Ijo0N30seyJ4IjoxMzc4LjkzNzUsInkiOjQ3fSx7IngiOjE0MDMuOTM3NSwieSI6NDd9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e_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 class=\"edgeLabel\"><g class=\"label\" data-id=\"L_E_F_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-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e-flowchart-A-0\" data-look=\"classic\" transform=\"translate(137.4921875, 47)\"><rect class=\"basic label-container\" style=\"\" x=\"-129.4921875\" y=\"-27\" width=\"258.984375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-99.4921875, -12)\"><rect></rect><foreignObject width=\"198.984375\" 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>OpenAPI A plus OpenAPI B</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e-flowchart-B-1\" data-look=\"classic\" transform=\"translate(438.796875, 47)\"><rect class=\"basic label-container\" style=\"\" x=\"-121.8125\" y=\"-27\" width=\"243.625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-91.8125, -12)\"><rect></rect><foreignObject width=\"183.625\" 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>LLM compatibility review</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e-flowchart-C-3\" data-look=\"classic\" transform=\"translate(740.609375, 47)\"><rect class=\"basic label-container\" style=\"\" x=\"-130\" y=\"-39\" width=\"260\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-100, -24)\"><rect></rect><foreignObject width=\"200\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;\"><span class=\"nodeLabel\"><p>Human updates spec and rules</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e-flowchart-D-5\" data-look=\"classic\" transform=\"translate(1007.0078125, 47)\"><rect class=\"basic label-container\" style=\"\" x=\"-86.3984375\" y=\"-27\" width=\"172.796875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-56.3984375, -12)\"><rect></rect><foreignObject width=\"112.796875\" 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>Redocly CLI lint</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e-flowchart-E-7\" data-look=\"classic\" transform=\"translate(1248.671875, 47)\"><rect class=\"basic label-container\" style=\"\" x=\"-105.265625\" y=\"-27\" width=\"210.53125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-75.265625, -12)\"><rect></rect><foreignObject width=\"150.53125\" 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>Respect Arazzo runs</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e-flowchart-F-9\" data-look=\"classic\" transform=\"translate(1509.9453125, 47)\"><rect class=\"basic label-container\" style=\"\" x=\"-106.0078125\" y=\"-27\" width=\"212.015625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-76.0078125, -12)\"><rect></rect><foreignObject width=\"152.015625\" 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>CI or scheduled gate</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e-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-989ad566bc6997df18fef5c99c7b37b3c5bb5abc7f904393a01e4bbe305df62e-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-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 1623.953125px;\" viewBox=\"0 0 1623.953125 94\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142{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-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .error-icon{fill:#a44141;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .error-text{fill:#ddd;stroke:#ddd;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .edge-thickness-normal{stroke-width:1px;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .edge-thickness-thick{stroke-width:3.5px;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .edge-pattern-solid{stroke-dasharray:0;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .marker{fill:lightgrey;stroke:lightgrey;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .marker.cross{stroke:lightgrey;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 svg{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 p{margin:0;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .label{font-family:\"Redocly Mermaid Sans\",sans-serif;color:#ccc;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .cluster-label text{fill:#F9FFFE;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .cluster-label span{color:#F9FFFE;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .cluster-label span p{background-color:transparent;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .label text,#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 span{fill:#ccc;color:#ccc;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .node rect,#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .node circle,#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .node ellipse,#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .node polygon,#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .node path{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .rough-node .label text,#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .node .label text,#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .image-shape .label,#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .icon-shape .label{text-anchor:middle;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .rough-node .label,#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .node .label,#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .image-shape .label,#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .icon-shape .label{text-align:center;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .node.clickable{cursor:pointer;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .root .anchor path{fill:lightgrey!important;stroke-width:0;stroke:lightgrey;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .arrowheadPath{fill:lightgrey;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .edgePath .path{stroke:lightgrey;stroke-width:1px;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .flowchart-link{stroke:lightgrey;fill:none;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .edgeLabel p{background-color:hsl(0, 0%, 34.4117647059%);}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .labelBkg{background-color:rgba(87.75, 87.75, 87.75, 0.5);}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .cluster rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:rgba(255, 255, 255, 0.25);stroke-width:1px;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .cluster text{fill:#F9FFFE;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .cluster span{color:#F9FFFE;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 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-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 rect.text{fill:none;stroke-width:0;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .icon-shape,#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .image-shape{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .icon-shape p,#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .image-shape p{background-color:hsl(0, 0%, 34.4117647059%);padding:2px;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .icon-shape .label rect,#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .image-shape .label rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 .node .neo-node{stroke:#ccc;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 [data-look=\"neo\"].node rect,#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 [data-look=\"neo\"].cluster rect,#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 [data-look=\"neo\"].node polygon{stroke:url(#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 [data-look=\"neo\"].node path{stroke:url(#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142-gradient);stroke-width:1px;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 [data-look=\"neo\"].node circle{stroke:url(#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}</style><g><marker id=\"diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142_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-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142_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-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142_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-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142_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-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142_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-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142_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-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142_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-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142_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-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142_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-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142_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-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142_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-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142_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=\"M266.984,47L271.151,47C275.318,47,283.651,47,291.318,47C298.984,47,305.984,47,309.484,47L312.984,47\" id=\"diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142-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=\"W3sieCI6MjY2Ljk4NDM3NSwieSI6NDd9LHsieCI6MjkxLjk4NDM3NSwieSI6NDd9LHsieCI6MzE2Ljk4NDM3NSwieSI6NDd9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142_flowchart-v2-pointEnd)\"></path><path d=\"M560.609,47L564.776,47C568.943,47,577.276,47,584.943,47C592.609,47,599.609,47,603.109,47L606.609,47\" id=\"diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142-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=\"W3sieCI6NTYwLjYwOTM3NSwieSI6NDd9LHsieCI6NTg1LjYwOTM3NSwieSI6NDd9LHsieCI6NjEwLjYwOTM3NSwieSI6NDd9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142_flowchart-v2-pointEnd)\"></path><path d=\"M870.609,47L874.776,47C878.943,47,887.276,47,894.943,47C902.609,47,909.609,47,913.109,47L916.609,47\" id=\"diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142-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=\"W3sieCI6ODcwLjYwOTM3NSwieSI6NDd9LHsieCI6ODk1LjYwOTM3NSwieSI6NDd9LHsieCI6OTIwLjYwOTM3NSwieSI6NDd9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142_flowchart-v2-pointEnd)\"></path><path d=\"M1093.406,47L1097.573,47C1101.74,47,1110.073,47,1117.74,47C1125.406,47,1132.406,47,1135.906,47L1139.406,47\" id=\"diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142-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=\"W3sieCI6MTA5My40MDYyNSwieSI6NDd9LHsieCI6MTExOC40MDYyNSwieSI6NDd9LHsieCI6MTE0My40MDYyNSwieSI6NDd9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142_flowchart-v2-pointEnd)\"></path><path d=\"M1353.938,47L1358.104,47C1362.271,47,1370.604,47,1378.271,47C1385.938,47,1392.938,47,1396.438,47L1399.938,47\" id=\"diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142-L_E_F_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_E_F_0\" data-points=\"W3sieCI6MTM1My45Mzc1LCJ5Ijo0N30seyJ4IjoxMzc4LjkzNzUsInkiOjQ3fSx7IngiOjE0MDMuOTM3NSwieSI6NDd9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142_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 class=\"edgeLabel\"><g class=\"label\" data-id=\"L_E_F_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-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142-flowchart-A-0\" data-look=\"classic\" transform=\"translate(137.4921875, 47)\"><rect class=\"basic label-container\" style=\"\" x=\"-129.4921875\" y=\"-27\" width=\"258.984375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-99.4921875, -12)\"><rect></rect><foreignObject width=\"198.984375\" 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>OpenAPI A plus OpenAPI B</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142-flowchart-B-1\" data-look=\"classic\" transform=\"translate(438.796875, 47)\"><rect class=\"basic label-container\" style=\"\" x=\"-121.8125\" y=\"-27\" width=\"243.625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-91.8125, -12)\"><rect></rect><foreignObject width=\"183.625\" 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>LLM compatibility review</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142-flowchart-C-3\" data-look=\"classic\" transform=\"translate(740.609375, 47)\"><rect class=\"basic label-container\" style=\"\" x=\"-130\" y=\"-39\" width=\"260\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-100, -24)\"><rect></rect><foreignObject width=\"200\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;\"><span class=\"nodeLabel\"><p>Human updates spec and rules</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142-flowchart-D-5\" data-look=\"classic\" transform=\"translate(1007.0078125, 47)\"><rect class=\"basic label-container\" style=\"\" x=\"-86.3984375\" y=\"-27\" width=\"172.796875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-56.3984375, -12)\"><rect></rect><foreignObject width=\"112.796875\" 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>Redocly CLI lint</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142-flowchart-E-7\" data-look=\"classic\" transform=\"translate(1248.671875, 47)\"><rect class=\"basic label-container\" style=\"\" x=\"-105.265625\" y=\"-27\" width=\"210.53125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-75.265625, -12)\"><rect></rect><foreignObject width=\"150.53125\" 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>Respect Arazzo runs</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142-flowchart-F-9\" data-look=\"classic\" transform=\"translate(1509.9453125, 47)\"><rect class=\"basic label-container\" style=\"\" x=\"-106.0078125\" y=\"-27\" width=\"212.015625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-76.0078125, -12)\"><rect></rect><foreignObject width=\"152.015625\" 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>CI or scheduled gate</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142-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-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142-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-5b35d88d563487aa5d9e0c298dea989bc2545301f2771dbef3980b5c21580142-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[OpenAPI A plus OpenAPI B] --> B[LLM compatibility review]\n  B --> C[Human updates spec and rules]\n  C --> D[Redocly CLI lint]\n  D --> E[Respect Arazzo runs]\n  E --> F[CI or scheduled gate]\n"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["AI widens the diff narrative. Redocly CLI enforces the spec text. Respect checks that the running API still honors the workflows your clients depend on."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"learn-more","__idx":12},"children":["Learn more"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Start with ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/"},"children":["Explore Redocly CLI"]}," for ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/api-standards"},"children":["API standards and governance"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/rules/built-in-rules"},"children":["built-in rules"]},", and the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/commands/lint"},"children":["lint command"]}," on every change."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Add ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/respect/"},"children":["Redocly Respect"]}," and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/respect/use-cases"},"children":["use cases for Respect"]}," when you need PR or scheduled runs that still fail if the live API drifts while the YAML stays valid."]}]},"headings":[{"value":"Use AI to review API design for backward compatibility risks","id":"use-ai-to-review-api-design-for-backward-compatibility-risks","depth":1},{"value":"Why compatibility risk hides in large specs","id":"why-compatibility-risk-hides-in-large-specs","depth":2},{"value":"What counts as breaking for clients","id":"what-counts-as-breaking-for-clients","depth":2},{"value":"How to prompt AI with two OpenAPI versions","id":"how-to-prompt-ai-with-two-openapi-versions","depth":2},{"value":"Context block template","id":"context-block-template","depth":3},{"value":"Review checklist for the model","id":"review-checklist-for-the-model","depth":3},{"value":"Where Redocly CLI takes over","id":"where-redocly-cli-takes-over","depth":2},{"value":"Where Respect takes over","id":"where-respect-takes-over","depth":2},{"value":"What AI cannot prove","id":"what-ai-cannot-prove","depth":2},{"value":"Best practices","id":"best-practices","depth":2},{"value":"What this approach cannot replace","id":"what-this-approach-cannot-replace","depth":2},{"value":"How the pieces fit together","id":"how-the-pieces-fit-together","depth":2},{"value":"Learn more","id":"learn-more","depth":2}],"frontmatter":{"seo":{"title":"Use AI to review API design for backward compatibility risks","description":"How to prompt an LLM to compare two OpenAPI versions for breaking changes, where human judgment ends, and how Redocly CLI plus Respect keep spec and live behavior aligned in CI."}},"lastModified":"2026-05-22T12:10:40.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/learn/ai-for-docs/ai-api-design-backward-compatibility-risks","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}