{"id":5953,"date":"2026-08-17T09:27:43","date_gmt":"2026-08-17T09:27:43","guid":{"rendered":"https:\/\/www.aviator.co\/blog\/?p=5953"},"modified":"2026-08-17T09:27:45","modified_gmt":"2026-08-17T09:27:45","slug":"ai-code-review-best-practices","status":"publish","type":"post","link":"https:\/\/www.aviator.co\/blog\/ai-code-review-best-practices\/","title":{"rendered":"AI Code Review Best Practices"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A new subdomain of traditional software development has emerged, and it revolves around machines reviewing machines. AI now writes most of the code, and it\u2019s physically impossible for a human to sit down and go through it all while remaining laser-focused.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That\u2019s why this article will discuss the deepening trench between how fast AI can write useful (or less useful) code and how fast you can review it, especially after the lunch break, when your attention span is hanging on by a thread. We\u2019ll cover what the best practices for using AI to review AI-generated code are.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Yours truly, a human.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>TL;DR<\/strong> When reviewing AI-generated code, the best approach is to focus on the intent before AI has generated a ginormous diff no one wants to read. Keep changes small, and layer your tools instead of putting all your trust in one reviewer. Verify behavior by running the code, and encode your recurring rules once so you don\u2019t have to repeat yourself. And remember, a human should always make the final call.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Reviewing AI Code As a Separate Role?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">At this point, writing code doesn&#8217;t take nearly as much time or brainpower as it used to. Reviewing it is a different story. AI can write tons of code in a short amount of time, but unsurprisingly, humans just can\u2019t keep up.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Another thing to keep in mind is that AI code actually gets worse the more you iterate. A study accepted at <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/arxiv.org\/abs\/2506.11022\">IEEE ISTAS 2025<\/a> discovered a <strong>37.6%<\/strong> rise in critical vulnerabilities after just five rounds of asking a model to &#8220;improve&#8221; its own code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is how the role of a reviewer has changed. They no longer check if code compiles and whether it\u2019s clean. They now have to verify and prove intent. Does the code solve the problem that the key stakeholders intended it to, both from a business and a logical perspective?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Best Practices<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">So, how can you review AI code without rubber-stamping it or reading 1,800 lines one by one? Here are six practices that have worked well for us (as of July 2026, at least; good luck if you\u2019re reading this in the age of AGI).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Review the Intent Before Reviewing the Diff<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Instead of trying to figure out what a change was <em>for<\/em> by reading the code, you need to agree on the goal first. Start with a short scope + a few concrete acceptance criteria, such as \u201creject a page size above 100 with a <code>400<\/code>\u201d.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A human approves that intent first. The review then becomes about checking whether the implementation meets that criterion, rather than trying to work out whether all of it is correct.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u26a0\ufe0f<strong>Trade-off<\/strong>: Writing criteria upfront can feel slower, and for a one-line typo fix, it\u2019s probably overkill. But the goal isn&#8217;t to write more docs, it&#8217;s to make capturing intent a habit for changes that affect behavior, security, or money. With <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/verify.aviator.co\/\">Verify<\/a>, that intent (and the acceptance criteria) can be captured from the implementation and the prompt, so it adds little to no extra work.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">2. Keep Changes Small, and Make the Agent Do It<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Small PRs get real reviews, whereas large PRs get an <code>LGTM<\/code> and a prayer. The underlying issue here is the span of human attention, there\u2019s only so much of it to go around.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As a solid structural fix, you can ask your agent to ship the change as a stack of small, interdependent PRs rather than one giant blob.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u26a0\ufe0f<strong>Trade-off<\/strong>: Stacking adds some overhead. Plus, not every change breaks down neatly. A coherent refactor sometimes belongs in one PR. Again, use your judgement.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To break large changes into small, reviewable ones, use the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/www.aviator.co\/stacked-prs\">Stacked PRs CLI<\/a>.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">3. Don\u2019t Use One AI Reviewer, Layer Your Tools Instead<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No single reviewer, human or a model, can catch everything. A proper review pipeline uses multiple layers:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A <strong>linter or static application security testing (SAST)<\/strong> tool for deterministic, known-bad patterns (fast, reproducible, but intent-blind)<\/li>\n\n\n\n<li>An <strong>AI reviewer<\/strong> for a quick second opinion on logic and readability (useful, but non-deterministic since you\u2019ll get different comments if you run it twice)<\/li>\n\n\n\n<li>A set of <strong>human<\/strong> brains for the final call<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The trick is to keep the feedback-to-noise ratio well-balanced. A reviewer that leaves a dozen, low-value comments (aka nitpicks) per PR starts to get ignored pretty quickly. Same goes for AI leaving a kilometer long PR description that gets you nowhere.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u26a0\ufe0f<strong>Trade-off<\/strong>: More layers also means larger cost and more configuration. Plus, if you stack two noisy tools, it will just leave you with more alert fatigue rather than more safety.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">4. Don\u2019t Infer Behavior, Verify It<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You can\u2019t really tell just by reading a diff whether a function returns the right result under specific conditions. Your seniority might help, but you can\u2019t rely on it fully.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Behavior should be observable, not something you have to deduce from a diff read. So, run the function, see the preview deployment, and watch the fireworks.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u26a0\ufe0f <strong>Warning:<\/strong> Do not treat AI-written tests as independent proof. If the same agent has misread the ticket, it will happily write passing tests for its own wrong code.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">5. Encode Recurring Rules<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Every team has the same five comments it leaves on every review. Writing them by hand forever is, first, boring and time-consuming, and second, something seniors don\u2019t really want to spend time on.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Encode them once as reusable rules. Some tools call these <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/docs.aviator.co\/verify\/concepts\/invariants\"><strong>invariants<\/strong><\/a>, others have a <code>STANDARDS.md<\/code>\u2026 You get the gist. Either way, there will be no need to nitpick again.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u26a0\ufe0f <strong>Warning:<\/strong> Keep in mind that a rule written for last year&#8217;s architecture may start flagging false positives as things change. Rule sets tend to rot.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">6. Keep a Human on Payroll, and Keep an Audit Trail<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A human should still approve the intent and resolve failures. Accountability can\u2019t be automated, and you still need someone in charge of the decision to ship.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Also, if you work anywhere near compliance (SOC 2, ISO 27001, and other word-number mixes), you need to keep an immutable record of:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Who approved what<\/li>\n\n\n\n<li>When they approved it<\/li>\n\n\n\n<li>Which criteria it was approved against<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Keeping actors (and responsibilities) separate is not plain bureaucracy. Auditors really need it.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u26a0\ufe0f<strong>Trade-off<\/strong>: Process overhead, yes. But it\u2019s still cheaper than reconstructing a paper trail the week before an audit, or explaining a breach after one. (\uff40\u30fb\u03c9\u30fb\u00b4)<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Where the Manual Approach Breaks<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Now imagine doing all six of these by hand, on every PR, forever. Well that\u2019s basically a second job. The intent-first and run-it-for-real practices are the ones that tend to stick around.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A managed option, <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/verify.aviator.co\/\">Aviator Verify<\/a>, operationalizes exactly those kinds of practices that are a pain to do by hand. You capture intent through the Aviator Model Context Protocol (MCP) before the PR, and Verify checks each approved acceptance criterion against the <em>running<\/em> code:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Structural facts go to a code scan of the abstract syntax tree (AST).<\/li>\n\n\n\n<li>Behavioral ones get exercised on a preview deployment.<\/li>\n\n\n\n<li>Recurring team rules match as invariants.<\/li>\n\n\n\n<li>A human reviews the behavior, the intent, and the decision being made instead of staring at a diff.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Every result is packed with evidence, and you get an audit trail that should make any auditor very happy, indeed. \ud83d\ude42<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, before we get carried away, we need to keep it straight about the limits:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Verify does <strong>not<\/strong> replace your linters, scanners, or human reviewers.<\/li>\n\n\n\n<li>You still approve the intent and resolve the failures.<\/li>\n\n\n\n<li>Verification and review cover different blind spots, so they need to be run together.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Tool or no tool, the verdict stays the same. You need to stop asking &#8220;Does this code look okay?&#8221; and start asking &#8220;Does this do what we\u2019ve agreed to build?&#8221; Love it or hate it, AI-written code is already in your repo. Reviewing it properly is the job now.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can find the setup at <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/www.aviator.co\/verify\">aviator.co\/verify<\/a> and <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/docs.aviator.co\/verify\">docs.aviator.co\/verify<\/a>. No credit card required.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently Asked Questions (FAQ)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Is AI code review worth it?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Very much so, particularly when it works without forcing developers into a separate UI and juggling multiple tools.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can AI replace human code review?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No. AI reviewers catch bugs, security issues, and style problems, but they can\u2019t be accountable for business context or the decision to ship. They simply make human reviews sustainable at higher PR volumes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What is the difference between AI code review and AI code verification?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Review reads the diff and infers intent, producing different comments on each run. Verification checks code against acceptance criteria approved beforehand, so the result is reproducible. They cover different blind spots and work well together.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>AI can write the code. It can&#8217;t be accountable for shipping it. Here&#8217;s how to review AI code without losing your mind.<\/p>\n","protected":false},"author":33,"featured_media":5954,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29,205,23,35],"tags":[90,59,71],"class_list":["post-5953","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai","category-ai-development","category-code-reviews","category-developer-productivity","tag-ai-coding","tag-code-reviews","tag-developer-experience"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>AI Code Review Best Practices - Aviator Blog<\/title>\n<meta name=\"description\" content=\"Your AI just shipped 1,800 lines before lunch. Now what? 6 practical ways to review AI code without losing your mind.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.aviator.co\/blog\/ai-code-review-best-practices\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AI Code Review Best Practices - Aviator Blog\" \/>\n<meta property=\"og:description\" content=\"Your AI just shipped 1,800 lines before lunch. Now what? 6 practical ways to review AI code without losing your mind.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.aviator.co\/blog\/ai-code-review-best-practices\/\" \/>\n<meta property=\"og:site_name\" content=\"Aviator Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-17T09:27:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-17T09:27:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.aviator.co\/blog\/wp-content\/uploads\/2026\/08\/1ed7492a-d9b0-4407-9aba-34a14b250f34-AI-Code-Review-Best-Practices.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1320\" \/>\n\t<meta property=\"og:image:height\" content=\"690\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Dejan Luki\u0107\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dejan Luki\u0107\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AI Code Review Best Practices - Aviator Blog","description":"Your AI just shipped 1,800 lines before lunch. Now what? 6 practical ways to review AI code without losing your mind.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.aviator.co\/blog\/ai-code-review-best-practices\/","og_locale":"en_US","og_type":"article","og_title":"AI Code Review Best Practices - Aviator Blog","og_description":"Your AI just shipped 1,800 lines before lunch. Now what? 6 practical ways to review AI code without losing your mind.","og_url":"https:\/\/www.aviator.co\/blog\/ai-code-review-best-practices\/","og_site_name":"Aviator Blog","article_published_time":"2026-08-17T09:27:43+00:00","article_modified_time":"2026-08-17T09:27:45+00:00","og_image":[{"width":1320,"height":690,"url":"https:\/\/www.aviator.co\/blog\/wp-content\/uploads\/2026\/08\/1ed7492a-d9b0-4407-9aba-34a14b250f34-AI-Code-Review-Best-Practices.png","type":"image\/png"}],"author":"Dejan Luki\u0107","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Dejan Luki\u0107","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.aviator.co\/blog\/ai-code-review-best-practices\/#article","isPartOf":{"@id":"https:\/\/www.aviator.co\/blog\/ai-code-review-best-practices\/"},"author":{"name":"Dejan Luki\u0107","@id":"https:\/\/www.aviator.co\/blog\/#\/schema\/person\/4c59a330638ee7ba7971e02c7923a7f6"},"headline":"AI Code Review Best Practices","datePublished":"2026-08-17T09:27:43+00:00","dateModified":"2026-08-17T09:27:45+00:00","mainEntityOfPage":{"@id":"https:\/\/www.aviator.co\/blog\/ai-code-review-best-practices\/"},"wordCount":1437,"commentCount":0,"image":{"@id":"https:\/\/www.aviator.co\/blog\/ai-code-review-best-practices\/#primaryimage"},"thumbnailUrl":"https:\/\/www.aviator.co\/blog\/wp-content\/uploads\/2026\/08\/1ed7492a-d9b0-4407-9aba-34a14b250f34-AI-Code-Review-Best-Practices.png","keywords":["AI coding","code reviews","developer experience"],"articleSection":["AI","AI Development","Code Review &amp; Best Practices","Developer Productivity"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.aviator.co\/blog\/ai-code-review-best-practices\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.aviator.co\/blog\/ai-code-review-best-practices\/","url":"https:\/\/www.aviator.co\/blog\/ai-code-review-best-practices\/","name":"AI Code Review Best Practices - Aviator Blog","isPartOf":{"@id":"https:\/\/www.aviator.co\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.aviator.co\/blog\/ai-code-review-best-practices\/#primaryimage"},"image":{"@id":"https:\/\/www.aviator.co\/blog\/ai-code-review-best-practices\/#primaryimage"},"thumbnailUrl":"https:\/\/www.aviator.co\/blog\/wp-content\/uploads\/2026\/08\/1ed7492a-d9b0-4407-9aba-34a14b250f34-AI-Code-Review-Best-Practices.png","datePublished":"2026-08-17T09:27:43+00:00","dateModified":"2026-08-17T09:27:45+00:00","author":{"@id":"https:\/\/www.aviator.co\/blog\/#\/schema\/person\/4c59a330638ee7ba7971e02c7923a7f6"},"description":"Your AI just shipped 1,800 lines before lunch. Now what? 6 practical ways to review AI code without losing your mind.","breadcrumb":{"@id":"https:\/\/www.aviator.co\/blog\/ai-code-review-best-practices\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.aviator.co\/blog\/ai-code-review-best-practices\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.aviator.co\/blog\/ai-code-review-best-practices\/#primaryimage","url":"https:\/\/www.aviator.co\/blog\/wp-content\/uploads\/2026\/08\/1ed7492a-d9b0-4407-9aba-34a14b250f34-AI-Code-Review-Best-Practices.png","contentUrl":"https:\/\/www.aviator.co\/blog\/wp-content\/uploads\/2026\/08\/1ed7492a-d9b0-4407-9aba-34a14b250f34-AI-Code-Review-Best-Practices.png","width":1320,"height":690},{"@type":"BreadcrumbList","@id":"https:\/\/www.aviator.co\/blog\/ai-code-review-best-practices\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.aviator.co\/blog\/"},{"@type":"ListItem","position":2,"name":"AI Code Review Best Practices"}]},{"@type":"WebSite","@id":"https:\/\/www.aviator.co\/blog\/#website","url":"https:\/\/www.aviator.co\/blog\/","name":"Aviator Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.aviator.co\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.aviator.co\/blog\/#\/schema\/person\/4c59a330638ee7ba7971e02c7923a7f6","name":"Dejan Luki\u0107","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.aviator.co\/blog\/wp-content\/uploads\/2026\/08\/cropped-1-150x150.jpg","url":"https:\/\/www.aviator.co\/blog\/wp-content\/uploads\/2026\/08\/cropped-1-150x150.jpg","contentUrl":"https:\/\/www.aviator.co\/blog\/wp-content\/uploads\/2026\/08\/cropped-1-150x150.jpg","caption":"Dejan Luki\u0107"},"url":"https:\/\/www.aviator.co\/blog\/author\/dejan\/"}]}},"_links":{"self":[{"href":"https:\/\/www.aviator.co\/blog\/wp-json\/wp\/v2\/posts\/5953","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.aviator.co\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.aviator.co\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.aviator.co\/blog\/wp-json\/wp\/v2\/users\/33"}],"replies":[{"embeddable":true,"href":"https:\/\/www.aviator.co\/blog\/wp-json\/wp\/v2\/comments?post=5953"}],"version-history":[{"count":2,"href":"https:\/\/www.aviator.co\/blog\/wp-json\/wp\/v2\/posts\/5953\/revisions"}],"predecessor-version":[{"id":5956,"href":"https:\/\/www.aviator.co\/blog\/wp-json\/wp\/v2\/posts\/5953\/revisions\/5956"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.aviator.co\/blog\/wp-json\/wp\/v2\/media\/5954"}],"wp:attachment":[{"href":"https:\/\/www.aviator.co\/blog\/wp-json\/wp\/v2\/media?parent=5953"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.aviator.co\/blog\/wp-json\/wp\/v2\/categories?post=5953"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.aviator.co\/blog\/wp-json\/wp\/v2\/tags?post=5953"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}