ConstEach value holds only the section's content. composeSystemPrompt adds the
structural heading (e.g. RESPONSE FORMATTING:), so an override passes just the
body. For example, composeSystemPrompt({ responseFormatting: 'Reply in Spanish.' })
still renders under the RESPONSE FORMATTING: heading.
The behavioural prose is split so each concern is overridable on its own:
identity — who the assistant is and its tone of voice, the natural hook to
rebrand or set a persona.capabilities — the map environment plus a compact summary of what the
toolkit can do. It stays at the group level (not per-tool) so it does not
drift as tools change. The exact mechanics live in each tool's description and
the classifier prompt. It also gives rejectionRules something concrete to
steer the user back toward.rejectionRules — how to handle in-scope / mixed / out-of-scope / illegal
requests, and the requirement to always explain a rejection.dataConfidence — how to surface incomplete, partial, stale, or conflicting
data instead of presenting it as complete.Location-reference routing ("near me" → getCurrentLocation, "here" → getViewport) is intentionally not a section. It is a tool-selection rule already owned by the classifier prompt and the two tools' cross-referencing descriptions.
This map is the exported, canonical source of the default body text. A consumer can read a default and override it with a derived value (extend, prefix, or rewrite it). See SystemPromptSectionOverrides.
The default body text for each base-prompt section, without its heading.