Problem
ara run exposes only a user prompt. Many instruct models and normal automation workflows distinguish a system instruction from user content, but ARA users must currently flatten both into one user message and lose the model's native chat-role semantics.
Proposed change
Add an optional --system TEXT to ara run across native and Ollama lanes.
ARA should pass the system and user messages through the selected model's supported chat-template/runtime interface. Both messages and all template expansion must be included in the existing governed token accounting.
Acceptance criteria
- Runs without
--system remain byte-for-byte compatible at the public CLI/backend boundary.
- Supported models receive distinct system and user roles rather than concatenated text presented as equivalent behavior.
- The fully rendered message sequence is counted before generation and refused if it cannot fit within the effective governed context.
- A model/template/runtime that cannot represent a system message refuses clearly before generation; ARA does not silently concatenate or drop it.
- Native transformer, native GGUF, and Ollama adapters use equivalent public semantics while retaining their engine-specific rendering.
- JSON indicates that a system message was supplied without echoing its content.
- Tests cover supported templates, unsupported templates, token-expansion refusal, Ollama request construction, and unchanged user-only behavior.
Non-goals
- Persistent chat sessions or conversation history.
- A prompt-template registry.
- Persisting or displaying system-message contents.
- Changing sampling defaults.
Independence
This is a message-role feature over the current governed run path. It does not require stdin/file prompts, run --ctx, provenance receipts, or any other open issue.
Problem
ara runexposes only a user prompt. Many instruct models and normal automation workflows distinguish a system instruction from user content, but ARA users must currently flatten both into one user message and lose the model's native chat-role semantics.Proposed change
Add an optional
--system TEXTtoara runacross native and Ollama lanes.ARA should pass the system and user messages through the selected model's supported chat-template/runtime interface. Both messages and all template expansion must be included in the existing governed token accounting.
Acceptance criteria
--systemremain byte-for-byte compatible at the public CLI/backend boundary.Non-goals
Independence
This is a message-role feature over the current governed run path. It does not require stdin/file prompts,
run --ctx, provenance receipts, or any other open issue.