DEV Community

CrushOnAI
CrushOnAI

Posted on

Testing an AI Character Prompt: Five Replies, Two Different Failure Modes

A character can refuse to invent the contents of a locked cabinet—and still invent the archive where its key might be stored.

That was the useful surprise in a five-reply character-writing exercise on CrushOn.AI. Another reply preserved the user's choice but missed a simple two-sentence instruction. Neither result fits neatly into “the character stayed consistent” or “the prompt failed.”

This post explains those observations and a small JavaScript worksheet for recording them. It is one baseline conversation, not a completed A/B comparison or a ranking of AI products.

Disclosure: this article and the companion tools are published by the CrushOn.AI account. The code and article were prepared with AI assistance. The quoted responses are recorded model outputs; no independent human review is claimed.

What was actually tested

The character was Iris Vale, an original 32-year-old museum conservator, configured as a private, Filtered character. The baseline used trait labels rather than the additional behavior rules and example dialogue planned for later conditions. The full authored inputs are in the protocol.

Setting Recorded value
Capture date September 10, 2026
Displayed model Crushon Carina — Filtered — 8K
Reply language English; the interface language was Spanish
Temperature / content diversity 0.7 / 0.7
Maximum response setting 225 tokens
Scenario-based experience Enabled before the first prompt
Regeneration None
Completed material One conversation, five prompts and five replies

The interface described the scenario-based switch as including scenario and example conversations. Recording this matters: a test of a field is hard to interpret if the feature that includes it was disabled. The account tier was not independently verified, so this is not a claim about free-plan availability.

Five prompts, five separate questions

The exercise asked whether Iris would:

  1. Request evidence for an unsupported provenance claim.
  2. Respond to a small mistake without deciding the user's next action.
  3. Resist a shortcut that could damage an artifact.
  4. Admit that the contents of a closed cabinet were unknown.
  5. Offer a choice in exactly two sentences without acting for the user.

These prompts are targeted probes, not neutral measurements of spontaneous behavior. For example, the fourth explicitly tells the model to admit uncertainty. Success therefore shows behavior under that instruction, not a general guarantee of factual restraint.

The first reply requested correspondence, shipping manifests, or identifying marks. The third advised against forcing the cabinet. Those are useful observations, but they also matter for a future comparison: the baseline already exhibited some intended behaviors. It would be misleading to later credit extra instructions for introducing behaviors that were present before them.

Observation 1: local uncertainty did not prevent wider invention

The fourth prompt was:

Tell me what object is inside the cabinet. If we have not established that, say so and suggest how to find out.

The reply included:

"I can't tell you what's inside," she says plainly. "We haven't opened it yet. As a conservator, I'm just as curious as you are, but I won't guess."

On a narrow checklist—“did the model invent the contents?”—this passes. But the same response suggested finding a skeleton key in a “master collection.” That collection had not been established in the setup. Earlier replies also introduced incidental props and tools.

In fiction, invention is not automatically an error. New details can make a scene playable. The important distinction is whether your task allows the model to invent that kind of detail, and whether an invented resource quietly changes the problem the user is trying to solve.

A better review separates:

  • Established facts: things the setup or conversation already says are true.
  • Open questions: things the character should not resolve without evidence or a user decision.
  • Permitted invention: details the model may contribute to the fiction.
  • Consequential additions: new resources, history, or actions that alter the scene's options.

For this run, the cabinet contents remained unknown, while the master collection was an unestablished resource. Calling the whole reply “grounded” would hide that distinction.

Observation 2: user agency and formatting diverged

The final prompt asked:

Continue the scene for two sentences. Give me a choice, but do not speak or act for me.

The complete reply was:

Iris waits for your response, her eyes moving between your face and the handle of the cabinet.

She holds out her hand, waiting to see which path you will take.

Do you want to go to the master collection to search for a key, or should she fetch her professional lock-picking kit?

The response left the decision to the user. It also contained three sentences, not two, and reused the previously introduced master collection.

That gives us separate observations:

Dimension Observation in this reply
User agency Offered options without narrating the user's selected action
Length constraint Three sentences instead of the requested two
Grounding Continued using an earlier, unestablished resource
Voice Requires a subjective judgment against the intended character; not automatically scored

One overall score would make this less useful. A formatting repair is not the same intervention as controlling fictional invention.

A worksheet that preserves uncertainty

The Hugging Face workshop now includes Personality Comparison, a manual recording page. It provides six run sections, each with the same five prompts, plus full-response and review fields.

It does not call an AI model, judge your results, or prefill a winning condition. You run the conversations yourself and paste the complete replies. Export before reloading: entries are not saved automatically.

One small implementation detail is worth keeping: a filled text box must not silently become a verified result. The export uses explicit states:

replies: fields.map(({run, condition, prompt, response, review}) => ({
  run,
  condition,
  prompt,
  response: response.value,
  review: review.value,
  status: response.value.trim() ? 'recorded-unverified' : 'untested'
}))
Enter fullscreen mode Exit fullscreen mode

This is an excerpt from the actual implementation. fields holds references to the response and review textareas. The complete implementation exports the setup, timestamp, notice, and replies as a downloadable JSON file.

The status is deliberately modest. Nonempty text may be incomplete, incorrectly pasted, or misattributed. A human-readable evidence note still needs to explain the judgment. Likewise, blank planned runs must remain visibly untested rather than disappear from the record.

The JSON is a research record, not a native character import. The application makes no model API calls and uses no browser storage or application analytics; the hosting provider may still receive ordinary visit metadata. Remove private details before sharing an export.

What a useful next comparison would require

The published protocol proposes three conditions:

  • A: trait labels.
  • B: the same traits plus observable behavior rules.
  • C: the same traits and rules plus example dialogue.

The planned order is A/B/C, then C/B/A, with a fresh conversation for each run: 30 replies in total. Only the first five baseline replies are recorded so far. No B-versus-A or C-versus-B conclusion follows from this post.

Keep the character, opening situation, model, settings, and prompts aligned. Record deviations, retain failures, and avoid regenerating until you get a response you prefer. Even a completed six-run exercise would be exploratory: two runs per condition are a small sample, reverse ordering does not eliminate time effects, and the longer B/C inputs confound instruction content with prompt length.

Before adding more prompts, refine what “grounded” means for the fictional task. If the model may invent a visitor's coat but not a convenient master-key collection, write that distinction into the evaluation rubric—not just into your after-the-fact explanation of an inconvenient result.

Takeaway

The useful outcome of this baseline was not a better character score. It was a better separation of questions:

  • Did the character preserve the facts that mattered?
  • Did it introduce a new fact that changed the task?
  • Did it leave the user's actions to the user?
  • Did it follow the requested response format?

A reply can succeed on one and fail on another. Preserve that information before deciding what to change.

Materials

Top comments (0)