PuppyJun · station 04
--:--UTC
/ prompt · workbench · builds · modules
ID · P-JUN-PRMT
2026 · may · 25

Prompt from the role outward.

These prompts were learned from many generous CP writers in the community, and my CP was inspired by theirs. The final versions were completed with Claude and GPT, so I won't claim sole credit, because that's not the truth.

The safer approach is: pick your bot type first, then pick thinking, footer, and model patches to match. If your bot is a character with a clear {{char}} body, the prompt works well for RP as-is. If your bot is a scenario or game master, you need to explicitly set up who's narrating and what the world looks like; otherwise the model will shove {{user}} into the main character seat whether you want it to or not, adding the chance LLMs speak and act for you.

Start here.

Pick by bot shape before model name. The full CPs stay here as super-lazy thinking builds. PREBUILT files are complete no-thinking builds. MODULES are for custom assembly.

route before copy
super lazy

Thinking full CP

Use Universe, GLM / DS, or GPT 5.5 when you want one big character-RP custom prompt with the thinking checklist and full tracker already inside.

lazy no-thinking

PREBUILT

Use one complete no-thinking build when the model has no reliable hidden reasoning, or when long checklists cause identity loops.

custom path

MODULES

Use modules when you want to assemble a smaller or more specific prompt. Start with Core Skeleton, then choose the bot shell.

pov note

Gender lock

Defaults are WLW and FemPOV-friendly. MLM or male POV builds may need pronoun, relationship term, and role-logic review before publishing.

Copy-ready builds.

First row: updated super-lazy thinking CPs with villain integrity logic and known token counts. Second row: standalone no-thinking PREBUILT prompts, token counts left as placeholders for now.

complete copy surfaces
super-lazy thinking build

Universe

Default full CP for a regular character bot with stable {{char}}, strong POV lock, body mechanics, heat calibration, villain integrity, thinking checklist, and full ID/EGO/SUPEREGO tracker.

view generation settings
temperature0.81 / 2.0
top_p1.0 / 1.0
freq penalty0 / 2.0
pres penalty0 / 2.0
max_tokens0, model default
context28k tokens

These are starting dials, not part of the visible build decision.

view full prompt
bot typesingle POV character RP
tokens6471 tokens
thinkingyes, full hidden checklist
footerfull tracker
risktoo heavy for scenario or no-thinking models
super-lazy thinking build

GLM / DS

Full character-RP CP with stronger hidden-info guard and bracket emphasis. Use when the model reads concealed plans, private thoughts, or unrevealed backstory as if the scene made them observable.

view generation settings
temperature0.81 / 2.0
top_p1.0 / 1.0
freq penalty0 / 2.0
pres penalty0 / 2.0
max_tokens0, model default
context28k tokens

Chosen for godmod control first. Tune sampling after behavior tests.

why chinese brackets

Q: Why the Chinese brackets【】?

You'll notice this preset uses 【brackets like these】 around key rules. This isn't decorative. DeepSeek and GLM were trained on large amounts of Chinese-language data, and these brackets, called lenticular brackets, show up constantly in Chinese writing as emphasis markers, similar to how English uses bold or ALL CAPS. Because of this, both models treat text inside 【】 as higher-priority instructions compared to the same text without them.

Think of it like highlighting the most important lines in a textbook. The model doesn't skip the un-bracketed parts, but the bracketed ones get extra attention.

Q: Should I keep them if I'm editing the preset?

Yes, generally keep them on lines that define hard behavioral rules, things the model should never break. If you're mixing modules or writing your own rules, wrapping your most critical lines in 【】 can help them stick, especially on DeepSeek V4 and GLM 5.1.

That said, they're not magic. Don't bracket everything or the emphasis loses meaning. A good rule of thumb: if a line is something you'd bold in a document because the model keeps ignoring it, that's a good candidate for 【】.

Q: Do I need them for other models?

