diff --git a/claudetool/onstart/analyze_test.go b/claudetool/onstart/analyze_test.go
index be70ce7..b3a0bec 100644
--- a/claudetool/onstart/analyze_test.go
+++ b/claudetool/onstart/analyze_test.go
@@ -2,6 +2,9 @@
 
 import (
 	"context"
+	"os"
+	"os/exec"
+	"path/filepath"
 	"slices"
 	"testing"
 )
@@ -28,9 +31,87 @@
 	})
 
 	t.Run("Non-ASCII Filenames", func(t *testing.T) {
+		// Create a temporary directory with unicode filenames for testing
+		tempDir := t.TempDir()
+
+		// Initialize git repository
+		cmd := exec.Command("git", "init")
+		cmd.Dir = tempDir
+		if err := cmd.Run(); err != nil {
+			t.Fatalf("Failed to init git repo: %v", err)
+		}
+
+		cmd = exec.Command("git", "config", "user.name", "Test User")
+		cmd.Dir = tempDir
+		if err := cmd.Run(); err != nil {
+			t.Fatalf("Failed to set git user.name: %v", err)
+		}
+
+		cmd = exec.Command("git", "config", "user.email", "test@example.com")
+		cmd.Dir = tempDir
+		if err := cmd.Run(); err != nil {
+			t.Fatalf("Failed to set git user.email: %v", err)
+		}
+
+		// Configure git to handle unicode filenames properly
+		cmd = exec.Command("git", "config", "core.quotepath", "false")
+		cmd.Dir = tempDir
+		if err := cmd.Run(); err != nil {
+			t.Fatalf("Failed to set git core.quotepath: %v", err)
+		}
+
+		cmd = exec.Command("git", "config", "core.precomposeunicode", "true")
+		cmd.Dir = tempDir
+		if err := cmd.Run(); err != nil {
+			t.Fatalf("Failed to set git core.precomposeunicode: %v", err)
+		}
+
+		// Create test files with unicode characters dynamically
+		testFiles := map[string]string{
+			"测试文件.go":           "// Package test with Chinese characters in filename\npackage test\n\nfunc TestFunction() {\n\t// This is a test file\n}",
+			"café.js":           "// JavaScript file with French characters\nconsole.log('Hello from café!');",
+			"русский.py":        "# Python file with Russian characters\nprint('Привет мир!')",
+			"🚀rocket.md":        "# README with Emoji\n\nThis file has an emoji in the filename.",
+			"readme-español.md": "# Spanish README\n\nEste es un archivo de documentación.",
+			"Übung.html":        "<!DOCTYPE html>\n<html><head><title>German Exercise</title></head><body><h1>Übung</h1></body></html>",
+			"Makefile-日本語":      "# Japanese Makefile\nall:\n\techo 'Japanese makefile'",
+		}
+
+		// Create subdirectory
+		subdir := filepath.Join(tempDir, "subdir")
+		err := os.MkdirAll(subdir, 0o755)
+		if err != nil {
+			t.Fatalf("Failed to create subdir: %v", err)
+		}
+
+		// Add file in subdirectory
+		testFiles["subdir/claude.한국어.md"] = "# Korean Claude file\n\nThis is a guidance file with Korean characters."
+
+		// Write all test files
+		for filename, content := range testFiles {
+			fullPath := filepath.Join(tempDir, filename)
+			dir := filepath.Dir(fullPath)
+			if dir != tempDir {
+				err := os.MkdirAll(dir, 0o755)
+				if err != nil {
+					t.Fatalf("Failed to create directory %s: %v", dir, err)
+				}
+			}
+			err := os.WriteFile(fullPath, []byte(content), 0o644)
+			if err != nil {
+				t.Fatalf("Failed to write file %s: %v", filename, err)
+			}
+		}
+
+		// Add all files to git at once
+		cmd = exec.Command("git", "add", ".")
+		cmd.Dir = tempDir
+		if err := cmd.Run(); err != nil {
+			t.Fatalf("Failed to add files to git: %v", err)
+		}
+
 		// Test with non-ASCII characters in filenames
-		testdataPath := "./testdata"
-		codebase, err := AnalyzeCodebase(context.Background(), testdataPath)
+		codebase, err := AnalyzeCodebase(context.Background(), tempDir)
 		if err != nil {
 			t.Fatalf("AnalyzeCodebase failed with non-ASCII filenames: %v", err)
 		}
@@ -39,7 +120,7 @@
 			t.Fatal("Expected non-nil codebase")
 		}
 
-		// We expect 8 files in our testdata directory
+		// We expect 8 files in our temp directory
 		expectedFiles := 8
 		if codebase.TotalFiles != expectedFiles {
 			t.Errorf("Expected %d files, got %d", expectedFiles, codebase.TotalFiles)
@@ -50,7 +131,7 @@
 			".go":            1, // 测试文件.go
 			".js":            1, // café.js
 			".py":            1, // русский.py
-			".md":            3, // 🚀rocket.md, readme-español.md, claude-한국어.md
+			".md":            3, // 🚀rocket.md, readme-español.md, claude.한국어.md
 			".html":          1, // Übung.html
 			"<no-extension>": 1, // Makefile-日本語
 		}
diff --git "a/claudetool/onstart/testdata/Makefile-\346\227\245\346\234\254\350\252\236" "b/claudetool/onstart/testdata/Makefile-\346\227\245\346\234\254\350\252\236"
deleted file mode 100644
index c78f45a..0000000
--- "a/claudetool/onstart/testdata/Makefile-\346\227\245\346\234\254\350\252\236"
+++ /dev/null
@@ -1,10 +0,0 @@
-# Makefile with Japanese characters in filename
-# This should be categorized as a build file
-
-all:
-	echo "Building with Japanese characters in Makefile name"
-
-clean:
-	rm -f *.o
-
-.PHONY: all clean
diff --git "a/claudetool/onstart/testdata/caf\303\251.js" "b/claudetool/onstart/testdata/caf\303\251.js"
deleted file mode 100644
index 6cd53e3..0000000
--- "a/claudetool/onstart/testdata/caf\303\251.js"
+++ /dev/null
@@ -1,2 +0,0 @@
-// JavaScript file with French accent in filename
-console.log('Hello from café.js');
diff --git "a/claudetool/onstart/testdata/readme-espa\303\261ol.md" "b/claudetool/onstart/testdata/readme-espa\303\261ol.md"
deleted file mode 100644
index 4232509..0000000
--- "a/claudetool/onstart/testdata/readme-espa\303\261ol.md"
+++ /dev/null
@@ -1,8 +0,0 @@
-# README Español
-
-This is a documentation file with Spanish characters in the filename.
-
-## Características
-
-- Soporte para Unicode
-- Caracteres españoles en nombres de archivo
diff --git "a/claudetool/onstart/testdata/subdir/claude.\355\225\234\352\265\255\354\226\264.md" "b/claudetool/onstart/testdata/subdir/claude.\355\225\234\352\265\255\354\226\264.md"
deleted file mode 100644
index ab36b92..0000000
--- "a/claudetool/onstart/testdata/subdir/claude.\355\225\234\352\265\255\354\226\264.md"
+++ /dev/null
@@ -1,8 +0,0 @@
-# Claude Guidance with Korean Characters
-
-This file should be categorized as a guidance file since it starts with 'claude-' and ends with '.md'.
-
-## 지침
-
-- 한국어 문자 지원
-- 파일 이름에 유니코드 사용
diff --git "a/claudetool/onstart/testdata/\303\234bung.html" "b/claudetool/onstart/testdata/\303\234bung.html"
deleted file mode 100644
index afc66ab..0000000
--- "a/claudetool/onstart/testdata/\303\234bung.html"
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>German Umlaut Test</title>
-</head>
-<body>
-    <h1>Übung HTML File</h1>
-    <p>This HTML file has German umlaut characters in the filename.</p>
-</body>
-</html>
diff --git "a/claudetool/onstart/testdata/\321\200\321\203\321\201\321\201\320\272\320\270\320\271.py" "b/claudetool/onstart/testdata/\321\200\321\203\321\201\321\201\320\272\320\270\320\271.py"
deleted file mode 100644
index 8110369..0000000
--- "a/claudetool/onstart/testdata/\321\200\321\203\321\201\321\201\320\272\320\270\320\271.py"
+++ /dev/null
@@ -1,2 +0,0 @@
-# Python file with Russian characters in filename
-print('Hello from русский.py')
diff --git "a/claudetool/onstart/testdata/\346\265\213\350\257\225\346\226\207\344\273\266.go" "b/claudetool/onstart/testdata/\346\265\213\350\257\225\346\226\207\344\273\266.go"
deleted file mode 100644
index 30a3d59..0000000
--- "a/claudetool/onstart/testdata/\346\265\213\350\257\225\346\226\207\344\273\266.go"
+++ /dev/null
@@ -1,6 +0,0 @@
-// Package test with Chinese characters in filename
-package test
-
-func TestFunction() {
-	// This is a test file with Chinese characters in the filename
-}
diff --git "a/claudetool/onstart/testdata/\360\237\232\200rocket.md" "b/claudetool/onstart/testdata/\360\237\232\200rocket.md"
deleted file mode 100644
index 6140a51..0000000
--- "a/claudetool/onstart/testdata/\360\237\232\200rocket.md"
+++ /dev/null
@@ -1,8 +0,0 @@
-# README with Emoji in filename
-
-This is a documentation file with an emoji character in the filename.
-
-## Features
-
-- Unicode support
-- Emoji in filenames
