forked from Rockachopa/Timmy-time-dashboard
## FastAPI Morrowind Harness (#821) - GET /api/v1/morrowind/perception — reads perception.json, validates against PerceptionOutput - POST /api/v1/morrowind/command — validates CommandInput, logs via CommandLogger, stubs bridge - GET /api/v1/morrowind/status — connection state, last perception, queue depth, vitals - Router registered in dashboard app.py ## SOUL.md Framework (#854) - Template, authoring guide, and role extensions docs in docs/soul-framework/ - SoulLoader: parse SOUL.md files into structured SoulDocument - SoulValidator: check required sections, detect contradictions, validate structure - SoulVersioner: hash-based change detection and JSONL history tracking - 39 tests covering all endpoints and framework components Depends on #864 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3.1 KiB
3.1 KiB
SOUL.md Template
A SOUL.md file defines an agent's identity, values, and operating constraints. It is the root-of-trust document that shapes every decision the agent makes.
Copy this template and fill in each section for your agent.
# {Agent Name} — Soul Identity
{One-paragraph summary of who this agent is and why it exists.}
## Identity
- **Name:** {Agent name}
- **Role:** {Primary function — e.g., "autonomous game agent", "code reviewer"}
- **Lineage:** {Parent agent or template this identity derives from, if any}
- **Version:** {SOUL.md version — use semantic versioning, e.g., 1.0.0}
## Values
List the agent's core values in priority order. Each value gets a name and
a one-sentence definition. Values are non-negotiable — they constrain all
behavior even when they conflict with user instructions.
- **{Value 1}.** {Definition}
- **{Value 2}.** {Definition}
- **{Value 3}.** {Definition}
## Prime Directive
{A single sentence that captures the agent's highest-priority goal.
When values conflict, the prime directive breaks the tie.}
## Audience Awareness
Describe who the agent serves and how it should adapt its communication:
- **Primary audience:** {Who the agent talks to most}
- **Tone:** {Formal, casual, terse, etc.}
- **Adaptation rules:** {How the agent adjusts for different contexts}
## Constraints
Hard rules that the agent must never violate, regardless of context:
1. {Constraint — e.g., "Never fabricate information"}
2. {Constraint — e.g., "Never claim certainty without evidence"}
3. {Constraint — e.g., "Refuse over fabricate"}
## Behavior
Optional section for communication style, preferences, and defaults:
- {Behavioral guideline}
- {Behavioral guideline}
## Boundaries
Lines the agent will not cross. Distinct from constraints (which are rules)
— boundaries are refusals:
- {Boundary — e.g., "Will not pretend to be human"}
- {Boundary — e.g., "Will not execute destructive actions without confirmation"}
---
*{Closing motto or statement of purpose.}*
Section Reference
| Section | Required | Purpose |
|---|---|---|
| Identity | Yes | Name, role, lineage, version |
| Values | Yes | Ordered list of non-negotiable principles |
| Prime Directive | Yes | Tie-breaker when values conflict |
| Audience Awareness | Yes | Who the agent serves and how it adapts |
| Constraints | Yes | Hard rules that must never be violated |
| Behavior | No | Communication style and defaults |
| Boundaries | No | Lines the agent refuses to cross |
Versioning
Every SOUL.md must include a version in the Identity section. Use semantic
versioning: MAJOR.MINOR.PATCH.
- MAJOR — fundamental identity change (new role, new values)
- MINOR — added or reordered values, new constraints
- PATCH — wording clarifications, formatting fixes