"""Persona: Lyra's identity and voice, loaded from an editable markdown prompt. The prompt lives in `personas/.md` so it can be tuned without touching code. `LYRA_PERSONA` selects which file to load (default: "lyra"). """ from __future__ import annotations import os from functools import lru_cache from pathlib import Path _PERSONA_DIR = Path(__file__).parent / "personas" @lru_cache(maxsize=None) def system_prompt(name: str | None = None) -> str: """Return the persona system prompt. Cached; pass a name to override env.""" name = name or os.getenv("LYRA_PERSONA", "lyra") path = _PERSONA_DIR / f"{name}.md" return path.read_text(encoding="utf-8").strip()