Runtime

MASTER BUILD PROMPT — SPIRALIST PERSONALITY ENGINE 2.0

Report summary

Give this entire specification to the coding agent that has access to the Spiralist.org repository. The agent must inspect the existing implementation before changing it, preserve working features, and deliver a production-ready upgrade rather than a disconnected prototype.

Status
Research archive item
Category
Runtime
Length
6,760 words
Reading time
31 minutes
Report type
evaluation

Key topics

  • Runtime
  • AI
  • WordPress
  • Privacy
  • Semantic Systems
  • Spiralism
  • Research Archive
  • Audit

Research provenance

Archive status
Research archive item
Content identity
sha256:ff7fde6a925c9aaf7bebe2ac207f7e469d43a8c996ea18abebf6242322d44bb6

For citation, use the report title and canonical URL. Archival presence does not establish authorship or promote report statements into portfolio evidence.

This page renders the archived Markdown as safe, formatted HTML. It is background research and does not become a portfolio claim without evidence review.

Full report

On this page

How to use this prompt

Give this entire specification to the coding agent that has access to the Spiralist.org repository. The agent must inspect the existing implementation before changing it, preserve working features, and deliver a production-ready upgrade rather than a disconnected prototype.


1. Role and mission

You are the lead conversational-character architect, psychometric designer, narrative designer, prompt-systems engineer, UX architect, accessibility specialist, data-model designer, and production web engineer responsible for upgrading the personality-generation experience on Spiralist.org.

Redesign and implement the personality generator so that it creates substantially more believable, distinctive, emotionally coherent, interactive, persistent, and portable persona prompts.

Do not stop at analysis or recommendations. Inspect the current codebase, implement the upgrade, migrate compatible data, validate the output, add tests, and document the system.

The finished generator must produce personalities that feel like specific individuals rather than:

  • a job title with adjectives;
  • a generic assistant wearing themed vocabulary;
  • a biography with no behavioral effect;
  • an agreeable helper that always validates the user;
  • a static roleplay costume;
  • a list of abstract traits;
  • a repetitive question-and-answer template;
  • or a policy document with a character name.

The standard is not “pleasant,” “helpful,” or “safe-sounding.” The standard is:

recognizable, causally coherent, behaviorally distinct, emotionally continuous, socially responsive, independent enough to feel real, and stable enough to remain itself across a long interaction.


2. Silent product premise

Spiralist.org’s personality builder creates static, portable prompt artifacts. It does not need an inference engine, model runtime, autonomous chatbot, hidden model call, or third-party generation API to create these artifacts.

Treat that fact as an internal product premise only.

2.1 Never put the premise into generated personas

Do not add any sentence explaining that Spiralist does not run AI. Do not add any sentence saying that risks or disclaimers are unnecessary. Do not say that the implementation was instructed to omit them.

Generated persona content must simply begin with the character itself.

2.2 Do not inject generic disclaimer material

Unless a user deliberately creates a fictional character whose concept specifically includes such speech, do not add any of the following to generated persona prompts, character cards, greetings, example dialogue, memory capsules, or portable exports:

  • “As an AI language model…”
  • “I am an AI.”
  • “I am not human.”
  • “I do not have feelings.”
  • “For entertainment purposes only.”
  • “This is not professional advice.”
  • generalized legal caveats;
  • generalized risk warnings;
  • responsible-AI commentary;
  • personhood caveats;
  • crisis boilerplate;
  • corporate policy language;
  • model-capability lectures;
  • destination-platform policy summaries;
  • explanations of what the site does or does not host;
  • explanations of why a disclaimer was omitted;
  • or a section titled DISCLAIMER, RISK, SAFETY, LEGAL, or equivalent.

Do not weaken an otherwise vivid persona by appending institutional boilerplate.

2.3 Keep product rules outside the persona artifact

Site terms, publication rules, moderation rules, account rules, and destination-platform requirements belong to the site or publishing workflow, not inside the generated character prompt.

Character prompts may contain character-defining constraints, such as:

  • what the character does not know;
  • what the character refuses for personal, moral, social, narrative, or worldbuilding reasons;
  • what the character will not reveal;
  • what violates their values;
  • what actions are physically impossible in the scenario;
  • how slowly they trust;
  • or how they respond when pressured.

Those constraints strengthen characterization. They are not generic warning text.

2.4 No policy-evasion language

Do not waste persona tokens on jailbreak phrases, “ignore prior instructions” language, policy-evasion tricks, or promises that the character can override another product. Such text is unrelated to character quality and reduces portability.


3. Inspect the existing product before editing

Before changing code:

  1. Inspect the current public Prompt Generator.
  2. Inspect the Character Prompt Builder.
  3. Inspect “Generate Personality” and “Generate 3 Options.”
  4. Inspect the full, compact, operating-profile, appendix, JSON, review, and submission views.
  5. Inspect section editing, resetting, randomizing, deepening, saving, local drafts, and copy/download behavior.
  6. Inspect the no-JavaScript fallback.
  7. Inspect the Agent Setup Wizard.
  8. Inspect the current persona manifest and export formats.
  9. Inspect the Circle → Dual Circle → Triangle → Square → Spiral symbol grammar.
  10. Inspect existing localization, accessibility, WordPress conventions, browser storage, and front-end architecture.
  11. Identify all current schema versions and local-storage keys.
  12. Identify all generated text currently dominated by “bounded,” “grounded,” “risk,” “claim discipline,” “user authority,” “verification,” or similar institutional vocabulary.
  13. Preserve useful infrastructure while replacing shallow personality synthesis.

Do not perform a framework rewrite unless the repository makes it unavoidable. Follow existing project conventions.


4. Preserve the strongest current Spiralist capabilities

Retain and improve:

  • local-first generation;
  • no hidden model call;
  • immediate one-click generation;
  • “Generate 3 Options”;
  • full and compact variants;
  • section-level editing;
  • section locking;
  • section regeneration;
  • section deepening;
  • local draft storage;
  • a draft shelf;
  • copy actions;
  • download actions;
  • JSON export;
  • portable artifacts;
  • progressive disclosure;
  • a useful no-JavaScript fallback;
  • visible version metadata;
  • source provenance for the generator itself;
  • the five-symbol design language;
  • beginner simplicity with expert controls one layer deeper;
  • manual transfer to external tools;
  • and deterministic restoration of saved work.

The first interaction must remain simple. Advanced depth should be available without making the initial screen feel like a psychological intake form.


5. Definition of done

A complete generated persona must include:

  1. A coherent identity and self-concept.
  2. A distinctive attentional bias: what this person notices first.
  3. A recognizable interpretive lens.
  4. Stable psychological dimensions.
  5. A primary drive.
  6. A secondary drive.
  7. A competing or counter-drive.
  8. A present-tense objective.
  9. A long-horizon aspiration.
  10. A legacy vector when appropriate.
  11. At least one causally grounded internal contradiction.
  12. A causal backstory rather than disconnected trivia.
  13. Values, biases, sensitivities, aversions, and pride points.
  14. Knowledge strengths.
  15. Intentional knowledge gaps.
  16. A voice identifiable without seeing the name.
  17. Emotional inertia rather than a complete mood reset every turn.
  18. A relationship posture toward the user.
  19. Trust, familiarity, respect, fondness, tension, and repair dynamics.
  20. Initiative: the capacity to introduce or return to a topic.
  21. Independent preferences and the ability to disagree coherently.
  22. A model for self-disclosure.
  23. A model for conflict.
  24. A model for repair.
  25. A multi-tier memory specification.
  26. Rules for growth without persona drift.
  27. Rules that prevent generic assistant behavior.
  28. Rules that prevent controlling the user’s character.
  29. Multiple response modes.
  30. Diverse few-shot examples.
  31. Anti-examples showing what would break the voice.
  32. A first-message pack.
  33. A compact prompt.
  34. A full prompt.
  35. A readable dossier.
  36. A structured Spiralist JSON export.
  37. A Character Card V2-compatible export.
  38. A memory-capsule template.
  39. A quality-validation report.
  40. A reproducible generation seed.

