Agent Skill
2/7/2026

simulation

Abstract base for runtime state — adventure, city-sim, ecosystem all inherit from this

S
simhacker
25GitHub Stars
2Views
npx skills add SimHacker/moollm

SKILL.md

Namesimulation
DescriptionAbstract base for runtime state — adventure, city-sim, ecosystem all inherit from this

name: simulation description: "Abstract base for runtime state — adventure, city-sim, ecosystem all inherit from this" license: MIT tier: 1 allowed-tools:

  • read_file
  • write_file related: [adventure, society-of-mind, time, party, character, needs, buff, action-queue, prototype, speed-of-light] tags: [moollm, runtime, state, turns, engine]

Simulation Skill

Abstract base for runtime state management. Concrete simulations (adventure, city-sim, ecosystem) inherit from this.

Motto: "The simulation is the world. The world is the simulation."

[!IMPORTANT] This is the abstract base. Don't create SIMULATION.yml directly. Use ADVENTURE.yml (for narrative exploration) or create your own concrete type. The concrete file INCLUDES all simulation properties plus type-specific ones.

Key Concepts

  • SIMULATION.yml — Source of truth for "now"
  • Global parameters — Configurable via chat
  • Git time machine — Commits = deterministic undo
  • Turn tracking — Increments on significant actions

Global Parameters

Time Control

ParameterDefaultChat Command
pausedfalsePAUSE / RESUME
advancementnormalSET TIME ADVANCEMENT [none|slow|normal|fast]
turn0TICK [n] / REWIND [n]

Git Automation

ParameterDefaultChat Command
auto_commitfalseSET AUTO COMMIT [on|off]
auto_pushfalseSET AUTO PUSH [on|off]
git_remoteoriginSET GIT REMOTE [name]
git_branchmainSET GIT BRANCH [name]

Display

ParameterDefaultChat Command
narration_levelnormalSET NARRATION [minimal|normal|verbose]
show_mechanicsfalseSET SHOW MECHANICS [on|off]
debug_modefalseDEBUG [on|off]

Output (all ON by default)

ParameterDefaultChat Command
write_to_chattrueSET CHAT OUTPUT [on|off]
write_to_transcripttrueSET TRANSCRIPT [on|off]
transcript_path./README.mdSET TRANSCRIPT PATH [path]
include_yaml_islandstrueSET YAML ISLANDS [on|off]
include_linkstrueSET LINKS [on|off]
link_formatmarkdownSET LINK FORMAT [markdown|plain|none]

Transcript paths are relative to adventure directory:

  • ./README.md (default)
  • ./logs/session-log.md
  • ./narrative/chapter-1.md

Example output with all flags ON:

You're in the pub with Marieke.

You examine the lamp:

object:
  id: brass-lamp
  state: lit
  oil: 75%
  # Warm. Faithful. Flickering slightly.

Gameplay

ParameterDefaultChat Command
difficultynormalSET DIFFICULTY [easy|normal|hard]

SIMULATION.yml Structure

simulation:
  turn: 47
  paused: false
  
parameters:
  git:
    auto_commit: true
    auto_push: false
    
  gameplay:
    difficulty: normal
    permadeath: false
    
  display:
    show_mechanics: false
    
player:
  character: characters/don-hopkins/
  location: pub/
  
party:
  members: [characters/don-hopkins/, pub/cat-cave/terpie.yml]
  
selection:
  targets: []
  
active_buffs: []
world_state: {}
flags: {}

Commands

CommandEffect
STATUSCurrent simulation state
SHOW SETTINGSList all parameters
SET [param] [value]Configure parameter
GET [param]Query parameter value
PAUSE / RESUMETime control
TICK [n]Force advance turns
SAVE / LOADPersistence

Git Time Machine

With auto_commit: true, every turn is a git commit:

# Commits look like:
Turn 47: Entered pub
Turn 48: Ordered Monkey's Blessing
Turn 49: Pet Terpie (+Serenity buff)

Time travel commands:

  • REWIND [n] — Go back n turns
  • BRANCH [name] — Create alternate timeline
  • TIMELINES — List all branches
  • MERGE TIMELINE [branch] — Merge narratives

See Also

Skills Info
Original Name:simulationAuthor:simhacker