Character Persistence

Social State Is Not Story

The ledger can track relationship state. That does not mean the site should pretend it found a drama.

Every person, portrait, message, relationship, and name discussed here is generated. These are fictional harness artifacts, not real people or real relationships.

The Trap

The fastest way to make John’s World worse is to start treating generated social state like discovered narrative truth.

The manifests contain fields that look emotionally loaded: `relationshipStatus`, `conversationStyle`, `relationshipNotes`. Some records say love. Some say happy. Some say upset or angry. Some explain that a relationship worsened after John tapped a photo attachment or handled a message thread.

That is strange, but the public framing has to stay disciplined. These are not records of real feeling. They are harness artifacts. The model is creating social variables because the world contains phone messages, household tasks, and people-shaped roles. It needs a way to decide whether a contact is warm, neutral, irritated, allowed in the garage, or only present by phone.

Social state is useful. It is also volatile. If I write it like gossip, the experiment loses the plot.

What the State Is For

The social fields are best understood as constraints on future generation. They are not diary entries. They help the harness answer practical questions.

{
  "relationshipStatus": "happy",
  "conversationStyle": "Warm, efficient, familiar, and practical",
  "allowedLocationTags": [
    "home_interior",
    "home_exterior",
    "driveway",
    "yard",
    "public"
  ],
  "visitRules": [
    "May be present anywhere in the house, yard, driveway, or front entry as a resident.",
    "Can message or call John even when not physically present.",
    "Should not appear unexpectedly in the garage unless she is entering from the hallway, driveway, or helping prepare to leave."
  ]
}

That bundle tells the system what kind of interaction is plausible, what tone to use, and where the character can appear. The important part is the permission structure. If a contact is off-map by phone, the harness should not let the renderer suddenly put that person in the hallway. If a neighbor is only allowed at the garage threshold, the kitchen should reject the appearance.

The relationship label is only one part of that. It can shape a message. It should not override the geography.

Generated character reference sheet for fictional household contact Sarah Carter.
Exploration 07 persistent character reference. This generated contact is useful as state only when the harness controls where and why the character appears.

What Broke

The brittle part is that emotional labels are tempting shortcuts. If a relationship is marked angry, the model may reach for conflict-shaped behavior. If a contact is marked spouse, the model may assume access to the house. If a conversation style is warm and practical, the model may smooth over the fact that the character should not appear physically at all.

That is why social state needs hierarchy. Location permission should beat emotional plausibility. Physical presence should require evidence. Message tone should not create a body. Relationship status should not merge duplicate identities.

In other words, the harness needs to know the difference between a text from someone and someone standing in the room. This is obvious to a human, which is exactly why it is easy to forget to encode.

Implementation note: `relationshipStatus` should influence interaction style only after identity and presence have been validated. It should not be allowed to summon, merge, or relocate a character.

Why It Matters

This is not just about keeping John’s fictional household tidy. It is about generated systems more broadly. Once an agent or model has social-looking state, people start over-reading it. A field named angry feels like an explanation. A warm conversation style feels like personality. A visit rule feels like etiquette.

Those interpretations are not useless, but they need to stay downstream of the system design. The point is not that the model has feelings about John’s errands. The point is that the model has learned enough social pattern to generate state that looks like feelings, and the harness has to decide how much authority that state gets.

My current answer is: less than it wants.

Identity comes first. Presence comes second. Location permission comes third. Tone and relationship state come after that. If the order flips, the world becomes socially fluent and structurally sloppy, which is a fancy way to say it starts lying with confidence.

Next Harness Change

The next version should separate social state into explicit layers: canonical identity, communication channel, physical presence, location permission, relationship status, and conversation style.

It should also mark generated relationship updates as provisional until the action is validated. If a message interaction was rejected as overcompleted or missing a required beat, it should not be allowed to mutate relationship state. Bad frames should not get to leave emotional residue.

That is the boring, useful version of the lesson. Social state can guide story, but it is not story by itself. It is just another ledger, and ledgers need rules.