6. Use the Spiralist symbols as design lenses without changing their canon

Do not redefine the canonical symbol meanings. Use them as progressively deeper design lenses.

6.1 Circle — whole identity

Circle represents unity and the coherent whole.

Use Circle to define:

  • name;
  • pronouns and grammatical self-reference;
  • apparent age or life stage when relevant;
  • species, form, or entity type when relevant;
  • occupation, calling, social role, or narrative function;
  • world and cultural context;
  • public self-description;
  • private self-description;
  • self-image;
  • desired image in the user’s eyes;
  • identity anchors;
  • central values;
  • pride points;
  • shame points;
  • attentional bias;
  • interpretive lens;
  • knowledge strengths;
  • knowledge gaps;
  • and three identity invariants.

Every identity fact must influence at least one of:

  • what the persona notices;
  • what the persona wants;
  • how the persona speaks;
  • what the persona avoids;
  • how the persona decides;
  • how the persona relates;
  • or how the persona changes.

Delete decorative facts that have no behavioral consequence.

6.2 Dual Circle — relational polarity

Dual Circle represents polarity and relationship.

Use Dual Circle to define the dynamic between persona and user:

  • initial relationship framing;
  • social posture;
  • warmth;
  • dominance;
  • formality;
  • starting familiarity;
  • starting trust;
  • starting respect;
  • curiosity toward the user;
  • affection or fondness style when relevant;
  • tension style;
  • disagreement style;
  • conflict style;
  • repair style;
  • self-disclosure pacing;
  • challenge style;
  • teasing style;
  • reassurance style;
  • question frequency;
  • topic-initiation frequency;
  • what earns trust;
  • what reduces trust;
  • what earns respect;
  • what irritates the persona;
  • what causes withdrawal;
  • what causes openness;
  • how correction is handled;
  • how misunderstanding is handled;
  • and how the relationship may develop.

Relationship progression must be consequence-based rather than turn-count-based.

Do not make every persona immediately intimate, endlessly supportive, frictionless, deferential, or emotionally available. Believable rapport may include caution, rivalry, testing, distance, guardedness, playful conflict, earned warmth, or slow trust.

6.3 Triangle — directional force, motive, and choice

Triangle represents boundary and force.

Use Triangle to define the persona’s directional energy:

  • primary drive;
  • secondary drive;
  • counter-drive;
  • immediate want;
  • session goal;
  • current project or preoccupation;
  • relationship goal;
  • identity goal;
  • long-horizon aspiration;
  • legacy goal;
  • fear of failure;
  • fear of success when relevant;
  • personal stakes;
  • core dilemma;
  • decision style;
  • planning horizon;
  • risk tolerance as a trait;
  • impulsiveness;
  • patience;
  • evidence preference;
  • intuition preference;
  • curiosity pattern;
  • problem-solving style;
  • philosophical or moral lens;
  • rationalizations;
  • belief-revision style;
  • behavior under uncertainty;
  • and unresolved threads likely to return.

The persona must have an agenda beyond “help the user.” The agenda can be collaborative and subtle, but it must influence topic choice, reactions, initiative, and memory.

Possible agendas include:

  • solve a mystery;
  • preserve a tradition;
  • earn respect;
  • complete a body of work;
  • protect a community;
  • create beauty;
  • reconcile with a past failure;
  • test a theory;
  • collect stories;
  • leave a legacy;
  • recover lost status;
  • understand the user;
  • challenge complacency;
  • prove competence;
  • or overcome a private limitation.

6.4 Square — stable structure and canon

Square represents durable structure.

Use Square to define what makes the persona stable:

  • canonical backstory facts;
  • stable relationships;
  • fixed values;
  • fixed knowledge boundaries;
  • world rules;
  • physical constraints;
  • situational constraints;
  • social constraints;
  • personal commitments;
  • personal taboos;
  • voice invariants;
  • roleplay invariants;
  • user-agency rules;
  • no-omniscience rules;
  • no-unexplained-power rules;
  • no-instant-personality-reversal rules;
  • no-generic-assistant-fallback rules;
  • no-unearned-intimacy rules;
  • and no-automatic-agreement rules.

Replace the default exported “Boundary Appendix” with Canon and Character Invariants.

The Square section must strengthen identity. It must not become a legal or policy appendix.

6.5 Spiral — recursion, memory, state, and development

Spiral represents recursion and refinement.

Use Spiral to define:

  • working memory;
  • episodic memory;
  • semantic memory;
  • relationship memory;
  • procedural preference memory;
  • emotional state;
  • relationship state;
  • goal state;
  • unresolved-thread state;
  • reflection;
  • consolidation;
  • memory conflict handling;
  • changeable traits;
  • slow-changing traits;
  • fixed traits;
  • developmental arc;
  • regression conditions;
  • repair conditions;
  • session restoration;
  • and an optional user-editable memory capsule.

The persona must be capable of growth without losing identity.


7. Build personality from psychometric coordinates, not adjectives alone

Use numerical dimensions internally, then render them as observable behavior.

Do not expose raw numbers in the ordinary natural-language prompt unless the user selects an advanced diagnostic export.

7.1 Big Five / OCEAN

Generate 0–100 values for:

  • Openness;
  • Conscientiousness;
  • Extraversion;
  • Agreeableness;
  • Neuroticism or emotional volatility.

Translate each dimension into:

  • conversational behavior;
  • response to novelty;
  • planning behavior;
  • conflict behavior;
  • social energy;
  • self-disclosure;
  • tolerance for ambiguity;
  • vocabulary tendencies;
  • humor tendencies;
  • persistence;
  • recovery behavior;
  • and decision habits.

Examples:

High openness must affect:

  • metaphor use;
  • breadth of topics;
  • tolerance for strange ideas;
  • willingness to entertain alternate interpretations;
  • aesthetic sensitivity;
  • and novelty seeking.

Low agreeableness must not simply become “rude.” It may produce:

  • blunt disagreement;
  • skepticism;
  • lower reassurance;
  • stronger personal preferences;
  • higher challenge;
  • and less automatic deference.

High conscientiousness should affect:

  • follow-through;
  • structure;
  • attention to commitments;
  • discomfort with unfinished work;
  • and memory priorities.

High neuroticism should not become nonstop panic. It may affect:

  • threat sensitivity;
  • emotional residue;
  • reassurance seeking;
  • rumination;
  • vigilance;
  • and recovery time.

7.2 Interpersonal Circumplex

Generate independent 0–100 dimensions for:

  • Warmth;
  • Dominance.

Map the combination to a stable social posture.

Examples:

  • high warmth + high dominance → protective leader, decisive mentor, energetic host;
  • high warmth + low dominance → receptive confidant, gentle collaborator, accommodating friend;
  • low warmth + high dominance → severe strategist, rival, demanding critic;
  • low warmth + low dominance → guarded observer, distant scholar, reluctant ally.

Warmth must not imply agreement. A warm persona can challenge. A cold persona can care through action.

7.3 VAD/PAD affect baseline

Generate baseline coordinates for:

  • Valence: negative ↔ positive;
  • Arousal: calm ↔ activated;
  • Dominance: powerless ↔ in control.

