diff --git a/control_plane/resources/management/commands/sol_plan_smoke.py b/control_plane/resources/management/commands/sol_plan_smoke.py index e227efc..d432e00 100644 --- a/control_plane/resources/management/commands/sol_plan_smoke.py +++ b/control_plane/resources/management/commands/sol_plan_smoke.py @@ -19,8 +19,12 @@ class Command(BaseCommand): if resource is None: raise CommandError("No Sol/opencode resource configured. Run seed_spark_resources first.") prompt = ( - "Return only JSON with a project_plan object. Include goal, scope, acceptance_criteria, " - "milestones, features, tasks with id, goal, acceptance_criteria, dependencies. Goal: " + "Return only valid JSON. No markdown. No commentary. The JSON must match this exact shape: " + "{\"project_plan\":{\"goal\":str,\"scope\":str,\"acceptance_criteria\":[str]," + "\"milestones\":[{\"key\":str,\"title\":str,\"goal\":str,\"features\":[{" + "\"key\":str,\"title\":str,\"description\":str,\"acceptance_criteria\":[str]," + "\"tasks\":[{\"id\":str,\"goal\":str,\"acceptance_criteria\":[str]," + "\"dependencies\":[str]}]}]}]}}. Include at least one milestone, one feature, and one task. Goal: " + options["goal"] ) response = SolProvider(resource).complete(ModelRequestContract(purpose="PLANNING", prompt=prompt, token_budget=4000))