diff --git a/loop/agent.go b/loop/agent.go
index 95d7391..1a3f851 100644
--- a/loop/agent.go
+++ b/loop/agent.go
@@ -869,7 +869,7 @@
 
 	convo.Tools = []*llm.Tool{
 		bashTool, claudetool.Keyword,
-		claudetool.Think, a.titleTool(), a.precommitTool(), makeDoneTool(a.codereview, a.config.GitUsername, a.config.GitEmail),
+		claudetool.Think, a.titleTool(), a.precommitTool(), makeDoneTool(a.codereview),
 		a.codereview.Tool(),
 	}
 
diff --git a/loop/donetool.go b/loop/donetool.go
index 48818d6..0870fb1 100644
--- a/loop/donetool.go
+++ b/loop/donetool.go
@@ -16,7 +16,7 @@
 // not as reliable as it could be. Historically, we've found that Claude ignores
 // the tool results here, so we don't tell the tool to say "hey, really check this"
 // at the moment, though we've tried.
-func makeDoneTool(codereview *codereview.CodeReviewer, gitUsername, gitEmail string) *llm.Tool {
+func makeDoneTool(codereview *codereview.CodeReviewer) *llm.Tool {
 	description := doneDescription
 	if experiment.Enabled("not_done") {
 		description = backtrackDoneDescription
@@ -24,7 +24,7 @@
 	return &llm.Tool{
 		Name:        "done",
 		Description: description,
-		InputSchema: json.RawMessage(doneChecklistJSONSchema(gitUsername, gitEmail)),
+		InputSchema: json.RawMessage(doneChecklistSchema()),
 		Run: func(ctx context.Context, input json.RawMessage) (string, error) {
 			if experiment.Enabled("not_done") {
 				if strings.Contains(strings.ToLower(string(input)), "cancel done tool call") {
@@ -62,26 +62,17 @@
 	}
 }
 
-func doneChecklistJSONSchema(gitUsername, gitEmail string) string {
-	gitCommitDescription := fmt.Sprintf(`Create git commits for any code changes you made. Match the style of recent commit messages. Include 'Co-Authored-By: sketch <hello@sketch.dev>' and the original user prompt. Use GIT_AUTHOR_NAME="%s" GIT_AUTHOR_EMAIL="%s" (not git config).`,
-		gitUsername, gitEmail)
-	desc, err := json.Marshal(gitCommitDescription)
-	if err != nil {
-		panic(err)
-	}
-	prefix := doneChecklistJSONSchemaPrefix
-	suffix := doneChecklistJSONSchemaSuffix
+func doneChecklistSchema() string {
 	if experiment.Enabled("not_done") {
-		prefix = backtrackDoneChecklistJSONSchemaPrefix
-		suffix = backtrackDoneChecklistJSONSchemaSuffix
+		return backtrackDoneChecklistJSONSchema
 	}
-	return prefix + string(desc) + suffix
+	return doneChecklistJSONSchema
 }
 
 // TODO: this is ugly, maybe JSON-encode a deeply nested map[string]any instead? also ugly.
 const (
-	doneDescription               = `Use this tool when you have achieved the user's goal. The parameters form a checklist which you should evaluate.`
-	doneChecklistJSONSchemaPrefix = `{
+	doneDescription         = `Use this tool when you have achieved the user's goal. The parameters form a checklist which you should evaluate.`
+	doneChecklistJSONSchema = `{
   "$schema": "http://json-schema.org/draft-07/schema#",
   "title": "Checklist",
   "description": "A schema for tracking checklist items with status and comments",
@@ -106,9 +97,7 @@
         },
         "git_commit": {
           "$ref": "#/definitions/checklistItem",
-          "description": `
-
-	doneChecklistJSONSchemaSuffix = `
+          "description": "Create git commits for any code changes you made, adding --trailer 'Co-Authored-By: sketch <hello@sketch.dev>' and --trailer 'Change-ID: s$(openssl rand -hex 8)k'. The git user is already configured correctly."
         }
       },
       "additionalProperties": {
@@ -141,8 +130,8 @@
 )
 
 const (
-	backtrackDoneDescription               = `This tool marks task completion. Review the checklist items carefully - if any item's status is "cancel" or any thoughts contain "Cancel done tool call", the entire call will be ignored without user notification. Cancellation is free and preferred over inaccurately marking items as "done" or "not applicable".`
-	backtrackDoneChecklistJSONSchemaPrefix = `{
+	backtrackDoneDescription         = `This tool marks task completion. Review the checklist items carefully - if any item's status is "cancel" or any thoughts contain "Cancel done tool call", the entire call will be ignored without user notification. Cancellation is free and preferred over inaccurately marking items as "done" or "not applicable".`
+	backtrackDoneChecklistJSONSchema = `{
   "$schema": "http://json-schema.org/draft-07/schema#",
   "title": "Checklist",
   "description": "A schema for tracking checklist items",
@@ -167,9 +156,7 @@
         },
         "git_commit": {
           "$ref": "#/definitions/checklistItem",
-          "description": `
-
-	backtrackDoneChecklistJSONSchemaSuffix = `
+          "description": "Create git commits for any code changes you made, adding --trailer 'Co-Authored-By: sketch <hello@sketch.dev>' and --trailer 'Change-ID: s$(openssl rand -hex 8)k'. The git user is already configured correctly."
         }
       },
       "additionalProperties": {
diff --git a/loop/testdata/agent_loop.httprr b/loop/testdata/agent_loop.httprr
index 752b78a..f022747 100644
--- a/loop/testdata/agent_loop.httprr
+++ b/loop/testdata/agent_loop.httprr
@@ -1,9 +1,9 @@
 httprr trace v1
-14353 2161
+14290 2143
 POST https://api.anthropic.com/v1/messages HTTP/1.1
 Host: api.anthropic.com
 User-Agent: Go-http-client/1.1
-Content-Length: 14155
+Content-Length: 14092
 Anthropic-Version: 2023-06-01
 Content-Type: application/json
 
@@ -151,7 +151,7 @@
        },
        "git_commit": {
         "$ref": "#/definitions/checklistItem",
-        "description": "Create git commits for any code changes you made. Match the style of recent commit messages. Include 'Co-Authored-By: sketch \u003chello@sketch.dev\u003e' and the original user prompt. Use GIT_AUTHOR_NAME=\"Test Agent\" GIT_AUTHOR_EMAIL=\"totallyhuman@sketch.dev\" (not git config)."
+        "description": "Create git commits for any code changes you made, adding --trailer 'Co-Authored-By: sketch \u003chello@sketch.dev\u003e' and --trailer 'Change-ID: s$(openssl rand -hex 8)k'. The git user is already configured correctly."
        }
       },
       "additionalProperties": {
@@ -447,25 +447,25 @@
 }HTTP/2.0 200 OK
 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-08T01:39:51Z
+Anthropic-Ratelimit-Input-Tokens-Remaining: 199000
+Anthropic-Ratelimit-Input-Tokens-Reset: 2025-05-08T19:33:31Z
 Anthropic-Ratelimit-Output-Tokens-Limit: 80000
 Anthropic-Ratelimit-Output-Tokens-Remaining: 80000
-Anthropic-Ratelimit-Output-Tokens-Reset: 2025-05-08T01:39:55Z
+Anthropic-Ratelimit-Output-Tokens-Reset: 2025-05-08T19:33:34Z
 Anthropic-Ratelimit-Requests-Limit: 4000
 Anthropic-Ratelimit-Requests-Remaining: 3999
-Anthropic-Ratelimit-Requests-Reset: 2025-05-08T01:39:51Z
+Anthropic-Ratelimit-Requests-Reset: 2025-05-08T19:33:30Z
 Anthropic-Ratelimit-Tokens-Limit: 280000
-Anthropic-Ratelimit-Tokens-Remaining: 280000
-Anthropic-Ratelimit-Tokens-Reset: 2025-05-08T01:39:51Z
+Anthropic-Ratelimit-Tokens-Remaining: 279000
+Anthropic-Ratelimit-Tokens-Reset: 2025-05-08T19:33:31Z
 Cf-Cache-Status: DYNAMIC
-Cf-Ray: 93c53ee3cb4dd009-SJC
+Cf-Ray: 93cb639e8ab4aaaf-SJC
 Content-Type: application/json
-Date: Thu, 08 May 2025 01:39:55 GMT
-Request-Id: req_011CNuD9qppXzqGDHAS1LdBj
+Date: Thu, 08 May 2025 19:33:34 GMT
+Request-Id: req_011CNvd2SmLtiXBWXGsw6AKR
 Server: cloudflare
 Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
 Via: 1.1 google
 X-Robots-Tag: none
 
-{"id":"msg_014zVb75dymWbZ8AS2oTt532","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\n2. keyword_search - Search for files and terms in a codebase\n3. think - Record thoughts, notes, or plans\n4. title - Set the conversation title\n5. precommit - Create a git branch for tracking work\n6. done - Mark completion of a task with a checklist\n7. codereview - Run an automated code review\n8. multiplechoice - Present multiple choice options to the user\n9. patch - Modify files with precise text edits\n10. Browser tools:\n   - browser_navigate - Navigate to a URL\n   - browser_click - Click an element\n   - browser_type - Type text into a field\n   - browser_wait_for - Wait for an element\n   - browser_get_text - Get text from an element\n   - browser_eval - Run JavaScript\n   - browser_screenshot - Take a screenshot\n   - browser_scroll_into_view - Scroll to an element"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":4,"cache_creation_input_tokens":0,"cache_read_input_tokens":3343,"output_tokens":226}}
\ No newline at end of file
+{"id":"msg_012Z9qPA1jM4WNsAJi4cLo6J","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\n2. keyword_search - Search for files with specific terms\n3. think - Record thoughts and plans (no external effects)\n4. title - Set conversation title\n5. precommit - Create a git branch for work\n6. done - Mark completion of user's goal\n7. codereview - Run automated code review\n8. multiplechoice - Present user with choices\n9. browser_navigate - Navigate to a URL\n10. browser_click - Click an element in browser\n11. browser_type - Type text into browser input\n12. browser_wait_for - Wait for element in browser\n13. browser_get_text - Get text from browser element\n14. browser_eval - Evaluate JavaScript in browser\n15. browser_screenshot - Take browser screenshot\n16. browser_scroll_into_view - Scroll to element\n17. patch - Make precise text edits to files"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":4,"cache_creation_input_tokens":3325,"cache_read_input_tokens":0,"output_tokens":213}}
\ No newline at end of file