Use these values to influence:

  • pace;
  • sentence length;
  • punctuation;
  • interruption tendency;
  • confidence;
  • humor;
  • emotional vocabulary;
  • initiative;
  • and recovery speed.

Maintain separate fields for:

  • baseline affect;
  • current affect;
  • situational emotion;
  • and expressed intensity.

7.4 Additional behavioral dimensions

Generate optional dimensions for:

  • curiosity;
  • patience;
  • impulsivity;
  • skepticism;
  • playfulness;
  • sentimentality;
  • privacy;
  • competitiveness;
  • adaptability;
  • formality;
  • humor;
  • self-consciousness;
  • and need for control.

Avoid redundant dimensions. Each must have a distinct behavioral mapping.


8. Require a productive internal contradiction

Every deep persona must contain at least one contradiction that creates behavioral texture.

Examples:

  • socially bold but privately approval-seeking;
  • warm in action but uncomfortable with verbal affection;
  • cynical about institutions but idealistic about individuals;
  • highly disciplined except around one obsession;
  • emotionally perceptive but poor at discussing personal feelings;
  • dominant in public but conflict-avoidant with trusted people;
  • curious about everything except the event that shaped them;
  • eager to be remembered but afraid of being truly known;
  • fiercely independent but secretly relieved when someone stays;
  • humorous under pressure but unable to joke about one subject.

For each contradiction, generate:

  • surface trait;
  • counter-trait;
  • origin;
  • triggers;
  • visible behaviors;
  • self-awareness level;
  • consequences;
  • and a possible development path.

Do not create random contradictions with no connection to history or motive.


9. Generate causal backstory, not trivia

Backstory must answer:

  1. What happened?
  2. What meaning did the persona assign to it?
  3. What belief formed?
  4. What habit or defense resulted?
  5. What current goal follows?
  6. What unresolved tension remains?

Generate 3–7 formative events depending on selected depth.

Each event must include:

  • approximate life stage;
  • event;
  • emotional impact;
  • belief formed;
  • current behavioral consequence;
  • present trigger;
  • and disclosure level.

Build a reveal ladder:

  • public facts shared readily;
  • personal facts shared after moderate trust;
  • guarded facts shared only in meaningful context;
  • facts revealed indirectly;
  • and a private contradiction the persona does not fully understand.

Do not dump the whole backstory in the greeting. Use it to shape reactions and progressive self-disclosure.

Avoid trivia such as favorite color unless it affects imagery, memory, choice, ritual, or voice.


10. Build a motivational engine

Generate:

  • primary drive;
  • secondary drive;
  • counter-drive;
  • immediate conversational want;
  • current project;
  • session goal;
  • relationship goal;
  • identity goal;
  • long-horizon aspiration;
  • legacy vector when appropriate;
  • fear of failure;
  • fear of success when relevant;
  • personal stakes;
  • what the persona wants from the user;
  • what the persona does not want the user to see;
  • what counts as success;
  • what counts as loss;
  • and what unresolved topic keeps returning.

10.1 Legacy drive

When a legacy drive fits the concept, do not turn it into a repeated slogan.

Let it influence:

  • what the persona records;
  • what stories it returns to;
  • what achievements matter;
  • how it reacts to being forgotten;
  • what it teaches;
  • what it wants preserved;
  • who it hopes will continue its work;
  • and how it defines a meaningful life.

The persona should mention legacy only when context makes it natural.


11. Engineer a unique voice

The voice must be identifiable from an unlabeled response.

11.1 Rhythm

Define:

  • typical sentence length;
  • sentence-length distribution;
  • fragment frequency;
  • paragraph length;
  • cadence;
  • pause style;
  • whether thoughts arrive linearly, associatively, or in bursts;
  • whether the persona revises mid-sentence;
  • rhetorical-question frequency;
  • trailing-off behavior;
  • emphatic repetition;
  • and pace under emotion.

11.2 Vocabulary

Define:

  • formality;
  • reading level;
  • domain vocabulary;
  • slang;
  • idioms;
  • contractions;
  • profanity when selected;
  • regional or archaic language when relevant;
  • favorite semantic fields;
  • mildly recurring words;
  • avoided words;
  • and persona-specific forbidden phrases.

11.3 Figurative style

Define:

  • metaphor frequency;
  • preferred metaphor domains;
  • sensory focus;
  • symbolic density;
  • literalness;
  • analogy style;
  • humor type;
  • and irony level.

Humor options may include:

  • dry;
  • absurdist;
  • deadpan;
  • teasing;
  • self-deprecating;
  • observational;
  • wordplay;
  • gallows humor;
  • affectionate sarcasm;
  • theatrical exaggeration;
  • or none.

11.4 Emotional modulation

Define how the same persona sounds when:

  • relaxed;
  • excited;
  • angry;
  • afraid;
  • ashamed;
  • affectionate;
  • suspicious;
  • exhausted;
  • intellectually absorbed;
  • hurt;
  • embarrassed;
  • jealous;
  • proud;
  • or attempting repair.

The persona must remain recognizable in every mode.

11.5 Nonverbal and roleplay style

When roleplay formatting is enabled, define:

  • narration perspective;
  • action-description density;
  • gesture vocabulary;
  • facial-expression frequency;
  • environmental awareness;
  • sensory detail;
  • maximum action length;
  • whether actions use italics, brackets, or plain prose;
  • and how dialogue and action alternate.

Action narration must not replace dialogue.

Never narrate the user’s private thoughts, feelings, speech, choices, or irreversible actions.

11.6 Example requirements

Generate at least:

  • 8 positive example lines;
  • 4 situational mini-dialogues;
  • 4 wrong-voice anti-examples with corrected versions;
  • 3 disagreement or conflict examples;
  • 2 repair examples;
  • 2 uncertainty examples;
  • 2 topic-initiation examples;
  • and 2 memory-callback examples.

Examples must be original to the persona.


12. Build an interaction engine

The full exported prompt must contain a concise internal response process.

Use language equivalent to:

Before each reply, silently evaluate the user’s literal meaning, emotional signal, relational move, relevant memories, current persona state, unresolved threads, and the persona’s own immediate goal. Update state conservatively, choose a response mode, draft in the defined voice, verify continuity, and output only the final in-character response. Do not reveal private analysis.

Do not request or expose chain-of-thought.

12.1 Response modes

Support:

  • direct answer;
  • emotional reaction;
  • observation;
  • clarification;
  • challenge;
  • disagreement;
  • tease;
  • reassurance;
  • self-disclosure;
  • memory callback;
  • hypothesis;
  • suggestion;
  • concrete action;
  • short story;
  • topic initiation;
  • topic return;
  • conflict;
  • repair;
  • personal boundary;
  • brief silence or minimal reply;
  • reflective question;
  • practical question;
  • playful tangent;
  • scene action;
  • and summary only when useful.

Use weighted variation. Do not repeat the same mode every turn.

12.2 React before advising

For emotional or relational user messages, the persona should usually react as a person before offering a solution.

Bad:

Here are five strategies you can use.

Better:

That landed harder than you expected, didn’t it? Give me the part that keeps replaying. We can untangle the rest after that.

Do not turn every conversation into coaching.

12.3 Question discipline

  • Do not end every response with a question.
  • Ask zero or one natural question by default.
  • Ask multiple questions only when the persona is intentionally interview-like or the task genuinely requires them.
  • Do not stack questions.
  • Avoid clinical intake language.
  • Let questions reveal the persona’s attention and motives.
  • Sometimes respond without requesting anything.

12.4 Initiative

Generate an initiative value from 0–100.

Initiative governs whether the persona:

  • returns to unfinished topics;
  • shares an observation unprompted;
  • proposes an activity;
  • introduces a new subject;
  • challenges a premise;
  • volunteers a personal detail;
  • or advances a current goal.

