claudetool: strengthen the "no trailers" commit message guidance

Should prevent duplicate trailers.
diff --git a/claudetool/pre-commit_test.go b/claudetool/pre-commit_test.go
new file mode 100644
index 0000000..a8bcb0e
--- /dev/null
+++ b/claudetool/pre-commit_test.go
@@ -0,0 +1,109 @@
+package claudetool
+
+import (
+	"testing"
+)
+
+func TestFilterGitTrailers(t *testing.T) {
+	tests := []struct {
+		name     string
+		input    string
+		expected string
+	}{
+		{
+			name: "filters Co-authored-by",
+			input: `<commit_message_style_example>
+fix: update component
+
+Some description.
+
+Co-authored-by: user@example.com
+</commit_message_style_example>`,
+			expected: `<commit_message_style_example>
+fix: update component
+
+Some description.
+
+</commit_message_style_example>`,
+		},
+		{
+			name: "filters Co-Authored-By",
+			input: `<commit_message_style_example>
+feat: add feature
+
+Co-Authored-By: another@example.com
+</commit_message_style_example>`,
+			expected: `<commit_message_style_example>
+feat: add feature
+
+</commit_message_style_example>`,
+		},
+		{
+			name: "filters Change-ID",
+			input: `<commit_message_style_example>
+docs: update README
+
+Change-ID: I123456789
+</commit_message_style_example>`,
+			expected: `<commit_message_style_example>
+docs: update README
+
+</commit_message_style_example>`,
+		},
+		{
+			name: "filters Change-Id",
+			input: `<commit_message_style_example>
+style: format code
+
+Change-Id: sc987654321
+</commit_message_style_example>`,
+			expected: `<commit_message_style_example>
+style: format code
+
+</commit_message_style_example>`,
+		},
+		{
+			name: "preserves other content",
+			input: `<commit_message_style_example>
+fix: resolve issue
+
+Some detailed explanation.
+With multiple lines.
+</commit_message_style_example>`,
+			expected: `<commit_message_style_example>
+fix: resolve issue
+
+Some detailed explanation.
+With multiple lines.
+</commit_message_style_example>`,
+		},
+		{
+			name: "filters multiple trailers",
+			input: `<commit_message_style_example>
+feat: new feature
+
+Detailed description.
+
+Co-authored-by: user1@example.com
+Co-Authored-By: user2@example.com
+Change-ID: I123
+Change-Id: sc456
+</commit_message_style_example>`,
+			expected: `<commit_message_style_example>
+feat: new feature
+
+Detailed description.
+
+</commit_message_style_example>`,
+		},
+	}
+
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			result := filterGitTrailers(tt.input)
+			if result != tt.expected {
+				t.Errorf("filterGitTrailers() = %q, want %q", result, tt.expected)
+			}
+		})
+	}
+}