Capture Learnings
At the end of a session, decide whether anything is worth keeping — then persist it the best way the current environment allows. This is the app/chat counterpart to a repo-scoped save routine: it works even when there is no filesystem to write to, by producing paste-ready artifacts instead.
1. Review the session — is anything worth keeping?
Scan what happened for things that would help a future session:
- Durable fact or preference (how the user works, a decision, a stable constraint) → memory.
- Repeatable workflow or domain knowledge (a process worth re-running, hard-won steps) → a skill.
- Nothing that clears the bar → say so plainly and stop. Don't manufacture a learning.
Apply the no-op test: keep only what a fresh session would get wrong without it. Skip the obvious, the one-off, and anything already captured elsewhere.
2. Check what this environment can do
- Filesystem available (Cowork or a chat with a repo/project attached): you can write the memory or skill file directly. Prefer this — make the change, then show the diff.
- No filesystem (a plain app chat): you cannot persist a file yourself. Produce the exact content and tell the user where to save it (see step 4).
3. Shape the content
- Memory: one durable fact per entry, phrased so it stands alone in a future session. State the fact, and if it's a preference, the why.
- Skill: follow
writing-skillsfor craft — aname+descriptionin frontmatter, a tight body, one domain. If it extends an existing skill, target that skill and show only what changes; don't restate the whole thing.
4. Persist or hand off
- Can write: create/modify the file, then summarize what changed and where.
- Can't write: output the complete artifact in a copy-ready block —
- a full SKILL.md (frontmatter + body) for a new skill, or the changed lines for an existing one;
- the exact memory line(s) for a memory entry — then tell the user to add it via their skill/memory settings in the app. Describe the destination in general terms ("your skills settings", "your memory settings"); don't invent exact menu paths — the UI changes and a wrong click-path is worse than none.
Close the loop
State what you captured and where it landed (written directly, or handed over for the user to paste). If nothing was worth keeping, say that and stop.