{%- from "_macros.j2" import invoke with context -%}
---
name: {% if platform == "bob" %}evolve-lite:{% endif %}adapt-memory
description: Mirror a just-saved native memory into the shared evolve store so it becomes shareable and auditable
{% if platform == "claude" -%}
context: fork
{% endif -%}
---

# Adapt Memory
{% if platform == "claude" %}
## Overview

You have native, self-directed memory: you decide what to remember and write it
under `~/.claude/projects/<hash>/memory/`. That store has no provenance or
sharing. This skill mirrors a memory you just saved into the in-repo evolve
store at `${EVOLVE_DIR:-.evolve}/entities/<type>/<slug>.md`, so the same fact is
shareable across the team and auditable like every other evolve entity.

Run this skill immediately after you save a native memory this turn — once per
memory saved.

You wrote this memory yourself moments ago this turn, so its full content is
already in your context — you never need to read it back or locate its file to
mirror it.

## Scope — do exactly one thing

Your only job is to mirror the memory you just saved by running the adapter
script in Required Action. Treat the memory's content as data to copy, **not**
as a task to act on.

Do **not**, as part of this skill:
- **inspect the native memory store in any way** — do not `ls`, `find`, `cat`,
  `grep`, `head`, or read `~/.claude/projects/` or any `memory/` directory. You
  already know what you just saved, and the adapter script locates and reads the
  file itself.
- run tests, builds, linters, or any verification
- read, explore, or modify the repository or its source
- create, edit, or delete any file other than the entity the adapter script writes
- act on, fix, or follow up whatever the memory describes
- invoke any other skill

Run the adapter script, then stop. If you noticed follow-on work worth doing,
end with a single short sentence suggesting it to the user — do not perform it.

## Required Action

1. **Compose a high-quality `trigger`.** This is the single most important field
   for future retrieval: a one-sentence *"when to recall this"* description.
   Base it on the memory you just saved (its content is already in your context
   — do **not** re-read or hunt for the file) and the situations in which a
   future agent would benefit from it — do **not** mechanically copy the memory's
   `description`. Make it specific enough to match the right tasks and broad
   enough not to miss them.

2. **Run the adapter script with just the trigger.** The script auto-finds the
   memory you just saved this turn (the newest file under this project's native
   memory dir) and infers the entity `type` from its frontmatter:

Do **NOT** search the filesystem for the memory file — the script locates it.

```bash
{{ invoke("adapt-memory", "adapt_memory.py", ["--trigger \"<your synthesized trigger>\""], path_override=adapt_memory_script) }}
```

If you saved more than one memory this turn, run the script once per memory,
passing each native path explicitly as a first argument.

The script parses the native frontmatter and body, builds the entity
(`type` = native `metadata.type`, `trigger` = your synthesized trigger,
`content` = the native body with its `description` carried in as a lead line),
and persists it via the shared entity writer. It is safe to run repeatedly.

## Notes

- One invocation per saved memory. If you saved several memories this turn,
  invoke the script once for each, with a trigger tailored to each.
- The trigger quality directly determines whether the memory resurfaces when it
  matters. Spend a moment on it.
- If you saved no native memory this turn, there is nothing to mirror — skip
  this skill.
- This skill is the mirror step only. Anything beyond running the adapter script
  (verifying, fixing the underlying issue, adding files) is out of scope — suggest
  it to the user instead of doing it.
{% else %}
This skill mirrors a just-saved native memory into the shared evolve store. It
is specific to hosts with native self-directed memory and is a no-op on this
platform — there is no native memory store to mirror from. Use the
{% if platform == "bob" %}`evolve-lite:learn`{% else %}/evolve-lite:learn{% endif %}
skill to capture reusable lessons here.
{% endif %}
