diff --git a/server/llm/fake/fake.go b/server/llm/fake/fake.go
index 3735821..58185b3 100644
--- a/server/llm/fake/fake.go
+++ b/server/llm/fake/fake.go
@@ -186,6 +186,20 @@
   "estimated_total_hours": 102,
   "risk_assessment": "Main risks include scope creep, API integration complexity, and potential database performance issues. Mitigation strategies include regular stakeholder reviews, comprehensive API documentation, and early performance testing."
 }`,
+
+		`{
+  "needs_subtasks": true,
+  "reasoning": "This task appears to be complex and multi-faceted, requiring different specialized skills including backend development, frontend work, database management, and testing. Breaking it down into subtasks would allow for better parallel execution and specialized agent assignment.",
+  "complexity_score": 8,
+  "required_skills": ["backend_development", "frontend_development", "database_design", "api_development", "testing", "deployment"]
+}`,
+
+		`{
+  "needs_subtasks": false,
+  "reasoning": "This task is straightforward and can be completed by a single agent with existing capabilities. The scope is well-defined and doesn't require multiple specialized skills or extensive coordination.",
+  "complexity_score": 3,
+  "required_skills": ["basic_development"]
+}`,
 	}
 
 	return &FakeProvider{
@@ -199,22 +213,34 @@
 	// Simulate API delay
 	time.Sleep(500 * time.Millisecond)
 
-	// Check if this is a subtask analysis request
-	isSubtaskRequest := false
+	// Check the type of request to provide appropriate response
+	isSubtaskAnalysisRequest := false
+	isSubtaskDecisionRequest := false
 	for _, msg := range req.Messages {
-		if strings.Contains(msg.Content, "subtasks") || strings.Contains(msg.Content, "JSON") {
-			isSubtaskRequest = true
+		if strings.Contains(msg.Content, "break it down into subtasks") || strings.Contains(msg.Content, "subtask analysis") {
+			isSubtaskAnalysisRequest = true
+			break
+		} else if strings.Contains(msg.Content, "needs to be broken down") || strings.Contains(msg.Content, "evaluate whether") {
+			isSubtaskDecisionRequest = true
 			break
 		}
 	}
 
 	var response string
-	if isSubtaskRequest && len(f.responses) > 3 {
-		// Always use the JSON subtask response for subtask requests
-		response = f.responses[3] // The JSON response is at index 3
+	if isSubtaskAnalysisRequest && len(f.responses) > 3 {
+		// Use the detailed subtask analysis JSON response
+		response = f.responses[3] // The detailed JSON response is at index 3
+	} else if isSubtaskDecisionRequest && len(f.responses) > 4 {
+		// Use alternating decision responses
+		if f.index%2 == 0 {
+			response = f.responses[4] // "needs_subtasks": true
+		} else {
+			response = f.responses[5] // "needs_subtasks": false
+		}
+		f.index++
 	} else {
-		// Get the next response (cycle through responses)
-		response = f.responses[f.index%len(f.responses)]
+		// Get the next regular response (cycle through first 3)
+		response = f.responses[f.index%3] // Only cycle through first 3 responses
 		f.index++
 	}
 
