Files
manual_slop/conductor/tracks/saved_presets_20260308/spec.md

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.toml file (located in the application configuration directory).
    • Project presets: Stored in a project_presets.toml file within the project's root directory.
  • 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 .toml file.
  • 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.