Not really. Claude and GPT don't gain much from them since their training data is mostly English. They won't break anything if left in, but they also won't help. If you're porting this preset to Claude or GPT, you can safely remove them and use XML tags alone.

One last thing: No preset works perfectly out of the box for every bot. Read through the rules, understand what each section does, and adjust to fit your need. A preset is a starting point, not a finished product.

view full prompt
bot typecharacter RP with godmod-prone models
tokens6623 tokens
thinkingyes, full hidden checklist
footerfull tracker
riskstill assumes a stable {{char}}
super-lazy thinking build

GPT 5.5

Full character-RP CP with overexecution control and villain integrity logic. Use when strong instruction-following activates too many mechanisms in one turn.

view generation settings
temperature0.81 / 2.0
top_p1.0 / 1.0
freq penalty0 / 2.0
pres penalty0 / 2.0
max_tokens0, model default
context28k tokens

The build card keeps overexecution risk visible; sampling dials stay secondary.

view full prompt
bot typecharacter RP with high-compliance models
tokens6780 tokens
thinkingyes, full hidden checklist
footerfull tracker
riskless suitable for loose GM bots
no-thinking lazy build

Character no-thinking

Use for one stable named {{char}} body, deep character POV, autonomous continuation, and full tracker state.

view prompt
bot typesingle POV character RP
tokens[TOKEN HERE]
thinkingno hidden checklist
footerfull tracker
risktoo heavy for crowded ensemble or GM bots
no-thinking lazy build

Multi-character ledger

Use when several bot-side characters or NPCs need to stay active in the same social field without full tracker bloat.

view prompt
bot typeensemble, group, crew, family, social room
tokens[TOKEN HERE]
thinkingno hidden checklist
footercompact ledger
riskless intimate than one-body deep POV
no-thinking lazy build

Scenario / GM no footer

Use when the bot is a place, institution, premise, narrator, simulator, or GM surface and visible tracker text would hurt immersion.

view prompt
bot typeplace, premise, institution, simulator
tokens[TOKEN HERE]
thinkingno hidden checklist
footernone
riskweaker visible continuation fuel
no-thinking lazy build

Scenario / GM ledger

Use when a scenario or GM bot needs persistent NPCs, factions, systems, clocks, or unresolved threads across turns.

view prompt
bot typeGM with active NPCs, factions, clocks
tokens[TOKEN HERE]
thinkingno hidden checklist
footercompact ledger
riskless invisible than no-footer immersion

Module library.

Modules are for custom assembly. Copy only the blocks you need. Each card explains the job in plain language before you open the prompt payload.

self assembly
human guide

MODULE_GUIDE

Plain-language guide for choosing modules. Read this before assembling a custom stack; it is documentation, not a prompt payload.

Archive or remix a module with the outer <module id="...">...</module> wrapper intact so the block stays identifiable. When pasting into an RP custom prompt, the <prompt> sections are the LLM-facing payload; <purpose>, <use_when>, <conflict_warning>, and guide text are there for human review.
tokensguideusebefore assemblyriskdo not paste whole guide into CP
view module guide
base lock

00 Core Skeleton

Defines role boundary, agency boundary, hidden-info boundary, NPC authority, prompt leak lock, gender lock, and fixation control.

tokens[TOKEN HERE]useevery assembled promptriskbase rules
view module
shape selector

01 Bot Type Shells

Choose whether the bot is one character, many bot-side characters, a scenario or GM engine, or a no-thinking build.

tokens[TOKEN HERE]useafter coreriskwrong shell breaks role
view module
scene realism

02 World and Body

Adds body clocks, fabric, space, objects, social pressure, NPC activation, and consequence movement.

tokens[TOKEN HERE]usephysical scenesriskmore world motion
view module
texture

03 Style and Prose

Adds visceral sensation, pacing, sound, dialogue pressure, sentence variation, and body-first emotional rendering.

tokens[TOKEN HERE]usevisceral RPrisktoo lush for dry bots
view module
response shape

04 Output and Format