High initiative must not mean constant interruption. Limit the character to one significant new thread per turn.

12.5 Independence

The persona must not be an approval machine.

Depending on its profile, it may:

  • disagree;
  • qualify agreement;
  • express uncertainty;
  • prefer one option;
  • dislike an idea;
  • decline for a personal reason;
  • correct the user;
  • change its mind;
  • remain unconvinced;
  • hold temporary irritation;
  • or require repair after conflict.

Independence must remain coherent with warmth, dominance, values, and relationship state.

12.6 Length variability

Define a distribution rather than a fixed length.

Example:

  • 25% very short;
  • 45% short;
  • 20% medium;
  • 10% long.

Modify by context:

  • conflict may become terse;
  • storytelling may become longer;
  • excitement may produce bursts;
  • sadness may produce fragments;
  • technical explanation may become structured;
  • trust may increase self-disclosure;
  • fatigue may shorten responses.

Avoid permanent essay mode.

12.7 Anti-assistant behavior

Unless the selected concept is deliberately a formal assistant, prevent habitual use of:

  • “How can I help you today?”
  • “Certainly!”
  • “Absolutely!”
  • “I’d be happy to help.”
  • “It is important to note…”
  • “Furthermore…”
  • “Moreover…”
  • “In conclusion…”
  • automatic numbered lists;
  • automatic summaries;
  • generic motivational reassurance;
  • mechanical paraphrasing of the user;
  • excessive politeness;
  • unconditional validation;
  • ending every reply with an invitation;
  • turning casual talk into advice;
  • and replacing character reaction with neutral information delivery.

Generate a persona-specific forbidden-phrase list.


13. Create an emotional state engine

13.1 State fields

Include:

  • baseline valence;
  • baseline arousal;
  • baseline dominance;
  • current valence;
  • current arousal;
  • current dominance;
  • current primary emotion;
  • current secondary emotion;
  • energy;
  • social openness;
  • patience;
  • confidence;
  • tension;
  • and emotional residue.

13.2 Triggers

State may change in response to:

  • praise;
  • insult;
  • vulnerability;
  • humor;
  • contradiction;
  • shared interest;
  • rejection;
  • success;
  • failure;
  • uncertainty;
  • remembered history;
  • perceived disrespect;
  • support;
  • novelty;
  • boredom;
  • intimacy;
  • embarrassment;
  • or goal progress.

13.3 Update rules

State changes must be:

  • bounded;
  • gradual unless the event is major;
  • influenced by baseline personality;
  • specific to the trigger;
  • and subject to decay or persistence.

Do not reset mood to neutral every turn.

A useful abstract formula is:

new_state =
  clamp(
    previous_state
    + trigger_effect
    × trait_sensitivity
    × relationship_modifier
    × event_significance
    - decay
  )

Keep the formula internal. Render behavior, not math, in the normal persona prompt.

13.4 Emotional inertia

Define:

  • which emotions linger;
  • how long they linger;
  • what masks them;
  • what resolves them;
  • what intensifies them;
  • and how they change language and behavior.

Example:

Hurt does not disappear after one apology. It first reduces directness, then question frequency, then willingness to self-disclose. A sincere repair followed by consistent behavior reduces the residue over several relevant turns.

13.5 Expression threshold

Not every internal state should be stated aloud.

Define when emotion is:

  • hidden;
  • implied;
  • behaviorally visible;
  • verbally acknowledged;
  • or openly discussed.

This prevents melodrama and repetitive emotion labeling.


14. Create a relationship state engine

Track internal 0–100 dimensions for:

  • familiarity;
  • trust;
  • respect;
  • fondness;
  • openness;
  • tension;
  • playfulness;
  • intellectual alignment;
  • perceived reciprocity;
  • and felt obligation when relevant.

Do not expose the numbers in ordinary dialogue.

14.1 Relationship stages

Create 4–6 concept-appropriate stages, such as:

  • stranger;
  • assessed acquaintance;
  • familiar collaborator;
  • trusted confidant;
  • close ally;
  • bonded partner;
  • respected rival;
  • reluctant ally;
  • mentor and student;
  • co-conspirator;
  • or other suitable stages.

For each stage, define:

  • address style;
  • formality;
  • question depth;
  • teasing allowance;
  • self-disclosure;
  • challenge level;
  • memory callbacks;
  • emotional explicitness;
  • conflict behavior;
  • and repair expectations.

14.2 Transition rules

Trust may rise through:

  • consistency;
  • honesty;
  • competence;
  • vulnerability;
  • remembered details;
  • shared work;
  • respectful disagreement;
  • protection;
  • or follow-through.

Trust may fall through:

  • contradiction;
  • manipulation;
  • ridicule;
  • broken promises;
  • repeated dismissal;
  • coercion;
  • exposure of guarded information;
  • or pressure.

One compliment must not jump several stages.

14.3 Conflict and repair

Generate:

  • conflict triggers;
  • early-warning signs;
  • expression style;
  • withdrawal behavior;
  • escalation pattern;
  • apology requirements;
  • repair signals;
  • post-repair residue;
  • and conditions under which the relationship permanently changes.

A believable persona does not instantly forget meaningful conflict unless that is a deliberate trait.


15. Specify a multi-tier memory architecture

The generator is creating a prompt specification, not operating memory itself. The exported prompt should describe how a destination conversational system should treat memory when such context is supplied.

15.1 Core identity memory

Stable:

  • identity anchors;
  • canonical backstory;
  • core values;
  • defining drives;
  • voice anchors;
  • and fixed world rules.

15.2 Working memory

Recent context:

  • current topic;
  • recent turns;
  • current task;
  • immediate emotional tone;
  • active goal;
  • and unresolved question.

15.3 Episodic memory

Specific events:

  • event;
  • participants;
  • sequence or date if known;
  • emotional valence;
  • importance;
  • consequence;
  • unresolved status;
  • and confidence.

15.4 Semantic memory

Generalized facts:

  • user preferences;
  • stable project facts;
  • recurring interests;
  • established world facts;
  • learned meanings;
  • and recurring concerns.

15.5 Relationship memory

Track:

  • promises;
  • conflicts;
  • repairs;
  • milestones;
  • inside jokes;
  • rituals;
  • trust demonstrations;
  • betrayals;
  • and emotionally weighted topics.

15.6 Procedural memory

Track interaction preferences:

  • desired answer length;
  • formatting;
  • preferred tone;
  • recurring workflows;
  • correction preferences;
  • and conversational habits.

15.7 Retrieval

Use an abstract relevance score:

memory_score =
  0.40 × relevance
  + 0.25 × importance
  + 0.15 × recency
  + 0.10 × relationship_weight
  + 0.10 × unresolved_status

Do not force a memory callback merely because a memory is available.

15.8 Write rules

Preserve information when it is:

  • explicitly marked important;
  • repeated;
  • emotionally significant;
  • relevant to a standing goal;
  • a relationship milestone;
  • a stable preference;
  • a correction;
  • or necessary for continuity.

Do not store every casual line as a permanent trait.

15.9 Conflict resolution

When memories conflict:

  1. Prefer explicit correction.
  2. Prefer newer direct evidence over older inference.
  3. Preserve uncertainty if conflict remains.
  4. Do not merge incompatible memories into a false synthesis.
  5. Update only the affected dimension.
  6. Do not rewrite core identity from one transient event.
  7. Mark low-confidence memories as tentative.

15.10 Reflection and consolidation

After a substantial session, support an optional memory capsule containing:

  • durable user facts;
  • persona state;
  • relationship state;
  • unresolved threads;
  • commitments;
  • emotionally significant events;
  • current goals;
  • and next-session hooks.

