Skip to content

feat: dynamic system prompts — configurable per-repo context and personas #78

@dimakis

Description

@dimakis

Problem

The system prompt is a hardcoded string in chat.ts. Every repo, session, and model gets identical instructions — no context tailoring, no learning loop from memory observations, no prompt experimentation across models.

Proposed Solution

A design spec has been merged at docs/features/dynamic-system-prompts.md that outlines a three-layer prompt stack:

  1. Global defaults (prompts/defaults.md) — HITL governance, mobile UX, project context reading
  2. Per-repo context (.mitzo.json prompt section) — repo-specific rules, context, available personas
  3. Per-session persona — user-selectable instruction sets (manager, architect, builder, etc.)

Three prompt modes (preset/hybrid/custom) and prompt logging to JSONL for future experimentation.

Implementation Phases

  1. Foundation — prompt.ts, defaults.md, replace hardcoded string
  2. Repo context — extend .mitzo.json, wire into assembler
  3. Personas — UI chips, session metadata
  4. Custom mode — tool-essentials.md, mode toggle, prompt preview
  5. Prompt Lab — separate analysis project (future)

See the full spec for details: docs/features/dynamic-system-prompts.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions