Compaction: - GemmaLLM.chat() truncates ChatContext to last 30 items (~15 turns) before sending to LLM, preventing context window overflow on long conversations. Preserves system prompt and removes orphaned tool calls. Skills: - agent/skills_mcp.py: MCP server with skill_save, skill_recall, skill_list, skill_update tools backed by .md files in /skills - skills/ dir bind-mounted into container, git-trackable - System prompt instructs Hope to save repeatable procedures as skills and recall them before performing tasks she's done before - Distinct from memory (facts) — skills are learned *procedures*
Skills
Skills are learned procedures that Hope distills from conversations.
One .md file per skill, saved here by the skills MCP server
(agent/skills_mcp.py) and mounted into the container at /skills.
How they differ from memory
- Memory (
./memory/) stores facts: names, preferences, things Hope should remember. - Skills (this directory) store how to do things: repeatable procedures, workflows, and multi-step tasks Hope has learned.
File format
# Make a Coffee Order
How to place an order at the local coffee shop on behalf of the user.
## Steps
1. Confirm the usual drink (oat latte, extra hot).
2. Ask if they want anything new today.
3. Read back the order and confirm.
4. Tell them the pickup time.
---
Created: 2026-08-22T12:00:00+00:00
Source: conversation-learned
Hope saves a skill when it successfully completes a multi-step task or
the user teaches it a new procedure, and recalls one with skill_recall
before performing a task it has done before. Skills are updated in place
when the procedure improves.