Compact memories (session/learned) to archive
Archives old session and learned memories to organized files.
/plugin marketplace add ahmetmeral/axel-marketplace/plugin install axel@axel-marketplace<document type="command" entry="cmd:main">
<enforcement>
<![CDATA[
- Read the `target`, `src`, or `ref` attribute from the document XML to locate referenced files
- Extract the plugin root directory from paths (e.g., ${CLAUDE_PLUGIN_ROOT})
- Compact types:
- memories session: .claude/MEMORIES.md → .claude/memories/sessions/
- memories learned: .claude/LEARNED.md → .claude/memories/learned/
]]>
</enforcement>
<objective>
Compact memories to archive old items from source files to target locations.
</objective>
<documents name="core" load="always" mode="context">
<read src="${CLAUDE_PLUGIN_ROOT}/AXEL-Bootstrap.md"/>
<understanding>
!! MANDATORY: READ → UNDERSTAND → APPLY !!
Bootstrap provides core AXEL rules.
</understanding>
</documents>
<variables>
<var name="action" from="args.0"/>
<var name="param1" from="args.1"/>
<var name="plugin_root" value="${CLAUDE_PLUGIN_ROOT}"/>
</variables>
<command id="cmd:main">
<goto when="action == ''" to="menu"/>
<goto when="action == 'memories'" to="memories-route"/>
<goto to="menu"/>
</command>
<execution flow="staged">
<!-- menu: Main menu -->
<stage id="menu">
<print>
## /axel:compact
**Usage:**
/axel:compact memories [session|learned]
**Or select below:**
</print>
<ask id="choice" prompt="What to compact?">
<choice key="1" value="memories" label="Memories (session/learned)"/>
</ask>
<goto when="choice == 'memories'" to="memories-menu"/>
<goto to="cancel"/>
</stage>
<!-- memories-route: Route memories by param -->
<stage id="memories-route">
<goto when="param1 == 'session'" to="memories-session"/>
<goto when="param1 == 'learned'" to="memories-learned"/>
<goto to="memories-menu"/>
</stage>
<!-- memories-menu: Select memory type -->
<stage id="memories-menu">
<ask id="mem_type" prompt="Which memories to compact?">
<choice key="1" value="session" label="Session memories"/>
<choice key="2" value="learned" label="Learned lessons"/>
</ask>
<goto when="mem_type == 'session'" to="memories-session"/>
<goto when="mem_type == 'learned'" to="memories-learned"/>
<goto to="cancel"/>
</stage>
<!-- memories-session: Compact session memories -->
<stage id="memories-session">
<print>Compacting session memories...</print>
<bash output="result"><![CDATA[
PYTHONIOENCODING=utf-8 python "${plugin_root}/scripts/axel_compact.py" --action memories-session --source-file ".claude/MEMORIES.md" --target-dir ".claude/memories/sessions/" --target-pattern "session-{YYYY-MM-DD-HHmm}.md" --filter "priority=normal,priority=low" --element-tag memory
]]></bash>
<goto to="complete"/>
</stage>
<!-- memories-learned: Compact learned lessons -->
<stage id="memories-learned">
<print>Compacting learned lessons...</print>
<bash output="result"><![CDATA[
PYTHONIOENCODING=utf-8 python "${plugin_root}/scripts/axel_compact.py" --action memories-learned --source-file ".claude/LEARNED.md" --target-dir ".claude/memories/learned/" --target-pattern "learned-{YYYY-MM-DD-HHmm}.md" --filter "priority=normal,priority=low" --element-tag memory
]]></bash>
<goto to="complete"/>
</stage>
<!-- complete: Show result -->
<stage id="complete">
<print>
## Compact Complete
${result}
</print>
<stop kind="end"/>
</stage>
<!-- cancel: Cancelled -->
<stage id="cancel">
<print>Cancelled.</print>
<stop kind="end"/>
</stage>
</execution>
<understanding/>
</document>