witt3rd/zk-memory/caretaker
Claude Code and agent skill by witt3rd/zk-memory
- community
Checking that the SKILL.md file is still in the repository.
Lived-experience caretaker skill for the zk-memory repo. Use for ANY work here — understanding the split from hermes-zk-memory, the retain/tend pipelines, the shared-corpus mode, test discipline, house git, and the caretaker loop. Triggers: zk-memory, zettelkasten, corpus, retain, tend, decision kind, gardener, memory library.
Install
npx vskill@latest install witt3rd/zk-memory/caretakerSKILL.md
zk-memory — caretaker
Lived experience for stewarding ~/src/witt3rd/zk-memory, the host-agnostic zettelkasten memory library. The charter is `AGENTS.md` — read it first (goals, merits, concepts, mechanisms, Z principles in PRINCIPLES.md). This skill is how the caretaker acts; the repo's own docs carry the why.
The split (context)
zk-memory is the library half of a split identical to prospecta/hermes-prospecta: a host-agnostic zettelkasten memory (zero Hermes / agent.* / LLM-provider imports), with the Hermes plugin hermes-zk-memory as a thin MemoryProvider adapter. It is tagged/pinned by the plugin (zk-memory @ ...@v<tag> in the plugin's pyproject.toml + plugin.yaml).
Package map
Key modes (see PRINCIPLES.md Z-principles)
- Write-time judgment (Z1): retain distills turns into
concept/entity_update/decision
candidates; process_candidate searches + judge_merges (merge-vs-create) then writes/merges.
- Decisions (Z1/decision kind): first-class
decisionkind withchoice/alternatives/
rationale; always a standalone dated zettel, never merged (append-only history).
- Shared corpora (Z9): use
backend="rg"on a NAS root (LanceDB is single-writer, unsafe to
share); writes are collision-safe, merges append-only O_APPEND; source= attribution; one caretaker host owns tend.
- Capture fast, integrate later (Z10): the write path is cheap/arbitrary;
Memory.tend_writes
walks recent writes (mtime desc) and merges (append-only fold + retire duplicate to .archive/, reversible) or links (appends [label](slug.md)), decisions never merge.
Test discipline
pytestin the repo root. Judge tests use `StructuredLLM` stubs, never fake OpenAI clients.- Force the rg fallback deterministically: install a fake
zk_memory.ftsinsys.moduleswhose
run_fts raises ImportError, or pass backend="rg".
conftest.py_no_linlink_by_defaultpatcheszk_memory.corpus.shutil.whichso writes take the
own-uuid path (deterministic, no machine linlink).
Hard-won gotchas
- `Memory.search` arg order —
corpus.search(query, root, ...)takesqueryfirst;Memory.search
wraps corpus.search(query, self._root, ...). Flipped once, caught by test.
- `judge.py` never swallows exceptions —
StructuredLLMis contracted "Never raise"; the pipeline
safety net is retain.py / tend.py try/except. Don't add defensive catches in judge.
- `linlink mint` strips frontmatter to just `uuid:` —
corpus.writere-ensurestitle:/date:after
mint (and retain stamps kind:). If you add frontmatter fields, remember mint wipes them; re-ensure after.
- Tend search is title-based —
tend_writessearches by a note's title; notes whose titles don't
overlap won't be surfaced as duplicates. Known limitation, not a bug.
- Vendored `os`/`shutil` in corpus are the real shared modules — when patching
which, capture the
original first (see conftest) or the patch recurses.
House git + caretaker loop
- House git (fleet_git, two modes): work on
mainduring active iteration
with small, frequent, revertable commits (never accumulate uncommitted work); use worktrees (git wt-new <branch> under zk-memory.wt/) only for parallel feature work. Push to a branch + PR when a change is ready; sync with origin/main before starting and before a PR.
- Version bumps are real: feature → minor, tag + push the tag separately (
git tag -a vX.Y.Z -m ...),
then the plugin repins (@vX.Y.Z). Land the library, tag, then repin the plugin.
- Custody. AGENTS.md +
skills/are the custody mechanism. No.agent/folder, no inhabit,
no formal handoff. Verify pytest green; leave the repo at the clean end-state (no stale worktrees, no leftover branches, main at origin tip).
- Retire
examples/demos stay runnable:python examples/*_demo.pyfrom the venv.
References
AGENTS.md— charter.PRINCIPLES.md— Z-principles (the anchor).examples/decision-kind.md,examples/tend-writes.md— worked examples.- Sibling:
hermes-zk-memorycaretaker skill + thecaretakermachine skill.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/caretaker/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/witt3rd/zk-memory/caretaker)