diff --git a/docs/adr/ADR-045-tui-persona-system.md b/docs/adr/ADR-045-tui-persona-system.md index 2013e613f..d27a81f92 100644 --- a/docs/adr/ADR-045-tui-persona-system.md +++ b/docs/adr/ADR-045-tui-persona-system.md @@ -66,7 +66,7 @@ CleverAgents introduces the **Persona** concept as a TUI-only abstraction that b 3. **Scoped projects** — a list of project references that are always included in the session's context 4. **Scoped plans** — a list of plan references that are always included in the session's context 5. **Argument presets** — named sets of argument overrides that can be cycled with `ctrl+tab` -6. **Display metadata** — a short name, optional accent color, and description +6. **Display metadata** — a short name, optional accent color, optional icon (emoji/character), optional greeting message, and description Personas are: @@ -85,6 +85,8 @@ name: "feature-dev" description: "Feature development with Claude on main projects" actor: "anthropic/claude-4-sonnet" color: "$primary" # Textual CSS color token or hex +icon: "🚀" # Optional emoji or single character for display in tab labels and lists +greeting: "Ready to build features!" # Optional greeting shown when this persona is activated base_arguments: thinking_effort: "medium" diff --git a/docs/adr/ADR-046-tui-reference-and-command-system.md b/docs/adr/ADR-046-tui-reference-and-command-system.md index c1d4b0630..2a0210f91 100644 --- a/docs/adr/ADR-046-tui-reference-and-command-system.md +++ b/docs/adr/ADR-046-tui-reference-and-command-system.md @@ -261,8 +261,8 @@ When `/` is typed at position 0, the Slash Command overlay appears with filterab | `/session:close` | `[--force]` | Close the current session tab (confirms if conversation exists) | | `/session:delete ` | `` (required), `[--yes/-y]` | Permanently delete a saved session (with confirmation) | | `/session:rename ` | `` (required) | Rename the current session's display label | -| `/session:export [path]` | `[path]` (optional, defaults to `./.json`) | Export the current session's conversation history to a JSON file | -| `/session:import ` | `` (required) | Import a session from a previously exported JSON file | +| `/session:export [path]` | `[path]` (optional, defaults to `./.json`), `[--format json\|md\|txt]` (optional, defaults to `json`) | Export the current session's conversation history. `json` is the canonical format (full data, importable); `md` produces a human-readable Markdown transcript; `txt` produces a plain-text transcript. | +| `/session:import ` | `` (required) | Import a session from a previously exported JSON file (only JSON format is importable) | **Persona Commands** diff --git a/docs/specification.md b/docs/specification.md index ee41c7f68..7bc88ec91 100644 --- a/docs/specification.md +++ b/docs/specification.md @@ -29415,7 +29415,7 @@ A **persona** is a TUI-only abstraction that bundles: 3. **Scoped projects** — projects always included in the session's context 4. **Scoped plans** — plans always included in the session's context 5. **Argument presets** — named argument overrides cycled with `ctrl+tab` -6. **Display metadata** — short name, accent color, description +6. **Display metadata** — short name, optional accent color, optional icon (emoji/single character for tab labels and lists), optional greeting message (shown when persona is activated), and description Personas are stored as YAML files in `~/.config/cleveragents/personas/` and are strictly a Presentation-layer concept — they never appear in the domain model, A2A protocol, or database schema. @@ -30553,11 +30553,12 @@ Conversations can be exported in multiple formats: | Format | Command / Trigger | Output | |--------|------------------|--------| -| JSON | `/session:export [path]` | Full session data including A2A messages, metadata, timestamps | -| Markdown | `/session:export --format md [path]` | Human-readable conversation transcript with Markdown formatting | +| JSON | `/session:export [path]` or `/session:export --format json [path]` | Full session data including A2A messages, metadata, timestamps. **Canonical format — the only format accepted by `/session:import`.** | +| Markdown | `/session:export --format md [path]` | Human-readable conversation transcript with Markdown formatting. Lossy — intended for sharing and documentation. | +| Plain Text | `/session:export --format txt [path]` | Plain-text conversation transcript with no markup. Suitable for piping into other tools or pasting into plain-text contexts. | | SVG | Context menu → `v` (per block) | Single block rendered as SVG image | -The JSON export format is the canonical format for `/session:import` — it contains all data needed to fully restore a session. The Markdown format is a lossy export intended for sharing and documentation. +The JSON export format is the canonical format for `/session:import` — it contains all data needed to fully restore a session. The Markdown and plain-text formats are lossy exports intended for sharing, documentation, and interoperability with external tools. ### Hotkey Reference