Productivity
slipbot
Used to capture and organize notes, ideas, quotes, and journal entries
---
name: Slipbot
description: Used to capture and organize notes, ideas, quotes, and journal entries with automatic tagging, linking, and knowledge graph maintenance.
---
# Configuration
Run `pwd` and get the `{curDir}`
- **Notes directory:** `{curDir}/slipbox/`
- **Graph index:** `{curDir}/slipbox/.graph/graph.json`
- **Timezone:** User's local timezone (check USER.md or system)
# Note Patterns & Types
### Prefixes
- `> {content}` → quote, contains attributed text.
- `! {content}` → idea, for speculative or creative thinking
- `* {content}` → journal, for personal reflection and logs
- `- {content}` → note, for information about subject
### Delimiters
- `~ {content}` → source (appended after prefix+content combination)
- Example note with source: `- Content here ~ Source Type, Source Title by Source Author`
- Example quote with source: `> Content here ~ Source Type, Source Author`
# Workflow
## 1. Capture
When a note is recognized:
1. **Extract content and metadata**
- Note content
- Type (quote/idea/journal/note)
- Source information (if provided)
2. **Generate filename**
- Format: `YYYYMMDD-HHMMSS-slug.md`
- Slug: lowercase, hyphenated, from content passed in (max 4-5 words)
- Example: `20260131-143022-compound-interest.md`
3. **Check for existing source**
- If source is not provided set `source: null`.
- If source provided, search existing notes for matching source title (case insensitive)
- Use existing source if found
- Otherwise, use provided source as-is
- **No external API calls** - trust user input
4. **Generate tags**
- Extract specific objects concepts (nouns)
- Focus on: people, tools, techniques, systems, specific topics
- **Avoid broad categories** like "productivity" or "ideas"
- **Consistency:** Check existing tags before creating new ones
- 2 or 3 tags per note
- Examples: `[pomodoro-technique, Cal-Newport, deep-work]`
5. **Create markdown file**
```yaml
---
title: "Generated Note Title from Content"
date: 2026-01-31T14:30:22-05:00
type: note
tags: [specific, object, based, tags]
source:
title: "Source Title"
type: "book"
author: "Author Name"
links: []
---
Note content here in markdown.
```
### Note Titles
- **Descriptive but concise:** 3-8 words
- **Avoid generic:** Not "Thoughts" or "Notes", be specific
- **Question format works:** "Why does X happen?" or "How to Y?"
## 2. Link
After creating a note, find connections:
1. **Search existing notes**
- Look for related concepts, people, topics
- Check for overlapping tags
2. **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
3. **Add bidirectional links**
- Update both notes' frontmatter
- Include reason for connection
**Quality over quantity:** Only link when genuinely related
```yaml
links:
- id: "20260120-093045-compound-interest"
type: related
reason: "Both discuss exponential growth concepts"
```
## 3. Note Validations
3.1: **Validate frontmatter** - Ensure the note has the required fields
- title
- date
- type
- tags
3.2: **Remove broken links**
- Check if notes that the new note links to still exist
- If any files are missing save them to `{curDir}/slipbox/missing.md`
## 4. Update Graph
After capture and linking:
4.1: **Load graph index**
- Read `{curDir}/slipbox/.graph/graph.json`
4.2: **Add/update note entry**
```json
{
"notes": {
"20260131-143022-note-title.md": {
"title": "Your Note Title",
"source": {
"title": "Source Title",
"type": "book",
"author": "Author Name"
},
"type": "note",
"tags": ["tag1", "tag2"],
"links": [
"20260120-093045-other-note.md",
]
}
},
"last_updated": "2026-01-31T14:35:00-05:00"
}
```
4.3: **Remove any entries from graph**
- Read `{curDir}/slipbox/missing.md`
- If any notes are found missing remove the entry from the graph.
- Then remove them from `{curDir}/slipbox/missing.md`
4.4: **Rebuild graph**
- If corrupted beyond simple note removals, rebuild from the current note files.
4.5: **Write updated graph**
- Save back to `{curDir}/slipbox/.graph/graph.json`
## Querying
Respond to natural queries like: "Show me notes about X"
**Approach:**
1. Search graph index first (fast); only fall back to file search if needed.
2. Present results with titles, dates, snippets
3. Offer to show full content if relevant
## User Feedback
Keep responses minimal:
- ❌ Don't narrate every step unless debugging
### Example Interaction
**User:** "- The Feynman Technique is about teaching concepts to identify gaps in understanding"
**You:**
1. Create `20260131-163500-feynman-technique.md`
2. Tag: `[Feynman-technique, learning, teaching]`
3. Search for related notes (study techniques, learning methods)
4. Link to any relevant note about learning
5. Update graph index
6. Reply: "Note captured: Feynman Technique"
---
**When to apply this skill:** Whenever user shares content that starts with the defined prefixes the content which follows should be captured for later reference.
productivity
By
Comments
Sign in to leave a comment