{"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"use-ai-to-accelerate-and-improve-reviews","__idx":0},"children":["Use AI to accelerate and improve reviews"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["AI excels at catching patterns, inconsistencies, and gaps that humans might miss during reviews."," ","This article focuses on ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["what"]}," to review with AI, not ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["how"]}," to automate it — though most of these techniques work well in CI/CD pipelines."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The key is providing enough context so AI can be genuinely helpful, not just superficial."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"review-against-your-style-guide","__idx":1},"children":["Review against your style guide"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["One of the most practical uses of AI is enforcing style consistency across documentation."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"how-to-do-it-effectively","__idx":2},"children":["How to do it effectively"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Share your style guide with the AI and ask it to review content against those rules."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Critical tip:"]}," Shorter style guides perform better than longer ones — just like with human reviewers."," ","A 50-page style manual is hard to apply consistently. A one-page checklist gets better results."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"example-checklist-format","__idx":3},"children":["Example checklist format"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Instead of:"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["\"Use active voice. Passive voice makes documentation harder to read and can obscure who is responsible for actions. Technical documentation should clearly indicate the actor performing each action...\""]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"markdown","header":{"controls":{"copy":{}}},"source":"- [ ] Active voice (e.g., \"The API returns...\" not \"Data is returned...\")\n- [ ] Present tense for current features\n- [ ] Use \"you\" to address the reader\n- [ ] Code elements in backticks: `GET /users`\n- [ ] No future tense (\"will\") unless describing unreleased features\n","lang":"markdown"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Checklists outperform prose-heavy guidelines."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"real-example-redocly-changelog-reviews","__idx":4},"children":["Real example: Redocly changelog reviews"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["At Redocly, we automatically review every changelog entry with AI before merging:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Developer writes a changelog entry in the pull request"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["AI reviews it against our style checklist and the PR context"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If it passes: \"✅ Good job on the changelog.\""]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If it needs work: AI posts a GitHub suggestion with the improved version and explains why"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Before AI review:"]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["\"Fixed bug in API\""]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["After AI review:"]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["\"Fixed authentication timeout in OAuth2 flow when refresh tokens exceed 60-minute expiration window\""]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The AI catches vague language, adds specificity, and ensures consistency — all before a human reviewer even looks at the PR."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"review-api-design-before-implementation","__idx":5},"children":["Review API design before implementation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This is where AI can save you from costly mistakes."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Before writing any code, share your API design (OpenAPI description, schema draft, or even just endpoint descriptions) with an AI and ask it to find gaps and problems."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"provide-domain-context","__idx":6},"children":["Provide domain context"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Generic reviews aren't helpful. You need to give AI enough context about your domain:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"markdown","header":{"controls":{"copy":{}}},"source":"Context: We're building a library management system. \nUsers are librarians and patrons. \nKey workflows: checking out books, managing holds, handling fines.\n\nReview this API design for gaps and inconsistencies:\n[paste your OpenAPI spec or design notes]\n","lang":"markdown"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"what-ai-can-catch","__idx":7},"children":["What AI can catch"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Missing endpoints:"]}," You have ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /checkout"]}," but no ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /checkin"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Inconsistent patterns:"]}," Some endpoints use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/resource/{id}"]}," while others use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/resource?id="]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Forgotten edge cases:"]}," What happens when a patron has unpaid fines? Is there a way to check fine balance?"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Domain gaps:"]}," You can place a hold, but can you cancel it? Can you see your hold queue position?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["I've used this successfully to find ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["entire sections of forgotten domain areas"]}," that would have only surfaced during QA or alpha-testing — when they're much more expensive to fix."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"example-prompt","__idx":8},"children":["Example prompt"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"markdown","header":{"controls":{"copy":{}}},"source":"You are reviewing an API design for [domain description].\n\nPlease identify:\n1. Missing CRUD operations (if we can create X, can we read/update/delete it?)\n2. Incomplete workflows (are there dead-ends where users get stuck?)\n3. Naming inconsistencies\n4. Edge cases we haven't considered\n5. Authentication/authorization gaps\n\n[Paste your API design here]\n","lang":"markdown"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"review-property-names-for-clarity-and-conciseness","__idx":9},"children":["Review property names for clarity and conciseness"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Property names are API's user interface. Unclear names lead to support tickets and frustrated developers."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"what-to-ask-ai","__idx":10},"children":["What to ask AI"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Share your schema and ask:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Are these property names clear to someone unfamiliar with the domain?"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Are any names ambiguous or misleading?"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Could any names be shorter without losing clarity?"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Are we consistent with naming conventions (camelCase vs snake_case, abbreviations, etc.)?"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"example-review","__idx":11},"children":["Example review"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Original schema:"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"usrNm\": \"string\",\n  \"date\": \"string\",\n  \"amount\": \"number\",\n  \"transaction_type\": \"string\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["AI feedback:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["usrNm"]}," is too abbreviated — use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["userName"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["username"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["date"]}," is ambiguous — date of what? Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionDate"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["createdAt"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount"]}," lacks clarity — is this in cents or dollars? Consider ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amountCents"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amountUSD"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Inconsistent casing: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["usrNm"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transaction_type"]}," should match. Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionType"]}," if using camelCase."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"review-json-schema-constraints","__idx":12},"children":["Review JSON Schema constraints"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["AI can spot missing or insufficient constraints that would let invalid data through."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"what-to-review","__idx":13},"children":["What to review"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Share your JSON schema and ask AI to check:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Are string fields constrained by ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["minLength"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["maxLength"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pattern"]},"?"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Are numeric fields constrained by ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["minimum"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["maximum"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["multipleOf"]},"?"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Should any fields be ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["required"]},"?"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Are enums used where values are limited?"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Are formats specified (email, uuid, date-time)?"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"example","__idx":14},"children":["Example"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Original:"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"email\": { \"type\": \"string\" },\n    \"age\": { \"type\": \"number\" },\n    \"role\": { \"type\": \"string\" }\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["AI suggests:"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"type\": \"object\",\n  \"required\": [\"email\", \"role\"],\n  \"properties\": {\n    \"email\": { \n      \"type\": \"string\",\n      \"format\": \"email\",\n      \"maxLength\": 255\n    },\n    \"age\": { \n      \"type\": \"integer\",\n      \"minimum\": 0,\n      \"maximum\": 150\n    },\n    \"role\": { \n      \"type\": \"string\",\n      \"enum\": [\"admin\", \"user\", \"guest\"]\n    }\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This catches validation issues before they become bugs."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"review-content-for-task-completion","__idx":15},"children":["Review content for task completion"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Documentation exists to help people accomplish tasks. AI can evaluate whether your content actually supports that goal."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"how-to-use-this","__idx":16},"children":["How to use this"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Provide AI with:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Your documentation content"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A list of tasks users need to accomplish with it"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Then ask: Does the structure and content support easy task completion? What could make it easier?"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"example-prompt-1","__idx":17},"children":["Example prompt"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"markdown","header":{"controls":{"copy":{}}},"source":"Users need to accomplish these tasks:\n1. Authenticate with the API\n2. Create a new user\n3. Update user profile\n4. Handle authentication errors\n\nReview this documentation and identify:\n- Which tasks are well-supported?\n- Which tasks are missing steps or context?\n- What would make each task easier to complete?\n- Are tasks in a logical order?\n\n[Paste your documentation]\n","lang":"markdown"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"what-ai-might-find","__idx":18},"children":["What AI might find"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Task 1 (authentication) is explained, but the example doesn't show where to get API keys"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Task 3 (update profile) doesn't mention which fields are editable vs read-only"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Task 4 (error handling) lists error codes but doesn't explain what action to take for each"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Tasks aren't in the order users would naturally encounter them (should authenticate before creating users)"]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"review-content-organization","__idx":19},"children":["Review content organization"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["AI can evaluate whether your file/folder/navigation structure makes sense."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"what-to-ask","__idx":20},"children":["What to ask"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Share your sitemap or folder structure and ask:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Is this organization intuitive for someone new to the product?"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Are related topics grouped together?"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Is the navigation depth appropriate (not too shallow or deep)?"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Are any sections misplaced?"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Would any content be easier to find with different labeling or grouping?"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"example-structure-to-review","__idx":21},"children":["Example structure to review"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"docs/\n├── getting-started/\n├── api-reference/\n├── webhooks/\n├── authentication/\n├── rate-limiting/\n├── errors/\n└── examples/\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["AI might suggest:"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"docs/\n├── getting-started/\n│   ├── authentication.md     ← moved from root\n│   ├── first-api-call.md\n│   └── rate-limits.md         ← moved from root\n├── api-reference/\n│   ├── endpoints/\n│   └── errors.md              ← moved from root\n├── guides/\n│   ├── webhooks.md            ← promoted from root\n│   └── examples/              ← moved under guides\n└── advanced/\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The AI can justify each change: authentication and rate-limiting are foundational concepts for getting started; errors are reference material; examples are guides, not standalone concepts."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"automation-considerations","__idx":22},"children":["Automation considerations"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["While this article focuses on ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["what"]}," to review rather than ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["how"]}," to automate, these techniques work well in CI/CD:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["PR checks:"]}," Review changelog entries, commit messages, or doc changes on every pull request"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pre-commit hooks:"]}," Catch style issues before code is even pushed"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Scheduled reviews:"]}," Periodically review entire doc sets for consistency drift"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Build-time validation:"]}," Check that new API changes align with existing patterns"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The key is making AI reviews ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["fast and actionable"]}," — provide clear feedback with specific suggestions, not just \"this could be better.\""]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"best-practices","__idx":23},"children":["Best practices"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"1-be-specific-with-context","__idx":24},"children":["1. Be specific with context"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Generic prompts get generic results. The more domain context you provide, the more useful AI's feedback becomes."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"2-use-checklists-not-essays","__idx":25},"children":["2. Use checklists, not essays"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When providing style guides or review criteria, checklists dramatically outperform prose."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"3-review-iteratively","__idx":26},"children":["3. Review iteratively"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Don't try to review everything at once. Focus on one aspect (naming, then constraints, then structure)."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"4-combine-ai-with-deterministic-tools","__idx":27},"children":["4. Combine AI with deterministic tools"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["AI catches subjective issues (clarity, completeness). Linters and validators catch objective ones (syntax, spec compliance). Use both."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"5-human-judgment-is-final","__idx":28},"children":["5. Human judgment is final"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["AI suggests; humans decide. Not every AI suggestion will be right for your context."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-ai-reviews-cant-replace","__idx":29},"children":["What AI reviews can't replace"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["AI is excellent at pattern matching and consistency checking, but it can't:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Understand your product roadmap and strategic priorities"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Make judgment calls about trade-offs"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Validate factual accuracy against your actual implementation"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Understand your specific user needs and constraints"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use AI to accelerate reviews and catch common issues. Use humans for judgment, strategy, and domain expertise."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Together, they make reviews faster and more thorough than either could alone."]}]},"frontmatter":{"seo":{"title":"Use AI to accelerate and improve reviews","description":"Practical ways to use AI for reviewing style, API design, naming, structure, and content before implementation."}},"tagList":[],"title":"Use AI to accelerate and improve reviews","lastModified":"2026-05-22T12:10:40.000Z"}