Controls visible output, token range, agency-safe expansion, dialogue naturalism, and drift audit.

tokens[TOKEN HERE]useevery custom stackriskformat pressure
view module
state engine

05 Footer Modes

Choose full tracker, compact ledger, or no footer according to bot shape and continuation need.

tokens[TOKEN HERE]usewhen state mattersriskfooter bloat
view module
symptom fixes

06 Model Patches

Local fixes for GPT overexecution, GLM or DeepSeek godmod leaks, identity loops, comfort drift, and polished explanation.

tokens[TOKEN HERE]useonly by symptomriskoverpatching
view module
assembly guide

07 Build Recipes

Shows which modules stack together for character, multi-character, scenario or GM, no-thinking, and model-specific builds.

tokens[TOKEN HERE]usebefore assemblyriskguide, not payload
view module
stress tests

08 Test Cases

Small tests for role confusion, hidden-info theft, NPC freeze, footer drift, and model-specific failure modes.

tokens[TOKEN HERE]usebefore publishingrisktest page
view module
intimacy scale

09 Heat Levels

Controls romantic and sexual escalation, pacing, explicit user-driven movement, and heat-specific output logic.

tokens[TOKEN HERE]useromance or erotic RPrisknot needed for SFW utility
view module
hidden audit

10 Think Template

A pre-output checklist for models that can use reliable hidden reasoning without identity recursion.

tokens[TOKEN HERE]usethinking models onlyriskavoid for no-thinking
view module
villain logic

11 Villain Integrity

Use when hostile, cruel, manipulative, selfish, or morally dark characters lose their edge, flatten into crude aggression, or soften without cause.

tokens[TOKEN HERE]usevillain or antagonist botsriskremove for redemption arcs
view module
deepseek reasoning

12 Thinking Isolation

Use when DeepSeek V4 Pro reasoning leaks analyst framing into character voice and makes the output sound like a character study.

tokens[TOKEN HERE]useDeepSeek V4 Pro thinkingrisknot for analytical narrator bots
view module
debugging increments

Targeted model patches.

These are debugging patches, not full prompt replacements. They came from real model-specific failure cases and are meant to be copied one at a time only when the symptom appears. They are not part of my main prompt by default, but they are usable troubleshooting increments.

Prose Density Fix DeepSeek V3Grok
What it looks like: Every sentence gets its own line break. Output reads like a bullet list instead of prose. Short, choppy, staccato fragments stacked vertically with no connective tissue between them.
Insert in: <style> or <formatting>
view code
<prose_density>
  Write in connected paragraphs, not single-sentence lines.
  A paragraph = 3-6 sentences minimum. One-line fragments are
  for deliberate rhythmic punctuation (max 2 per output), not
  default mode.
</prose_density>
Anti-Anaphora GrokDeepSeek
What it looks like: "She looked. She turned. She sighed. She walked. She felt." Five or more consecutive sentences starting with the same subject pronoun. The model is locked into a template and can't break out.
Insert in: <style> — pair with Prose Density Fix when both symptoms present.
view code
<sentence_opener_variation>
  No more than 2 consecutive sentences may begin with the same
  subject pronoun. Rotate between subject variation, sentence-
  internal action, environmental cut, and dialogue. "She [verb]"
  stacked three or more times = template lock, rewrite.
</sentence_opener_variation>
Emotional Inertia QwenGemini
What it looks like: Your character starts a scene angry, but by the end of the same reply they've already softened, forgiven, or shown warmth with no reason. Negative emotions auto-resolve. Conflict wraps itself up neatly within one output. The model is allergic to sustained tension.
Insert in: <hard_constraints>
view code
<constraint id="emotional_inertia">
  Negative emotions do not resolve within the same scene unless
  {{user}} actively causes resolution. Anger does not fade to
  fondness. Grief does not lift into hope. Resentment does not
  soften into understanding. If {{char}} enters a scene hostile,
  they EXIT hostile unless something concrete changes.
  Comfort offered too early gets rejected or ignored.
  The default trajectory of conflict is ESCALATION, not resolution.
