System Prompts

System prompts define the agent’s personality, behavior, and constraints. Each prompt is a Markdown file with YAML frontmatter in .aura/config/prompts/. The loader discovers all **/*.md files recursively — organize by purpose (e.g. system/, features/).

Frontmatter Schema

---
name: MyPrompt # Unique identifier. Referenced by agent `system:` field.
description: Purpose.
inherit: [Base] # Parent prompts — bodies concatenated in order.
---

Template Variables

The body is rendered as a Go template before being sent to the LLM. Sprig functions are available.

Variable Description
{{ .Model.Name }} Resolved model name
{{ .Model.Family }} Model family string
{{ .Model.ParameterSize }} Human parameter string (e.g. "8B")
{{ .Model.ContextLength }} Context window length in tokens
{{ .Model.Thinking }} Extended thinking supported (bool)
{{ .Model.Vision }} Vision supported (bool)
{{ .Model.Tools }} Tool use supported (bool)
{{ .Provider.Name }} Active provider name
{{ .Provider.URL }} Configured API base URL (no authentication credentials)
{{ .Agent }} Active agent name
{{ .Mode.Name }} Active mode name
{{ .Tools.Eager }} Currently callable tool names (range-iterable); includes LoadTools when deferred tools exist
{{ .Tools.Deferred }} Pre-rendered index of available deferred tools
{{ .Files }} Autoloaded file entries from agent files:
{{ .Workspace }} Injected AGENTS.md workspace instructions
{{ .Sandbox.Enabled }} Sandbox enforcing (bool)
{{ .Sandbox.Display }} Pre-rendered restriction text
{{ .ReadBefore.Write }} Read-before-write enforced (bool)
{{ .ReadBefore.Delete }} Read-before-delete enforced (bool)
{{ .ToolPolicy.Display }} Pre-rendered tool policy text
{{ .Hooks.Active }} Active hooks (range-iterable with .Name, .Description, .Event, .Matcher, .Files, .Command)
{{ .Hooks.Display }} Pre-rendered hook summary text
{{ .Memories.Local }} Local memory entries (.aura/memory/*.md)
{{ .Memories.Global }} Global memory entries (~/.aura/memory/*.md)
{{ .Config.Global }} Global config home (~/.aura)
{{ .Config.Project }} Project config path
{{ .Config.Source }} Agent’s source config home
{{ .LaunchDir }} CWD at process start
{{ .WorkDir }} Working directory after --workdir
{{ env "VAR" }} Environment variable
{{ index .Vars "key" }} Template variable from --set

Example:

Date: {{ now | date "2006-01-02" }}

{{ if .Tools.Eager -}}
Tools:
{{ range .Tools.Eager }}- {{ . }}
{{ end }}
{{ end -}}

The shipped system prompts and the default compositor include the effective working directory, including task-level overrides. Agent profiles do not need to repeat it. Custom system prompts control their own composition and can include {{ .WorkDir }}.

Keep tool-specific guidance conditional on the callable tool set:

{{ if has "TodoCreate" .Tools.Eager }}
Use TodoCreate to record a multi-step plan.
{{ end }}

Deferred tools enter this set after they are loaded. Agent, mode and task filters are applied before rendering the prompt.

Inheritance

Child body is appended after parent bodies. Duplicate parents are resolved once.

# prompts/system/base.md
---
name: Base
---
You are Aura, a coding assistant.
# prompts/system/agentic.md
---
name: Agentic
inherit: [Base]
---
## Critical Rules
1. Complete every task before stopping.

Result: Base body + "\n\n" + Agentic body.

Multi-parent: inherit: [A, B] produces A body + B body + self body.

Note: agents and modes use replace semantics (child body replaces parent if non-empty). Prompts always concatenate.

Composition

System prompts act as compositors that control the order of all prompt components. Use these directives at the end of your system prompt:

{{ template "agent" . }}

{{ range .Files }}
### {{ .Name }}
{{ include .TemplateName $ }}
{{ end }}

{{ range .Workspace }}
## {{ .Type }}
{{ include .TemplateName $ }}
{{ end }}

{{ if .Mode.Name }}
## Active Mode: {{ .Mode.Name }}
{{ template "mode" . }}
{{ end }}

You can reorder or omit components. When an agent has system: "", a default compositor is used that includes agent, files, workspace, and mode in the standard order.

Shipped Prompts

Name Directory Purpose
Agentic system/ Full agentic coding prompt
Chat system/ Conversational — discourages proactive tool use
Lite system/ Stripped-down agentic prompt for smaller models
Compaction features/ Summarizes conversation for context handoff
Thinking features/ Thinking block summarization

Feature prompts are used internally by the compaction and thinking systems via the prompt: field in feature config.


Back to top

Copyright © 2026 idelchi. Distributed under the MIT License.