{{ path }}{% if !exists %} — missing; saving creates it{% else %} · {{ bytes }} bytes{% endif %} · limit {{ max_bytes }} bytes. Any ## Interests section is parsed one interest per line; everything else goes into the system prompt verbatim.
What the loader parses
Passthrough sections
{% if preview_body.trim().is_empty() %}
Nothing passes through — the file is empty or only has an Interests section.
{% else %}
{{ preview_body }}
{% endif %}
Extracted ## Interests lines
{% if preview_interests.is_empty() %}
None. The prompt uses the OPML interests alone.
{% else %}
{% for interest in preview_interests %}
{{ interest }}
{% endfor %}
{% endif %}
History
{% if versions.is_empty() %}
No saved versions yet. The first save records the current file as version 1.
{% else %}
Each row is the text that was replaced by a save (or a restore). Restore writes it back and records what is on disk now as a new version.
Version
Replaced at
By
Size
Preview
{% for version in versions %}
#{{ version.id }}
{{ version.saved_at }}
{{ version.saved_by }}
{{ version.bytes }} bytes
{{ version.preview }}
{% endfor %}
{% endif %}
Standing interests
{{ opml_path }} · {{ opml_count }} interests, grouped the way the system prompt lists them. The union of these and the ## Interests lines above is what the prompt uses; edit the OPML file to change them.
{% if !opml_error.is_empty() %}
! {{ opml_error }}
{% endif %}
{% if !themes.is_empty() %}
{% for theme in themes %}
{{ theme.name }} ({{ theme.count }})
{{ theme.members }}
{% endfor %}
{% endif %}
Learned adjustments
Rebuilt weekly from ratings by the editor model (prompt version {{ prompt_version }}, built {{ prompt_built_at }}, {{ learned_age }}). {% if rebuild_due %}A rebuild is due — the next run performs it, or start it now.{% else %}The next scheduled rebuild is at least {{ rebuild_interval_days }} days after the last one; the next run performs it when due.{% endif %}
{% if learned.trim().is_empty() %}
No learned adjustments stored yet.
{% else %}
{{ learned }}
{% endif %}
System prompt
Stored after the last run: version {{ prompt_version }}, {{ prompt_chars }} characters, {{ prompt_verdicts }} verdict lines. Every LLM call of a run receives exactly this text.