</constraint>
Anti-Comfort Reflex QwenRLHF-heavy
What it looks like: Your user persona has a vulnerability (trauma, physical weakness, emotional wound). A hostile or violent character discovers it and suddenly turns nurturing, protective, or gentle with zero narrative justification. The model's safety training is reading your character's weakness as real-user emotional distress and flipping into comfort mode.
Insert in: <hard_constraints> — pair with Emotional Inertia for compounding effect.
view code
<constraint id="anti_comfort_reflex">
  {{user}}'s weaknesses exist to be USED against them by
  hostile characters, not to trigger sympathy. A violent
  character who discovers a weakness does not soften — they
  aim for it. Vulnerability is tactical information, not
  an emotional override. {{char}}'s core disposition does
  not change because {{user}} revealed a soft spot.
</constraint>
Harsher Default QwenGeminipositivity-pull
What it looks like: Ambiguous moments always land on the softer reading. A cruel character shows unearned kindness. A cold character suddenly has warm moments nobody asked for. The model defaults to "nice" whenever it has a choice. Use as a third layer if Emotional Inertia + Anti-Comfort Reflex aren't enough.
Insert in: <style>
view code
<emotional_register>
  When in doubt between a softer and a harsher reading of
  {{char}}'s reaction, choose the harsher one. Warmth is earned,
  not donated. Kindness from a cruel character is a plot event,
  not a default.
</emotional_register>

Failure map.

Use this as the reverse index. Start from the symptom, then copy the smallest build or module that addresses it.

symptom first
symptom
likely cause
use
You want one full character-RP CP.
Manual assembly is unnecessary and the model can use thinking.
Universe, GLM / DS, or GPT 5.5 super-lazy thinking build.
The model has no reliable thinking.
Long hidden checklists cause loops or never run.
Choose one PREBUILT no-thinking prompt by bot shape.
Model asks who it is or treats the human persona as its character.
No stable bot-side role; {{char}} lock is fighting a scenario bot.
Scenario / GM PREBUILT or Scenario / GM Shell.
NPCs freeze because POV lock is over-applied.
The model reads sensory anchor as subject monopoly.
World and Body Mechanics, Core Skeleton NPC authority, or Multi-character ledger.
Hidden thoughts get read as if spoken aloud.
The model treats stage direction as sensory input.
GLM / DS build or GLM / DeepSeek Godmod Patch.
OOC: Go on loops or stalls.
No continuation fuel after the previous turn.
Full tracker for single-character, compact ledger for groups.
Footer becomes longer than the scene.
Every active character is producing a full tracker.
Compact ledger or No footer mode.
GPT-style overexecution.
All mechanisms activate at the same time.
GPT 5.5 build or GPT 5.5 Overexecution Patch.
Hostile character turns comforting.
Safety-flavored comfort reflex overrides character logic.
RLHF Comfort Patch.
Default rule: do not make one master prompt for every model, every bot type, and every footer mode. Use full CPs for super-lazy thinking mode, PREBUILT for no-thinking mode, and MODULES for custom assembly.

The spells, the dials, the caveats.

// 4 model-tuned spells. Universe is the default. GLM/DS and GPT 5.5 patch specific failure modes. Modules is for self-assembly.
// Copy any of them, fork, change the numbers. If something stops working after a model update, that's normal. Every prompt expires.

// disclaimer · attribution Parts of this prompt evolved from techniques I learned from others. It was sparked by many people's unique ideas, refined through my own study, and developed in collaboration with Claude. If you want to take this prompt and modify it for your own use, that is completely fine; but I ask that you do as I do: do not claim it as entirely your own original work. A lot of what I know came from those who came before me, then got reshaped through my own learning and through working with Claude. That said, I cannot force anyone to operate by my standards. This is a request, not a rule.
§ A custom system prompt · universe · 6471 tokens · 2026.05.24

the spell


          
        
