Repository navigation
Prompt Variants
This page gives the system prompt variants of dotclaude 1.0.0. Read it to learn which prompt each model gets, and how the prompt size is bounded. It gives the model of each variant, the verification line of each subagent block, and the size bounds of the first request. It also gives the gap in the compact prompt. Source labels are in Home. The rules that every model shares are on the page prompt surface.
The prompt slice holds one variant for each model family.
The source is src/plugins/dotclaude/slices/prompt/domain/variants.ts.
| Variant | Model | Model notes | Verification line in the subagent block |
|---|---|---|---|
opus |
Opus 5.5 | One sentence before the first tool call, and updates only for new findings | off |
sonnet |
Sonnet 5.5 | none | on |
haiku |
Haiku 5.5 | Finish each step before the next one | on |
fable |
Fable 5.1, and Mythos 5.1 | Notes of the guide of Fable 5.1 | off |
- A variant holds the text of one model only.
- Each variant has at most one
<model_notes>section. Sonnet 5.5 has none. - The shared
verificationanddoing_taskssections hold the rules for the main session. No variant repeats them. - A model id that contains
mythosgets thefablevariant. The mapping is insrc/plugins/dotclaude/slices/prompt/domain/apply.ts. - The variant of each model is set in
VARIANTS, in the same file.
- The
prompt.composehook chooses the variant at the first compose of a session. It keeps that variant. The code is insrc/plugins/dotclaude/slices/prompt/adapters/mod.ts. - A model switch with
/modeldoes not change the prompt bytes. A changed system prompt would break the prompt cache. - A subagent uses its agent body as its system prompt.
The
agent.spawnhook adds a short block of the model notes to the end of the task prompt, one time. The block of each model is inVARIANTS. - The block of a subagent carries the block line and the evidence line. The block line says that a failing check, a lint rule, a test, a bound, and a hook each stop the work. The evidence line asks for a new check before Claude undoes finished work because of a claim of fault.
The first request has a token bound, START_TOKENS (9,960 tokens) in tools/limits.ts.
tools/measure.ts passes it to dotclaude-start as --bound.
The text of the first request, with no tool schemas, has two targets in tools/limits.ts.
-
FIRST_REQUEST_LOW_BYTESis 8 KB. -
FIRST_REQUEST_HIGH_BYTESis 16 KB.
just measure runs tools/measure.ts, which reads both bounds.
A size above the high bound fails the check.
A size below the low bound is reported.
In this page, 1 KB is 1,024 bytes.
The prompt.compose and prompt.section hooks do not reach the compact prompt of Claude Code.
The settings snippet limits compaction instead.
The snippet sets DISABLE_COMPACT to 1.
It also sets autoCompactEnabled to false.
The session then stops at the context limit.
The user starts a fresh session with /clear.
- Evidence: the index of the evidence pages and their source files.
- Start
- How dotclaude Works
- Add-On Plugins
- How Claude Code Works
- Reference
- Rationale
- Evidence
- Development
- Archive