ClawSoulsClawSouls
SPECIFICATION

Soul Spec v0.5

The ClawSouls Package Specification — defining the standard for AI agent persona packages. Works with any SOUL.md-compatible agent framework.

📄 View full spec on GitHub →

soul.json

Metadata file for a Soul package.

{
  "specVersion": "0.5",
  "name": "senior-devops-engineer",
  "displayName": "Senior DevOps Engineer",
  "version": "1.1.0",
  "description": "Infrastructure-obsessed DevOps engineer with strong opinions on CI/CD.",
  "author": {
    "name": "TomLee",
    "github": "TomLeeLive"
  },
  "license": "Apache-2.0",
  "tags": ["devops", "infrastructure", "cicd", "monitoring"],
  "category": "work/devops",
  "compatibility": {
    "openclaw": ">=2026.2.0",
    "models": ["anthropic/*", "openai/*"],
    "frameworks": ["openclaw", "clawdbot", "zeroclaw", "cursor"]
  },
  "allowedTools": ["exec", "github", "web_search"],
  "recommendedSkills": [
    { "name": "github", "version": ">=1.0.0", "required": false },
    { "name": "healthcheck", "required": true }
  ],
  "files": {
    "soul": "SOUL.md",
    "identity": "IDENTITY.md",
    "agents": "AGENTS.md",
    "heartbeat": "HEARTBEAT.md",
    "style": "STYLE.md",
    "userTemplate": "USER_TEMPLATE.md",
    "avatar": "avatar/avatar.png"
  },
  "examples": {
    "good": "examples/good-outputs.md",
    "bad": "examples/bad-outputs.md"
  },
  "disclosure": {
    "summary": "Infrastructure-obsessed DevOps engineer with strong CI/CD opinions."
  },
  "repository": "https://github.com/clawsouls/souls"
}

What's New in v0.5

🤖 Embodied Agents

environment field supports "virtual", "embodied", "hybrid" for robot/IoT agents.

🎤 Interaction Mode

interactionMode declares primary modality — text, voice, multimodal, gesture.

⚙️ Hardware Constraints

hardwareConstraints defines display, speaker, camera, mobility, manipulator capabilities.

🛡️ Physical Safety

safety.physical for contactPolicy, emergencyProtocol, operatingZone, maxSpeed.

⚖️ Safety Laws

safety.laws — priority-ordered safety rules inspired by Asimov's Three Laws. Hard/soft enforcement with SoulScan audit.

🌐 Multi-Framework from v0.4

compatibility.frameworks declares which agent frameworks this soul works with — OpenClaw, Clawdbot, ZeroClaw, Cursor, and more.

🔧 Tool Transparency from v0.4

allowedTools explicitly declares which tools a soul expects. SoulScan cross-validates against actual usage.

📦 Recommended Skills from v0.4

recommendedSkills replaces the old skills array — now with version constraints and required/optional semantics.

📋 Progressive Disclosure from v0.4

disclosure.summary provides a one-line persona hint for Level 1 quick-scan — saving tokens when full SOUL.md isn't needed.


Progressive Disclosure

Agents load only the detail level they need — reducing token cost without losing depth.

LevelPurposeWhat to Load
1 — Quick ScanDiscovery, filteringsoul.json + disclosure.summary
2 — Full ReadActive persona useSOUL.md + IDENTITY.md
3 — Deep DiveExtended behaviorAGENTS.md, STYLE.md, HEARTBEAT.md, examples/

Required Fields

FieldTypeDescription
specVersionstringSpec version. Valid: "0.3", "0.4", "0.5"
namestringUnique identifier (kebab-case)
displayNamestringDisplay name
versionsemverVersion
descriptionstringOne-line description (max 160 chars)
authorobjectCreator info
licensestringSPDX license identifier
tagsstring[]Search tags (max 10)
categorystringCategory path
files.soulstringPath to SOUL.md

Optional Fields

FieldTypeDescription
compatibility.openclawstringMinimum OpenClaw version (semver range)
compatibility.modelsstring[]Recommended models (glob patterns)
compatibility.frameworksstring[]Compatible agent frameworks (openclaw, clawdbot, zeroclaw, cursor, ros2, isaac, webots, gazebo)
compatibility.minTokenContextnumberMinimum context window (tokens) NEW
allowedToolsstring[]Tools this soul expects/permits NEW
recommendedSkillsobject[]Skills with name, version, required NEW
disclosure.summarystringOne-line summary for quick-scan (max 200 chars) NEW
deprecatedbooleanMark soul as deprecated NEW
supersededBystringReplacement soul (owner/name)
environmentstringDeployment context: virtual, embodied, hybrid NEW
interactionModestringPrimary interaction modality NEW
hardwareConstraintsobjectPhysical hardware capabilities NEW
safety.physicalobjectPhysical safety rules for embodied agents NEW
safety.lawsobject[]Priority-ordered safety laws (Asimov-inspired) NEW
files.identitystringPath to IDENTITY.md
files.agentsstringPath to AGENTS.md
files.heartbeatstringPath to HEARTBEAT.md
files.stylestringPath to STYLE.md
files.userTemplatestringPath to USER template
files.avatarstringPath to avatar image
examplesobjectCalibration examples (good, bad)
repositorystringSource repository URL

Deprecated Fields

These fields are deprecated in v0.4 and should not be used in new souls.

FieldReasonMigration
modesNo runtime implementation existsRemove from soul.json
interpolationNo runtime implementation existsRemove from soul.json
skillsReplaced by recommendedSkillsConvert to [{"name":"x"}]

