{"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 gaps and inconsistencies","description":"Share OpenAPI or design notes with a model to find missing workflows and inconsistent patterns, then validate changes with Redocly CLI lint before merge.","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-gaps-and-inconsistencies","__idx":0},"children":["Use AI to review API design for gaps and inconsistencies"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can ask a model to read OpenAPI or design notes before handlers ship, then gate changes with Redocly CLI lint in the same pull request. The learn article ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/learn/ai-for-docs/ai-reviews"},"children":["Use AI to accelerate and improve reviews"]}," covers the wider review pattern; here the focus stays on API shape, workflows, and naming drift while lint covers spec compliance and governance."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"when-design-review-belongs-before-implementation","__idx":1},"children":["When design review belongs before implementation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Early review is cheaper than retrofitting routes, error models, and pagination after clients exist. A model can scan many paths at once and compare them against the story you tell about actors, states, and edge cases. It does not replace your product judgment, but it gives you a second reader that is patient with long YAML."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"inputs-that-make-the-review-specific","__idx":2},"children":["Inputs that make the review specific"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Paste enough domain context that a newcomer could role-play your user. List primary actors, the workflows they care about, and the invariants you already know, for example holds on inventory or partial refunds."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Add either a full OpenAPI file or a curated excerpt. If the file is huge, scope the excerpt to the surface you are changing and link to the rest in prose. The goal is signal density, not token volume for its own sake."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"domain-context-block-you-can-paste","__idx":3},"children":["Domain context block you can paste"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"markdown","header":{"controls":{"copy":{}}},"source":"Context: We run a small logistics network for cold freight.\nActors: shippers, carriers, warehouse staff.\nWorkflows: booking a lane, changing pickup windows, recording temperature excursions.\n\nReview this OpenAPI excerpt for gaps and inconsistencies:\n[paste paths, schemas, or notes]\n","lang":"markdown"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"prompt-skeleton-for-gaps-and-inconsistencies","__idx":4},"children":["Prompt skeleton for gaps and inconsistencies"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Keep the ask structured so the answer is easy to triage. You can start from this outline and tune nouns to your domain."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"markdown","header":{"controls":{"copy":{}}},"source":"You are reviewing an API design for [one sentence domain].\n\nPlease list:\n1. Missing CRUD or state transitions implied by the domain but absent from paths.\n2. Incomplete workflows where a user would reach a dead end.\n3. Naming inconsistencies across resources, parameters, and schema fields.\n4. Edge cases we should model explicitly, including error shapes.\n5. Authentication or authorization gaps relative to the described roles.\n\n[paste OpenAPI or notes]\n","lang":"markdown"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"signals-the-model-often-finds","__idx":5},"children":["Signals the model often finds"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Across teams, the same review surfaces a short set of themes. Missing companion operations appear when create exists without read or cancel. URL style drifts between ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/resource/{id}"]}," and query variants for the same concept. Domain gaps show up when a user can start a workflow but cannot observe status or reverse an action. Security gaps cluster around admin-only routes that lack explicit scopes or consistent error contracts."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Treat the list as a prioritized backlog, not a verdict. Some suggestions will not fit your roadmap or risk appetite."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"thin-before-and-after-on-paths-and-verbs","__idx":6},"children":["Thin before and after on paths and verbs"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Before:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"paths:\n  /shipments:\n    post:\n      summary: Create shipment\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"paths:\n  /shipments:\n    post:\n      summary: Create shipment\n    get:\n      summary: List shipments for the authenticated account\n  /shipments/{shipmentId}:\n    get:\n      summary: Retrieve a single shipment\n    patch:\n      summary: Update allowed fields on a draft shipment\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The second sketch does not prove correctness, but it shows how a gap review nudges you toward coherent CRUD before you wire handlers."]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"graph LR\n  A[Domain context plus OpenAPI] --> B[Model review]\n  B --> C[Human edits]\n  C --> D[redocly lint]\n  D --> E[Pull request]\n","diagramHtml":"<svg id=\"diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 1081.515625px;\" viewBox=\"0 0 1081.515625 94\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572{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-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .error-icon{fill:#552222;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .error-text{fill:#552222;stroke:#552222;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .edge-thickness-normal{stroke-width:1px;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .edge-thickness-thick{stroke-width:3.5px;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .edge-pattern-solid{stroke-dasharray:0;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .marker{fill:#333333;stroke:#333333;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .marker.cross{stroke:#333333;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 svg{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 p{margin:0;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .label{font-family:\"Redocly Mermaid Sans\",sans-serif;color:#333;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .cluster-label text{fill:#333;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .cluster-label span{color:#333;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .cluster-label span p{background-color:transparent;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .label text,#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 span{fill:#333;color:#333;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .node rect,#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .node circle,#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .node ellipse,#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .node polygon,#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .rough-node .label text,#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .node .label text,#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .image-shape .label,#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .icon-shape .label{text-anchor:middle;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .rough-node .label,#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .node .label,#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .image-shape .label,#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .icon-shape .label{text-align:center;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .node.clickable{cursor:pointer;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .arrowheadPath{fill:#333333;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .edgePath .path{stroke:#333333;stroke-width:1px;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .flowchart-link{stroke:#333333;fill:none;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .cluster text{fill:#333;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .cluster span{color:#333;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 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-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 rect.text{fill:none;stroke-width:0;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .icon-shape,#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .icon-shape p,#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .icon-shape .label rect,#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 .node .neo-node{stroke:#9370DB;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 [data-look=\"neo\"].node rect,#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 [data-look=\"neo\"].cluster rect,#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}</style><g><marker id=\"diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572_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-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572_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-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572_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-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572_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-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572_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-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572_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-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572_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-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572_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-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572_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-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572_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-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572_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-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572_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=\"M268,47L272.167,47C276.333,47,284.667,47,292.333,47C300,47,307,47,310.5,47L314,47\" id=\"diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572-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=\"W3sieCI6MjY4LCJ5Ijo0N30seyJ4IjoyOTMsInkiOjQ3fSx7IngiOjMxOCwieSI6NDd9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572_flowchart-v2-pointEnd)\"></path><path d=\"M477.125,47L481.292,47C485.458,47,493.792,47,501.458,47C509.125,47,516.125,47,519.625,47L523.125,47\" id=\"diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572-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=\"W3sieCI6NDc3LjEyNSwieSI6NDd9LHsieCI6NTAyLjEyNSwieSI6NDd9LHsieCI6NTI3LjEyNSwieSI6NDd9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572_flowchart-v2-pointEnd)\"></path><path d=\"M682.625,47L686.792,47C690.958,47,699.292,47,706.958,47C714.625,47,721.625,47,725.125,47L728.625,47\" id=\"diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572-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=\"W3sieCI6NjgyLjYyNSwieSI6NDd9LHsieCI6NzA3LjYyNSwieSI6NDd9LHsieCI6NzMyLjYyNSwieSI6NDd9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572_flowchart-v2-pointEnd)\"></path><path d=\"M874.734,47L878.901,47C883.068,47,891.401,47,899.068,47C906.734,47,913.734,47,917.234,47L920.734,47\" id=\"diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572-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=\"W3sieCI6ODc0LjczNDM3NSwieSI6NDd9LHsieCI6ODk5LjczNDM3NSwieSI6NDd9LHsieCI6OTI0LjczNDM3NSwieSI6NDd9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572_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-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572-flowchart-A-0\" data-look=\"classic\" transform=\"translate(138, 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>Domain context plus OpenAPI</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572-flowchart-B-1\" data-look=\"classic\" transform=\"translate(397.5625, 47)\"><rect class=\"basic label-container\" style=\"\" x=\"-79.5625\" y=\"-27\" width=\"159.125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-49.5625, -12)\"><rect></rect><foreignObject width=\"99.125\" 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>Model review</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572-flowchart-C-3\" data-look=\"classic\" transform=\"translate(604.875, 47)\"><rect class=\"basic label-container\" style=\"\" x=\"-77.75\" y=\"-27\" width=\"155.5\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-47.75, -12)\"><rect></rect><foreignObject width=\"95.5\" 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>Human edits</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572-flowchart-D-5\" data-look=\"classic\" transform=\"translate(803.6796875, 47)\"><rect class=\"basic label-container\" style=\"\" x=\"-71.0546875\" y=\"-27\" width=\"142.109375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-41.0546875, -12)\"><rect></rect><foreignObject width=\"82.109375\" 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 lint</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572-flowchart-E-7\" data-look=\"classic\" transform=\"translate(999.125, 47)\"><rect class=\"basic label-container\" style=\"\" x=\"-74.390625\" y=\"-27\" width=\"148.78125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-44.390625, -12)\"><rect></rect><foreignObject width=\"88.78125\" 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>Pull request</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572-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-2fcb56189afadf63bdb2ebf871638e054368a105b6cee3759e33340d16a6a572-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-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 1081.515625px;\" viewBox=\"0 0 1081.515625 94\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d{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-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .error-icon{fill:#a44141;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .error-text{fill:#ddd;stroke:#ddd;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .edge-thickness-normal{stroke-width:1px;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .edge-thickness-thick{stroke-width:3.5px;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .edge-pattern-solid{stroke-dasharray:0;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .edge-pattern-dashed{stroke-dasharray:3;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .edge-pattern-dotted{stroke-dasharray:2;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .marker{fill:lightgrey;stroke:lightgrey;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .marker.cross{stroke:lightgrey;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d svg{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d p{margin:0;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .label{font-family:\"Redocly Mermaid Sans\",sans-serif;color:#ccc;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .cluster-label text{fill:#F9FFFE;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .cluster-label span{color:#F9FFFE;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .cluster-label span p{background-color:transparent;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .label text,#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d span{fill:#ccc;color:#ccc;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .node rect,#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .node circle,#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .node ellipse,#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .node polygon,#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .node path{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .rough-node .label text,#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .node .label text,#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .image-shape .label,#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .icon-shape .label{text-anchor:middle;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .rough-node .label,#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .node .label,#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .image-shape .label,#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .icon-shape .label{text-align:center;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .node.clickable{cursor:pointer;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .root .anchor path{fill:lightgrey!important;stroke-width:0;stroke:lightgrey;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .arrowheadPath{fill:lightgrey;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .edgePath .path{stroke:lightgrey;stroke-width:1px;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .flowchart-link{stroke:lightgrey;fill:none;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .edgeLabel p{background-color:hsl(0, 0%, 34.4117647059%);}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .labelBkg{background-color:rgba(87.75, 87.75, 87.75, 0.5);}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .cluster rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:rgba(255, 255, 255, 0.25);stroke-width:1px;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .cluster text{fill:#F9FFFE;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .cluster span{color:#F9FFFE;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d 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-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d rect.text{fill:none;stroke-width:0;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .icon-shape,#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .image-shape{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .icon-shape p,#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .image-shape p{background-color:hsl(0, 0%, 34.4117647059%);padding:2px;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .icon-shape .label rect,#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .image-shape .label rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d .node .neo-node{stroke:#ccc;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d [data-look=\"neo\"].node rect,#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d [data-look=\"neo\"].cluster rect,#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d [data-look=\"neo\"].node polygon{stroke:url(#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d [data-look=\"neo\"].node path{stroke:url(#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d-gradient);stroke-width:1px;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d [data-look=\"neo\"].node circle{stroke:url(#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}</style><g><marker id=\"diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d_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-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d_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-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d_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-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d_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-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d_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-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d_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-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d_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-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d_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-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d_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-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d_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-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d_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-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d_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=\"M268,47L272.167,47C276.333,47,284.667,47,292.333,47C300,47,307,47,310.5,47L314,47\" id=\"diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d-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=\"W3sieCI6MjY4LCJ5Ijo0N30seyJ4IjoyOTMsInkiOjQ3fSx7IngiOjMxOCwieSI6NDd9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d_flowchart-v2-pointEnd)\"></path><path d=\"M477.125,47L481.292,47C485.458,47,493.792,47,501.458,47C509.125,47,516.125,47,519.625,47L523.125,47\" id=\"diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d-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=\"W3sieCI6NDc3LjEyNSwieSI6NDd9LHsieCI6NTAyLjEyNSwieSI6NDd9LHsieCI6NTI3LjEyNSwieSI6NDd9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d_flowchart-v2-pointEnd)\"></path><path d=\"M682.625,47L686.792,47C690.958,47,699.292,47,706.958,47C714.625,47,721.625,47,725.125,47L728.625,47\" id=\"diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d-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=\"W3sieCI6NjgyLjYyNSwieSI6NDd9LHsieCI6NzA3LjYyNSwieSI6NDd9LHsieCI6NzMyLjYyNSwieSI6NDd9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d_flowchart-v2-pointEnd)\"></path><path d=\"M874.734,47L878.901,47C883.068,47,891.401,47,899.068,47C906.734,47,913.734,47,917.234,47L920.734,47\" id=\"diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d-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=\"W3sieCI6ODc0LjczNDM3NSwieSI6NDd9LHsieCI6ODk5LjczNDM3NSwieSI6NDd9LHsieCI6OTI0LjczNDM3NSwieSI6NDd9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d_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-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d-flowchart-A-0\" data-look=\"classic\" transform=\"translate(138, 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>Domain context plus OpenAPI</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d-flowchart-B-1\" data-look=\"classic\" transform=\"translate(397.5625, 47)\"><rect class=\"basic label-container\" style=\"\" x=\"-79.5625\" y=\"-27\" width=\"159.125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-49.5625, -12)\"><rect></rect><foreignObject width=\"99.125\" 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>Model review</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d-flowchart-C-3\" data-look=\"classic\" transform=\"translate(604.875, 47)\"><rect class=\"basic label-container\" style=\"\" x=\"-77.75\" y=\"-27\" width=\"155.5\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-47.75, -12)\"><rect></rect><foreignObject width=\"95.5\" 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>Human edits</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d-flowchart-D-5\" data-look=\"classic\" transform=\"translate(803.6796875, 47)\"><rect class=\"basic label-container\" style=\"\" x=\"-71.0546875\" y=\"-27\" width=\"142.109375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-41.0546875, -12)\"><rect></rect><foreignObject width=\"82.109375\" 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 lint</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d-flowchart-E-7\" data-look=\"classic\" transform=\"translate(999.125, 47)\"><rect class=\"basic label-container\" style=\"\" x=\"-74.390625\" y=\"-27\" width=\"148.78125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-44.390625, -12)\"><rect></rect><foreignObject width=\"88.78125\" 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>Pull request</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d-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-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d-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-4cf93590d915605ed43b2b13f03c35eb457d6f656845dd06c7ec25bdda84ad3d-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[Domain context plus OpenAPI] --> B[Model review]\n  B --> C[Human edits]\n  C --> D[redocly lint]\n  D --> E[Pull request]\n"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The loop is intentionally short. You want feedback while the design is still cheap to edit."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"run-lint-after-you-merge-suggestions","__idx":7},"children":["Run lint after you merge suggestions"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When you accept changes, run the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/commands/lint"},"children":["lint command"]}," against the same file the model saw. Lint applies preprocessors and rules, reports problems in OpenAPI and related formats, and does not run decorators, which keeps this step focused on spec shape."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In continuous integration, you can point the same command at pull requests so every spec edit repeats the same checks your authors run locally. That repetition matters because models sometimes suggest keywords or vendor extensions your ruleset has not whitelisted yet, and lint catches those mismatches early."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you have no local config yet, the command defaults to the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/rules/recommended"},"children":["recommended ruleset"]},". You can extend coverage with ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/rules/built-in-rules"},"children":["built-in rules"]}," and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/rules/configurable-rules"},"children":["configurable rules"]}," as your standards mature."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"align-checks-with-governance","__idx":8},"children":["Align checks with governance"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Organizations that treat OpenAPI as law usually centralize how rules are authored and shared. The ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/api-standards"},"children":["API standards and governance"]}," page describes how CLI and hosted flows can reuse the same configuration so developers see the same violations locally and in automation. For first-time setup, the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/guides/configure-rules"},"children":["guide to configuring a ruleset"]}," walks through a practical baseline you can grow over time."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"best-practices","__idx":9},"children":["Best practices"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ship context, not vibes. Short checklists beat long prose in the prompt."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Review one theme at a time when the file is large, for example naming first, then errors, then pagination."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Log model findings as tickets with spec anchors so humans can accept or reject with traceability."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Combine model passes with deterministic tools so subjective completeness meets objective gates, which mirrors the guidance in ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/learn/ai-for-docs/ai-reviews"},"children":["Use AI to accelerate and improve reviews"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"limits-of-this-pairing","__idx":10},"children":["Limits of this pairing"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Models do not know your private roadmap, real traffic mixes, or regulatory commitments unless you state them. They can hallucinate fields or routes if you ask for rewrites without grounding them in your repository facts. Lint cannot judge whether a workflow is fair to users, only whether the document obeys configured rules."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"summary","__idx":11},"children":["Summary"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use a structured prompt plus domain context to surface gaps early, then let Redocly CLI enforce the rules your team already agreed to. Keep humans in the loop for trade-offs, and treat automation as a safety net rather than a substitute for product sense."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"learn-more","__idx":12},"children":["Learn more"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When you are ready to wire the deterministic side of the loop, start with ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/"},"children":["Explore Redocly CLI"]}," for installation, first commands, and how lint fits alongside bundling and preview workflows described in the broader ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/rules"},"children":["rulesets"]}," documentation."]}]},"headings":[{"value":"Use AI to review API design for gaps and inconsistencies","id":"use-ai-to-review-api-design-for-gaps-and-inconsistencies","depth":1},{"value":"When design review belongs before implementation","id":"when-design-review-belongs-before-implementation","depth":2},{"value":"Inputs that make the review specific","id":"inputs-that-make-the-review-specific","depth":2},{"value":"Domain context block you can paste","id":"domain-context-block-you-can-paste","depth":3},{"value":"Prompt skeleton for gaps and inconsistencies","id":"prompt-skeleton-for-gaps-and-inconsistencies","depth":2},{"value":"Signals the model often finds","id":"signals-the-model-often-finds","depth":2},{"value":"Thin before and after on paths and verbs","id":"thin-before-and-after-on-paths-and-verbs","depth":2},{"value":"Run lint after you merge suggestions","id":"run-lint-after-you-merge-suggestions","depth":2},{"value":"Align checks with governance","id":"align-checks-with-governance","depth":2},{"value":"Best practices","id":"best-practices","depth":2},{"value":"Limits of this pairing","id":"limits-of-this-pairing","depth":2},{"value":"Summary","id":"summary","depth":2},{"value":"Learn more","id":"learn-more","depth":2}],"frontmatter":{"seo":{"title":"Use AI to review API design for gaps and inconsistencies","description":"Share OpenAPI or design notes with a model to find missing workflows and inconsistent patterns, then validate changes with Redocly CLI lint before merge."}},"lastModified":"2026-05-22T12:10:40.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/learn/ai-for-docs/ai-review-api-design-gaps-inconsistencies","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}