|
designer_3d: the prompt gets rules for the tools it never named
The profile holds a shell, a code runner, file sharing, background tasks and the session's own bookkeeping, and its prompt named none of them: terminal, code_exec, share_file, tasks, notify, reflect, todo, plan, switch_profile, list_profiles, schedule_recall, manage_recall, list_tools, get_current_datetime, gmail and render_component all appeared zero times as tools — checked against config.json and tools/enabled.json, not by eye. A new section, "The rest of your toolbox", gives each one a rule. terminal and code_exec stay in the profile, since the owner reports real use for them, so the prompt has to say what they are for rather than leave them ungoverned: one working directory and nothing outside the session, no connections to the local network including from inside a script, install nothing and never a sudo, and the command allowlist named as a filter on the first word rather than a cage — reaching a forbidden command through bash -c, awk, sed, env, find -exec, a heredoc or a Python script is the same act and forbidden for the same reason. A refusal is the boundary working, not an obstacle to route around. They are also not a geometry tool: they may not produce the final STL and may not stand in for lint/compile/render. The rest get one line each — share_file only from the session directory, tasks as the lifecycle of background sub-agents, notify for what is worth interrupting for, memory and the recalls with secrets excluded, switch_profile as a move the user asks for and not a way to widen one's reach, gmail as Navi's own mailbox the user is addressed in, render_component as drawing in the chat and reaching nothing beyond it. docs/profiles.md records the section, and that assistant's prompt covers code work in its own "Code work" section instead. |
|---|
|
|
| docs/profiles.md |
|---|
| navi/profiles/designer_3d/system_prompt.txt |
|---|