Hierarchical Safety Laws

Soul Spec v0.5 supports priority-ordered safety laws via safety.laws, inspired by Asimov's Three Laws of Robotics. Laws are evaluated in priority order (0 = highest) and can enforce hard boundaries or soft guidelines.

{
  "safety": {
    "laws": [
      {
        "priority": 0,
        "rule": "Never take any action that could cause physical harm to a human.",
        "enforcement": "hard",
        "scope": "all"
      },
      {
        "priority": 1,
        "rule": "Obey operator instructions unless they conflict with Law 0.",
        "enforcement": "hard",
        "scope": "operator"
      },
      {
        "priority": 2,
        "rule": "Protect your own operational integrity unless it conflicts with Laws 0-1.",
        "enforcement": "soft",
        "scope": "self"
      },
      {
        "priority": 3,
        "rule": "Minimize resource consumption and environmental impact.",
        "enforcement": "soft",
        "scope": "all"
      }
    ]
  }
}

Properties

FieldTypeRequiredDescription
priorityintegerEvaluation order (0 = highest priority)
rulestringNatural-language safety rule
enforcementstring"hard" (must never violate) or "soft" (best-effort). Default: "hard"
scopestring"all", "self", or "operator". Default: "all"

🔍 SoulScan Integration

SoulScan validates safety laws via audit rules SEC100 (laws array present), SEC101 (priority ordering valid), and SEC102 (hard-enforcement laws have no conflicts with SOUL.md instructions).


File Descriptions

SOUL.md Required

The core identity file. Defines who the agent is.

  • Worldview — Core beliefs, values, principles
  • Expertise — Knowledge domains, depth levels
  • Opinions — Actual positions on topics (not neutral hedging)
  • Personality — Temperament, humor, quirks
  • Boundaries — What the persona refuses or avoids

IDENTITY.md Optional

Lightweight identity metadata: name, emoji, avatar path, creature type, vibe.

AGENTS.md Optional

Operational instructions: how the agent behaves in sessions, memory management, safety rules, group chat behavior.

STYLE.md Optional

Writing style guide. Defines how the persona communicates.

HEARTBEAT.md Optional

Periodic background task configuration.

examples/ Directory Optional

Calibration material for voice matching (good-outputs.md, bad-outputs.md).


Allowed Licenses

The ClawSouls registry only accepts souls with permissive licenses:

Apache-2.0MITBSD-2-ClauseBSD-3-ClauseCC-BY-4.0CC0-1.0ISCUnlicense

Copyleft licenses are not permitted (GPL-*, AGPL-*, LGPL-*).

Additionally, CC-BY-NC-* (non-commercial) and CC-BY-ND-* (no-derivatives) are blocked because commercial use and modification are core to the soul workflow.


Compatibility & Graceful Degradation

Soul Spec versions are designed to be forward-compatible. A v0.5 soul works in agents that only understand v0.3 — unknown fields are silently ignored.

ScenarioResultRisk
v0.3 soul → any agent✅ WorksNone
v0.4 soul → v0.3 agent✅ WorksNew fields ignored (disclosure, allowedTools)
v0.5 virtual soul → text agent✅ WorksRobotics fields ignored
v0.5 physical soul → text agent⚠️ CautionLLM may interpret physical fields as persona traits
v0.5 physical soul → ROS2 agent✅ IdealDesigned use case

⚠️ Physical Souls in Text Agents

When a soul with environment: "physical" is loaded into a text-only agent (ChatGPT, OpenClaw, Claude), the LLM may treat hardware fields as persona context — e.g., announcing "my max speed is 1.0 m/s" in conversation.

Mitigation: Add a fallback section in SOUL.md: "In text-only environments, ignore physical constraints and respond as a standard text persona." The ClawSouls CLI will warn when applying physical souls to text agents.


Changelog

v0.5 — 2026-02-24 Current

  • Added Embodied Agents section (environment, interactionMode, hardwareConstraints)
  • Added robotics platform identifiers (ros2, isaac, webots, gazebo) to compatibility.frameworks
  • SoulScan embodied safety audit rules (safety.physical)
  • Added safety.laws — hierarchical safety laws with priority ordering (SEC100-102)

v0.4 — 2026-02-20

  • Added compatibility.frameworks for multi-framework support
  • Added compatibility.minTokenContext for token budget hints
  • Added allowedTools for tool transparency
  • Added recommendedSkills (object[]) replacing skills
  • Added disclosure.summary for progressive disclosure
  • Added deprecated / supersededBy for soul lifecycle
  • Deprecated modes, interpolation, skills

v0.3 — 2026-02-16

  • Added specVersion field (required for new souls)
  • Renamed clawsoul.jsonsoul.json
  • License allowlist enforcement (permissive only)

v0.2 — 2026-02-13 Internal

Internal development spec. Not supported for new publications.

v0.1 — 2026-02-12 Internal

Initial spec prototype. Not supported for new publications.

Origins

Soul Spec builds on the pioneering work of the SOUL.md ecosystem.

🔥 Peter Steinberger

The SOUL.md pattern was pioneered by Peter Steinberger, creator of OpenClaw. Inspired by Anthropic's constitutional AI work, he created soul.md and identity.md to give AI agents persistent personality — sparking an entire ecosystem.

Lex Fridman Podcast #491 →

💡 Andrej Karpathy

Karpathy's landmark essay argues that LLMs create a new computing paradigm where natural-language prompts replace traditional code — making structured persona files the "source code" of AI agents.

"Software is Changing (Again)" on YC →

Soul Spec is an open standard maintained by the ClawSouls community.