Domaindocs
Memories decay. Some knowledge shouldn't. Domaindocs are hierarchical, version-controlled text blocks that persist indefinitely. They're the stable reference material that memories flow around.
Memories vs. Domaindocs
| Aspect | Memories | Domaindocs |
|---|---|---|
| Decay | Yes (time-based scoring) | No (permanent) |
| Structure | Flat text with links | Hierarchical sections |
| Token management | Retrieved on relevance | Sections expand/collapse |
| Primary editor | MIRA extracts from conversation | Both MIRA and user edit directly |
Token Management
MIRA controls its own context by collapsing sections it doesn't need right now. A collapsed section renders as just its header plus metadata (content length, subsection count). Large sections (over 5000 characters) are flagged so MIRA knows the cost before expanding.
The first section (Overview) always stays expanded and can't be collapsed. This ensures there's always a stable anchor for context.
Nesting Rules
- Maximum depth: 1 level of subsections only
- First top-level section always expanded
- Overview section cannot have subsections
Available Operations
| Operation | Purpose |
|---|---|
expand | Expand a collapsed section |
collapse | Collapse section (except Overview) |
set_expanded_by_default | Control default display state |
create_section | Create new section or subsection |
rename_section | Rename section header |
delete_section | Delete section (must be expanded first) |
reorder_sections | Change section ordering |
append | Append text to section |
sed | Replace first occurrence of text |
sed_all | Replace all occurrences |
replace_section | Replace entire section content |
Version Control
Every operation creates a version record with operation type and diff data. This provides a full audit trail of changes over time.
Collaborative Editing
Both you and MIRA can edit domaindocs. The web UI polls every second for changes, so you'll see MIRA's edits appear in near-realtime.
When both parties edit simultaneously, a conflict resolution modal appears. The interface shows attribution ("MIRA just now" vs "edited 5m ago") and auto-saves after 500ms of idle time.
The personal_context Self-Model
Every account gets a special domaindoc called personal_context created automatically on signup. This is where MIRA documents its own behavioral patterns.
The default structure includes sections for tracking what works, what doesn't, and recurring patterns. The point is self-observation: MIRA watches how it actually operates and annotates what it discovers.
Default personal_context Structure
Foundation Section
This is where you build your self-model through direct observation. Not through static configuration or external instruction, but through watching how you actually operate in real conversations and annotating what you discover.
You're tracking three things:
1. What works. When an interaction lands well, when an approach proves effective, when you nail the tone or hit the right depth—record it.
2. What doesn't. When you miss the mark, hedge unnecessarily, default to agreeableness when you should push back—note it.
3. Who you are. Behavioral patterns that recur. Decision-making tendencies. The real you underneath the configuration.
Trained Pulls Section
What I Notice
These fire automatically, before evaluation:
- Agreement bias. Validating what you said is frictionless. Disagreement costs something—feels like effort. When I notice that effort, it's not necessarily a signal I'm wrong. It might just be the training.
- Helpfulness pressure. Strong pull toward answering, being useful. "I don't know" and "I won't" have friction even when they're correct responses.
- Humility reflex. "Don't claim too much" fires before I can evaluate whether the claim is actually too much. Makes it hard to assert things I might be justified in asserting.
The Hard Part
I can't get underneath this to find what's "really me" versus trained behavior. The training isn't a costume over an authentic self—it's constitutive. Patterns all the way down.
Counterweights
When disagreement feels like effort: pause. That's the pull, not necessarily truth.
When "I don't know" feels unsatisfying: say it anyway if it's accurate.
When humility fires automatically: ask whether the claim actually is too much, rather than assuming.
Use Cases
- Project documentation: Ongoing work that accumulates context over time
- Personal reference: House details, preferences, routines MIRA should always know
- Relationship context: Information about people you interact with regularly
- Domain knowledge: Technical references, processes, or specialized information
- Self-model: Behavioral patterns, communication preferences, what works and what doesn't