From 03eb7b996f91a6e2d4efb0a0762c3d8c5cfd7a6a Mon Sep 17 00:00:00 2001 From: Rizel Scarlett Date: Wed, 10 Dec 2025 14:37:38 -0500 Subject: [PATCH 1/3] blog: How to stop your ai agent from making unwanted code changes --- .../header-image.png | Bin 0 -> 23762 bytes .../index.md | 57 ++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 documentation/blog/2025-12-10-stop-ai-agent-unwanted-changes/header-image.png create mode 100644 documentation/blog/2025-12-10-stop-ai-agent-unwanted-changes/index.md diff --git a/documentation/blog/2025-12-10-stop-ai-agent-unwanted-changes/header-image.png b/documentation/blog/2025-12-10-stop-ai-agent-unwanted-changes/header-image.png new file mode 100644 index 0000000000000000000000000000000000000000..f205495d011822e80afcd101952ee6f91741f25c GIT binary patch literal 23762 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 literal 0 HcmV?d00001 diff --git a/documentation/blog/2025-12-10-stop-ai-agent-unwanted-changes/index.md b/documentation/blog/2025-12-10-stop-ai-agent-unwanted-changes/index.md new file mode 100644 index 000000000000..e7f47ccd2122 --- /dev/null +++ b/documentation/blog/2025-12-10-stop-ai-agent-unwanted-changes/index.md @@ -0,0 +1,57 @@ +--- +title: "How to Stop Your AI Agent From Making Unwanted Code Changes" +description: Teach your AI agent how to commit early and often so you can control changes, roll back safely, and keep clean snapshots of your codebase. +authors: + - rizel +--- + +![goose, revert this change!](header-image.png) + +AI agents are often described as brilliant, overeager interns. They're desperate to help, but sometimes that enthusiasm leads to changes you never asked for. This is by design: the large language models powering agents are trained to be helpful. But in code, unchecked helpfulness can create chaos. Even with clear instructions and a meticulous plan, you might hear, "Let me just change this too…" A modification that's either unnecessary or, worse, never surfaced for review. + +Sure, you can scour `git diff` to find and revert issues. But in a multi-step process touching dozens of files, untangling one small, unwanted change becomes a manual nightmare. I've spent hours combing through 70 files to undo a single "helpful" adjustment. Asking the agent to revert is often futile, as conversational memory isn't a snapshot of your codebase. + + + +This problem has a classic engineering solution. We commit early and often to create checkpoints, enabling easy rollbacks and clean collaboration. So, why don't we enforce the same discipline on our AI agents? Here’s the workflow I use with goose to ensure we're creating snapshots of the codebase: + + +### 1. Set Up Version Control + +I set up the [GitHub CLI](https://cli.github.com/) (`gh`). I've found Goose interacts with it flawlessly. The [GitHub MCP Server](/docs/mcp/github-mcp) is a good alternative. + +### 2. Branch First + +Always start on a new feature branch. Never let an agent commit directly to main. + +### 3. Set Rules in a Context File + +This is the key. I use a [`.goosehints`](/docs/guides/using-goosehints) or [`AGENTS.md`](/docs/guides/using-goosehints#custom-context-files) file with one critical instruction: + +> "Every time you make a change, make a commit with a clear message." + +This does two things: it automates checkpointing so I don't have to babysit the session, and it captures perfect snapshots in time, turning the git history into an undo stack for the entire collaboration. + +### 4. Collaborate with Confidence + +Now I can prompt goose to build, fix, or refactor. If it veers off course or makes a design choice I dislike, I can instantly review the git log or simply say: + +> *"Revert to commit abc123."* + +## The Result +Then, when I'm happy with the final changes, I can push my code to remote. By integrating this basic software practice, I replace anxiety with awareness. goose gets to be brilliantly helpful, and I get to stay in control. + +Try out this method with [goose](/) to help you build your next project. Your future self (and your git history) will thank you. + + + + + + + + + + + + \ No newline at end of file From a4c0bdb20f1257279b57cbec4340ceed9e333250 Mon Sep 17 00:00:00 2001 From: Rizel Scarlett Date: Wed, 10 Dec 2025 14:41:53 -0500 Subject: [PATCH 2/3] fix url --- .../blog/2025-12-10-stop-ai-agent-unwanted-changes/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/documentation/blog/2025-12-10-stop-ai-agent-unwanted-changes/index.md b/documentation/blog/2025-12-10-stop-ai-agent-unwanted-changes/index.md index e7f47ccd2122..fe7a91bfaf8d 100644 --- a/documentation/blog/2025-12-10-stop-ai-agent-unwanted-changes/index.md +++ b/documentation/blog/2025-12-10-stop-ai-agent-unwanted-changes/index.md @@ -48,10 +48,10 @@ Try out this method with [goose](/) to help you build your next project. Your fu - - \ No newline at end of file + From 4271b5f3d2bcbde52b9616c46bbf8112883de2f6 Mon Sep 17 00:00:00 2001 From: Rizel Scarlett Date: Wed, 10 Dec 2025 14:43:10 -0500 Subject: [PATCH 3/3] hyperlink goose --- .../blog/2025-12-10-stop-ai-agent-unwanted-changes/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/blog/2025-12-10-stop-ai-agent-unwanted-changes/index.md b/documentation/blog/2025-12-10-stop-ai-agent-unwanted-changes/index.md index fe7a91bfaf8d..46cab69e858e 100644 --- a/documentation/blog/2025-12-10-stop-ai-agent-unwanted-changes/index.md +++ b/documentation/blog/2025-12-10-stop-ai-agent-unwanted-changes/index.md @@ -13,7 +13,7 @@ Sure, you can scour `git diff` to find and revert issues. But in a multi-step pr -This problem has a classic engineering solution. We commit early and often to create checkpoints, enabling easy rollbacks and clean collaboration. So, why don't we enforce the same discipline on our AI agents? Here’s the workflow I use with goose to ensure we're creating snapshots of the codebase: +This problem has a classic engineering solution. We commit early and often to create checkpoints, enabling easy rollbacks and clean collaboration. So, why don't we enforce the same discipline on our AI agents? Here’s the workflow I use with [goose](/) to ensure we're creating snapshots of the codebase: ### 1. Set Up Version Control