From 71a701f0b7a1602080dd5aeaf9a0c702b0ae4e47 Mon Sep 17 00:00:00 2001 From: Daniel Maddern Date: Sat, 15 Aug 2026 14:17:23 +0700 Subject: [PATCH] Harden Sol planning smoke schema prompt --- .../resources/management/commands/sol_plan_smoke.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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))