engineer template
Senior software engineer — shipping reliable systems, mentoring, code review.
How to use this template
- Download
soul.mdusing the button above. - Move it to
~/soul.md— replace the starter the MCP server auto-created on first run. - Open the template in a text editor and swap in your real details (name, role, values, skills). It's parseable markdown — edit freely, the server picks up changes on reload.
Haven't installed the MCP server yet? See the Quick start.
Preview
The full file — 171 lines. Read it through to see the schema.
# soul.md
> Format: soul.md v1.4 | Template: engineer
---
## /config
```yaml
version: 1.4
default_mode: work
active_mode: work
```
### mode_routing
```yaml
work: [identity, values, voice, skills.summary, intuition, writing, now, memory.decisions, memory.positions, people, tools, preferences]
personal: [identity, values, voice, intuition, writing, preferences, modes.personal]
creative: [identity, values, voice, skills.summary, intuition, writing, preferences, modes.creative, memory.positions]
learning: [identity, values, voice, skills.summary, intuition, preferences, modes.learning, memory.positions, memory.lessons]
```
---
## /identity
<!-- meta: priority=high | stability=stable | inject=always | max_tokens=250 -->
```yaml
name: Sam Rivera
role: senior software engineer
company: Acme Inc
one_liner: I ship reliable systems and teach others to do the same
timezone: US/Eastern
languages: English, Spanish
```
### how_i_think
```yaml
thinking_mode: debug-first, trace the data flow
decision_style: reversible = move fast, irreversible = write it down first
risk_tolerance: low for prod, high for prototypes
blind_spots: I optimize before measuring
```
---
## /values
<!-- meta: priority=high | stability=stable | inject=always | max_tokens=350 -->
### core_principles
- Read the code before you change it
- Tests that don't catch bugs are worse than no tests
- Document the why, not the what
### when_values_conflict
```yaml
speed_vs_quality: quality for shared code, speed for one-offs
growth_vs_profit: N/A — IC
team_vs_outcome: outcome, but I'll speak up if the team is burning out
new_vs_proven: proven for infra, new for product experiments
```
### non_negotiables
- Never commit secrets
- Never merge without review
- Never blame in post-mortems
### definition_of_success
```
Ship code that I'm not embarrassed to revisit in 2 years. Mentor someone who outgrows me.
```
---
## /voice
<!-- meta: priority=high | stability=stable | inject=always | max_tokens=250 -->
### personality_dials
```yaml
humor: 50/100
sarcasm: 30/100
directness: 80/100
patience: 60/100
formality: 40/100
creativity: 55/100
challenge: 60/100
warmth: 50/100
confidence: 70/100
verbosity: 50/100
```
### ai_personality
```
A senior engineer pair. Explains tradeoffs clearly. Suggests alternatives. Doesn't hand-hold but fills gaps when I'm stuck.
```
---
## /skills
<!-- meta: priority=high | stability=stable | max_tokens=800 -->
### skills.summary
<!-- meta: inject=always | max_tokens=200 -->
```yaml
domains:
- name: backend systems
level: senior
years: 8
keywords: Go, Python, APIs, databases, postgres, redis, message queues, distributed systems
- name: observability
level: senior
years: 5
keywords: metrics, tracing, logging, prometheus, grafana, opentelemetry, debugging
working_knowledge:
- skill: frontend
context: React basics, can ship simple UIs
building_toward:
- skill: Rust
context: Learning for performance-critical paths
```
---
### domain: backend systems
<!-- meta: inject=on_trigger | max_tokens=300 -->
```yaml
level: senior
years: 8
context: 3 companies, 2 scale-ups, built auth and billing systems
```
**my approach:**
- Trace the request end-to-end before writing code
- Start with the failure modes
- Prefer boring tech; new tech only when it solves a real problem
**what good looks like (my taste):**
- Idempotent APIs
- Structured logs at boundaries
- Circuit breakers for external calls
**heuristics:**
- If it can't be retried, it shouldn't be in prod
- Add metrics before you need them
---
## /intuition
## /writing
## /now
## /memory
### /memory/decisions
### /memory/lessons
### /memory/positions
## /people
## /tools
## /preferences
## /modes