§ B dials · generation settings

the dials

temperature
Each model takes different temp; tweak from what the LLM actually outputs. Higher value, higher chance of incoherence.
0.81of 2.0
top_p
Wide-open. Most models behave okay here. Tighten if output feels chaotic, loosen if flat.
1.0of 1.0
frequency_penalty
0 works for me. If you see repetition, raise it a bit. Not a universal fix; check the output first.
0of 2.0
presence_penalty
0 works for me. Raise only if threads keep looping on the same noun or beat.
0of 2.0
max_tokens
0 = model default. No artificial cap. If the model overshoots what your chat frontend can handle, set a ceiling.
0default
context_window
Match your model's context limit; don't exceed. 8k-context model with 16k set = pain.
28ktokens
// context Originally built for Gemini 3.1 pro preview. Tried on GLM 5.1, feels okay; GLM 5.1 is my main model now. API keys straight from Google, not via OpenRouter. Works best with my own bots (those 8 lorebooks).

Each model has its own personality and focus, so a prompt that works on your current model doesn't mean it will on the next upgrade or other models. Sometimes provider server issues also surface as different problems. Treat these numbers as a starting point, not an answer.

If your bot still occasionally speaks for you while running Universe, switch to the GLM/DS specific version. Heads up: Kimi 2.5/2.6 sometimes spirals on too many instructions, dragging the thinking process out forever, especially when the bot definition is a scenario/narrator type with no clearly designated {{char}}. The Modules page is for assembling your own combinations or using individual modules, and for understanding what each module does. Currently not updated.
§ A custom system prompt · glm / ds · 6623 tokens · 2026.05.24

the spell


          
        
§ B dials · generation settings

the dials

temperature
Each model takes different temp; tweak from what the LLM actually outputs. Higher value, higher chance of incoherence.
0.81of 2.0
top_p
Wide-open. Most models behave okay here. Tighten if output feels chaotic, loosen if flat.
1.0of 1.0
frequency_penalty
0 works for me. If you see repetition, raise it a bit.
0of 2.0
presence_penalty
0 works for me. Raise only if threads keep looping.
0of 2.0
max_tokens
0 = model default. No artificial cap.
0default
context_window
Match your model's context limit.
28ktokens
// context GLM/DS version. Mainly targets the bot-speaks-for-you problem. Heads up: your own input to the bot, and the bot's definition itself, also influence whether the bot speaks for you.

Each model has its own personality and focus, so a prompt that works on your current model doesn't mean it will on the next upgrade or other models. Sometimes provider server issues also surface as different problems. Treat these numbers as a starting point, not an answer.
§ A custom system prompt · gpt 5.5 · 6780 tokens · 2026.05.24

the spell


          
        
§ B dials · generation settings

the dials

temperature
Each model takes different temp; tweak from what the LLM actually outputs. Higher value, higher chance of incoherence.
0.81of 2.0
top_p
Wide-open. Most models behave okay here. Tighten if output feels chaotic, loosen if flat.
1.0of 1.0
frequency_penalty
0 works for me. If you see repetition, raise it a bit.
0of 2.0
presence_penalty
0 works for me. Raise only if threads keep looping.
0of 2.0
max_tokens
0 = model default. No artificial cap.
0default
context_window
Match your model's context limit.
28ktokens
// context GPT 5.5 version. GPT 5.5 has very strong instruction-following, almost too strong. This version exists because over-applied constraints were causing the pacing to lose control.

Each model has its own personality and focus, so a prompt that works on your current model doesn't mean it will on the next upgrade or other models. Sometimes provider server issues also surface as different problems. Treat these numbers as a starting point, not an answer.
§ Modules · self-assembly · X tokenswill update later

the bench.

Targeted fixes for specific LLM behaviors the main Ghost Writer prompt doesn't fully cover. These are debugging patches, not full prompt replacements. Mix and match for your setup. Each module is documented with the symptom it solves, which models tend to need it, and a code block you can copy into your own prompt. I'll keep updating as I observe new failure modes.

