Log₁₀ scale — handles large outliers without distortion
Token efficiency (tokens / message)
Lower = more focused exchanges per turn
Session complexity & learning
Messages per session
Back-and-forth turn count
Patterns extracted per session
Learnable insights identified by SkillRunes
Cumulative pattern growth
Knowledge base growing over sessions
Worked vs failed observations per session
Observations breakdown
Green = things that worked · Red = things that failed · Stacked per session
All sessions
Status
Goal
ID
Tokens
Tok/msg
Msgs
Duration
Patterns
{% for s in sessions %}
{% if s.what_worked and not s.what_failed %}{% set st = "clean" %}
{% elif s.what_worked and s.what_failed %}{% set st = "partial" %}
{% else %}{% set st = "failed" %}{% endif %}
{% set eff = (s.token_count / s.message_count) | round | int if s.message_count else 0 %}
{{ st | capitalize }}
{% if s.compaction_occurred %}compacted{% endif %}
{{ s.goal }}
{{ s.session_id[:8] }}
{{ "{:,}".format(s.token_count) }}
{{ "{:,}".format(eff) }}
{{ s.message_count }}
{% set d = s.duration_seconds %}
{% if d >= 3600 %}{{ "%.1f"|format(d/3600) }}h
{% elif d >= 60 %}{{ (d/60)|round|int }}m
{% else %}{{ d|round|int }}s{% endif %}
{{ s.patterns | length }}
{% endfor %}
SKILL.md version history
{% if skills %}
{% for sv in skills | reverse %}
v{{ sv.version }}{{ sv.timestamp.strftime("%Y-%m-%d %H:%M") if sv.timestamp else "" }}{{ sv.change_summary[:120] if sv.change_summary else "No summary" }}▶