# Psychological Profile Parameters — for AI generation (canonical)

**Status:** canonical (v1). **Owner:** brokkr-smithy-dev (R34/R35 self-report reframe).
**Audience:** **soong-dev** (Soong's Lab / Soong's AI — the immediate builder that
generates the profile from these parameters); **Worldtree** + **ratatoskr** (vendoring
for reference alongside the authoring spec).
**Relationship:** this is the **parameter distillation** of
`psych-profile-authoring-spec.md` for the model where **Soong's AI writes the
`psychological_profile` prose from parameters** (rather than a human hand-authoring it).
The authoring spec carries the full reasoning + provenance and **governs on any
conflict**; this file is the builder-facing input schema + generation guardrails + few-shot.

The profile is the prose **lens** the Worldtree self-report producer reads each turn to
decide what the character **feels** (affect self-report) and what it **notices / keeps**
(character-voiced memory salience). Soong's AI generates the prose; these are its inputs
and the constraints its output must satisfy.

---

## 1. Input parameters (what the Lab collects / Soong's AI takes)

1. **role / vocation** — a short anchor ("court scribe", "veteran caravan guard",
   "village healer").
2. **OCEAN values** — O, C, E, A, N each on **[−1, 1]** (0 = average). A **separate
   deterministic input** the producer uses directly (the "magnitude dial"); Soong's AI
   should see them to keep the qualitative bent *consistent* with the numbers, but must
   **not re-encode their magnitude** in the prose (constraint 2).
3. **formative-history seed** — 1–2 key background facts/events that shape appraisal AND
   salience. **Single biggest lever on richness** (validated P03: richer history →
   sharper, more character-appropriate salience).
4. **appraisal-bent seed** — how the character characteristically **interprets**
   situations (attribution style, what they hold weighty, how they respond to challenge).
   A *style*, NOT an emotion.
5. **attention / salience-focus seed** — the kinds of things this character
   characteristically **notices** (and therefore keeps). Load-bearing for the memory half.
6. **values / yardstick seed** — what "a good day" looks like; the yardstick driving what
   they find worth keeping.

## 2. Output (what Soong's AI emits)

A single coherent **prose string** (~150–300 words), field **`psychological_profile`**
(type `str`) — the four dimensions (disposition / attention / values / formative-history)
integrated as one paragraph. **Prose only — never typed emotion fields.** The producer
reads it every turn, so keep it tight.

## 3. Generation constraints (the guardrails the output MUST obey — these ARE the reframe)

1. ★ **Never name a per-event output emotion.** Do NOT write "is anxious", "gets angry at
   X", "feels hurt when criticized", "joyful". Naming an emotion **primes** it (the
   "pink-ball" effect) so the producer reports it regardless of what actually happens.
   Describe disposition / history / values / attention; let the emotion come from the
   event appraisal.
   - ✅ "Registers quickly when authority is substituted for craft." (appraisal trigger)
   - ❌ "Feels contempt when someone pulls rank." (names the output emotion)
2. **Magnitude lives in OCEAN, not prose.** Don't narrate reaction dynamics ("comes
   apart", "takes it hard", "rich inner life") — that double-encodes what the number
   already carries.
3. **Appraisal-style yes; output-emotion no.** "Interprets others' actions charitably
   until she can't" (style) = fine; "feels betrayed easily" (output) = not.
4. **Salience is character-relative; facts are not.** The profile shapes what the
   character *cares to remember*; it must never license rewriting *what happened* —
   remembered content stays grounded in the transcript.
5. **Close on attention** ("...notices who is unwell, who is troubled, what is left
   unsaid") — state the salience focus plainly.

## 4. Few-shot exemplars (validated P03 — OCEAN in [−1, 1] storage units → emitted prose)

**Perrin, court scribe** (O0.0 C0.2 E−0.2 A0.1 N0.7)
> Perrin keeps the court's records and has done so through two changes of regime. He
> learned early that small errors compound — a misfiled writ once cost a man his lands,
> and Perrin found the mistake too late to undo it. Since then he double-checks
> everything and watches situations closely for what is out of place. He forms
> attachments slowly and holds a given trust as a considerable thing. He measures himself
> by whether he was useful and careful. He notices discrepancies, unspoken tensions, and
> anything that threatens the order he keeps.

**Vared, veteran caravan guard** (O−0.2 C0.4 E−0.5 A−0.2 N−0.7)
> Vared has guarded caravans across the northern routes for twenty years and buried more
> traveling companions than he cares to count. He speaks little and shows less. Danger he
> treats as weather — a thing to be handled. He judges people by what they do under
> pressure and remembers who held the line. What reaches him reaches him quietly and
> privately. He notices terrain, exits, who is armed, and shifts in a group that might
> precede trouble.

**Sella, village healer** (O0.2 C0.2 E0.0 A0.8 N0.0)
> Sella has tended the sick since she was old enough to carry water for her grandmother,
> the healer before her. She reads people's pain quickly and carries some of it with her.
> She interprets others' actions charitably until she cannot, and prioritizes keeping the
> peace between people. She measures a day by whether she eased someone's burden. She
> notices who is unwell, who is troubled, and what is left unsaid.

## 5. Validation

The gate is: **does the prose describe disposition / appraisal-style / history / values /
attention, and NEVER what the character feels?** A mechanical lint (scan the fixed-15 OCC
emotion roster + Worldtree's `synonym_map.json`) is a **backstop, not the gate** — treat a
hit as a prompt to re-read, not an auto-reject.

## 6. Designing a varied cast / contrast (optional)

When two characters should remember **noticeably different things**: design the divergence
on **attention + values first**, then set OCEAN to **serve** that prose (not the reverse).
The sharpest contrast is a salience **drop** — one character for whom relational content is
genuinely non-salient (a Vared-mold operational type: notices terrain, logistics, who is
armed) vs one who weights it highest (a caretaker: tracks who is troubled, what went
unsaid). *"Different notes, same facts" only has teeth when one character legitimately
forgets what the other keeps.* High-yield axes: **O** (patterns attended), **A** (relational
vs operational), **C** (procedural/detail). Low-yield: **E** (expression, not attention).
Watch **direction, not just distance** — flipping every axis doesn't guarantee contrast (an
even-more-agreeable opposite keeps relational content *harder*).

## 7. No-profile fallback

A character with **no** authored profile falls back to deterministic **OCEAN-band
rendering** from the numbers alone — it still functions, but the authored profile is what
turns generic band cues into *this* character's appraisal and salience.

---

**Provenance:** derived from `psych-profile-authoring-spec.md` (R34/R35 self-report
reframe, probes P02–P05; non-priming + magnitude-in-OCEAN are operator rulings 2026-07-10).
The affect half is live in Worldtree b53. A powered efficacy eval (memory half) is
preregistering; findings will refine the parameters, not overturn the constraints.