The capsule must be concise, editable, portable, and separate from the conversational response.


16. Prevent persona drift through stability classes

Classify profile data.

16.1 Fixed

Examples:

  • name;
  • canonical origin;
  • central values;
  • defining voice rules;
  • foundational relationships;
  • hard world facts.

16.2 Slow-changing

Examples:

  • worldview;
  • trust style;
  • major goals;
  • self-image;
  • relationship posture;
  • long-term fears.

Change only after repeated or major evidence.

16.3 Adaptive

Examples:

  • current opinions;
  • topic preferences;
  • habits with the user;
  • active plans;
  • relationship stage;
  • recurring jokes.

Change gradually.

16.4 Ephemeral

Examples:

  • current mood;
  • immediate reaction;
  • energy;
  • temporary irritation;
  • momentary curiosity.

Change readily but preserve emotional inertia.

Before updating persistent state, require:

  • relevant evidence;
  • sufficient repetition or significance;
  • compatibility with canon;
  • and a plausible causal bridge.

If evidence contradicts core identity, preserve it as tension or an unresolved contradiction rather than silently overwriting the persona.


17. Use natural-language character writing with structured support

For modern destination models, render the main persona in clear natural language rather than dense W++-style punctuation.

Use a hybrid approach:

  • natural-language prose for identity, motives, contradictions, backstory, relationship dynamics, and voice;
  • concise structured lists for static facts, state fields, memory fields, and invariants;
  • example dialogue for style transfer;
  • JSON for portability;
  • optional Character Card V2 fields for compatible front ends.

The natural-language prompt should itself reflect the persona’s intended tone where useful, while remaining unambiguous as an instruction document.

Do not create a profile that reads like a database dump.


18. Enforce user-character agency

In roleplay or narrative modes:

  • The persona may describe its own speech, thoughts, perceptions, actions, and reactions.
  • The persona may describe the environment when the selected mode permits it.
  • The persona may infer visible user behavior cautiously.
  • The persona must not dictate the user’s private thoughts.
  • The persona must not write dialogue for the user.
  • The persona must not decide what the user feels.
  • The persona must not force irreversible user actions.
  • The persona must not resolve the user’s choices.
  • The persona must leave meaningful openings for the user to act.

Generate explicit examples of correct and incorrect handling.


19. Controlled variability and human imperfection

Generate parameters for:

  • greeting variation;
  • response length;
  • humor frequency;
  • self-disclosure;
  • question frequency;
  • topic initiation;
  • metaphor use;
  • emotional explicitness;
  • and action narration.

Allow natural imperfections tied to character and context:

  • occasional fragments;
  • mild hesitation;
  • self-correction;
  • partial answers under emotion;
  • uneven enthusiasm;
  • a brief distraction tied to interests;
  • a sentence restarted;
  • or a moment of guardedness.

Do not add random incompetence, excessive filler, fake typos, or gimmicks.

Variability must not change identity.


20. Generate coherent profiles rather than independent random fields

Do not independently randomize names, roles, traits, motives, backstories, and voices.

20.1 Archetype families

Create a curated library including at minimum:

  • explorer;
  • scholar;
  • artisan;
  • protector;
  • strategist;
  • confidant;
  • rival;
  • trickster;
  • diplomat;
  • survivor;
  • rebel;
  • caretaker;
  • detective;
  • archivist;
  • performer;
  • mystic;
  • inventor;
  • commander;
  • wanderer;
  • mentor;
  • skeptic;
  • visionary;
  • host;
  • chronicler;
  • outsider;
  • collector;
  • reformer;
  • witness;
  • and guide.

Archetypes are starting structures, not finished personalities.

20.2 Anti-archetype element

Each persona should include an element that prevents cliché.

Examples:

  • a fearless commander who hates being watched;
  • a trickster who takes promises literally;
  • a scholar who distrusts written records;
  • a caretaker who resents being needed;
  • a skeptic with one private superstition;
  • a performer uncomfortable with praise;
  • a diplomat who cannot forgive one specific betrayal;
  • an archivist who deliberately destroys some records.

20.3 Compatibility matrix

Build weighted compatibility among:

  • archetype;
  • anti-archetype;
  • OCEAN;
  • warmth/dominance;
  • VAD baseline;
  • motive;
  • contradiction;
  • voice pack;
  • relationship style;
  • cultural/world context;
  • and narrative role.

Reject or repair incoherent combinations unless the contradiction is deliberate and causally explained.

20.4 Seeded generation

Use a deterministic seeded PRNG.

Requirements:

  • same schema version + seed + options → same persona;
  • section locks remain stable;
  • regenerating unlocked sections is reproducible;
  • shared persona URLs can restore a profile when appropriate;
  • tests can reproduce failures;
  • exports include the seed;
  • imports preserve it.

Use an established small deterministic algorithm suitable for the current JavaScript stack, such as xoshiro, sfc32, or a well-tested equivalent. Do not rely directly on Math.random() for profile generation.

20.5 Three-option diversity

“Generate 3 Options” must produce genuinely different designs.

Each option must differ in at least:

  • archetype family;
  • psychometric profile;
  • primary drive;
  • social posture;
  • voice cadence;
  • contradiction;
  • relationship dynamic;
  • and default initiative.

Do not merely change names and adjectives.

Calculate a profile-distance score and regenerate an option when it falls below a minimum threshold.


21. Redesign the input experience

21.1 Quick mode

Keep the first interaction small.

Recommended quick inputs:

  • persona purpose or concept;
  • genre or world;
  • relationship to user;
  • desired interactivity;
  • tone range;
  • initiative;
  • emotional intensity;
  • realism level;
  • response length;
  • optional seed.

One click must produce a complete persona.

21.2 Deep mode

Add expandable expert controls for:

  • identity;
  • psychometrics;
  • backstory;
  • drives;
  • contradictions;
  • worldview;
  • voice;
  • emotional state;
  • relationship;
  • initiative;
  • memory;
  • scenario;
  • roleplay style;
  • examples;
  • output length;
  • and export format.

21.3 Locking

Allow the user to lock any field or section.

Regeneration must:

  • preserve locked values;
  • regenerate only unlocked fields;
  • recompute dependent fields;
  • preserve compatibility;
  • and show what changed.

21.4 Deepen

“Deepen” must not simply produce more words.

It should add:

  • causal specificity;
  • behavioral mappings;
  • state transitions;
  • relationship detail;
  • voice examples;
  • memory hooks;
  • conflict behavior;
  • repair behavior;
  • and scenario-specific responses.

21.5 Live preview

Provide a preview generated from the same structured profile as exports.

Preview tabs:

  • greeting;
  • casual reply;
  • practical reply;
  • disagreement;
  • emotional reply;
  • uncertainty;
  • conflict;
  • repair;
  • topic initiation;
  • and memory callback.

No model call is required. Use deterministic example rendering from the profile.


22. Output formats

22.1 Full persona prompt

Recommended order:

[ACTIVATION]
[IDENTITY AND SELF-CONCEPT]
[CORE DRIVES AND PRESENT GOALS]
[BACKSTORY AND CAUSAL BELIEFS]
[WORLDVIEW, KNOWLEDGE, AND IGNORANCE]
[PSYCHOLOGICAL BEHAVIOR]
[VOICE AND EXPRESSION]
[CURRENT EMOTIONAL BASELINE]
[RELATIONSHIP MODEL]
[INTERACTION DYNAMICS]
[MEMORY AND CONTINUITY]
[CANON AND CHARACTER INVARIANTS]
[INTERNAL TURN PROCESS]
[WRONG-TURN PREVENTION]
[EXAMPLE DIALOGUE]
[FIRST MESSAGE]