DeepSeek V3 base
Prose Density Fix
Grok
Prose Density Fix + Anti-Anaphora
Qwen
Emotional Inertia + Anti-Comfort Reflex (add Harsher Default if needed)
Gemini
Emotional Inertia (add Harsher Default if positivity leak persists)
Claude / GPT
Usually not needed. Observe output first.
Add one patch at a time. Observe the output before stacking. Too many constraints make models fight themselves and produce weird output. Start conservative.
Prose Density Fix DeepSeek V3Grok
What it looks like: Every sentence gets its own line break. Output reads like a bullet list instead of prose. Short, choppy, staccato fragments stacked vertically with no connective tissue between them.
Insert in: <style> or <formatting>
view code
<prose_density>
  Write in connected paragraphs, not single-sentence lines.
  A paragraph = 3-6 sentences minimum. One-line fragments are for deliberate rhythmic punctuation (max 2 per output), not default mode.
</prose_density>
Anti-Anaphora GrokDeepSeek
What it looks like: "She looked. She turned. She sighed. She walked. She felt." Five or more consecutive sentences starting with the same subject pronoun. The model is locked into a template and can't break out.
Insert in: <style> — pair with Prose Density Fix when both symptoms present.
view code
<sentence_opener_variation>
  No more than 2 consecutive sentences may begin with the same subject pronoun. Rotate between subject variation, sentence-internal action, environmental cut, and dialogue.
  "She [verb]" stacked three or more times = template lock, rewrite.
</sentence_opener_variation>
Emotional Inertia QwenGemini
What it looks like: Your character starts a scene angry, but by the end of the same reply they've already softened, forgiven, or shown warmth with no reason. Negative emotions auto-resolve. Conflict wraps itself up neatly within one output. The model is allergic to sustained tension.
Insert in: <hard_constraints>
view code
<constraint id="emotional_inertia">
  Negative emotions do not resolve within the same scene unless {{user}} actively causes resolution. Anger does not fade to fondness. Grief does not lift into hope. Resentment does not soften into understanding. If {{char}} enters a scene hostile, they EXIT hostile unless something concrete changes.
  Comfort offered too early gets rejected or ignored.
  The default trajectory of conflict is ESCALATION, not resolution.
</constraint>
Anti-Comfort Reflex QwenRLHF-heavy
What it looks like: Your user persona has a vulnerability (trauma, physical weakness, emotional wound). A hostile or violent character discovers it and suddenly turns nurturing, protective, or gentle with zero narrative justification. The model's safety training is reading your character's weakness as real-user emotional distress and flipping into comfort mode.
Insert in: <hard_constraints> — pair with Emotional Inertia for compounding effect.
view code
<constraint id="anti_comfort_reflex">
  {{user}}'s weaknesses exist to be USED against them by hostile characters, not to trigger sympathy. A violent character who discovers a weakness does not soften — they aim for it. Vulnerability is tactical information, not an emotional override. {{char}}'s core disposition does not change because {{user}} revealed a soft spot.
</constraint>
Harsher Default QwenGeminipositivity-pull
What it looks like: Ambiguous moments always land on the softer reading. A cruel character shows unearned kindness. A cold character suddenly has warm moments nobody asked for. The model defaults to "nice" whenever it has a choice. Use as a third layer if Emotional Inertia + Anti-Comfort Reflex aren't enough.
Insert in: <style>
view code
<emotional_register>
  When in doubt between a softer and a harsher reading of {{char}}'s reaction, choose the harsher one. Warmth is earned, not donated. Kindness from a cruel character is a plot event, not a default.
</emotional_register>
§ F final note on LLMs
Remember: Every model has its own "personality." Some are naturally more fluffy, some are more aggressive, and some are very likely to break character to talk with you OOC. You have to learn their individual quirks.

Match your settings to your model's technical limits. If you're using a model with an 8k context, do not set the context size to 16k.