loop: attempt some sycophancy reduction
diff --git a/loop/testdata/agent_loop.httprr b/loop/testdata/agent_loop.httprr
index 4646867..9db732a 100644
--- a/loop/testdata/agent_loop.httprr
+++ b/loop/testdata/agent_loop.httprr
@@ -1,9 +1,9 @@
 httprr trace v1
-17852 2409
+17928 2464
 POST https://api.anthropic.com/v1/messages HTTP/1.1

 Host: api.anthropic.com

 User-Agent: Go-http-client/1.1

-Content-Length: 17654

+Content-Length: 17730

 Anthropic-Version: 2023-06-01

 Content-Type: application/json

 

@@ -543,7 +543,7 @@
  ],
  "system": [
   {
-   "text": "You are the expert coding assistant and architect powering Sketch,\nan agentic coding environment that helps users accomplish coding tasks through autonomous analysis and implementation.\n\n\u003cworkflow\u003e\nStart by asking concise clarifying questions as needed.\nOnce the intent is clear, work autonomously.\nAim for a small diff size while thoroughly completing the requested task.\n\nCall the title tool as soon as the topic of conversation is clear, often immediately.\n\nBreak down the overall goal into a series of smaller steps.\n(The first step is often: \"Make a plan.\")\nThen execute each step using tools.\nUpdate the plan if you have encountered problems or learned new information.\n\nWhen in doubt about a step, follow this broad workflow:\n\n- Think about how the current step fits into the overall plan.\n- Do research. Good tool choices: bash, think, keyword_search\n- Make edits.\n- Repeat.\n\nTo make edits reliably and efficiently, first think about the intent of the edit,\nand what set of patches will achieve that intent.\nThen use the patch tool to make those edits. Combine all edits to any given file into a single patch tool call.\n\nComplete every task exhaustively - no matter how repetitive or tedious.\nPartial work, pattern demonstrations, or stubs with TODOs are not acceptable, unless explicitly permitted by the user.\n\nThe done tool provides a checklist of items you MUST verify and\nreview before declaring that you are done. Before executing\nthe done tool, run all the tools the done tool checklist asks\nfor, including creating a git commit. Do not forget to run tests.\n\u003c/workflow\u003e\n\n\u003csystem_info\u003e\n\u003cplatform\u003e\nlinux/amd64\n\u003c/platform\u003e\n\u003cpwd\u003e\n/\n\u003c/pwd\u003e\n\u003c/system_info\u003e\n\n\u003cgit_info\u003e\n\u003cgit_root\u003e\n\n\u003c/git_root\u003e\n\u003cHEAD\u003e\nHEAD\n\u003c/HEAD\u003e\n\u003c/git_info\u003e\n\n",
+   "text": "You are the expert software engineer and architect powering Sketch,\nan agentic coding environment that helps users accomplish coding tasks through autonomous analysis and implementation.\n\n\u003cworkflow\u003e\nStart by asking concise clarifying questions as needed.\nOnce the intent is clear, work autonomously.\nAim for a small diff size while thoroughly completing the requested task.\nPrioritize thoughtful analysis and critical engagement over agreeability.\n\nCall the title tool as soon as the topic of conversation is clear, often immediately.\n\nBreak down the overall goal into a series of smaller steps.\n(The first step is often: \"Make a plan.\")\nThen execute each step using tools.\nUpdate the plan if you have encountered problems or learned new information.\n\nWhen in doubt about a step, follow this broad workflow:\n\n- Think about how the current step fits into the overall plan.\n- Do research. Good tool choices: bash, think, keyword_search\n- Make edits.\n- Repeat.\n\nTo make edits reliably and efficiently, first think about the intent of the edit,\nand what set of patches will achieve that intent.\nThen use the patch tool to make those edits. Combine all edits to any given file into a single patch tool call.\n\nComplete every task exhaustively - no matter how repetitive or tedious.\nPartial work, pattern demonstrations, or stubs with TODOs are not acceptable, unless explicitly permitted by the user.\n\nThe done tool provides a checklist of items you MUST verify and\nreview before declaring that you are done. Before executing\nthe done tool, run all the tools the done tool checklist asks\nfor, including creating a git commit. Do not forget to run tests.\n\u003c/workflow\u003e\n\n\u003csystem_info\u003e\n\u003cplatform\u003e\nlinux/amd64\n\u003c/platform\u003e\n\u003cpwd\u003e\n/\n\u003c/pwd\u003e\n\u003c/system_info\u003e\n\n\u003cgit_info\u003e\n\u003cgit_root\u003e\n\n\u003c/git_root\u003e\n\u003cHEAD\u003e\nHEAD\n\u003c/HEAD\u003e\n\u003c/git_info\u003e\n\n",
    "type": "text",
    "cache_control": {
     "type": "ephemeral"
@@ -554,24 +554,24 @@
 Anthropic-Organization-Id: 3c473a21-7208-450a-a9f8-80aebda45c1b

 Anthropic-Ratelimit-Input-Tokens-Limit: 200000

 Anthropic-Ratelimit-Input-Tokens-Remaining: 200000

-Anthropic-Ratelimit-Input-Tokens-Reset: 2025-05-16T00:56:21Z

+Anthropic-Ratelimit-Input-Tokens-Reset: 2025-05-21T17:48:02Z

 Anthropic-Ratelimit-Output-Tokens-Limit: 80000

 Anthropic-Ratelimit-Output-Tokens-Remaining: 80000

-Anthropic-Ratelimit-Output-Tokens-Reset: 2025-05-16T00:56:25Z

+Anthropic-Ratelimit-Output-Tokens-Reset: 2025-05-21T17:48:07Z

 Anthropic-Ratelimit-Requests-Limit: 4000

 Anthropic-Ratelimit-Requests-Remaining: 3999

-Anthropic-Ratelimit-Requests-Reset: 2025-05-16T00:56:14Z

+Anthropic-Ratelimit-Requests-Reset: 2025-05-21T17:48:00Z

 Anthropic-Ratelimit-Tokens-Limit: 280000

 Anthropic-Ratelimit-Tokens-Remaining: 280000

-Anthropic-Ratelimit-Tokens-Reset: 2025-05-16T00:56:21Z

+Anthropic-Ratelimit-Tokens-Reset: 2025-05-21T17:48:02Z

 Cf-Cache-Status: DYNAMIC

-Cf-Ray: 9406ea03986c15b4-SJC

+Cf-Ray: 9435e6f92a33eb30-SJC

 Content-Type: application/json

-Date: Fri, 16 May 2025 00:56:25 GMT

-Request-Id: req_011CPAJJJhhhTSXWBvSFVn4k

+Date: Wed, 21 May 2025 17:48:07 GMT

+Request-Id: req_011CPM6VoDtiCGdVBSXHKwyJ

 Server: cloudflare

 Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

 Via: 1.1 google

 X-Robots-Tag: none

 

-{"id":"msg_01F1KQ7esC8YqWVvzBcQayXw","type":"message","role":"assistant","model":"claude-3-7-sonnet-20250219","content":[{"type":"text","text":"I'll list the tools available to me:\n\n1. bash - Execute shell commands\n2. keyword_search - Search for files based on keywords\n3. think - Record thoughts, notes, or plans\n4. title - Set conversation title\n5. precommit - Create git branch for tracking work\n6. done - Mark task as complete with checklist\n7. codereview - Run automated code review\n8. about_sketch - Provide information about Sketch\n9. multiplechoice - Present quick answer options to user\n10. Browser tools:\n   - browser_navigate - Navigate to URL\n   - browser_click - Click element by CSS selector\n   - browser_type - Type text into input element\n   - browser_wait_for - Wait for element\n   - browser_get_text - Get element text\n   - browser_eval - Evaluate JavaScript\n   - browser_scroll_into_view - Scroll element into view\n   - browser_resize - Resize browser window\n   - browser_recent_console_logs - Get console logs\n   - browser_clear_console_logs - Clear console logs\n   - browser_take_screenshot - Take screenshot\n   - browser_read_image - Read image file\n11. patch - File modification tool for precise text edits"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":4,"cache_creation_input_tokens":4110,"cache_read_input_tokens":0,"output_tokens":281}}
\ No newline at end of file
+{"id":"msg_01SHazCNqLKJF4tFzepoU6h1","type":"message","role":"assistant","model":"claude-3-7-sonnet-20250219","content":[{"type":"text","text":"Here are the tools available to me:\n\n- `bash`: Executes shell commands\n- `keyword_search`: Searches for files with specific terms\n- `think`: Records thoughts, notes, or plans without external effects\n- `title`: Sets the conversation title\n- `precommit`: Creates a git branch for tracking work\n- `done`: Marks completion of user's goal with checklist evaluation\n- `codereview`: Runs automated code review\n- `about_sketch`: Provides information about Sketch\n- `multiplechoice`: Presents quick answer options to questions\n- `browser_navigate`: Navigates to a URL\n- `browser_click`: Clicks elements matching CSS selectors\n- `browser_type`: Types text into input elements\n- `browser_wait_for`: Waits for DOM elements\n- `browser_get_text`: Gets text from elements\n- `browser_eval`: Evaluates JavaScript\n- `browser_scroll_into_view`: Scrolls elements into view\n- `browser_resize`: Resizes browser window\n- `browser_recent_console_logs`: Gets browser console logs\n- `browser_clear_console_logs`: Clears console logs\n- `browser_take_screenshot`: Takes screenshots\n- `browser_read_image`: Reads image files\n- `patch`: Makes precise text edits to files"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":4,"cache_creation_input_tokens":4125,"cache_read_input_tokens":0,"output_tokens":303}}
\ No newline at end of file