harness/plugins/memory-keeper/skills/context-save/SKILL.md
This skill should be used when the user says "context save", "remember this", "save this", "note this for later", "keep this", or wants to persist any knowledge, pattern, decision, or learning from the current session to persistent memory.
npx skillsauth add popoffvg/dotfiles context-saveInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
/context save <what to remember>
Read insights_root from ~/.claude/memory-keeper.local.md YAML frontmatter. If the file is missing, stop and ask the user to create it.
| Classification | What it is | Saved to |
|---|---|---|
| insight | Completed work — architecture, patterns, gotchas, decisions | <insights_root>/<repo>/insights.md |
| agent_edit | AI behavior changes — hooks, prompts, skills, CLAUDE.md, plugin config | <insights_root>/claude-config/behavior.md |
| none | Routine work, nothing worth recording — skip silently |
One save invocation may produce multiple entries with different classifications.
## <Keyword-rich title, 3-7 words> — YYYY-MM-DD HH:MM
<Lead: direct statement of what this is and why it matters. 1-3 sentences.
Include concrete identifiers: file paths, function names, config keys, env vars.
No preamble — write for someone with zero memory of this session.>
### Subsection (only when topic has multiple distinct aspects)
<Details>
Heading rules — the heading is the search key:
Pi session_shutdown: handler awaited before process.exitRocksDB WAL mode: disable for unit test performanceClaude Code Stop hook fires per-turn not per-sessionShutdown analysis, Important fix, Database stuffBody rules:
Good entry:
## Pi session_shutdown: handler fully awaited — 2026-03-19 10:00
Pi's `shutdown()` in `interactive-mode.js` calls `await extensionRunner.emit("session_shutdown")`
before `process.exit(0)` — handlers have unlimited time. The current fire-and-forget
`processAllPending().catch()` call is a bug: it escapes the await chain and gets killed.
Fix: either `await processAllPending()` directly, or spawn a detached child process.
Bad entry (skip these):
## Shutdown fix — 2026-03-19
- Fixed the shutdown issue
- Added await
Run git -C <cwd> rev-parse --show-toplevel 2>/dev/null | xargs basename. Fallback: basename <cwd>. User or conversation context may override.
Before appending, read the target file and check:
One precise entry beats two fuzzy ones.
tools
Improve a whole CLAUDE.local.md — the private, per-project rules captured from user corrections. Wraps each conditional rule in a <task-relevant> block so it only surfaces for matching work, merges duplicates, generalizes one-off facts, drops stale entries, and routes raw project facts to engram. Use when the user says "improve claude.local", "clean up the local rules", "claude.local is bloated", or after the Stop hook has appended many rules.
testing
WM pipeline and conventions shared across all phases. Agents must read this before spec, impl, or verify work.
development
One entry point for spec writing, implementation, and bug fixing. Default is new (write spec → grill loop → produce notes → author TODO bodies). Other subcommands: verify (audit), revise (sync to shipped), prototype (settle a decision), code-map (diagram), impl (execute one TODO), fix (analyze cause, correct thoughts, fix behavior), help (this page). Invoke as /code <subcommand>.
development
Red-Green-Refactor cycle for bug fixes. Before fixing a bug, first write a failing test that reproduces it (Red), then make the minimal change to pass (Green), then clean up the code (Refactor). Use on any bug fix, error correction, failing test repair, or when user says "fix this bug".