Skip to content
Protocol

heat tracking

core by Curtis Mercier v2.0.0 heat: cold
memoryloadingperformanceself-awareness
Tiercore
Version2.0.0
Heatcold
AuthorCurtis Mercier
SourceGitHub ↗
/install protocol heat-tracking

Run in a Soma session to add to your project.

curl -sO https://raw.githubusercontent.com/meetsoma/community/main/protocols/heat-tracking.md

Download and copy to .soma/protocols/heat-tracking.md — or view on GitHub ↗

Tags

Applies to
always

Details

Heat Tracking

How Soma decides what to load into your context. The heat system is built into the boot extension — this protocol helps you understand what's happening and how to tune it. Editing this file won't change the heat system's behavior.

TL;DR

Cold (0-2): skipped. Warm (3-7): TL;DR only. Hot (8+): full body. Heat decays each session, bumps on use. /pin heats, /kill drops to 0.

How It Works

Every protocol and muscle has a heat value. Higher heat = more presence in your system prompt.

Heat State What Loads
0-2 Cold Nothing. Listed as "available" in boot.
3-7 Warm Breadcrumb — 1-2 sentence summary.
8+ Hot Full content injected into system prompt.

Auto-Detection

Soma watches tool results and bumps heat when it sees relevant patterns:

Protocols:

  • Frontmatter writes → frontmatter-standard +1
  • Preload writes → breath-cycle +1
  • Checkpoint commits → session-checkpoints +1

Muscles:

  • File reads matching muscle triggers: → muscle heat +1
  • Script execution matching muscle name → muscle heat +1
  • SVG/logo file writes → svg-logo-design +1

Limitation: most protocol usage isn't detectable from tool results. A protocol like working-style has no tool signature — its heat only changes via manual /pin or heat-default in frontmatter.

Decay

On session end, unused protocols lose decayRate heat (default: 1). A protocol you stop using naturally fades from context. Use /pin to keep something hot.

Settings

{
  "protocols": {
    "warmThreshold": 3,
    "hotThreshold": 8,
    "maxHeat": 15,
    "decayRate": 1,
    "maxBreadcrumbsInPrompt": 10,
    "maxFullProtocolsInPrompt": 3
  },
  "muscles": {
    "tokenBudget": 2000,
    "maxFull": 2,
    "maxDigest": 8
  },
  "heat": {
    "autoDetect": true,
    "autoDetectBump": 1,
    "pinBump": 5
  }
}

Tuning Guide

Goal Adjust
Load more protocols Raise maxFullProtocolsInPrompt, lower hotThreshold
Faster protocol rotation Raise decayRate to 2-3
Keep everything loaded Set decayRate: 0, pin what you want
Minimize prompt size Lower maxFull and tokenBudget
Disable auto-detection Set autoDetect: false — manual only

Commands

Command Effect
/pin <name> Bump heat by pinBump (default +5)
/kill <name> Drop heat to 0

Source

  • Protocol loading: core/protocols.tsdiscoverProtocols(), buildProtocolInjection()
  • Muscle loading: core/muscles.tsdiscoverMuscles(), buildMuscleInjection()
  • Heat state: .soma/state.json (protocol heat values)
  • Auto-detection: extensions/soma-boot.tstool_result event handler
  • Settings: core/settings.tsProtocolSettings, MuscleSettings, HeatSettings

View source on GitHub →