← Back to Skills
Productivity

slipbot

jrswab By jrswab 👁 2 views ▲ 0 votes

Used to capture and organize notes, ideas, quotes, and journal entries

GitHub
---
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

Comments

Sign in to leave a comment

Loading comments...