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 }} Active provider name
{{ .Agent }} Active agent name
{{ .Mode.Name }} Active mode name
{{ .Tools.Eager }} Resolved eager tool names (range-iterable)
{{ .Tools.Deferred }} XML block listing 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 -}}

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.