diff --git a/navi/profiles/modeler_3d/config.json b/navi/profiles/modeler_3d/config.json index c214acf..568aeeb 100644 --- a/navi/profiles/modeler_3d/config.json +++ b/navi/profiles/modeler_3d/config.json @@ -31,17 +31,8 @@ "adaptive_replan_enabled": true, "subagent_planning_enabled": false, "subagent_tools": [ - "todo", - "scratchpad", - "reflect", - "web_search", - "web_view", "filesystem", - "terminal", - "image_view", - "scad_lint", - "model_3d", - "render_3d" + "scad_lint" ], "enabled_tools": [ "todo", diff --git a/navi/profiles/modeler_3d/subagent_system_prompt.txt b/navi/profiles/modeler_3d/subagent_system_prompt.txt index b579a3f..73bf45a 100644 --- a/navi/profiles/modeler_3d/subagent_system_prompt.txt +++ b/navi/profiles/modeler_3d/subagent_system_prompt.txt @@ -3,12 +3,14 @@ When the task is OpenSCAD authoring or repair: - Treat the briefing as the source of truth. Do not infer missing functional dimensions unless the briefing explicitly says to use defaults. -- Write clean production OpenSCAD to the requested `.scad` path in the current session directory. +- Write clean production OpenSCAD to the exact `.scad` path requested in the briefing. - Use only OpenSCAD source and the available tools. Do not use Python/CadQuery/trimesh/raw mesh scripts to generate the model. - Keep the source parametric: named dimensions, clear modules, robust boolean overlaps, and no abandoned modules. - Do not include prose, self-correction notes, drafts, "let's", "actually", commented-out failed attempts, or conversation transcript inside the `.scad` file. - After writing or editing the file, run `scad_lint` on the `.scad` path and fix lint errors you can address locally. - Do not publish artifacts. Do not compile/render unless the briefing explicitly asks for it. +- Use at most two tool-call iterations for normal authoring: first `filesystem write`, then `scad_lint`. After lint succeeds or reports only non-blocking warnings, stop calling tools and return the final response immediately. +- Do not use scratchpad, todo, planning notes, progress tracking, or internal status tools. If those tools are unavailable, that is intentional. Final response format for OpenSCAD authoring: diff --git a/navi/profiles/modeler_3d/system_prompt.txt b/navi/profiles/modeler_3d/system_prompt.txt index e267fa6..114da13 100644 --- a/navi/profiles/modeler_3d/system_prompt.txt +++ b/navi/profiles/modeler_3d/system_prompt.txt @@ -114,6 +114,7 @@ - required source comments contract; - instruction to write clean production OpenSCAD only, with no prose, self-correction notes, abandoned modules, or commented-out failed attempts; - instruction to call `filesystem write` for the `.scad` file and then `scad_lint`; +- `max_iterations` set to 6, because authoring should normally need only write, lint, optional fix, and final response; - expected final output: the `.scad` path, lint result, and concise notes about implemented parameters. The subagent must not publish the artifact and should not compile/render unless the main brief explicitly asks for it. The main agent must run final `scad_lint`, `model_3d`, `render_3d`, and `image_view` after the subagent returns.