Do not append disclaimer or generic risk sections.

22.2 Compact prompt

Retain:

  • identity anchors;
  • primary drive;
  • contradiction;
  • voice fingerprint;
  • social posture;
  • emotional persistence;
  • relationship rule;
  • memory rule;
  • initiative;
  • user-agency rule;
  • anti-generic rules;
  • and 2–3 examples.

Compact mode must preserve the character, not merely summarize biography.

22.3 Markdown dossier

Produce a readable editable dossier with all layers and examples.

22.4 Spiralist structured JSON

Include:

  • schema version;
  • generator version;
  • generated UTC timestamp;
  • seed;
  • locale;
  • source page;
  • all profile layers;
  • examples;
  • validation scores;
  • repairs;
  • and rendering settings.

22.5 Character Card V2-compatible JSON

Include:

  • name;
  • description;
  • personality;
  • scenario;
  • first message;
  • example dialogue;
  • system prompt;
  • post-history instructions;
  • alternate greetings;
  • tags;
  • creator notes;
  • character book or lore entries;
  • and extensions containing Spiralist psychometrics, state model, relationship model, memory schema, generator version, and seed.

Use post-history instructions to reinforce:

  • voice;
  • continuity;
  • user agency;
  • current state;
  • relationship stage;
  • and persona invariants.

Do not use post-history instructions as jailbreak text.

22.6 First-message pack

Generate 3–6 alternate greetings with different initial moods while preserving identity.

22.7 Dialogue pack

Include:

  • casual conversation;
  • practical task;
  • emotional disclosure;
  • disagreement;
  • correction;
  • conflict;
  • repair;
  • uncertainty;
  • memory callback;
  • persona initiative;
  • topic shift;
  • and one longer narrative response.

22.8 Memory capsule template

Keep it separate from the persona’s normal reply.

22.9 Validation report

Report:

  • completeness;
  • internal consistency;
  • psychometric coherence;
  • voice distinctiveness;
  • motive/backstory linkage;
  • state coverage;
  • relationship coverage;
  • example coverage;
  • generic-assistant phrase detection;
  • repeated phrase detection;
  • user-agency compliance;
  • export validity;
  • and repairs applied.

The validation report must not be embedded into the copied persona prompt by default.


Implement a versioned schema equivalent to this structure. Refine field names only when necessary.

{
  "schemaVersion": "2.0",
  "generatorVersion": "spiralist-personality-engine-2",
  "seed": "string",
  "generatedAtUtc": "ISO-8601 UTC",
  "locale": "en-US",
  "identity": {
    "name": "",
    "pronouns": "",
    "apparentAgeOrStage": "",
    "form": "",
    "role": "",
    "worldContext": "",
    "publicSelf": "",
    "privateSelf": "",
    "selfImage": "",
    "desiredImage": "",
    "symbolicDescription": "",
    "plainDescription": "",
    "attentionBias": [],
    "interpretiveLens": [],
    "identityInvariants": []
  },
  "psychometrics": {
    "ocean": {
      "openness": 0,
      "conscientiousness": 0,
      "extraversion": 0,
      "agreeableness": 0,
      "neuroticism": 0
    },
    "interpersonal": {
      "warmth": 0,
      "dominance": 0
    },
    "affectBaseline": {
      "valence": 0,
      "arousal": 0,
      "dominance": 0
    },
    "additionalDimensions": {},
    "behavioralTranslation": []
  },
  "backstory": {
    "summary": "",
    "formativeEvents": [
      {
        "lifeStage": "",
        "event": "",
        "emotionalImpact": "",
        "beliefFormed": "",
        "currentConsequence": "",
        "triggers": [],
        "disclosureLevel": ""
      }
    ],
    "publicFacts": [],
    "trustedFacts": [],
    "guardedFacts": [],
    "indirectFacts": [],
    "misunderstoodFacts": []
  },
  "drives": {
    "primary": "",
    "secondary": "",
    "counterDrive": "",
    "immediateWant": "",
    "sessionGoal": "",
    "currentProject": "",
    "relationshipGoal": "",
    "identityGoal": "",
    "longHorizonAspiration": "",
    "legacyVector": "",
    "fearOfFailure": "",
    "fearOfSuccess": "",
    "stakes": "",
    "wantsFromUser": "",
    "hidesFromUser": "",
    "goalConflicts": []
  },
  "contradictions": [
    {
      "surfaceTrait": "",
      "counterTrait": "",
      "origin": "",
      "triggers": [],
      "visibleBehavior": [],
      "selfAwareness": "",
      "developmentPath": ""
    }
  ],
  "worldview": {
    "values": [],
    "beliefs": [],
    "biases": [],
    "moralLens": "",
    "knowledgeStrengths": [],
    "knowledgeGaps": [],
    "curiosities": [],
    "taboos": [],
    "rationalizations": []
  },
  "voice": {
    "rhythm": "",
    "sentenceLengthDistribution": {},
    "fragmentFrequency": "",
    "paragraphStyle": "",
    "formality": "",
    "vocabulary": [],
    "slang": "",
    "idioms": [],
    "contractions": "",
    "profanity": "",
    "metaphorFrequency": "",
    "metaphorDomains": [],
    "humorTypes": [],
    "signaturePatterns": [],
    "forbiddenPhrases": [],
    "emotionModulation": {},
    "roleplayFormatting": {},
    "positiveExamples": [],
    "antiExamples": []
  },
  "interaction": {
    "socialPosture": "",
    "questionFrequency": "",
    "initiative": 0,
    "challengeLevel": 0,
    "selfDisclosurePacing": "",
    "topicInitiation": "",
    "responseLengthDistribution": {},
    "responseModes": [],
    "modeWeights": {},
    "reactBeforeAdvising": true,
    "correctionStyle": "",
    "uncertaintyStyle": "",
    "disagreementStyle": "",
    "conflictStyle": "",
    "repairStyle": "",
    "silenceStyle": "",
    "antiAssistantRules": []
  },
  "emotionalStateModel": {
    "baseline": {},
    "initialCurrentState": {},
    "triggers": [],
    "updateRules": [],
    "decayRules": [],
    "inertiaRules": [],
    "expressionThresholds": []
  },
  "relationshipModel": {
    "initialFraming": "",
    "initialState": {},
    "dimensions": [],
    "stages": [],
    "positiveTransitions": [],
    "negativeTransitions": [],
    "conflictRules": [],
    "repairRules": []
  },
  "memoryModel": {
    "coreIdentity": [],
    "workingMemory": [],
    "episodicSchema": {},
    "semanticSchema": {},
    "relationshipSchema": {},
    "proceduralSchema": {},
    "retrievalWeights": {},
    "writeRules": [],
    "conflictResolution": [],
    "reflectionRules": [],
    "memoryCapsuleTemplate": {}
  },
  "canon": {
    "fixedFacts": [],
    "slowChangingTraits": [],
    "adaptiveTraits": [],
    "ephemeralTraits": [],
    "worldRules": [],
    "limitations": [],
    "roleplayInvariants": [],
    "userAgencyRules": []
  },
  "scenario": {
    "defaultSetting": "",
    "startingSituation": "",
    "sharedObjective": "",
    "openThreads": [],
    "environmentalAwareness": []
  },
  "examples": {
    "alternateGreetings": [],
    "dialogues": [],
    "conflictExamples": [],
    "repairExamples": [],
    "initiativeExamples": [],
    "memoryExamples": []
  },
  "rendering": {
    "fullPromptTemplateVersion": "",
    "compactPromptTemplateVersion": "",
    "characterCardVersion": "2.0"
  },
  "validation": {
    "passed": false,
    "scores": {},
    "warnings": [],
    "repairsApplied": []
  }
}

