persona_update
Edit a persona's sections, age range or handle, guarded against overwriting someone else's concurrent change.
On this page
Updates a Persona. Only the fields you pass are changed, and the write is guarded by base_revision — read it with persona_get first.
Input
| Field | Type | Required | Description |
|---|---|---|---|
brand_name |
string |
yes | The slug of the brand that owns the persona. |
persona_name |
string |
yes | The current persona slug. |
base_revision |
integer |
yes | The revision you last read. Guards against overwriting a concurrent edit. |
name |
string |
no | New display name. |
description |
string |
no | New one-line summary. |
profile / motivations / frictions / language |
string | null |
no | New section text; null clears it. |
age_min / age_max |
integer | null |
no | New age bound; null clears it. |
slug |
string |
no | New handle (a deliberate rename). |
Omit versus null
The distinction is load-bearing for every nullable field:
- Omit a field to leave it exactly as it is.
- Pass
nullto clear it.
So editing only frictions cannot silently erase profile, and clearing age_max is how a persona becomes “35 and older”.
Example
persona_update({
brand_name: 'acme-running',
persona_name: 'marathon-maya',
base_revision: 3,
language: '“My knees are shot by mile 18” — never “joint fatigue”.',
age_max: null, // now 30 and older
});
Warning
The age range is checked after your change is applied
Passing one bound can conflict with the stored other: sending age_min: 50
against a stored age_max: 40 is rejected as inverted even though the input
alone looks fine. Send both when moving the range across the other bound.
Note
A stale base_revision is rejected, not merged
If the persona changed since you read it, the update fails and tells you the
current revision. Re-fetch with persona_get and
decide what to keep — the write is never applied on top of a row you have not
seen.
Renaming via slug changes the handle: anything referencing the old one, including authored Skills, needs updating.
Requires the brand:write scope.