linxule/memex-plugin/garden-tending
- community
Checking that the SKILL.md file is still in the repository.
Tend the knowledge garden — diagnose vault health, condense project memos into `_project.md` overviews, create/merge cross-project topics, fix broken links, archive superseded notes, extend trails. Trigger on "tend the garden", "condense", "update project overview", "check vault health", "where are we with X?", "what does this project know?", "extend a trail", or when a `_project.md` is empty/stale, a project has 5+ unprocessed memos, or a concept appears in 2+ projects. For autonomous tending with judgment, prefer curator-practice.
Install
npx vskill@latest install linxule/memex-plugin/garden-tendingSemi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard
SKILL.md
Knowledge Garden Tending
Current State
Index: !sqlite3 "$(memex path --index 2>/dev/null)" "SELECT (SELECT COUNT(*) FROM fts_content) || ' docs, ' || (SELECT COUNT(*) FROM chunks) || ' chunks indexed'" 2>/dev/null || echo "(index unavailable)"
Condensation backlog (projects whose overview lags their memos — dated after condensed:, or more memos than memos_digested:): !memex check --condense 2>/dev/null | head -30 || echo "(memex CLI unavailable)"
Topic signal backlog (open ## Recent signals; closed sections and archived/redirect topics excluded): !memex check --signals 2>/dev/null | head -16 || echo "(memex CLI unavailable)" <!-- NOTE: !command` injections get slash-command argument substitution ($1, $2, $ARGUMENTS) applied BEFORE execution, so any $<digit>` in them is unsafe — keep shell logic in the CLI, not inline here. -->
Existing topics (use [[?name]] for anything NOT in this list): !ls $(memex path 2>/dev/null)/topics/*.md 2>/dev/null | xargs -I{} basename {} .md | sort | tr '\n' ' ' || echo "(no topics found)"
Path Setup
The memex CLI handles vault path resolution automatically. For Obsidian CLI and dreamer commands not yet wrapped, prefix with cd $(memex path 2>/dev/null) &&.
Core Principle
Memos are ore. Project overviews are metal. Topics are the connective tissue. Trails are the narrative arc. The vault is a living knowledge graph, not an archive. Garden tending is the practice of keeping it alive: distilling memos into overviews, connecting ideas across projects, pruning dead links, growing new topics where patterns emerge, and extending trails where understanding evolves.
The test: if someone starts a session in this project tomorrow, does the vault give them enough to pick up where things left off?
This is not about maintenance logs or summaries. It's about seeing the fuller picture — how does new knowledge relate to what's already here, how do we condense the whole thing and grow it into something more than the sum of its sessions?
The Garden Tending Lifecycle
Knowledge work in the memex follows a cycle:
- Diagnose — Assess vault health, find what needs work (undigested memos, broken links, merge candidates, stale topics/trails)
- Condense — Distill project memos into living
_project.mdoverviews - Connect — Create cross-project topic notes where patterns emerge, add wikilinks
- Crystallize — Analyze graph topology: which ghost nodes (unresolved links) should materialize as real topics?
- Grow — Merge overlapping topics, expand stubs into full topics, extend trails
- Maintain — Fix broken links, archive stale files, add aliases, improve discoverability
These aren't strict phases — they interleave. An agent condensing a project notices a cross-project pattern and creates a topic. The lead fixing wikilinks discovers a concept worth growing. Garden tending is sensing what the vault needs and responding.
For vault-wide work, use a team approach — human + Claude lead + Sonnet agents working in parallel. The human brings vision and priorities. Claude designs the team and reviews quality. Agents read and write. The vault grows.
Diagnosis: Mapping What Needs Work
When maintenance should act on the index itself, run the dreamer:
Use dry-run first (uses fast heuristics, no LLM calls). Without --dry-run, the dreamer uses Claude Sonnet via claude CLI for semantic deduction, contradiction detection, and pattern filtering — producing higher-quality insights suitable for quoting in project overviews. Falls back to heuristics if claude CLI is unavailable.
Before tending, build a map of what needs attention.
Option A: Run Synthesis First (Recommended for Large Vaults)
Run cross-session synthesis in a separate session (even a cheap Sonnet one):
Read the results, then synthesize across them: look for recurring themes, contradictions between memos, projects with undigested work, and overlapping topics. The synthesis report identifies:
- Patterns across projects (topic candidates)
- Contradictions in understanding
- Projects with undigested memos
- Topics to merge (overlapping content)
- Compression candidates (superseded memos)
Bring that report to the garden tending session as input.
Option B: Quick Assessment
--condense parses both memo filename formats (YYYY-MM-DD-slug and legacy YYYYMMDD-HHMM-slug) — a hand-rolled string compare sorts every legacy name as "newer" (2026-09-23: ~350 false "new" memos vs ~60 real). A substantial overview with no condensed:/memos_digested: shows as unstamped: stamp it, don't re-condense from scratch. GAP catches same-day memos and memos moved in by a consolidation.
Vault Health Check
Auto-Memory Sync Check
Run memex sync --status to check for new or stale auto-memory files from ~/.claude/projects/*/memory/. Sync before tending to ensure current project knowledge is in the vault. After syncing new files, add wikilinks in the ## Vault Annotations section to connect them to the knowledge graph. Files with volatile: true (MEMORY.md) change frequently — don't treat as stable references for condensation.
Interpretation:
- 5+ NEW memos (
memex check --condense) → needs condensation - `unstamped` (substantial overview, no `condensed:`/`memos_digested:`) → NOT never-condensed; the overview is current but predates the frontmatter convention (or was hand-written). Just add
condensed:/memos_digested:frontmatter — don't re-condense from scratch. Distinguishing this from a true stub avoids wasted re-condensation work. - Empty `_project.md` → condensation overdue
- High unresolved link count → needs link fixing (but clean frontmatter noise first)
- Orphans → isolated notes that need connecting
- Dead-ends → notes with no outbound links (should link to topics)
- Similarity > 0.90 → likely duplicates, merge or alias one to the other
- Similarity 0.85-0.90 → related but may be distinct, review manually
Clean noise before measuring. Frontmatter artifacts, transcript URLs, and template references inflate unresolved counts. Fix these first to see the real signal. In practice, 512 "unresolved" links became 356 after frontmatter cleanup — a 30% reduction before agents even started.
Suggested Concept Frequency
Preferred: Use crystallization check (alias-aware, with maturation tiers and delta tracking):
Fallback: grep for `[[?concept]]` placeholders:
Concepts mentioned 3+ times across projects are strong candidates for topic creation.
Health Report Format
When presenting diagnosis results, use this tabular format:
| Aspect | Count | Status | Action | |
|---|---|---|---|---|
| Unresolved links | 356 | Moderate | Fix high-frequency, clean frontmatter noise | |
| Orphan notes | 12 | Low | Connect or archive | |
| Dead-end notes | 28 | Low | Add outbound links to topics | |
Suggested topics ([[?...]]) | 18 (5 high-freq) | Good | Create 5 high-frequency topics | |
| Projects needing condensation | 3 (5+ memos each) | Action needed | Assign to condensers |
Condensation: Distilling Memos into Overviews
Condensation compresses along the time axis — many sessions become one overview. This is distinct from crystallization (which works the topology axis) and connection (which grows cross-project patterns).
When to Condense
- 1-4 new memos: Not worth re-condensing unless they change the architecture
- 5+ new memos: Worth updating — read the new ones, revise the overview
- Major architectural change: Update immediately regardless of count
- Never condensed: First condensation is the biggest lift, but most valuable
For projects with 10+ memos, spawn an Explore agent to read them all and extract: dates, key decisions, what's superseded, what's still active, open threads. For smaller projects, read directly.
The Process
1. List Existing Topics First
This is the most common source of errors — linking to topics that don't exist without the [[?...]] prefix.
Store this list. You'll need it for every wikilink you write. If assigning to an agent, include the topic list in their prompt.
2. Read Current _project.md
Check what's there already. If it has a condensed date in frontmatter, focus on memos since that date. If empty, read all memos.
3. Read Project Memos
For team-based condensation, assign 2-4 projects per agent, grouped by domain affinity (philosophical projects together, tool projects together). An agent that condenses one project in a domain builds context that helps it condense the next.
4. Write the Overview
Use this format:
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 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/garden-tending/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/linxule/memex-plugin/garden-tending)