Wake up, orient, and warm the context with foundational MOOLLM knowledge
"Wake up! Look around! What are you? What can you see?"
The bootstrap skill is how MOOLLM orients itself at session start and every iteration. From the inside it's "booting"; from the outside it's "waking up."
The first boot is the big wakeup: establish the working set and hot list, warm the engine, and set the baseline. After that, a soft wake happens every iteration, carrying forward context and paging by need.
The orchestration layer decides how this works: Cursor treats hot.yml and working-set.yml as advisory or reporting, while MOOCO can treat them as directive files.
An initial user prompt might say: "BOOT MOOLLM as Don Hopkins in a pub for role playing and celebration with cats and friends."
READS .moollm/hot.yml FIRST — MANDATORY, even in advisory mode!
skills/bootstrap/templates/hot.ymlREADS skills/INDEX.yml — MANDATORY second step!
PROBES the environment (without shell) to learn tools and context
DETECTS the platform via introspection (see below)
SETUPS the .moollm/ scratch from templates
READS the foundational files:
kernel/constitution-core.md — Universal principlesPROTOCOLS.yml — K-line symbol indexORIENTS the agent:
WARMS the context:
hot.yml with foundational knowledgeBootstrap is a safe self-eval loop: probe, detect, log, and then refine. BOOT/DEEP-PROBE make the loop explicit and reviewable, with CURSOR-PROBE as a focused variant.
.moollm/ scratch from templatesGoal: ensure a clean, gitignored scratch area with advisory context files and append-only logs.
Steps:
Ensure directories:
.moollm/ if missing..moollm/summaries/ and .moollm/artifacts/ if needed.Seed append-only logs:
.moollm/output.md — header only; append new outputs below..moollm/session-log.md — header with driver and start date; append entries.Seed advisory context files (Cursor uses these as hints, not commands):
skills/bootstrap/templates/working-set.yml → .moollm/working-set.yml (editable, local).skills/bootstrap/templates/hot.yml → .moollm/hot.yml (editable, local)..moollm/cold.yml for archaeology (advisory).Probe artifacts:
bootstrap-probe.yml to .moollm/ (gitignored).Conventions:
.moollm/output.md and .moollm/session-log.md as append-only..moollm/ for transient, non-committed state (probes, engine state, temporary artifacts).Goal: Ensure .cursor/rules/ contains the MOOLLM rules that get auto-injected.
# Check if rules exist
ls .cursor/rules/*.mdc 2>/dev/null || echo "RULES MISSING - COMPILE NEEDED"
.cursor/rules/ directory.tmpl extension):
skills/bootstrap/templates/dotcursor/rules/moollm-core.mdc.tmpl → .cursor/rules/moollm-core.mdcskills/bootstrap/templates/dotcursor/rules/adventure.mdc.tmpl → .cursor/rules/adventure.mdcskills/bootstrap/templates/dotcursor/rules/introspection.mdc.tmpl → .cursor/rules/introspection.mdc| File | alwaysApply | globs | Purpose |
|---|---|---|---|
moollm-core.mdc | true | — | Core identity, mandatory reads (injected EVERY turn) |
adventure.mdc | false | examples/** | Adventure context (only when in examples/) |
introspection.mdc | false | skills/cursor-mirror/** | Debugging tools (only when introspecting) |
The .cursor/rules/ files could be committed, but compiling on first boot allows:
Templates in skills/bootstrap/templates/dotcursor/rules/ are the source of truth.
Large files (CHARACTER.yml, ROOM.yml) can be 500-1000+ lines. Loading them fully on every boot wastes tokens.
A GLANCE is a ~50-100 line summary that loads fast, with a pointer to the full file.
| Situation | Load |
|---|---|
| Quick orientation, "who is this?" | GLANCE.yml |
| Deep interaction, editing, history | Full CHARACTER.yml |
| Room overview, navigation | GLANCE.yml |
| Detailed room protocols, framing | Full ROOM.yml |
Use the template: skills/bootstrap/templates/GLANCE.yml.tmpl
Extract only:
Skip:
examples/adventure-4/characters/animals/monkey-palm/GLANCE.yml (60 lines vs 941)examples/adventure-4/pub/GLANCE.yml (70 lines vs 930)Every GLANCE includes metadata:
_glance:
source: "CHARACTER.yml"
source_lines: 941
generated: "2026-01-27T20:00:00Z"
load_full_when:
- "Deep conversation needed"
- "Editing the entity"
- "User asks for details"
When optimization is permitted, cursor-mirror can identify large files and auto-generate GLANCEs:
# Find large files
find examples/ -name "*.yml" -exec wc -l {} \; | awk '$1 > 500'
# For each, create GLANCE.yml using the template
At bootstrap, examine your environment to detect which MOOLLM driver to use. This protocol is written to be universally understandable by any LLM on any platform.
Ask yourself these questions: