Feature: TDD — PlanGenerationGraph validation logic As a developer fixing a validation regression I want the PlanGenerationGraph._validate() logic to respect explicit LLM FAIL responses So that generated code is rejected when the LLM indicates failure, regardless of code length @tdd_issue @tdd_issue_10746 Scenario: FAIL response is respected for code longer than 10 characters Given I have a langgraph PlanGenerationGraph instance When I execute the langgraph validate node with generated code: """ FAIL: Security vulnerability found in generated code that exceeds length threshold """ Then the langgraph validation status should be "FAIL" @tdd_issue @tdd_issue_10746 Scenario: PASS response is accepted when no FAIL present Given I have a langgraph PlanGenerationGraph instance When I execute the langgraph validate node with generated code: """ PASS: Code appears correct and follows best practices """ Then the langgraph validation status should be "PASS" @tdd_issue @tdd_issue_10746 Scenario: Mixed PASS and FAIL prefers FAIL Given I have a langgraph PlanGenerationGraph instance When I execute the langgraph validate node with generated code: """ PASS: Looks okay FAIL: But contains a logic bug in edge case handling """ Then the langgraph validation status should be "FAIL" @tdd_issue @tdd_issue_10746 Scenario: No explicit PASS or FAIL keyword should fail Given I have a langgraph PlanGenerationGraph instance When I execute the langgraph validate node with generated code: """ The validation response contains only neutral observations about the code structure and design choices with no verdict keyword present. """ Then the langgraph validation status should be "FAIL" @tdd_issue @tdd_issue_10746 Scenario: PASS keyword in mixed-case is accepted (case-insensitive) Given I have a langgraph PlanGenerationGraph instance When I execute the langgraph validate node with generated code: """ pass: minimal checks passed, nothing critical found """ Then the langgraph validation status should be "PASS"