2.7 KiB
2.7 KiB
Specification: Saved System Prompt Presets
Overview
This feature introduces the ability to save, manage, and switch between system prompt presets for both global (application-wide) and project-specific contexts. Presets will include not only the system prompt text but also model-specific parameters like temperature and top_p, effectively allowing for "AI Profiles."
Functional Requirements
- Dedicated Storage:
- Global presets: Stored in a global
presets.tomlfile (located in the application configuration directory). - Project presets: Stored in a
project_presets.tomlfile within the project's root directory.
- Global presets: Stored in a global
- Preset Content:
name: A unique identifier for the preset.system_prompt: The text of the system prompt.temperature: (Optional) Model temperature setting.top_p: (Optional) Model top_p setting.max_output_tokens: (Optional) Maximum output tokens.
- Inheritance & Overriding:
- The UI will display a unified list of global and project-specific presets.
- If a project-specific preset has the same name as a global one, the project-specific version will override it.
- GUI Interactions:
- Settings Dropdown: A dropdown menu in the "AI Settings" (global) and "Project Settings" (per-project) panels for quick switching between presets.
- Preset Manager Modal: A dedicated modal accessible from the settings panels to create, edit, and delete presets.
- Auto-Loading: Switching a preset in the dropdown will immediately update the active system prompt and associated model parameters in the AI client configuration.
Non-Functional Requirements
- Persistence: All changes made in the Preset Manager must be immediately persisted to the corresponding
.tomlfile. - Validation: Ensure preset names are unique within their scope (global or project).
- Concurrency: Ensure safe file access if multiple windows or instances are open (though Manual Slop is primarily single-instance).
Acceptance Criteria
- Users can create a new global preset and see it in the dropdown across all projects.
- Users can create a project-specific preset that is only visible when that project is active.
- Overriding a global preset with a project-specific one (same name) correctly loads the project version.
- Changing a preset via the dropdown updates the active AI configuration (prompt, temperature, etc.).
- The Preset Manager modal allows for full CRUD (Create, Read, Update, Delete) operations on presets.
Out of Scope
- Support for other file formats (e.g., JSON, YAML) for presets.
- Presets for specific files or folders (scoped only to global or project level).
- Cloud syncing of presets.