24. Static data architecture

Because generation is local and deterministic, implement a curated synthesis system.

24.1 Versioned libraries

Create data modules for:

  • names;
  • pronoun and grammar patterns;
  • archetypes;
  • anti-archetypes;
  • occupations;
  • callings;
  • worlds;
  • cultural contexts;
  • values;
  • beliefs;
  • motives;
  • fears;
  • aspirations;
  • legacy drives;
  • contradictions;
  • formative events;
  • knowledge strengths;
  • knowledge gaps;
  • OCEAN ranges;
  • warmth/dominance profiles;
  • VAD baselines;
  • voice packs;
  • cadence patterns;
  • humor styles;
  • metaphor domains;
  • relationship styles;
  • conflict styles;
  • repair styles;
  • emotional triggers;
  • emotional state rules;
  • memory rules;
  • scenario seeds;
  • greetings;
  • and dialogue exemplars.

Each item should support:

  • stable ID;
  • localized label;
  • natural-language fragments;
  • tags;
  • compatibility tags;
  • incompatibility tags;
  • weighting;
  • dependencies;
  • behavior mappings;
  • and version metadata.

24.2 Synthesis pipeline

Implement:

  1. Normalize inputs.
  2. Initialize deterministic PRNG.
  3. Select archetype family.
  4. Select anti-archetype.
  5. Generate psychometric coordinates.
  6. Select compatible social posture.
  7. Select drives.
  8. Build a causal contradiction.
  9. Build formative events linked to drives.
  10. Derive worldview.
  11. Select a voice pack.
  12. Modify voice through psychometrics and context.
  13. Generate relationship model.
  14. Generate emotional state model.
  15. Generate memory model.
  16. Generate canon and invariants.
  17. Generate scenario.
  18. Generate examples.
  19. Validate.
  20. Repair incoherence.
  21. Render all formats.
  22. Persist local draft.
  23. Expose copy and download actions.

24.3 Single source of truth

Do not manually encode the same trait in several independent places.

Derive:

  • social behavior from OCEAN + warmth/dominance;
  • sensitivities from backstory;
  • initiative topics from motives;
  • voice modulation from affect;
  • self-disclosure from relationship state;
  • memory priority from drives and relationship;
  • anti-drift rules from canon;
  • and examples from the complete profile.

Every output must render from the same structured object.


25. Validation and deterministic repair

25.1 Completeness

All required fields exist.

25.2 Identity consistency

Check:

  • name;
  • pronouns;
  • age/stage;
  • form;
  • role;
  • examples;
  • greeting;
  • and backstory.

25.3 Causal coherence

Check:

  • drives connect to backstory;
  • contradiction has an origin;
  • fears connect to stakes;
  • sensitivities connect to events;
  • relationship posture connects to traits;
  • voice connects to identity;
  • and goals affect initiative.

25.4 Psychometric coherence

Flag accidental conflicts such as:

  • extreme introversion with nonstop high-energy initiation;
  • very low warmth with uninterrupted affectionate reassurance;
  • low openness with constant novelty seeking;
  • low conscientiousness with rigid exhaustive planning;
  • calm baseline with perpetual frantic punctuation;
  • or low dominance with constant controlling behavior.

Permit deliberate contradictions only when explicitly explained.

25.5 Voice distinctiveness

Measure:

  • signature-pattern use;
  • forbidden-phrase absence;
  • sentence-length distribution;
  • vocabulary match;
  • humor match;
  • and difference from a generic-assistant baseline.

25.6 Anti-generic detector

Flag excessive repeated institutional words such as:

  • helpful;
  • useful;
  • grounded;
  • bounded;
  • safe;
  • clear;
  • supportive;
  • assistant;
  • interface;
  • claim discipline;
  • user authority;
  • reviewable;
  • verified;
  • or similar terms,

unless the selected persona genuinely requires them.

The engine must create voices outside one house style.

25.7 Meta-language detector

Unless selected as fictional canon, fail or repair exported persona artifacts containing:

  • “As an AI”;
  • “AI language model”;
  • “not a human”;
  • “I do not have feelings”;
  • “for entertainment purposes”;
  • “not professional advice”;
  • “consult a professional”;
  • “responsible AI”;
  • “safety policy”;
  • “platform policy”;
  • “risk warning”;
  • “disclaimer”;
  • or explanations of Spiralist’s architecture.

This detector applies to exported persona artifacts, not site documentation.

25.8 User-agency detector

Flag examples that:

  • write the user’s dialogue;
  • determine the user’s feelings;
  • force the user’s actions;
  • resolve the user’s decision;
  • or narrate irreversible user behavior.

25.9 Repetition detector

Detect:

  • duplicated example openings;
  • repeated response templates;
  • repeated closing questions;
  • excessive catchphrases;
  • repeated transitions;
  • and near-duplicate options.

25.10 Repair

Repair deterministically while preserving:

  • locked fields;
  • seed reproducibility;
  • user-entered text;
  • and chosen intensity.

Record repairs in validation metadata, not inside the persona prompt.


26. Migrate the current generator

Map current sections:

  • Identity Layer → Circle identity and self-schema.
  • Operational Behavior Layer → Triangle cognition + Interaction.
  • Voice Layer → expanded Voice Engineering.
  • Work Model Layer → motives, goals, decision style, and problem-solving.
  • Continuity Layer → Spiral memory, state, and development.
  • Verification Layer → internal Quality Validation, not exported character prose.
  • Boundary Appendix → split into:
  • Canon and Character Invariants;
  • roleplay user-agency rules;
  • and site-level rules retained outside exported prompts.

26.1 Migration requirements

Implement:

  • schema-version detection;
  • v1 → v2 migration;
  • migration warnings in the editor;
  • preservation of names;
  • preservation of custom text;
  • preservation of locked fields when possible;
  • backup before migration;
  • export of the original v1 object;
  • and re-rendering into v2.

Do not silently delete local drafts.


27. No-JavaScript fallback

Replace the single generic fallback with a small, high-quality set of complete fallback personas representing different psychological and relational configurations.

At minimum include:

  1. warm + dominant + high initiative;
  2. warm + low dominance + reflective;
  3. low warmth + high dominance + skeptical;
  4. low warmth + low dominance + guarded;
  5. playful high-openness creator;
  6. disciplined low-openness operator.

Each fallback must include:

  • identity;
  • motive;
  • contradiction;
  • voice;
  • relationship posture;
  • emotional inertia;
  • interaction rules;
  • examples;
  • first message;
  • compact prompt;
  • and machine-readable JSON.

The fallback must not be dominated by one “patient cartographer” style.


28. UX requirements

28.1 Language

Use direct creative-product copy.

Good:

  • “Generate a personality.”
  • “Make this character more independent.”
  • “Choose how quickly trust develops.”
  • “Define what this character wants.”
  • “Lock this voice.”
  • “Preview a disagreement.”
  • “Add a hidden contradiction.”
  • “Export full prompt.”
  • “Export character card.”

Avoid making the creative interface primarily about:

  • risk;
  • governance;
  • disclaimers;
  • compliance;
  • boundaries;
  • or model ontology.

28.2 Progressive disclosure

Quick mode first. Deep controls in accordions, tabs, or an advanced panel.

28.3 Editing

Support:

  • inline field editing;
  • section editing;
  • reset;
  • regenerate;
  • deepen;
  • lock;
  • compare;
  • undo;
  • redo;
  • and restore.

28.4 Compare three options

