{"slug": "i-let-ai-handle-more-of-its-own-review-feedback-then-i-had-to-give-the-work", "title": "I Let AI Handle More of Its Own Review Feedback. Then I Had to Give the Work Boundaries.", "summary": "A developer has released AIDD Skeleton, an open-source repository template for governing AI-assisted development through repository-level rules. The project introduces two techniques, Coherent Correction and Adversarial Self-Review, that let an implementation agent investigate review findings beyond the reported location while preventing it from silently expanding the scope of work. The developer separates investigation boundaries from modification boundaries and triages findings into Accept now, Reject, Defer, and Observe dispositions so that discovery no longer implies authorization.", "body_md": "In the previous article, I wrote about treating AI development rules as something that needed regression testing too.\n\nAIDD Skeleton is my open-source repository template for governing AI-assisted development through repository-level rules.\n\nThat led to another question:\n\nIf an external reviewer finds a problem, how much of the response should the implementation agent handle on its own?\n\nI did not want every review cycle to become:\n\n```\nreview\n↓\nfinding\n↓\nhuman: \"fix this\"\n↓\nreview again\n↓\nhuman: \"check this too\"\n```\n\nThe implementation agent already had the repository context. Ideally, one useful finding should let it investigate further on its own.\n\nBut more autonomy created another problem.\n\nThe better the agent became at finding related issues, the easier it became for the current task to expand indefinitely.\n\nSo the real problem became:\n\nHow do I let the AI reason broadly without letting it silently redefine the work?\n\nWhen a reviewer reported a problem, I started asking the implementation agent to look beyond the exact reported location.\n\nA finding might indicate a broader missed invariant or assumption.\n\nInstead of:\n\n```\nfinding\n↓\nfix the reported location\n```\n\nthe process became closer to:\n\n```\nfinding\n↓\nwhat assumption failed?\n↓\nwhere else does it matter?\n↓\nwhat belongs to the current work?\n```\n\nThis became part of what I called **Coherent Correction**.\n\nThe important distinction was:\n\n**The investigation boundary can be wider than the modification boundary.**\n\nThe agent may inspect sibling paths or higher-level design to understand a problem.\n\nBut discovering an improvement does not automatically authorize it to change that improvement now.\n\nThat boundary was introduced while restructuring the root governance.\n\n[docs: restructure root governance boundaries](https://github.com/joyrswd/AIDDSkeleton/commit/f34be080551a174cc85635ed5261fa48e904bbf9)\n\nOnce the agent started looking more broadly, it naturally found more things.\n\nSome needed to be fixed now.\n\nSome were good ideas, but unrelated to current acceptance.\n\nSome might matter later.\n\nSo I separated two questions:\n\nIs the finding valid?\n\nand:\n\nWhat should happen to it now?\n\nAt that stage, AIDD Skeleton used four dispositions:\n\n| Disposition | Meaning | \n|---|---|\n| `Accept now` | Handle it in the current work | \n| `Reject` | Do not adopt it | \n| `Defer` | Reconsider it later under relevant conditions | \n| `Observe` | Keep watching because evidence is insufficient | \n\nThe important part was not the names.\n\nIt was that **discovery no longer implied authorization**.\n\nA reviewer could be correct without expanding the current task.\n\n[docs: govern feedback triage and review recall](https://github.com/joyrswd/AIDDSkeleton/commit/08ded669da3b45629c0601c9f8fe8ba81e99fd26)\n\nLooking at related surfaces helped, but another pattern remained.\n\nThe agent would correctly fix a finding, and the next review would find a problem introduced by that fix.\n\nFor example:\n\n```\nfinding:\nthere is no fallback\n\ncorrection:\nadd a fallback\n```\n\nNow there are new questions.\n\nWhat if the fallback fails?\n\nWhat if the primary path partially succeeds first?\n\nDoes the fallback still preserve the original invariant?\n\nSo I stopped treating a material correction as evidence that the review was finished.\n\nThe correction itself became something to challenge.\n\nOne of the rules was expressed as:\n\n“Treat a material correction ... as a new adversarial surface.”\n\nA finding was also treated as a clue about **what the previous review had failed to consider**.\n\n\"There is no real database evidence here.\"\n\ncould become:\n\n\"Are we treating simulated evidence as proof of real persistence elsewhere too?\"\n\nThat missing review perspective could then be applied to related paths before another external reviewer had to find them one by one.\n\nThis became **Adversarial Self-Review**.\n\n[docs: shift review learning into adversarial self-review](https://github.com/joyrswd/AIDDSkeleton/commit/0611d61bc0a73c0b6caf66add181386a11155a0f)\n\nEven with broader inspection and self-review, similar findings sometimes kept appearing.\n\nAt some point, repeated findings become evidence themselves.\n\nIf several different surfaces expose the same or closely related cause, maybe the problem is not any single implementation.\n\nMaybe:\n\nThat became the trigger for **Structural Reassessment**.\n\nThe distinction matters.\n\nWith the first finding, the agent looks broadly:\n\nWhere else could this problem exist?\n\nWhen the same cause keeps reappearing, it asks:\n\nWhy does this structure keep producing this problem?\n\nThe governance later expressed the trigger in terms of cases where:\n\n“findings or corrections repeatedly expose the same or closely related cause”\n\nI did not want every defect to trigger a repository-wide redesign.\n\nRepeated related failures became the signal to move up a level.\n\nInterestingly, this rule ended up applying to the governance itself.\n\nWhile compressing the adversarial-review rules, external reviews repeatedly found different meanings that had been lost.\n\nInstead of restoring missing sentences forever, the agent eventually reconsidered the structure of the review rules themselves.\n\n[docs: separate adversarial review responsibilities](https://github.com/joyrswd/AIDDSkeleton/commit/1f5dafd619ee5b23fe4f32ecb16ff287654eef0d)\n\nThe feedback dispositions created one more problem.\n\nWhat happens to `Defer`?\n\nKeeping it only in a conversation means it may disappear with the session.\n\nPutting it into formal project definition makes it look adopted.\n\nTurning every review comment into an Issue felt excessive.\n\nSo I used `workbench/`.\n\nA deferred item could be kept with:\n\nBut retention did not mean adoption.\n\n```\nretained ≠ adopted\nretained ≠ promised\nretained ≠ active work\n```\n\nThis gave the agent an option between:\n\n```\ndo it now\nforget it\n```\n\nIt could preserve enough context for a later decision without silently turning that decision into a future commitment.\n\n`workbench/` was starting to mean something different\nOriginally, `workbench/` was mainly for temporary work:\n\nBut deferred review findings introduced something different.\n\nNow some retained material had:\n\nThe repository was starting to preserve **work state**, not only temporary work material.\n\nThat also clarified what I actually wanted from AI autonomy.\n\nNot an agent that simply did more.\n\nAn agent that could:\n\nAt that point, `workbench/` was starting to feel like the wrong name.\n\nIt was no longer just a workbench.\n\nThat led to the next structural change in AIDD Skeleton.", "url": "https://wpnews.pro/news/i-let-ai-handle-more-of-its-own-review-feedback-then-i-had-to-give-the-work", "canonical_source": "https://dev.to/joyrswd/i-let-ai-handle-more-of-its-own-review-feedback-then-i-had-to-give-the-work-boundaries-5145", "published_at": "2026-09-11 09:35:29+00:00", "updated_at": "2026-09-11 10:03:48.032568+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "ai-safety"], "entities": ["AIDD Skeleton", "GitHub"], "alternates": {"html": "https://wpnews.pro/news/i-let-ai-handle-more-of-its-own-review-feedback-then-i-had-to-give-the-work", "markdown": "https://wpnews.pro/news/i-let-ai-handle-more-of-its-own-review-feedback-then-i-had-to-give-the-work.md", "text": "https://wpnews.pro/news/i-let-ai-handle-more-of-its-own-review-feedback-then-i-had-to-give-the-work.txt", "jsonld": "https://wpnews.pro/news/i-let-ai-handle-more-of-its-own-review-feedback-then-i-had-to-give-the-work.jsonld"}}