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_byinspired_by, public_naming.stylenaming_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.