From ef2b0fbc9f781e22f30674a5962ac7c2c35c8a92 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 12 Feb 2026 07:47:06 +0000 Subject: [PATCH] fix: truncate excess scenarios instead of raising error When the LLM generates more scenarios than requested, truncate to the requested count instead of raising a ValueError. This makes scenario generation more robust since LLMs occasionally overshoot the count. Still raises an error when too few scenarios are generated. https://claude.ai/code/session_017Y9KNNQX2RyVWnqpj3A4hh --- src/art/mcp/generate_scenarios.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/art/mcp/generate_scenarios.py b/src/art/mcp/generate_scenarios.py index 6932d9c2e..f86a34078 100644 --- a/src/art/mcp/generate_scenarios.py +++ b/src/art/mcp/generate_scenarios.py @@ -201,9 +201,14 @@ async def generate_scenarios( scenarios = result if isinstance(result, list) else list(result.values())[0] # Validate count - if len(scenarios) != num_scenarios: + if len(scenarios) < num_scenarios: err(f"Expected {num_scenarios} scenarios, got {len(scenarios)}.") raise ValueError(f"Expected {num_scenarios} scenarios, got {len(scenarios)}") + elif len(scenarios) > num_scenarios: + ok( + f"Expected {num_scenarios} scenarios, got {len(scenarios)}. Truncating to {num_scenarios}." + ) + scenarios = scenarios[:num_scenarios] ok(f"Parsed {len(scenarios)} scenario(s) successfully.")