{"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 code examples for completeness and accuracy","description":"How to prompt AI to audit request samples against your OpenAPI spec, which gaps models catch, and how Redocly code sample generation, mock server, and CLI lint give you a runnable baseline.","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-code-examples-for-completeness-and-accuracy","__idx":0},"children":["Use AI to review code examples for completeness and accuracy"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Developers copy the curl block or SDK snippet before they read the prose. When auth headers are missing, optional query params disappear, or the JSON shape no longer matches the schema, integrations fail in silence until someone files a ticket. A large language model can compare pasted examples to your OpenAPI slice and flag pattern gaps fast. You still need deterministic checks so the samples readers copy match what your spec and mock server actually return."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This article covers the failures that show up most often, how to prompt for a structured review, and how ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/redoc"},"children":["Redoc CE documentation"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/api-reference-docs/guides/generate-code-samples"},"children":["generate code samples automatically"]},", the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/realm/content/api-docs/configure-mock-server"},"children":["configure mock server"]}," flow, and the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/commands/lint"},"children":["lint command"]}," through ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/"},"children":["Explore Redocly CLI"]}," close the loop after AI suggests fixes."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"common-ways-code-examples-drift-from-the-spec","__idx":1},"children":["Common ways code examples drift from the spec"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Pseudocode that looks runnable is the usual culprit. Tutorials show ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fetch('/users')"]}," without the base URL your ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["servers"]}," block defines, or they omit the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Content-Type"]}," header when the operation expects JSON."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Auth gaps appear when global ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["security"]}," applies but the snippet is anonymous. Multi-scheme specs make this worse: generated samples often include only the first scheme unless you document the others beside the example."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Schema drift shows up as field names from an old release, numbers sent as strings, or nested objects flattened. Optional parameters vanish from copy-paste-friendly snippets even when the operation lists them, which hides pagination and filter behavior new integrators need."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Outdated SDK syntax is harder for linters alone. A model that knows your pinned library version can flag deprecated method names if you state the version in the prompt."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-to-paste-beside-the-openapi-slice","__idx":2},"children":["What to paste beside the OpenAPI slice"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Give the model the same operation definitions readers see, including ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["requestBody"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["parameters"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["security"]},", and any ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["examples"]}," or ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/api-reference-docs/specification-extensions/x-code-samples"},"children":["x-codeSamples extension"]}," blocks. Paste tutorial snippets from Markdown or your docs repo as separate labeled files so the model knows which text is canonical."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Add a short stack note: language, HTTP client, whether examples should use the first ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["servers"]}," URL or a named environment. List environment variable placeholders you expect, such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["API_KEY"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["BASE_URL"]},", so the review can flag hard-coded secrets or missing substitution."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["State which samples are hand-written versus generated. Custom ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["x-codeSamples"]}," override auto-generated tabs for that language, so reviewers should not treat generated curl as the source of truth when a custom block exists."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"prompt-template-for-an-example-review","__idx":3},"children":["Prompt template for an example review"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use a checklist-shaped prompt so output is actionable in a PR comment."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"markdown","header":{"controls":{"copy":{}}},"source":"You are reviewing API code examples against OpenAPI 3.1.\n\nStack: Node 20, undici fetch, bearer token auth.\n\nRules:\n- Flag any field, header, path, or status code not supported by the pasted spec.\n- Flag missing required parameters, auth, or content types.\n- Flag JSON that would fail validation against the declared schema.\n- Do not rewrite examples unless asked; output a table of issues with severity.\n\nDeliverables:\n1. Table: location, issue, spec reference, suggested fix.\n2. List of operations with no example at all.\n3. Assumptions you made about base URL or auth.\n","lang":"markdown"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ask for severity so authors can fix blockers before polish. Require an explicit assumptions section anywhere the model inferred behavior the file does not state."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"review-checklist-for-humans-after-the-model-runs","__idx":4},"children":["Review checklist for humans after the model runs"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Confirm error responses for auth failures are demonstrated when your security section requires them. Check that pagination parameters appear in at least one list example when the schema supports them. Compare Content-Type and Accept headers to what the operation declares."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Run the same checklist on release notes when they include one-off curl blocks outside the spec repo."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"before-and-after-a-single-operation","__idx":5},"children":["Before and after a single operation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Before, a hand-written curl omits auth and sends the wrong field name:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST https://api.example.com/v1/events \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"title\":\"Pool party\",\"when\":\"2026-06-01\"}'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After alignment with the spec, the snippet names the bearer scheme, uses ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["startDate"]},", and points readers to the documented server URL:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \"https://api.example.com/v1/events\" \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\":\"Pool party\",\"startDate\":\"2026-06-01\"}'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["AI can produce the gap table that motivates this edit. Your reviewers still approve whether the example should show optional fields or a minimal payload."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"build-a-deterministic-baseline-readers-can-trust","__idx":6},"children":["Build a deterministic baseline readers can trust"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/api-reference-docs/guides/generate-code-samples"},"children":["Generate code samples automatically"]}," creates request tabs from the same OpenAPI fields your lint rules guard. Configure languages in your API reference docs settings or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redocly.yaml"]}," so curl, JavaScript, or Python tabs stay in sync when parameters change. Remember that auto-generated tabs are not available in Redoc CE alone; CE still renders samples you embed with ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/api-reference-docs/specification-extensions/x-code-samples"},"children":["x-codeSamples extension"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/realm/content/api-docs/configure-mock-server"},"children":["configure mock server"]}," option serves example responses without a live backend. Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["strictExamples"]}," when you want responses to match documented JSON exactly, or relax it when you want request values echoed for interactive demos. Send the same request through ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/end-user/test-apis-replay"},"children":["Replay API explorer"]}," after you change an example to see whether the mock returns the status and body your text promises."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Treat generated curl and mock responses as the baseline. Ask AI to diff hand-written tutorials against that baseline instead of against memory."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"where-redocly-cli-lint-fits","__idx":7},"children":["Where Redocly CLI lint fits"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Run the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/commands/lint"},"children":["lint command"]}," on every spec change that touches examples. ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/rules/built-in-rules"},"children":["built-in rules"]}," catch structural problems, such as invalid references or missing operation metadata, while you can extend coverage through the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/guides/configure-rules"},"children":["guide to configuring a ruleset"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Lint proves the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["examples"]}," payload matches declared types. It does not know whether your Python import path exists on PyPI this week. Keep AI review for readability and library idioms; keep CLI lint for contract truth on the OpenAPI file itself."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-ai-cannot-verify","__idx":8},"children":["What AI cannot verify"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Models do not execute code against your staging stack unless you wire a separate agent with credentials, which most doc teams avoid in review bots. They cannot confirm rate limits, regional endpoints, or private headers you never added to the spec."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Pasting production tokens into a chat to test realism leaks secrets. Use placeholder env vars in examples and mock server calls instead."]},{"$$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":["Paste bundled OpenAPI for the operations your tutorial covers so component schema names match lint output."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Keep hand-written samples in Git beside the spec or in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["x-codeSamples"]}," so diffs stay reviewable."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Compare AI findings to generated curl and one mock server response before you merge doc changes."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Re-run ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/"},"children":["Explore Redocly CLI"]}," lint after every edit to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["examples"]}," or sample extensions."]}]},{"$$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 SDK maintainer review, security review of credential handling, or user research on which tasks need copy-paste samples versus conceptual explanation. AI accelerates gap detection; mock server and lint prove the contract layer."]},{"$$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 TD\n  S[OpenAPI plus pasted samples] --> A[AI gap report]\n  A --> H[Author fixes examples]\n  H --> L[Redocly CLI lint]\n  H --> G[Generated code samples]\n  H --> M[Mock server or Replay]\n  L --> P[Published reference docs]\n  G --> P\n  M --> P\n","diagramHtml":"<svg id=\"diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 759.15625px;\" viewBox=\"0 0 759.15625 510\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92{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-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .error-icon{fill:#552222;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .error-text{fill:#552222;stroke:#552222;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .edge-thickness-normal{stroke-width:1px;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .edge-thickness-thick{stroke-width:3.5px;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .edge-pattern-solid{stroke-dasharray:0;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .marker{fill:#333333;stroke:#333333;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .marker.cross{stroke:#333333;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 svg{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 p{margin:0;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .label{font-family:\"Redocly Mermaid Sans\",sans-serif;color:#333;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .cluster-label text{fill:#333;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .cluster-label span{color:#333;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .cluster-label span p{background-color:transparent;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .label text,#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 span{fill:#333;color:#333;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .node rect,#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .node circle,#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .node ellipse,#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .node polygon,#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .rough-node .label text,#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .node .label text,#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .image-shape .label,#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .icon-shape .label{text-anchor:middle;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .rough-node .label,#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .node .label,#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .image-shape .label,#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .icon-shape .label{text-align:center;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .node.clickable{cursor:pointer;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .arrowheadPath{fill:#333333;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .edgePath .path{stroke:#333333;stroke-width:1px;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .flowchart-link{stroke:#333333;fill:none;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .cluster text{fill:#333;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .cluster span{color:#333;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 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-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 rect.text{fill:none;stroke-width:0;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .icon-shape,#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .icon-shape p,#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .icon-shape .label rect,#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 .node .neo-node{stroke:#9370DB;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 [data-look=\"neo\"].node rect,#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 [data-look=\"neo\"].cluster rect,#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}</style><g><marker id=\"diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92_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-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92_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-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92_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-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92_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-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92_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-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92_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-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92_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-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92_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-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92_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-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92_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-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92_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-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92_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=\"M353.406,86L353.406,90.167C353.406,94.333,353.406,102.667,353.406,110.333C353.406,118,353.406,125,353.406,128.5L353.406,132\" id=\"diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92-L_S_A_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_S_A_0\" data-points=\"W3sieCI6MzUzLjQwNjI1LCJ5Ijo4Nn0seyJ4IjozNTMuNDA2MjUsInkiOjExMX0seyJ4IjozNTMuNDA2MjUsInkiOjEzNn1d\" data-look=\"classic\" marker-end=\"url(#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92_flowchart-v2-pointEnd)\"></path><path d=\"M353.406,190L353.406,194.167C353.406,198.333,353.406,206.667,353.406,214.333C353.406,222,353.406,229,353.406,232.5L353.406,236\" id=\"diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92-L_A_H_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_H_0\" data-points=\"W3sieCI6MzUzLjQwNjI1LCJ5IjoxOTB9LHsieCI6MzUzLjQwNjI1LCJ5IjoyMTV9LHsieCI6MzUzLjQwNjI1LCJ5IjoyNDB9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92_flowchart-v2-pointEnd)\"></path><path d=\"M240.734,289.621L216.345,294.517C191.956,299.414,143.177,309.207,118.788,317.603C94.398,326,94.398,333,94.398,336.5L94.398,340\" id=\"diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92-L_H_L_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_H_L_0\" data-points=\"W3sieCI6MjQwLjczNDM3NSwieSI6Mjg5LjYyMDY5Nzk3NjA1MDQ1fSx7IngiOjk0LjM5ODQzNzUsInkiOjMxOX0seyJ4Ijo5NC4zOTg0Mzc1LCJ5IjozNDR9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92_flowchart-v2-pointEnd)\"></path><path d=\"M353.406,294L353.406,298.167C353.406,302.333,353.406,310.667,353.406,318.333C353.406,326,353.406,333,353.406,336.5L353.406,340\" id=\"diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92-L_H_G_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_H_G_0\" data-points=\"W3sieCI6MzUzLjQwNjI1LCJ5IjoyOTR9LHsieCI6MzUzLjQwNjI1LCJ5IjozMTl9LHsieCI6MzUzLjQwNjI1LCJ5IjozNDR9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92_flowchart-v2-pointEnd)\"></path><path d=\"M466.078,287.545L494.829,292.787C523.581,298.03,581.083,308.515,609.835,317.257C638.586,326,638.586,333,638.586,336.5L638.586,340\" id=\"diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92-L_H_M_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_H_M_0\" data-points=\"W3sieCI6NDY2LjA3ODEyNSwieSI6Mjg3LjU0NDcyMjM1MTU4NzU1fSx7IngiOjYzOC41ODU5Mzc1LCJ5IjozMTl9LHsieCI6NjM4LjU4NTkzNzUsInkiOjM0NH1d\" data-look=\"classic\" marker-end=\"url(#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92_flowchart-v2-pointEnd)\"></path><path d=\"M94.398,398L94.398,402.167C94.398,406.333,94.398,414.667,116.262,423.223C138.125,431.779,181.852,440.558,203.715,444.947L225.578,449.336\" id=\"diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92-L_L_P_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_L_P_0\" data-points=\"W3sieCI6OTQuMzk4NDM3NSwieSI6Mzk4fSx7IngiOjk0LjM5ODQzNzUsInkiOjQyM30seyJ4IjoyMjkuNSwieSI6NDUwLjEyMzgxOTg2NTQ3MjJ9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92_flowchart-v2-pointEnd)\"></path><path d=\"M353.406,398L353.406,402.167C353.406,406.333,353.406,414.667,353.406,422.333C353.406,430,353.406,437,353.406,440.5L353.406,444\" id=\"diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92-L_G_P_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_G_P_0\" data-points=\"W3sieCI6MzUzLjQwNjI1LCJ5IjozOTh9LHsieCI6MzUzLjQwNjI1LCJ5Ijo0MjN9LHsieCI6MzUzLjQwNjI1LCJ5Ijo0NDh9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92_flowchart-v2-pointEnd)\"></path><path d=\"M638.586,398L638.586,402.167C638.586,406.333,638.586,414.667,612.363,423.615C586.14,432.563,533.694,442.126,507.471,446.908L481.248,451.689\" id=\"diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92-L_M_P_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_M_P_0\" data-points=\"W3sieCI6NjM4LjU4NTkzNzUsInkiOjM5OH0seyJ4Ijo2MzguNTg1OTM3NSwieSI6NDIzfSx7IngiOjQ3Ny4zMTI1LCJ5Ijo0NTIuNDA2Nzg4NDgzMTM4Mzd9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_S_A_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_A_H_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_H_L_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_H_G_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_H_M_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_L_P_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_G_P_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_M_P_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-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92-flowchart-S-0\" data-look=\"classic\" transform=\"translate(353.40625, 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>OpenAPI plus pasted samples</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92-flowchart-A-1\" data-look=\"classic\" transform=\"translate(353.40625, 163)\"><rect class=\"basic label-container\" style=\"\" x=\"-78.6015625\" y=\"-27\" width=\"157.203125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-48.6015625, -12)\"><rect></rect><foreignObject width=\"97.203125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>AI gap report</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92-flowchart-H-3\" data-look=\"classic\" transform=\"translate(353.40625, 267)\"><rect class=\"basic label-container\" style=\"\" x=\"-112.671875\" y=\"-27\" width=\"225.34375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-82.671875, -12)\"><rect></rect><foreignObject width=\"165.34375\" 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>Author fixes examples</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92-flowchart-L-5\" data-look=\"classic\" transform=\"translate(94.3984375, 371)\"><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-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92-flowchart-G-7\" data-look=\"classic\" transform=\"translate(353.40625, 371)\"><rect class=\"basic label-container\" style=\"\" x=\"-122.609375\" y=\"-27\" width=\"245.21875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-92.609375, -12)\"><rect></rect><foreignObject width=\"185.21875\" 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>Generated code samples</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92-flowchart-M-9\" data-look=\"classic\" transform=\"translate(638.5859375, 371)\"><rect class=\"basic label-container\" style=\"\" x=\"-112.5703125\" y=\"-27\" width=\"225.140625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-82.5703125, -12)\"><rect></rect><foreignObject width=\"165.140625\" 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>Mock server or Replay</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92-flowchart-P-11\" data-look=\"classic\" transform=\"translate(353.40625, 475)\"><rect class=\"basic label-container\" style=\"\" x=\"-123.90625\" y=\"-27\" width=\"247.8125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-93.90625, -12)\"><rect></rect><foreignObject width=\"187.8125\" 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>Published reference docs</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92-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-b0239664ed8eecd41d69143285ef1e1de002f34bb51cf6a9519fe2e6fd035d92-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-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 759.15625px;\" viewBox=\"0 0 759.15625 510\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78{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-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .error-icon{fill:#a44141;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .error-text{fill:#ddd;stroke:#ddd;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .edge-thickness-normal{stroke-width:1px;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .edge-thickness-thick{stroke-width:3.5px;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .edge-pattern-solid{stroke-dasharray:0;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .marker{fill:lightgrey;stroke:lightgrey;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .marker.cross{stroke:lightgrey;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 svg{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 p{margin:0;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .label{font-family:\"Redocly Mermaid Sans\",sans-serif;color:#ccc;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .cluster-label text{fill:#F9FFFE;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .cluster-label span{color:#F9FFFE;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .cluster-label span p{background-color:transparent;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .label text,#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 span{fill:#ccc;color:#ccc;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .node rect,#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .node circle,#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .node ellipse,#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .node polygon,#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .node path{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .rough-node .label text,#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .node .label text,#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .image-shape .label,#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .icon-shape .label{text-anchor:middle;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .rough-node .label,#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .node .label,#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .image-shape .label,#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .icon-shape .label{text-align:center;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .node.clickable{cursor:pointer;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .root .anchor path{fill:lightgrey!important;stroke-width:0;stroke:lightgrey;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .arrowheadPath{fill:lightgrey;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .edgePath .path{stroke:lightgrey;stroke-width:1px;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .flowchart-link{stroke:lightgrey;fill:none;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .edgeLabel p{background-color:hsl(0, 0%, 34.4117647059%);}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .labelBkg{background-color:rgba(87.75, 87.75, 87.75, 0.5);}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .cluster rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:rgba(255, 255, 255, 0.25);stroke-width:1px;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .cluster text{fill:#F9FFFE;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .cluster span{color:#F9FFFE;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 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-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 rect.text{fill:none;stroke-width:0;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .icon-shape,#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .image-shape{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .icon-shape p,#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .image-shape p{background-color:hsl(0, 0%, 34.4117647059%);padding:2px;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .icon-shape .label rect,#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .image-shape .label rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 .node .neo-node{stroke:#ccc;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 [data-look=\"neo\"].node rect,#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 [data-look=\"neo\"].cluster rect,#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 [data-look=\"neo\"].node polygon{stroke:url(#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 [data-look=\"neo\"].node path{stroke:url(#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78-gradient);stroke-width:1px;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 [data-look=\"neo\"].node circle{stroke:url(#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}</style><g><marker id=\"diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78_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-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78_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-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78_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-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78_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-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78_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-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78_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-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78_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-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78_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-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78_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-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78_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-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78_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-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78_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=\"M353.406,86L353.406,90.167C353.406,94.333,353.406,102.667,353.406,110.333C353.406,118,353.406,125,353.406,128.5L353.406,132\" id=\"diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78-L_S_A_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_S_A_0\" data-points=\"W3sieCI6MzUzLjQwNjI1LCJ5Ijo4Nn0seyJ4IjozNTMuNDA2MjUsInkiOjExMX0seyJ4IjozNTMuNDA2MjUsInkiOjEzNn1d\" data-look=\"classic\" marker-end=\"url(#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78_flowchart-v2-pointEnd)\"></path><path d=\"M353.406,190L353.406,194.167C353.406,198.333,353.406,206.667,353.406,214.333C353.406,222,353.406,229,353.406,232.5L353.406,236\" id=\"diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78-L_A_H_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_H_0\" data-points=\"W3sieCI6MzUzLjQwNjI1LCJ5IjoxOTB9LHsieCI6MzUzLjQwNjI1LCJ5IjoyMTV9LHsieCI6MzUzLjQwNjI1LCJ5IjoyNDB9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78_flowchart-v2-pointEnd)\"></path><path d=\"M240.734,289.621L216.345,294.517C191.956,299.414,143.177,309.207,118.788,317.603C94.398,326,94.398,333,94.398,336.5L94.398,340\" id=\"diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78-L_H_L_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_H_L_0\" data-points=\"W3sieCI6MjQwLjczNDM3NSwieSI6Mjg5LjYyMDY5Nzk3NjA1MDQ1fSx7IngiOjk0LjM5ODQzNzUsInkiOjMxOX0seyJ4Ijo5NC4zOTg0Mzc1LCJ5IjozNDR9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78_flowchart-v2-pointEnd)\"></path><path d=\"M353.406,294L353.406,298.167C353.406,302.333,353.406,310.667,353.406,318.333C353.406,326,353.406,333,353.406,336.5L353.406,340\" id=\"diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78-L_H_G_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_H_G_0\" data-points=\"W3sieCI6MzUzLjQwNjI1LCJ5IjoyOTR9LHsieCI6MzUzLjQwNjI1LCJ5IjozMTl9LHsieCI6MzUzLjQwNjI1LCJ5IjozNDR9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78_flowchart-v2-pointEnd)\"></path><path d=\"M466.078,287.545L494.829,292.787C523.581,298.03,581.083,308.515,609.835,317.257C638.586,326,638.586,333,638.586,336.5L638.586,340\" id=\"diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78-L_H_M_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_H_M_0\" data-points=\"W3sieCI6NDY2LjA3ODEyNSwieSI6Mjg3LjU0NDcyMjM1MTU4NzU1fSx7IngiOjYzOC41ODU5Mzc1LCJ5IjozMTl9LHsieCI6NjM4LjU4NTkzNzUsInkiOjM0NH1d\" data-look=\"classic\" marker-end=\"url(#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78_flowchart-v2-pointEnd)\"></path><path d=\"M94.398,398L94.398,402.167C94.398,406.333,94.398,414.667,116.262,423.223C138.125,431.779,181.852,440.558,203.715,444.947L225.578,449.336\" id=\"diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78-L_L_P_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_L_P_0\" data-points=\"W3sieCI6OTQuMzk4NDM3NSwieSI6Mzk4fSx7IngiOjk0LjM5ODQzNzUsInkiOjQyM30seyJ4IjoyMjkuNSwieSI6NDUwLjEyMzgxOTg2NTQ3MjJ9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78_flowchart-v2-pointEnd)\"></path><path d=\"M353.406,398L353.406,402.167C353.406,406.333,353.406,414.667,353.406,422.333C353.406,430,353.406,437,353.406,440.5L353.406,444\" id=\"diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78-L_G_P_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_G_P_0\" data-points=\"W3sieCI6MzUzLjQwNjI1LCJ5IjozOTh9LHsieCI6MzUzLjQwNjI1LCJ5Ijo0MjN9LHsieCI6MzUzLjQwNjI1LCJ5Ijo0NDh9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78_flowchart-v2-pointEnd)\"></path><path d=\"M638.586,398L638.586,402.167C638.586,406.333,638.586,414.667,612.363,423.615C586.14,432.563,533.694,442.126,507.471,446.908L481.248,451.689\" id=\"diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78-L_M_P_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_M_P_0\" data-points=\"W3sieCI6NjM4LjU4NTkzNzUsInkiOjM5OH0seyJ4Ijo2MzguNTg1OTM3NSwieSI6NDIzfSx7IngiOjQ3Ny4zMTI1LCJ5Ijo0NTIuNDA2Nzg4NDgzMTM4Mzd9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_S_A_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_A_H_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_H_L_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_H_G_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_H_M_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_L_P_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_G_P_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_M_P_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-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78-flowchart-S-0\" data-look=\"classic\" transform=\"translate(353.40625, 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>OpenAPI plus pasted samples</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78-flowchart-A-1\" data-look=\"classic\" transform=\"translate(353.40625, 163)\"><rect class=\"basic label-container\" style=\"\" x=\"-78.6015625\" y=\"-27\" width=\"157.203125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-48.6015625, -12)\"><rect></rect><foreignObject width=\"97.203125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>AI gap report</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78-flowchart-H-3\" data-look=\"classic\" transform=\"translate(353.40625, 267)\"><rect class=\"basic label-container\" style=\"\" x=\"-112.671875\" y=\"-27\" width=\"225.34375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-82.671875, -12)\"><rect></rect><foreignObject width=\"165.34375\" 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>Author fixes examples</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78-flowchart-L-5\" data-look=\"classic\" transform=\"translate(94.3984375, 371)\"><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-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78-flowchart-G-7\" data-look=\"classic\" transform=\"translate(353.40625, 371)\"><rect class=\"basic label-container\" style=\"\" x=\"-122.609375\" y=\"-27\" width=\"245.21875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-92.609375, -12)\"><rect></rect><foreignObject width=\"185.21875\" 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>Generated code samples</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78-flowchart-M-9\" data-look=\"classic\" transform=\"translate(638.5859375, 371)\"><rect class=\"basic label-container\" style=\"\" x=\"-112.5703125\" y=\"-27\" width=\"225.140625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-82.5703125, -12)\"><rect></rect><foreignObject width=\"165.140625\" 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>Mock server or Replay</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78-flowchart-P-11\" data-look=\"classic\" transform=\"translate(353.40625, 475)\"><rect class=\"basic label-container\" style=\"\" x=\"-123.90625\" y=\"-27\" width=\"247.8125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-93.90625, -12)\"><rect></rect><foreignObject width=\"187.8125\" 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>Published reference docs</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78-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-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78-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-6ad877df0d04bc02e70c9c6524afef3475372ffc047930acf46f0b2b7b0ade78-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 TD\n  S[OpenAPI plus pasted samples] --> A[AI gap report]\n  A --> H[Author fixes examples]\n  H --> L[Redocly CLI lint]\n  H --> G[Generated code samples]\n  H --> M[Mock server or Replay]\n  L --> P[Published reference docs]\n  G --> P\n  M --> P\n"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["AI surfaces mismatches, then lint, generated samples, and mock responses keep published tabs aligned with the spec."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"learn-more","__idx":12},"children":["Learn more"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Start from ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/redoc"},"children":["Redoc CE documentation"]}," when you want OpenAPI-backed reference pages that display the samples you certify in Git."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Add ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/"},"children":["Explore Redocly CLI"]},", the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/cli/commands/lint"},"children":["lint command"]},", and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://redocly.com/docs/api-reference-docs/guides/generate-code-samples"},"children":["generate code samples automatically"]}," when you want lintable specs, generated request tabs, and mock server checks in one pipeline."]}]},"headings":[{"value":"Use AI to review code examples for completeness and accuracy","id":"use-ai-to-review-code-examples-for-completeness-and-accuracy","depth":1},{"value":"Common ways code examples drift from the spec","id":"common-ways-code-examples-drift-from-the-spec","depth":2},{"value":"What to paste beside the OpenAPI slice","id":"what-to-paste-beside-the-openapi-slice","depth":2},{"value":"Prompt template for an example review","id":"prompt-template-for-an-example-review","depth":2},{"value":"Review checklist for humans after the model runs","id":"review-checklist-for-humans-after-the-model-runs","depth":3},{"value":"Before and after a single operation","id":"before-and-after-a-single-operation","depth":2},{"value":"Build a deterministic baseline readers can trust","id":"build-a-deterministic-baseline-readers-can-trust","depth":2},{"value":"Where Redocly CLI lint fits","id":"where-redocly-cli-lint-fits","depth":2},{"value":"What AI cannot verify","id":"what-ai-cannot-verify","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 code examples for completeness and accuracy","description":"How to prompt AI to audit request samples against your OpenAPI spec, which gaps models catch, and how Redocly code sample generation, mock server, and CLI lint give you a runnable baseline."}},"lastModified":"2026-05-22T12:10:40.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/learn/ai-for-docs/ai-review-code-examples-completeness-accuracy","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}