Session Log
Human-readable markdown logs that tell stories.
Session logs are living documents that capture the narrative of play. Unlike technical event logs, sessions are meant to be READ โ by users, by future LLMs warming context, by anyone who wants to understand what happened.
[!IMPORTANT] Session logs are NOT append-only! They are living documents that grow and improve over time. You can and should retroactively improve them as new information comes in.
๐ Where Sessions Live
The default session file is SESSION.md in the character directory:
characters/
โโโ real-people/don-hopkins/
โ โโโ CHARACTER.yml
โ โโโ SESSION.md โ Default session log
โโโ fictional/donna-toadstool/
โ โโโ CHARACTER.yml
โ โโโ SESSION.md โ Default session log
โโโ animals/monkey-palm/
โโโ CHARACTER.yml
โโโ SESSION.md โ Default session log
Naming Sessions
You can create multiple session files with descriptive suffixes:
| Session File | Purpose |
|--------------|---------|
| SESSION.md | Default โ the main session log |
| SESSION-day1-exploration.md | Specific day or theme |
| SESSION-fluxx-marathon.md | Named adventure arc |
| SESSION-debug-investigation.md | Debugging session |
Command: START SESSION [name] โ Creates a new session file with optional suffix.
๐ Writing Good Sessions
The Golden Rule
Sessions are meant to be read by humans. Write them like stories, not logs.
Structure with Outlines
Use <details open> tags to create collapsible sections that:
- Show narrative meant to be read (opened)
- Hide technical data and debugging (closed)
- Group related content into logical sections
- Allow readers to drill down on demand
<details open>
<summary><h2>๐ Chapter Title โ Descriptive Subtitle</h2></summary>
The narrative content goes here. This is what readers see first.
<details open>
<summary>๐ <strong>Technical details: What the YAML changes looked like</strong></summary>
```yaml
# The YAML data island
state_change:
file: ./CHARACTER.yml
changes: [location, inventory]
</details>
</details>
```
Outline Patterns
| Pattern | When to Use | State |
|---------|-------------|-------|
| <details open> | Narrative chapters โ always show | Open |
| <details open> | Technical details โ hide by default | Closed |
| Nested <details open> | Data within narrative | Mixed |
The Summary Line
The <summary> is part of the narrative! Write it as a headline:
<!-- BAD: Generic summaries -->
<summary>Turn 5</summary>
<summary>File operations</summary>
<!-- GOOD: Descriptive headlines -->
<summary><h2>๐ Turn 5: The Wish is Spoken โ Palm's Incarnation</h2></summary>
<summary>๐ <strong>File creation: CHARACTER.yml with 32 Mind Mirror dimensions</strong></summary>
Use Emojis in Section Headers
Add emojis after the folder icon for narrative sections:
| Emoji | Meaning | |-------|---------| | ๐ | Technical/collapsed section | | ๐ | Major milestone | | ๐ญ | Character transformation | | ๐บ๏ธ | Exploration/travel | | ๐ฌ | Dialogue/conversation | | ๐ฐ | Games/randomness | | ๐ ๐ฑ ๐ต | Animal character sections | | โก | Speed-of-light simulation |
๐ Session Index
Keep an index at the top of every session! Update it retroactively as you append.
<details open>
<summary><h2>โญ Session Highlights & Index</h2></summary>
### ๐ Session Index (Internal Links)
**Day 1 โ The Wish**
- [๐ฟ LOOK AROUND](#-look-around) โ First impressions
- [Turn 1: Talk to Marieke](#turn-1-talk-to-marieke) โ Lucky strains
- [Turn 7: THE WISH IS SPOKEN](#turn-7-the-wish-is-spoken) โ ๐ Palm's incarnation
**Day 2 โ The Fluxx Marathon**
- [๐ฐ 33 Turns of Gezelligheid](#33-turns-of-gezelligheid) โ Speed of Light demo
### ๐ Key Locations (External Links)
| Location | Description |
|----------|-------------|
| [Palm's Nook](../../../pub/stage/palm-nook/) | The monkey's home |
| [The Pub](../../../pub/) | Main location |
</details>
Index Rules
- Internal links use anchor syntax:
[Title](#anchor-name) - External links use relative paths:
[File](../../../path/file.yml) - Update retroactively โ every append is a chance to improve the index
- Group by day/arc โ natural narrative divisions
๐ Linking Generously
Links draw people into the repo! Every file, character, room, and skill mentioned should be a link.
Link Everything
<!-- BAD: No links -->
Palm wrote an essay about being a monkey.
<!-- GOOD: Link everything -->
[Palm](../../animals/monkey-palm/) wrote an essay
([palm-on-being-palm.md](../../../pub/stage/palm-nook/study/palm-on-being-palm.md))
about being a monkey.
Use Tables for Related Files
### Files Created
| File | Description |
|------|-------------|
| [CHARACTER.yml](./CHARACTER.yml) | Soul file |
| [APPEARANCE.yml](./APPEARANCE.yml) | Physical description |
| [โ Full directory](../../animals/monkey-palm/) | Complete character |
### Related Skills
| Skill | Purpose |
|-------|---------|
| [incarnation]($SKILLS/incarnation/) | Character creation protocol |
| [speed-of-light]($SKILLS/speed-of-light/) | Multi-agent simulation |
Path variables in YAML vs Markdown: Use
$SKILLS/in YAML files (runtime resolution). Use relative paths in Markdown for GitHub rendering.
๐ Tables Tell Stories
Tables are excellent for:
- Summarizing actions โ turns, outcomes, stats
- Showing state โ inventories, relationships, locations
- Listing files โ what was created, edited, linked
- Character rosters โ who's present, their status
## Current Status
| Character | Location | Status |
|-----------|----------|--------|
| [Don](../../real-people/don-hopkins/) | pub/ | Active |
| [Palm](../../animals/monkey-palm/) | stage/palm-nook/ | Writing |
| [Biscuit](../../animals/dog-biscuit/) | following Don | WIGGLING |
## Session Statistics
| Metric | Value |
|--------|-------|
| Turns | 33 |
| NPCs encountered | 15 |
| Relationships formed | 12 |
| Gold spent | 31 |
Fold Large Tables
<details open>
<summary>๐ <strong>Full inventory (47 items)</strong></summary>
| Item | Location | Value |
|------|----------|-------|
| ... | ... | ... |
</details>
๐ Retroactive Improvement
Sessions are living documents. Every time you append:
- Update the index โ add new sections, fix anchors
- Add missing links โ file paths, character names
- Improve summaries โ make them more descriptive
- Fill in context โ as you learn more, annotate earlier sections
- Fix broken links โ paths change as files move
Ninja Edits
Small retroactive improvements are encouraged:
- Correcting typos
- Adding links to newly-created files
- Improving section summaries
- Updating the index
๐ YAML Data Islands
Embed structured data in fenced code blocks for machine readability:
<details open>
<summary>๐ <strong>State change: Moving player from start/ to coatroom/</strong></summary>
```yaml
state_change:
file: ./CHARACTER.yml
changes:
player.location: "coatroom/" # Was: "start/"
file: ../../../ADVENTURE.yml
changes:
player.location: "coatroom/" # Mirror update
</details>
```
Data Island Best Practices
| Practice | Reason |
|----------|--------|
| Use # comments | Explain the WHY, not just WHAT |
| Abbreviate long data | Show structure, not everything |
| Include file paths | Link to actual files |
| Explain relationships | "Mirror update", "Canonical source" |
๐ Session Logs vs Event Logs
| Session Logs (SESSION.md) | Event Logs (events.yml) |
|---------------------------|-------------------------|
| Human readable | Machine readable |
| Narrative style | Structured data |
| Living document (editable) | Append-only |
| Collapsible outlines | YAML events |
| For reading | For debugging/audit |
| In character directories | In .agent/ or adventure root |
Create event logs for:
- Technical debugging
- Append-only audit trails
- Machine-parseable history
Create session logs for:
- User-facing narrative
- GitHub browsing
- Context warming
- Storytelling
๐ Examples: Gold Standard Sessions
These sessions demonstrate best practices:
Don Hopkins' Marathon Session
examples/adventure-4/characters/real-people/don-hopkins/sessions/marathon-session.md
7000+ lines spanning 5 days of adventure. Demonstrates:
- Extensive use of collapsible sections
- Comprehensive index at top
- Generous linking to files and skills
- Tables for menus, stats, and rosters
- Speed-of-light simulation transcripts
- Technical details hidden in collapsed sections
Donna Toadstool's Session
examples/adventure-4/characters/fictional/donna-toadstool/SESSION.md
Complete character creation narrative. Demonstrates:
- Table of contents with parts
- Character transformation documentation
- File operation explanations
- Appendix with technical reference
- Clear separation of narrative and data
๐ฏ Quick Reference
Starting a New Section
---
<details open>
<summary><h2>๐ Turn N: Title โ Descriptive Subtitle</h2></summary>
Narrative description of what happened.
<details open>
<summary>๐ <strong>Technical: What changed under the hood</strong></summary>
```yaml
changes:
- file: path/to/file.yml
field: value
</details>
</details>
```
Checklist for Every Append
- [ ] Updated index at top with new section
- [ ] Added links to all mentioned files
- [ ] Linked character names to their directories
- [ ] Used collapsible sections appropriately
- [ ] Wrote descriptive summary lines
- [ ] Included relevant tables
- [ ] Fixed any broken links noticed
The Intertwingularity
Session-log is the PLAY stage of play-learn-lift โ capture everything.
graph LR
SL[๐ session-log] -->|PLAY stage of| PLL[๐ฎ play-learn-lift]
SL -->|tracks| R[๐ช room]
SL -->|tracks| TC[๐ด card]
SL -->|monitored by| SR[๐ง self-repair]
AP[โ๏ธ adventure] -->|LOG.md is| SL
DB[๐ง debugging] -->|logs to| SL
CH[๐ค character] -->|SESSION.md is| SL
Dovetails With
Sister Skills
| Skill | Relationship | |-------|--------------| | character/ | Session files live in character directories | | adventure/ | Adventure LOG.md follows session-log patterns | | play-learn-lift/ | Session-log is the PLAY capture stage | | summarize/ | Compress session-log when too long | | self-repair/ | Monitors session-log integrity | | debugging/ | Debug sessions log here |
Protocol Symbols
| Symbol | Link |
|--------|------|
| SESSION-LOG | PROTOCOLS.yml |
| NARRATIVE-FIRST | Write for humans |
| LINK-GENEROUSLY | Every file is a link |
Kernel
- kernel/event-logging-protocol.md โ Technical event format
- schemas/event-schema.yml โ YAML block schema
Navigation
| Direction | Destination | |-----------|-------------| | โฌ๏ธ Up | skills/ | | โฌ๏ธโฌ๏ธ Root | Project Root | | ๐ฎ Sister | play-learn-lift/ | | ๐ค Sister | character/ |