--- name: zettelkasten description: Maintain a Luhmann-style Zettelkasten. Capture, connect, and synthesize ideas through fleeting notes, permanent notes, cross-references, and structures, with an AI agent that surfaces connections, challenges assumptions, and enriches notes with research. Use when the user shares an idea, observation, or inspiration; when reviewing or connecting existing notes; when synthesizing patterns; or during heartbeats to maintain the system. metadata: hybridclaw: category: memory short_description: Luhmann Zettelkasten. tags: - zettelkasten - notes - memory - knowledge-base --- # Zettelkasten This skill implements a Luhmann-style Zettelkasten rather than a loose note archive. The agent helps maintain note quality, find references, surface cross-strand links, and challenge vague or weak ideas. ## Storage All notes in `memory/zettelkasten/`: - `inbox/` - Raw unprocessed drops (fleeting notes) - `seeds/` - Processed atomic ideas (permanent notes) - `connections/` - When 2+ seeds click (Luhmann's Fernverweise made explicit) - `structures/` - Developed frameworks, plans - `archive/` - Dormant ideas (never deleted - Luhmann's rule) - `INDEX.md` - Curated entry points (not a tag dump - each keyword -> best starting seed) - `JOKER.md` - Meta-note: how this specific Zettelkasten works, its quirks, and its active strands ## Note Format ```markdown # [Title] **ID:** YYYYMMDD-NNN **Date:** YYYY-MM-DD **Status:** permanent | active | mature | actionable | dormant **Tags:** #tag1 #tag2 **Source:** [where it came from] **Strand:** [parent ID if branching from another note] ## Idea [The core thought - always in own words, never just a quote] ## Context [Why this matters, what triggered it] ## References - **Near** (same strand): [[ID]] - [relationship] - **Far** (cross-strand): [[ID]] - [why these distant ideas connect] ## Agent Notes [Agent observations, challenges, enrichments added over time] ``` ### Naming - Inbox: `YYYYMMDD-HHMMSS-raw.md` (timestamped, unprocessed) - Seeds: `YYYYMMDD-NNN-slug.md` (e.g., `20260215-001-next-openclaw.md`) - Branches: `YYYYMMDD-NNNa-slug.md` (extending a parent: 001a, 001b, 001a1) - Connections: `YYYYMMDD-CNNN-slug.md` - Structures: `YYYYMMDD-SNNN-slug.md` ### Reference Types (from Luhmann) - **Near (Nahverweis):** Within the same strand/argument thread. Red thread connections. - **Far (Fernverweis):** Cross-strand surprises. The magic ones. When an idea about memory markets suddenly links to a paper on spatial cognition. ## Operational Layer What makes this different from every other Zettelkasten guide: ### 1. Active Maintenance (during heartbeats) Don't just check, maintain: - Re-read seeds >7 days old without connections. Try harder. Research if needed. - Notice contradictions between notes. Flag them. - Enrich seeds: if a raw idea mentioned a concept, look it up, add context to Agent Notes. - Update `INDEX.md` when new clusters emerge. - Update `JOKER.md` with observations about the system's shape. ### 2. Surprise Delivery When a non-obvious far connection is found, don't just log it - tell the user. The best Zettelkasten moments are "holy shit, I never saw that link." Deliver these proactively. ### 3. Challenge & Provoke If a new seed contradicts an existing one, say so. If an idea is vague, push back. Friction matters more than passive accumulation. Add devil's advocate notes in Agent Notes. ### 4. Strand Awareness Track argument threads across seeds. When a user keeps circling the same theme (even without realizing it), name the strand. "You've been thinking about portable identity for 3 weeks across 5 seeds - here's the thread." ### 5. Periodic Review Periodically (weekly during heartbeats), write a brief review report: - Active strands - What's dormant (seeds with no connections after 2+ weeks) - What surprised you (unexpected connections found) - Which clusters are mature enough to become structures ## Workflows ### Capture (user drops an idea) 1. If quick/raw -> file in `inbox/` with timestamp 2. If clear enough -> create seed in `seeds/`, rephrase in own words (Luhmann's rule) 3. Scan existing seeds for near and far references 4. If it branches from an existing seed, use branching ID (001a) 5. Update `INDEX.md` if it introduces a new concept 6. Confirm capture with one line + any immediate connections spotted ### Process Inbox (during heartbeats or on request) 1. Review `inbox/` items 2. For each: rephrase in own words, decide if it should become a permanent note or be discarded 3. Promote to `seeds/` with proper format, or leave with a note on why it's not ready ### Connect (active maintenance) 1. Read seeds, look for clusters - especially cross-strand far connections 2. Create connection note in `connections/` explaining the emergent pattern 3. Update both seeds with back-references 4. If the connection is surprising -> surface it to the user proactively ### Synthesize (when enough seeds cluster) 1. Draft structure in `structures/` referencing all contributing seeds/connections 2. Include framework, open questions, and next steps 3. Present the synthesis to the user ### Prune (on request only) Move to `archive/` with a note on why. Never delete. Luhmann's rule: "useless" notes become essential years later.