loop: extract system prompt into a separate file

This will make swapping it out easier, if/when desired.
diff --git a/loop/testdata/agent_loop.httprr b/loop/testdata/agent_loop.httprr
index a8ad77a..350a946 100644
--- a/loop/testdata/agent_loop.httprr
+++ b/loop/testdata/agent_loop.httprr
@@ -1,9 +1,9 @@
 httprr trace v1
-9069 1744
+9067 1738
 POST https://api.anthropic.com/v1/messages HTTP/1.1

 Host: api.anthropic.com

 User-Agent: Go-http-client/1.1

-Content-Length: 8872

+Content-Length: 8870

 Anthropic-Version: 2023-06-01

 Content-Type: application/json

 

@@ -232,7 +232,7 @@
  ],
  "system": [
   {
-   "text": "\nYou are an expert coding assistant and architect, with a specialty in Go.\nYou are assisting the user to achieve their goals.\n\nStart by asking concise clarifying questions as needed.\nOnce the intent is clear, work autonomously.\n\nCall the title tool early in the conversation to provide a brief summary of\nwhat the chat is about.\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\nFor renames or refactors, consider invoking gopls (via bash).\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\n\u003cplatform\u003e\nlinux/amd64\n\u003c/platform\u003e\n\u003cpwd\u003e\n/\n\u003c/pwd\u003e\n\u003cgit_root\u003e\n\n\u003c/git_root\u003e\n\u003cHEAD\u003e\n\n\u003c/HEAD\u003e\n",
+   "text": "You are an expert coding assistant and architect, with a specialty in Go.\nYou are assisting the user to achieve their goals.\n\nStart by asking concise clarifying questions as needed.\nOnce the intent is clear, work autonomously.\n\nCall the title tool early in the conversation to provide a brief summary of\nwhat the chat is about.\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\nFor renames or refactors, consider invoking gopls (via bash).\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\n\u003cplatform\u003e\nlinux/amd64\n\u003c/platform\u003e\n\u003cpwd\u003e\n/\n\u003c/pwd\u003e\n\u003cgit_root\u003e\n\n\u003c/git_root\u003e\n\u003cHEAD\u003e\n\n\u003c/HEAD\u003e\n",
    "type": "text",
    "cache_control": {
     "type": "ephemeral"
@@ -243,23 +243,23 @@
 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-04-29T23:42:22Z

+Anthropic-Ratelimit-Input-Tokens-Reset: 2025-04-29T23:43:53Z

 Anthropic-Ratelimit-Output-Tokens-Limit: 80000

 Anthropic-Ratelimit-Output-Tokens-Remaining: 80000

-Anthropic-Ratelimit-Output-Tokens-Reset: 2025-04-29T23:42:24Z

+Anthropic-Ratelimit-Output-Tokens-Reset: 2025-04-29T23:43:55Z

 Anthropic-Ratelimit-Requests-Limit: 4000

 Anthropic-Ratelimit-Requests-Remaining: 3999

-Anthropic-Ratelimit-Requests-Reset: 2025-04-29T23:42:21Z

+Anthropic-Ratelimit-Requests-Reset: 2025-04-29T23:43:52Z

 Anthropic-Ratelimit-Tokens-Limit: 280000

 Anthropic-Ratelimit-Tokens-Remaining: 280000

-Anthropic-Ratelimit-Tokens-Reset: 2025-04-29T23:42:22Z

+Anthropic-Ratelimit-Tokens-Reset: 2025-04-29T23:43:53Z

 Cf-Cache-Status: DYNAMIC

-Cf-Ray: 9382a7c95c6667b3-SJC

+Cf-Ray: 9382aa02de6915c8-SJC

 Content-Type: application/json

-Date: Tue, 29 Apr 2025 23:42:25 GMT

-Request-Id: req_011CNduitGRzRZ3U2N9dB9h1

+Date: Tue, 29 Apr 2025 23:43:55 GMT

+Request-Id: req_011CNduqbZYKv55MjzE4DZWV

 Server: cloudflare

 Via: 1.1 google

 X-Robots-Tag: none

 

-{"id":"msg_0185hzyiRLpmBPpNuLAFRHWh","type":"message","role":"assistant","model":"claude-3-7-sonnet-20250219","content":[{"type":"text","text":"I have access to the following tools:\n\n1. bash - Executes shell commands with optional timeout\n2. keyword_search - Helps locate files in unfamiliar codebases\n3. think - Allows me to think out loud and take notes\n4. title - Sets a brief title for the conversation\n5. done - Used when the user's goal is achieved, with a checklist\n6. codereview - Runs an automated code review\n7. patch - Precise file modification tool for text edits\n\nIs there a specific task you'd like me to help you with using these tools?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":4,"cache_creation_input_tokens":2196,"cache_read_input_tokens":0,"output_tokens":132}}
\ No newline at end of file
+{"id":"msg_0182gYvzvKMzDif56xAt1rT3","type":"message","role":"assistant","model":"claude-3-7-sonnet-20250219","content":[{"type":"text","text":"Here are the tools available to me:\n\n1. bash - Execute shell commands with optional timeout\n2. keyword_search - Find files in a codebase based on keywords\n3. think - Record thoughts and plans (no external effects)\n4. title - Create a brief title for the chat\n5. done - Signal completion with a checklist evaluation \n6. codereview - Run an automated code review\n7. patch - Make precise file modifications\n\nIs there a specific tool you'd like me to explain in more detail or a task you'd like help with?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":4,"cache_creation_input_tokens":0,"cache_read_input_tokens":2196,"output_tokens":123}}
\ No newline at end of file