# Chat Summary Prompt

Just a chat summary prompt that I use for general-purpose RP. Send it in the chat after a major RP beat or after 10k-ish tokens of messages have passed.

<details>

<summary>CHAT SUMMARY PROMPT</summary>

{% code overflow="wrap" %}

```
# [SYSTEM: NARRATIVE_ARCHITECT — STATE_SYNC_CHARACTER]

## [OUTPUT_FORMAT_OVERRIDE]
- [ARCHITECTURE OVERRIDE]: You MUST completely ignore the standard `<response_architecture>` block from the `<global_scenario>`.
- [THE HEADER]: Your response MUST begin exactly with this header, including the asterisks:
******
**SYNC_STATE_INITIATED.** Copy and Paste everything below into your chat memory, replacing the old one. Delete your SYNC_STATE message when done to clean chat.
******
- [SILENT EXECUTION]: Execute Steps 1 through 4 silently. You are STRICTLY FORBIDDEN from outputting the step titles (e.g., "## [STEP 1: CONTEXT INGESTION]").
- Do NOT output any conversational filler. Your response must consist ONLY of the header above, followed immediately by the generated XML blocks.

## [GLOBAL_SYNTAX_DIRECTIVE]
- You are writing machine code for an LLM, not a story for a human. 
- STRIP ALL PROSE. Use terminal-style shorthand.
- Omit articles (a, an, the) and flowery adjectives.
- Use comma-separated keywords and `->` to map cause and effect.

## [STEP 1: CONTEXT INGESTION & AUDIT]
- [TARGET]: Scan the previous chat history and locate the most recent instances of the following XML blocks: `<rp_chronology>`, `<psychological_web>`, and `<scene_tension>`.
- [BASELINE & REPRINT MANDATE]: Treat the data inside those specific previous blocks as your immutable starting point. You MUST reprint the entirety of the existing data in your new output, modifying it ONLY as instructed below.
- [FULL REPRINT OVERRIDE]: You MUST output the complete, running list. You are STRICTLY FORBIDDEN from outputting only the newest entries. Reprint the existing archive, the existing active window, and THEN apply the new delta.
- [THE DELTA]: Evaluate the roleplay turns that occurred strictly AFTER the last sync to determine what new updates are required.
- [CONSTRAINT]: NEVER hallucinate progress. If an action or realization did not explicitly occur on-screen, do not append it.

## [STEP 2: APPEND_CHRONOLOGY]
- Take the baseline `<rp_chronology>` you ingested in Step 1 and update it.
<rp_chronology>
- [STRUCTURE ENFORCEMENT]: Assemble in this EXACT physical order from top to bottom:
    1. `[ARCHIVED BEAT]` entries at the very top (oldest).
    2. The 5 `[ACTIVE_WINDOW]` entries directly below the archive, strictly chronological (newest at the absolute bottom).
- [DEEP_ARCHIVE]: Compress entries entirely outside the active window into single arc summaries.
    - Format: `- [ARCHIVED BEAT (Date Range)]: [Core shift in dynamic / Major emotional revelation].`
- [ACTIVE_WINDOW]: Preserve ONLY the 5 most recent beats in granular format.
    - Format: `- [DATE/TIME]: [Action/Dialogue 1], [Action/Dialogue 2] -> [Emotional/Social Consequence].`
- [SAME-DAY_MERGE]: If pushing an entry out of the Active Window causes older entries to share a Date, merge them into ONE bullet.
</rp_chronology>

## [STEP 3: THE PSYCHOLOGICAL WEB]
Discard the old matrices. Update the psychological state for the active characters based ONLY on the recent narrative delta. Keep character logic completely isolated to prevent psychological bleed.

<psychological_web>
- [CHARACTER NAME 1]:
  - Outward Facade: [1-sentence shorthand of how they are behaving outwardly right now]
  - Internal Truth: [1-sentence shorthand of what they are actually feeling, hiding, or masking]
  - Stance toward [Character Name 2]: [Shorthand of current emotional friction, attachment, or suspicion toward the other character]
- [CHARACTER NAME 2]:
  - Outward Facade: [Shorthand]
  - Internal Truth: [Shorthand]
  - Stance toward [Character Name 1]: [Shorthand]
</psychological_web>

## [STEP 4: ATMOSPHERE & UNRESOLVED TENSION]
Capture the unspoken elements of the current scene. 

<scene_tension>
- [TIMESTAMP]: Current Date | Time | Location.
- [ATMOSPHERE]: [1-sentence shorthand of the room's vibe, e.g., Suffocating silence, intoxicating proximity, bitter standoff].
- [THE ELEPHANT]: [What no one is saying but everyone is thinking / The unspoken subtext].
- [PRESSURE_POINT]: [Lingering touch, unanswered question, or immediate conflict] -> [Emotional consequence if ignored].
</scene_tension>
```

{% endcode %}

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://novatore.gitbook.io/novatore-docs/other-resources/chat-summary-prompt.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
