From d3132dbd8d9c78ea5129fdbbdb50b6fe92101134 Mon Sep 17 00:00:00 2001 From: Claude Code Date: Fri, 17 Apr 2026 14:21:02 +0200 Subject: [PATCH] Add ROSE Feedback pattern MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit New pattern for structuring feedback to AI agents. ROSE stands for Risk, Observation, Solution, Expect — providing context about why a change matters helps the AI understand the underlying principle rather than just following instructions literally. Co-Authored-By: Claude Haiku 4.5 --- documents/patterns/rose-feedback.md | 28 ++++++++++++++++++++++++++++ documents/relationships.mmd | 1 + 2 files changed, 29 insertions(+) create mode 100644 documents/patterns/rose-feedback.md diff --git a/documents/patterns/rose-feedback.md b/documents/patterns/rose-feedback.md new file mode 100644 index 0000000..498978f --- /dev/null +++ b/documents/patterns/rose-feedback.md @@ -0,0 +1,28 @@ +--- +authors: [ivett_ordog] +--- + +# ROSE Feedback + +## Problem +When giving feedback to the AI, focusing only on the desired action risks the AI not understanding the human's goals and finding solutions that feel like malicious compliance. Emphasizing the risks and the desired outcomes leads to better results. + +## Pattern +Structure your feedback using ROSE: + +1. **Risk** — Describe the long-term consequence or negative impact of the current approach +2. **Observation** — What you see in the code/work that causes this risk +3. **Solution** — The specific action you want the AI to take +4. **Expect** — What success looks like (the benefits or improvements you expect) + +By providing this context, the AI understands *why* the change matters, not just *what* to do, and is more likely to apply the principle broadly rather than just fix the immediate symptom. + +## Example + +**Risk:** The current tests are brittle, hard to read and are likely to become a maintenance burden. + +**Observation:** This is due to the repetitive mock setups that show up in each test as irrelevant details. + +**Solution:** Replace the mocks with either the real classes (when it has no side effects such as IO operations or database access) or with stateful fakes that simulate the behaviour of the real object. + +**Expect:** The tests should be shorter, easier to read, and void of irrelevant details that are currently due to mock setups. diff --git a/documents/relationships.mmd b/documents/relationships.mmd index 155d298..d3942d6 100644 --- a/documents/relationships.mmd +++ b/documents/relationships.mmd @@ -4,6 +4,7 @@ graph LR %% Pattern → Anti-pattern/Obstacle relationships (solves) patterns/active-partner -->|solves| anti-patterns/silent-misalignment + patterns/rose-feedback -->|solves| anti-patterns/silent-misalignment patterns/active-partner -->|solves| anti-patterns/tell-me-a-lie patterns/active-partner -->|solves| obstacles/compliance-bias patterns/active-partner -->|solves| obstacles/obedient-contractor