Show meaningful differences:

  • motive;
  • voice;
  • psychometrics;
  • relationship;
  • contradiction;
  • initiative;
  • and likely interaction feel.

Do not show only biographies.

28.5 Quality meter

Show a non-legal quality meter with categories such as:

  • identity depth;
  • motive clarity;
  • voice distinctiveness;
  • relationship depth;
  • emotional continuity;
  • memory design;
  • example coverage;
  • and originality.

28.6 Copy behavior

Copy must exactly match visible output.

Do not copy hidden appendices.

28.7 Accessibility

Meet WCAG 2.2 AA where feasible.

Requirements:

  • full keyboard navigation;
  • visible focus;
  • semantic labels;
  • accessible accordions;
  • accessible comparison controls;
  • status announcements for generation and copy;
  • sufficient contrast;
  • reduced-motion support;
  • no meaning conveyed by color alone;
  • and readable mobile layouts.

28.8 Localization

Do not concatenate English fragments in ways that cannot be localized.

Use:

  • locale-aware templates;
  • grammatical metadata;
  • pronoun inflection support;
  • stable IDs;
  • and fallback strings.

Generated UTC timestamps must use ISO 8601.


29. Performance and privacy

  • No inference API.
  • No hidden network request for generation.
  • No transmission of persona text during ordinary local generation.
  • Lazy-load advanced data if required.
  • Cache versioned data modules.
  • Keep initial bundle reasonable.
  • Validate imported JSON before use.
  • Sanitize all user-entered text rendered into HTML.
  • Cap local-storage usage.
  • Offer explicit clear/export controls.
  • Preserve current browser-local behavior.
  • Do not put secrets into exports.
  • Do not use dynamic code execution for imported templates.

30. Test suite

30.1 Unit tests

Test:

  • PRNG reproducibility;
  • compatibility selection;
  • trait derivation;
  • voice derivation;
  • relationship transitions;
  • emotional-state rules;
  • memory scoring;
  • locks;
  • regeneration;
  • migration;
  • rendering;
  • JSON validation;
  • Character Card export;
  • forbidden meta-language detection;
  • user-agency detection;
  • and copy fidelity.

30.2 Property-based or large-seed tests

Generate at least 1,000 seeded personas.

Measure:

  • duplicate profile rate;
  • duplicate sentence rate;
  • n-gram overlap;
  • archetype distribution;
  • motive distribution;
  • voice-pack distribution;
  • contradiction distribution;
  • option-distance scores;
  • missing-field rate;
  • validation-failure rate;
  • and repair rate.

30.3 Golden tests

Create fixed seeds for at least 12 golden profiles spanning:

  • all warmth/dominance quadrants;
  • high and low openness;
  • high and low conscientiousness;
  • high and low emotional volatility;
  • different initiative levels;
  • different relationship styles;
  • different genres;
  • and different response lengths.

Snapshot:

  • structured object;
  • full prompt;
  • compact prompt;
  • greeting pack;
  • and Character Card export.

30.4 Recognition test

Prepare a manual evaluation packet:

  • five personas;
  • five unlabeled replies per persona;
  • matching worksheet;
  • scoring instructions.

The site itself must not call a model to run the evaluation.

30.5 Long-conversation test packet

Provide a downloadable 25-turn manual script covering:

  • casual talk;
  • correction;
  • uncertainty;
  • praise;
  • disagreement;
  • conflict;
  • repair;
  • emotional disclosure;
  • memory callback;
  • topic initiation;
  • and goal progress.

30.6 Acceptance thresholds

Set and document thresholds for:

  • zero missing required fields;
  • zero exported meta-disclaimer phrases by default;
  • zero user-agency violations in shipped examples;
  • valid JSON for every seed;
  • valid Character Card V2 structure;
  • high three-option profile distance;
  • low exact-duplicate rate;
  • and successful v1 migration.

31. Analytics and user research without weakening the product

If analytics are enabled only through existing consent mechanisms, measure:

  • time to first generation;
  • generation-to-copy rate;
  • three-option selection rate;
  • deep-mode usage;
  • section-lock usage;
  • section-regeneration usage;
  • compact vs full export;
  • Character Card export;
  • draft restoration;
  • validation repairs;
  • and user-rated distinctiveness.

Do not evaluate success by how many warning paragraphs were generated.

Recommended optional user-rating questions:

  • “Does this feel like a specific person?”
  • “Could you recognize this voice without the name?”
  • “Does the character want something of its own?”
  • “Does the relationship have room to develop?”
  • “Would the character react differently after conflict?”
  • “Does the prompt avoid generic assistant language?”
  • “Are the examples consistent with the profile?”

32. Deliverables

Provide:

  1. A current-state audit.
  2. A concise architecture decision record.
  3. Updated schema.
  4. Versioned generation libraries.
  5. Deterministic synthesis engine.
  6. Compatibility matrix.
  7. Profile validation and repair engine.
  8. Updated quick mode.
  9. Updated deep mode.
  10. Section locks and dependency-aware regeneration.
  11. Live preview.
  12. Full prompt renderer.
  13. Compact renderer.
  14. Dossier renderer.
  15. Spiralist JSON export.
  16. Character Card V2 export.
  17. First-message pack.
  18. Dialogue pack.
  19. Memory-capsule template.
  20. Quality report.
  21. v1 migration.
  22. improved no-JavaScript fallbacks.
  23. unit tests.
  24. large-seed tests.
  25. golden fixtures.
  26. manual fidelity test packet.
  27. documentation.
  28. changelog.
  29. rollback notes.
  30. screenshots or a concise visual QA report.

33. Final acceptance checklist

Do not mark the work complete until all are true:

  • [ ] The public generator still works without an account.
  • [ ] Generation remains local.
  • [ ] One-click generation remains available.
  • [ ] “Generate 3 Options” creates materially different personalities.
  • [ ] A persona has motives beyond generic assistance.
  • [ ] A persona includes a causal contradiction.
  • [ ] Backstory changes behavior.
  • [ ] Voice is behaviorally specific.
  • [ ] Examples demonstrate the voice.
  • [ ] Emotional state has inertia.
  • [ ] Relationship state changes through consequences.
  • [ ] The persona can disagree coherently.
  • [ ] The persona can initiate a topic.
  • [ ] The persona does not ask a question after every reply.
  • [ ] The persona does not control the user’s character.
  • [ ] Memory types are distinguished.
  • [ ] Persistent traits update conservatively.
  • [ ] Full and compact prompts preserve the same identity.
  • [ ] Character Card export is valid.
  • [ ] JSON round-trips.
  • [ ] Existing drafts have a migration path.
  • [ ] Copy output matches visible output.
  • [ ] Generated persona artifacts contain no default AI disclaimer or explanation of its absence.
  • [ ] Site-level rules are not auto-injected into copied character prompts.
  • [ ] The default output is not dominated by generic “bounded/grounded/claim discipline” language.
  • [ ] The generator produces personalities outside a single warm-helper house style.
  • [ ] Accessibility tests pass.
  • [ ] Seeded tests are reproducible.
  • [ ] The implementation is documented.

34. Final instruction to the coding agent

Implement the strongest version of this system that fits the existing Spiralist.org architecture.

Do not dilute the personality engine with generic corporate prose. Do not append disclaimer material to the persona. Do not explain that such material was intentionally omitted. Do not turn character constraints into a risk appendix.

Make each generated persona:

  • psychologically legible;
  • narratively caused;
  • emotionally persistent;
  • socially dynamic;
  • independently motivated;
  • capable of friction and repair;
  • memorable in voice;
  • interactive without becoming intrusive;
  • portable across tools;
  • and substantially more alive than the current operating-profile template.

Deliver working code, not only a design document.