Tool Persona Delete
Remove a custom persona from every store it lives in.
Requires an explicit confirmation. Built-in personas cannot be deleted.
Usage
{
"tool": "persona_delete",
"params": {
"persona_name": "abandoned-draft",
"confirm": true
}
}
{
"persona": "abandoned-draft",
"fileStore": { "deleted": true },
"cms": { "ok": true, "detail": "CMS delete ok" },
"note": "Removed from both stores."
}
Confirmation is required
Without confirm: true the tool describes what it would remove and does nothing:
{
"error": "confirmation_required",
"message": "Deleting \"abandoned-draft\" removes it from the file store and the CMS. Re-send with confirm:true.",
"wouldDelete": { "name": "abandoned-draft", "description": "..." },
"deleted": false
}
The caller here is usually a model, and this is the only tool in the persona surface that destroys something. A dry run you have to opt out of is cheaper than a deletion you have to explain.
A partial delete is reported, not hidden
If one store accepts the deletion and the other does not, the persona still resolves through whichever tools read the surviving copy β and it will look like the delete silently failed.
{
"fileStore": { "deleted": true },
"cms": { "ok": false, "detail": "no API key in session β the CMS copy was NOT updated" },
"note": "Partially removed β the stores now disagree. A persona left in one store still resolves through the tools that read it."
}
What it refuses
- Built-in personas. They ship with the package and are shared by every install.
- Unknown personas. Nothing to delete.
There is no undo here
Deletion removes the persona file and the CMS row. Anything referencing that persona by name β saved journeys, comparison runs, report history β will stop resolving it.
If the goal is to correct a persona rather than remove it, persona_update patches individual fields and preserves the rest.
Related
- persona_update β change a persona instead of removing it
- list_cognitive_personas β the authoritative roster