| name | slipbot |
| description | Capture notes, quotes, ideas, and journal entries into the slipbox with auto-tagging, linking, and graph maintenance. Use when the user shares a thought to save, says "note:"/"remember this:"/"quote:", prefixes a line with > ! * -, or asks to "remember" or "save" something. |
Slipbot
Configuration
- Notes directory:
sync/slipbox/
- Graph index:
sync/slipbox/.graph/graph.json
- Timezone: User's local timezone (check USER.md or system; default UTC)
Prefix → Type
> {content} → quote
! {content} → idea
* {content} → journal
- {content} → note (default; also reached with no prefix)
Explicit triggers: note: {content}, remember this: {content}, quote: {content}.
Source Types
Common source types: book, article, podcast, video, movie, paper, talk, conversation.
Workflow
1. Capture
When a note is recognized:
-
Extract content and metadata
- Note content
- Type (from prefix above; default
note)
- Source, if provided, via the
~ shorthand: ~ {type}, {title} or ~ {type}, {title} by {author} (optional url appended as ({url})). Used by the slipbot-*-import siblings to pass parsed source metadata inline.
-
Generate filename
- Format:
YYYYMMDD-HHMMSS-slug.md
- Slug: lowercase, hyphenated, from title (max 4-5 words)
- On collision, append a suffix increment (
-2, -3, …) until the filename is unique on disk
-
Check for existing source
- If source provided, search existing notes for matching source title (case insensitive)
- Use existing source if found; otherwise use provided source as-is
- Trust user-supplied source metadata as-is; do not call external APIs to enrich it
-
Generate tags — tag with objects
- Tag with objects: specific people, tools, techniques, systems, concrete topics (nouns)
- 2-5 tags per note
- Check existing tags before creating new ones
- Examples:
[pomodoro-technique, Cal-Newport, deep-work], [vim, neovim-config, lua]
- Done when 2-5 object tags are selected, each verified against existing tags (reused before created).
-
Create markdown file using the frontmatter template in SCHEMAS.md. Note titles: descriptive but concise (3-8 words), specific (not "Thoughts" or "Notes"), question format works ("Why does X happen?", "How to Y?").
Done when the markdown file exists at sync/slipbox/{timestamp}-{slug}.md with all required frontmatter fields populated (title, date, type, tags, source, links).
2. Link
After creating a note, find connections:
-
Search existing notes for related concepts, people, topics, and overlapping tags
-
Determine connection type
- related — similar topic or theme
- extends — builds on or expands another note
- contradicts — opposing viewpoint
- references — mentions same person/book/concept
- supports — provides evidence for another note
-
Add bidirectional links with confidence ≥ 0.75
- Update both notes' frontmatter
- Include a reason for each connection (see
links shape in SCHEMAS.md)
Done when every existing note scoring ≥0.75 confidence has been evaluated, and each accepted link is written bidirectionally into both notes' frontmatter with a reason.
3. Update Graph
After capture and linking:
- Load
sync/slipbox/.graph/graph.json
- Add/update the note entry using the graph schema in
SCHEMAS.md
- Write the updated graph back to
sync/slipbox/.graph/graph.json
Done when graph.json contains an entry for the new note whose links count matches the links written in §2, and last_updated is set.
Querying
When the user asks to retrieve notes ("show me notes about X", "find quotes from Y", "what links to Z", "what have I written about A"), see QUERYING.md.
Maintenance
When the user asks to maintain the slipbox (validate frontmatter, remove broken links, suggest merges, rebuild graph), see MAINTENANCE.md.
Error Handling
- Missing timezone: Default to UTC, ask user to set in USER.md
- Corrupted graph: Rebuild from note files (see
MAINTENANCE.md)
- Invalid frontmatter: Fix the offending fields in place and notify the user what was fixed
User Feedback
Reply with one line: Note captured: [title] (plus Added N links to related notes when N>0). Narrate steps only when debugging.