{"id":25,"date":"2026-07-02T10:15:00","date_gmt":"2026-07-02T10:15:00","guid":{"rendered":"https:\/\/demos.canvaswp.com\/ai-coding\/2026\/07\/02\/shipping-pull-request-review-without-annoying-anyone\/"},"modified":"2026-07-02T10:15:00","modified_gmt":"2026-07-02T10:15:00","slug":"shipping-pull-request-review-without-annoying-anyone","status":"publish","type":"post","link":"https:\/\/demos.canvaswp.com\/ai-coding\/2026\/07\/02\/shipping-pull-request-review-without-annoying-anyone\/","title":{"rendered":"Shipping Pull Request Review Without Annoying Anyone"},"content":{"rendered":"<p class=\"wp-block-paragraph\">The first version of automated review posted every finding it had. On a two hundred line pull request that was forty comments, and the team it was built for turned it off in a week.<\/p>\n<h2 class=\"wp-block-heading\">Silence is a feature<\/h2>\n<p class=\"wp-block-paragraph\">The version that shipped posts at most six comments and ranks them by how likely a human reviewer is to raise the same point. Everything below the line is still computed and still available, behind a link nobody clicks, which is exactly right.<\/p>\n<h2 class=\"wp-block-heading\">Suggestion blocks, not opinions<\/h2>\n<p class=\"wp-block-paragraph\">Every comment carries a patch. A reviewer accepts it the way they accept any other suggestion, and a comment that cannot produce a patch is usually a comment that was not worth making.<\/p>\n<p class=\"wp-block-paragraph\">The review never approves and never blocks. Its job is to spend a human reviewer&#8217;s attention on the parts that need it.<\/p>","protected":false},"excerpt":{"rendered":"<p>An automated reviewer that comments on everything is a reviewer nobody reads. The whole design problem is deciding what to stay quiet about.<\/p>\n","protected":false},"author":56,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[11,12],"class_list":["post-25","post","type-post","status-publish","format-standard","hentry","category-product","tag-code-review","tag-product"],"_links":{"self":[{"href":"https:\/\/demos.canvaswp.com\/ai-coding\/wp-json\/wp\/v2\/posts\/25","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demos.canvaswp.com\/ai-coding\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/demos.canvaswp.com\/ai-coding\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/demos.canvaswp.com\/ai-coding\/wp-json\/wp\/v2\/users\/56"}],"replies":[{"embeddable":true,"href":"https:\/\/demos.canvaswp.com\/ai-coding\/wp-json\/wp\/v2\/comments?post=25"}],"version-history":[{"count":0,"href":"https:\/\/demos.canvaswp.com\/ai-coding\/wp-json\/wp\/v2\/posts\/25\/revisions"}],"wp:attachment":[{"href":"https:\/\/demos.canvaswp.com\/ai-coding\/wp-json\/wp\/v2\/media?parent=25"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/demos.canvaswp.com\/ai-coding\/wp-json\/wp\/v2\/categories?post=25"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/demos.canvaswp.com\/ai-coding\/wp-json\/wp\/v2\/tags?post=25"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}