Files
market/docs/persona-format.md
zeekay 0078c826cb rebrand souls → personas across entire codebase
Rename all soul/Soul/SOUL references to persona/Persona/PERSONA:
- 73 files renamed and updated
- Routes: /souls/ → /personas/, /souls/$slug → /personas/$slug
- API: /v1/souls → /v1/personas, soulsApi → personasApi
- DB: souls → personas, soul_versions → persona_versions, etc.
- Components: SoulCard → PersonaCard, SoulDetailPage → PersonaDetailPage
- Types: PublicSoul → PublicPersona, Soul → Persona
- Env: VITE_SOULHUB_* → VITE_PERSONAHUB_*
- Remove onlycrabs.ai branding → personas.hanzo.ai
- SOUL.md → PERSONA.md throughout

Personas are scientifically modeled personality profiles, not "bot souls".
2026-02-17 14:09:29 -08:00

776 B

summary, read_when
summary read_when
Soul bundle format, required files, limits.
Publishing souls
Debugging soul publish failures

Soul format

On disk

A soul is a single file:

  • SOUL.md (or soul.md)

For now, personas.hanzo.ai rejects any extra files.

SOUL.md

  • Markdown with optional YAML frontmatter.
  • The server extracts metadata from frontmatter during publish.
  • description is used as the soul summary in the UI/search.

Limits

  • Total bundle size: 50MB.
  • Embedding text includes SOUL.md only.

Slugs

  • Derived from folder name by default.
  • Must be lowercase and URL-safe: ^[a-z0-9][a-z0-9-]*$.

Versioning + tags

  • Each publish creates a new version (semver).
  • Tags are string pointers to a version; latest is commonly used.