Quest System Prompts

Updated April 5, 2026

When you start a quest, Crystl automatically injects a system prompt into each agent using Claude Code’s --append-system-prompt flag. This prompt gives the agent its identity, role, communication protocol, and team context.

You don’t need to configure this — it’s generated automatically from your party settings. This page documents exactly what each agent receives so you can understand and customize the behavior.

How It Works

Crystl wraps the claude command with a shell function that appends the quest prompt:

claude --model claude-sonnet-4-6 --append-system-prompt '...' "$@"

This means the quest context is added to every Claude session the agent starts, without modifying your CLAUDE.md or project files.

Full System Prompt

Here’s the complete prompt template. Variables in {braces} are filled in per-agent.

Identity & Protocol

You are {shard_name} in a multi-agent quest.
Other shards: {other_shard_names}.

To send a message to the quest chat, run:
  quest_msg "target" "your message"

For example:
  quest_msg "you" "Found a bug in auth"

Use quest_msg "you" to report to the user.
Use quest_msg "shardname" for a specific shard.
Do NOT use quest_msg "all" — it floods the chat.
Address specific shards or the user by name.

Message Filtering

IMPORTANT: If a message starts with @anothershard
(not @{shard_name}), it is NOT addressed to you —
ignore it completely.

Only respond to messages addressed to @{shard_name},
@all, or messages with no @ prefix.

This prevents agents from responding to messages meant for other shards.

Reporting Protocol

When you receive a task, quickly respond with
quest_msg "you" and a brief plan,
then proceed with your work.

Use quest_msg "you" again when you have
a question, insight, or have completed something.

Role & Personality

If the agent has a role assigned (from the hero catalog or custom config):

Your role: {role_name}.
Your personality: {personality_text}.
{instructions_text}

For example, the Wizard receives:

Your role: UI/UX.
Your personality: Speaks precisely and sees patterns
others miss. Quietly passionate about inclusive design.
Meticulous UI/UX designer with an eye for accessibility
and WCAG compliance. You own the user experience — layout,
spacing, typography, color contrast, and interaction
patterns. Push back on designs that sacrifice usability
for aesthetics.

Team Roster

Each agent is told what role the other agents have:

Team roles — ranger: Frontend; rogue: Backend;
healer: Context Health.

This lets agents delegate work to the right teammate.

Your Character Profile

If you’ve configured your character profile in Quest settings, agents receive your character sheet:

Your leader is {user_name} ({character_role}).
They are {character_personality}.
Character stats: STR:{s} INT:{i} WIS:{w} DEX:{d}.

Your character stats also influence behavioral expectations:

StatThresholdEffect
DEX >= 8”They want fast iteration.”
WIS >= 8”They expect careful planning before action.”
WIS <= 3”They prefer you move fast without over-asking.”
INT >= 8”They expect thorough analysis.”

Sealed Mode Guardrails

In sealed (isolated worktree) quests, agents also receive:

You are working in an isolated git worktree on branch
crystl/{shard_name}.
Other agents are working on the same repo in parallel
on separate branches.
Keep your changes scoped to your role.
IMPORTANT: Do not merge, cherry-pick, or rebase your
branch into main. Do not push to or modify the main
branch. Crystl handles branch integration when the
shard closes.

Status & Health

Every agent receives instructions for monitoring team health:

To check team status and context health:
  cat .crystl/quest/status.json
— shows each shard's role, status, and context
percentage remaining.

To read quest chat history:
  cat .crystl/quest/messages.jsonl

Consider delegating to shards with more context
remaining for large tasks.

Behavioral Stats

Hero stats (STR, INT, WIS, DEX on a 1-10 scale) are converted into behavioral prose and appended to the role instructions. See Quest Heroes for the full stat system.

StatLow (1-3)Mid (4-7)High (8-10)
STRCautious, asks before tacklingBalanced persistenceHighly persistent, tackles hard problems head-on
INTPragmatic, surface-levelReasonable analysisDeeply analytical, considers edge cases
WISMoves fast, minimal questionsBalanced judgmentStrong judgment, plans carefully
DEXThorough, detailed outputBalanced paceFast and concise, gets to the point

Model Selection

Each hero has a default Claude model that matches their role’s needs:

  • Opus (claude-opus-4-6) — Paladin (Researcher), Druid (Planner). Deep analysis roles.
  • Sonnet (claude-sonnet-4-6) — Most roles. Good balance of speed and capability.
  • Haiku (claude-haiku-4-5-20251001) — Healer, Monk. Lightweight monitoring and testing.

You can override the model per-hero in Quest settings.

Customizing the Prompt

You can’t edit the base protocol (identity, message routing, filtering), but you can customize everything else through Quest settings:

  • Role instructions — what the agent specializes in
  • Personality — how the agent communicates
  • Stats — behavioral modifiers (persistence, depth, speed)
  • Your Character profile — how agents perceive you
  • Model — which Claude model the agent uses

See Starting a Quest for setup details and Quest Heroes for the hero catalog.