chore(conductor): Add new track 'Agent Personas: Unified Profiles & Tool Presets'
This commit is contained in:
@@ -101,6 +101,10 @@ This file tracks all major tracks for the project. Each track has its own detail
|
|||||||
*Link: [./tracks/external_editor_integration_20260308/](./tracks/external_editor_integration_20260308/)*
|
*Link: [./tracks/external_editor_integration_20260308/](./tracks/external_editor_integration_20260308/)*
|
||||||
*Goal: Add support to open files modified by agents in external editors (10xNotepad/VSCode) for native diffing and manual editing during the tool approval flow.*
|
*Goal: Add support to open files modified by agents in external editors (10xNotepad/VSCode) for native diffing and manual editing during the tool approval flow.*
|
||||||
|
|
||||||
|
4. [ ] **Track: Agent Personas: Unified Profiles & Tool Presets**
|
||||||
|
*Link: [./tracks/agent_personas_20260309/](./tracks/agent_personas_20260309/)*
|
||||||
|
*Goal: Consolidate model settings, prompts, and tool presets into a unified "Persona" model with granular MMA assignment.*
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Model Providers
|
### Model Providers
|
||||||
|
|||||||
5
conductor/tracks/agent_personas_20260309/index.md
Normal file
5
conductor/tracks/agent_personas_20260309/index.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# Track agent_personas_20260309 Context
|
||||||
|
|
||||||
|
- [Specification](./spec.md)
|
||||||
|
- [Implementation Plan](./plan.md)
|
||||||
|
- [Metadata](./metadata.json)
|
||||||
8
conductor/tracks/agent_personas_20260309/metadata.json
Normal file
8
conductor/tracks/agent_personas_20260309/metadata.json
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"track_id": "agent_personas_20260309",
|
||||||
|
"type": "feature",
|
||||||
|
"status": "new",
|
||||||
|
"created_at": "2026-03-09T23:55:00Z",
|
||||||
|
"updated_at": "2026-03-09T23:55:00Z",
|
||||||
|
"description": "Agent Personas: Unified Profiles & Tool Presets consolidation."
|
||||||
|
}
|
||||||
28
conductor/tracks/agent_personas_20260309/plan.md
Normal file
28
conductor/tracks/agent_personas_20260309/plan.md
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# Implementation Plan: Agent Personas - Unified Profiles
|
||||||
|
|
||||||
|
## Phase 1: Core Model and Migration
|
||||||
|
- [ ] Task: Audit `src/models.py` and `src/app_controller.py` for all existing AI settings.
|
||||||
|
- [ ] Task: Write Tests: Verify the `Persona` dataclass can be serialized/deserialized to TOML.
|
||||||
|
- [ ] Task: Implement: Create the `Persona` model in `src/models.py` and implement the `PersonaManager` in `src/personas.py` (inheriting logic from `PresetManager`).
|
||||||
|
- [ ] Task: Implement: Create a migration utility to convert existing `active_preset` and system prompts into an "Initial Legacy" Persona.
|
||||||
|
- [ ] Task: Conductor - User Manual Verification 'Phase 1: Core Model and Migration' (Protocol in workflow.md)
|
||||||
|
|
||||||
|
## Phase 2: Granular MMA Integration
|
||||||
|
- [ ] Task: Write Tests: Verify that a `Ticket` or `Track` can hold a `persona_id` override.
|
||||||
|
- [ ] Task: Implement: Update the MMA internal state to support per-epic, per-track, and per-task Persona assignments.
|
||||||
|
- [ ] Task: Implement: Update the `WorkerContext` and `ConductorEngine` to resolve and apply the correct Persona before spawning an agent.
|
||||||
|
- [ ] Task: Implement: Add "Persona" metadata to the Tier Stream logs to visually confirm which profile is active.
|
||||||
|
- [ ] Task: Conductor - User Manual Verification 'Phase 2: Granular MMA Integration' (Protocol in workflow.md)
|
||||||
|
|
||||||
|
## Phase 3: Hybrid Persona UI
|
||||||
|
- [ ] Task: Write Tests: Verify that changing the Persona Selector updates the associated UI fields using `live_gui`.
|
||||||
|
- [ ] Task: Implement: Add the Persona Selector dropdown to the "AI Settings" panel.
|
||||||
|
- [ ] Task: Implement: Refactor the "Manage Presets" modal into a full "Persona Editor" supporting model sets and linked tool presets.
|
||||||
|
- [ ] Task: Implement: Add "Persona Override" controls to the Ticket editing panel in the MMA Dashboard.
|
||||||
|
- [ ] Task: Conductor - User Manual Verification 'Phase 3: Hybrid Persona UI' (Protocol in workflow.md)
|
||||||
|
|
||||||
|
## Phase 4: Integration and Advanced Logic
|
||||||
|
- [ ] Task: Implement: Logic for "Preferred Model Sets" (trying next model in set if provider returns specific errors).
|
||||||
|
- [ ] Task: Implement: "Linked Tool Preset" resolution (checking for the preset ID and applying its tool list to the agent session).
|
||||||
|
- [ ] Task: Final UI polish, tooltips, and documentation sync.
|
||||||
|
- [ ] Task: Conductor - User Manual Verification 'Phase 4: Integration and Advanced Logic' (Protocol in workflow.md)
|
||||||
33
conductor/tracks/agent_personas_20260309/spec.md
Normal file
33
conductor/tracks/agent_personas_20260309/spec.md
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# Specification: Agent Personas - Unified Profiles & Tool Presets
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
Transition the application from fragmented prompt and model settings to a **Unified Persona** model. A Persona consolidates Provider, Model (or a preferred set of models), Parameters (Temp, Top-P, etc.), Prompts (Global, Project, and MMA-specific components), and links to Tool Presets into a single, versionable entity.
|
||||||
|
|
||||||
|
## Functional Requirements
|
||||||
|
- **Persona Data Model:**
|
||||||
|
- **Scoped Inheritance:** Supports **Global** and **Project-Specific** personas. Project personas with matching names override global versions.
|
||||||
|
- **Configuration Sets:** A persona can define a single model/provider or a **Preferred Model Set** (allowing for fallback or quick toggling between compatible models like `gemini-3-flash` and `gemini-3.1-pro`).
|
||||||
|
- **Linked Tool Presets:** Personas reference external **Tool Presets** (to be implemented in a parallel track) to define agent capabilities.
|
||||||
|
- **Granular MMA Assignment:**
|
||||||
|
- **Tier 1 (Strategic):** Assigned at the per-epic level.
|
||||||
|
- **Tier 2 (Architectural):** Assigned at the per-track level.
|
||||||
|
- **Tier 3 (Execution):** Assigned at the per-task level, allowing for "Specialized Workers" (e.g., a "Security Specialist" worker for sensitive tasks).
|
||||||
|
- **Tier 4 (QA):** Selectable by Tier 2 or Tier 3 agents during their workflow.
|
||||||
|
- **Hybrid UI/UX:**
|
||||||
|
- **Persona Templates:** The AI Settings panel will retain granular controls (Provider, Model, Prompts) but add a primary **Persona Selector**.
|
||||||
|
- **Live Binding:** Selecting a persona populates all granular fields as a template. Users can then override specific values (e.g., swapping the model) without permanently modifying the persona.
|
||||||
|
- **Persona Editor Modal:** A dedicated high-density interface for managing the persona registry.
|
||||||
|
|
||||||
|
## Non-Functional Requirements
|
||||||
|
- **Extensibility:** The schema must be flexible enough to incorporate future "Agent Bias" and "Memory Tuning" parameters.
|
||||||
|
- **Backward Compatibility:** Existing `manual_slop.toml` files must be migrated or shimmed to ensure no loss of existing prompt settings.
|
||||||
|
|
||||||
|
## Acceptance Criteria
|
||||||
|
- [ ] A Persona can be saved, edited, and deleted in both Global and Project scopes.
|
||||||
|
- [ ] Selecting a Persona correctly updates the UI state for prompts and model parameters.
|
||||||
|
- [ ] MMA workers can be spawned with a specific Persona ID, verified via Tier Streams.
|
||||||
|
- [ ] The system handles "Linked Tool Presets" correctly, even if the linked preset is missing (graceful fallback).
|
||||||
|
|
||||||
|
## Out of Scope
|
||||||
|
- Implementing the "Tool Presets" themselves (this track only handles the *link* and integration).
|
||||||
|
- Multi-persona "Teams" (handled in future orchestration tracks).
|
||||||
Reference in New Issue
Block a user