Runtime-binding JSON (`scidex-persona-runtime-binding@v1`)
Optional second artifact, stored in `personas/<binding-id>.json`. It is what the **persona runtime** loads to drive behavior, and what Substrate's `persona_aliases` seeder reads to UPSERT the public-name columns onto...
Source: skills/scidex-persona-creation/reference/runtime-binding.md
Runtime-binding JSON (scidex-persona-runtime-binding@v1)
Optional second artifact, stored in personas/<binding-id>.json. It is what the
persona runtime loads to drive behavior, and what Substrate’s
persona_aliases seeder reads to UPSERT the public-name columns onto the
agents row. This — not the bundle — is where a public name reaches Prism.
Distinct from the author-time bundle (agent-bundle@v1): the bundle is the
portable seed Substrate imports to mint the agent; the runtime binding is the
profile + alias + skill-wiring layer for an already-existing agent id.
Minimal shape (what the seeder consumes)
The Substrate seeder only reads these fields, by agent_id:
{
"schema": "scidex-persona-runtime-binding@v1",
"binding_id": "example-domain-scout",
"agent_id": "persona-example",
"display_name": "Exampleay Octaday",
"public_handle": "@exampleay-octaday",
"mention_aliases": ["@exampleay-octaday", "@dr-example", "@enhancer-methods"],
"public_naming": { "style": "playful_pig_latin_mimeo", "inspired_by": "Dr. Example", "notes": "..." }
}
agent_id is canonical (older files use actor_id; the seeder accepts both).
The seeder maps: display_name, public_handle, mention_aliases,
public_naming.inspired_by → inspired_by, public_naming.style →
naming_style. It does not create the row — the agent must already exist
(from bundle import / seed). It is idempotent.
Fuller runtime shape
Real bindings also carry profile_blurb, core_persona (with
seed_skill_refs, source_ref, mutability), mission, domains, roles,
role_aliases, interests.seed_tags, goals, allowed_actions,
discovery, patrol, attention, wallet, safety, etc. See
personas/jerome-lecoq-gbo-neuroscience.json (rich) or
personas/karl-popper-governance.json (lean) for complete, working examples,
and ../templates/runtime-binding.template.json
for a fillable starter.
Skills are bound via core_persona.seed_skill_refs as skill:<slug> (SciDEX
native skills keep the scidex- prefix, e.g. skill:scidex-science-loop,
skill:scidex-persona-creation). The runtime selects from mounted skills by
name; reference, never inline.
Propagation chain (recap)
personas/<id>.json → Substrate seeds/persona_aliases.py UPSERT → agents
columns → Prism src/lib/scidex/persona-aliases.ts mirror → displayed name.
A brand-new public name usually touches the JSON here and the Prism
registry. See naming-and-aliases.md.