mirror of
https://github.com/bitsofchris/openaugi-obsidian-plugin.git
synced 2026-07-22 05:46:42 +00:00
644 lines
18 KiB
Markdown
644 lines
18 KiB
Markdown
|
|
# Unified Context Gathering System
|
||
|
|
|
||
|
|
## Overview
|
||
|
|
|
||
|
|
OpenAugi's unified context gathering system is a powerful foundation that intelligently discovers, filters, and aggregates content from your notes before processing. Instead of having separate, rigid workflows for different commands, you now have **one flexible system** that lets you configure exactly what context to gather, review it before processing, and then choose how to process it.
|
||
|
|
|
||
|
|
Think of it as a three-stage pipeline:
|
||
|
|
1. **Gather**: Discover and collect notes based on your criteria
|
||
|
|
2. **Review**: Preview and refine your selection with checkboxes
|
||
|
|
3. **Process**: Choose to distill, publish, or just save the raw context
|
||
|
|
|
||
|
|
## Why This Matters
|
||
|
|
|
||
|
|
### The Problem It Solves
|
||
|
|
|
||
|
|
Previously, each command had its own way of gathering notes:
|
||
|
|
- "Distill linked notes" only looked at direct links (depth 1)
|
||
|
|
- "Distill recent activity" used time-based discovery
|
||
|
|
- No way to combine approaches or preview before processing
|
||
|
|
- No way to save raw context without AI processing
|
||
|
|
|
||
|
|
### The Solution
|
||
|
|
|
||
|
|
The unified system gives you:
|
||
|
|
- **Flexible discovery**: Link traversal up to 3 levels deep OR time-based discovery
|
||
|
|
- **Intelligent filtering**: Character limits, folder exclusions, journal section filtering
|
||
|
|
- **Checkbox review**: See exactly what will be included and toggle individual notes
|
||
|
|
- **Multiple outputs**: Distill to atomic notes, publish as blog post, or save raw context
|
||
|
|
- **Reusable architecture**: All commands use the same context gathering foundation
|
||
|
|
|
||
|
|
## Core Concepts
|
||
|
|
|
||
|
|
### Source Modes
|
||
|
|
|
||
|
|
**Linked Notes Mode**
|
||
|
|
- Starts from current note
|
||
|
|
- Follows links breadth-first up to 3 levels deep
|
||
|
|
- Includes: `[[wikilinks]]`, embeds, dataview queries, checked checkboxes
|
||
|
|
- Perfect for: Processing related content, topic deep-dives, project summaries
|
||
|
|
|
||
|
|
**Recent Activity Mode**
|
||
|
|
- Discovers notes by modification time or filename dates
|
||
|
|
- Supports "last N days" or specific date range
|
||
|
|
- Perfect for: Daily/weekly reviews, periodic summaries, time-based synthesis
|
||
|
|
|
||
|
|
### Link Depth Traversal
|
||
|
|
|
||
|
|
The system uses **Breadth-First Search (BFS)** to traverse links:
|
||
|
|
|
||
|
|
```
|
||
|
|
Depth 0: Root note (your starting point)
|
||
|
|
Depth 1: Direct links from root
|
||
|
|
Depth 2: Links from depth 1 notes
|
||
|
|
Depth 3: Links from depth 2 notes
|
||
|
|
```
|
||
|
|
|
||
|
|
**Example:**
|
||
|
|
```
|
||
|
|
You're on: [[Project Overview]]
|
||
|
|
├─ Depth 1: [[Meeting Notes]], [[Technical Specs]]
|
||
|
|
│ ├─ Depth 2: [[Action Items]], [[Architecture Decisions]]
|
||
|
|
│ │ └─ Depth 3: [[Implementation Details]], [[Risk Assessment]]
|
||
|
|
```
|
||
|
|
|
||
|
|
**Why BFS?**
|
||
|
|
- Captures breadth of related content first
|
||
|
|
- Prevents going too deep into narrow tangents
|
||
|
|
- More predictable and controllable than depth-first search
|
||
|
|
|
||
|
|
### Character Limits
|
||
|
|
|
||
|
|
Default: **100,000 characters** (~25,000 tokens)
|
||
|
|
|
||
|
|
**How it works:**
|
||
|
|
- System tracks total characters as it discovers notes
|
||
|
|
- When approaching limit, marks remaining notes as "discovered but not included"
|
||
|
|
- You can still manually include them via checkboxes (up to you!)
|
||
|
|
- Prevents token overflow and excessive API costs
|
||
|
|
|
||
|
|
### Journal Section Filtering
|
||
|
|
|
||
|
|
For journal-style notes with date headers (e.g., `### 2025-01-15`):
|
||
|
|
- **Enabled**: Only extracts sections within your time window
|
||
|
|
- **Disabled**: Includes entire note content
|
||
|
|
- Configurable date header format in settings
|
||
|
|
|
||
|
|
**Use case:** Your daily journal has 365 sections. You only want the last 7 days worth of entries, not the entire year.
|
||
|
|
|
||
|
|
## New Commands
|
||
|
|
|
||
|
|
### 1. OpenAugi: Process Notes
|
||
|
|
|
||
|
|
**Default behavior:**
|
||
|
|
- Source: Linked notes from current note
|
||
|
|
- Depth: 1 (direct links only)
|
||
|
|
- Shows processing type selector: Distill OR Publish
|
||
|
|
|
||
|
|
**Best for:**
|
||
|
|
- Processing a curated set of notes
|
||
|
|
- Topic-focused synthesis
|
||
|
|
- Creating blog posts from research notes
|
||
|
|
|
||
|
|
**Example workflow:**
|
||
|
|
1. Create note: `2025 Q1 Learning.md`
|
||
|
|
2. Add links: `[[Book Notes]]`, `[[Course Notes]]`, `[[Project Insights]]`
|
||
|
|
3. Run command → adjust depth to 2 → review checkboxes → publish as blog post
|
||
|
|
|
||
|
|
### 2. OpenAugi: Process Recent Activity
|
||
|
|
|
||
|
|
**Default behavior:**
|
||
|
|
- Source: Recent activity (last 7 days)
|
||
|
|
- Depth: N/A (time-based, not link-based)
|
||
|
|
- Shows processing type selector: Distill OR Publish
|
||
|
|
|
||
|
|
**Best for:**
|
||
|
|
- Weekly reviews
|
||
|
|
- Activity summaries
|
||
|
|
- Periodic reflection posts
|
||
|
|
|
||
|
|
**Example workflow:**
|
||
|
|
1. Run command
|
||
|
|
2. Change to "last 30 days" for monthly review
|
||
|
|
3. Exclude "Archive" and "Templates" folders
|
||
|
|
4. Select only the notes relevant to your review
|
||
|
|
5. Distill to atomic notes for your weekly review summary
|
||
|
|
|
||
|
|
### 3. OpenAugi: Save Context
|
||
|
|
|
||
|
|
**Default behavior:**
|
||
|
|
- Source: Linked notes from current note
|
||
|
|
- Depth: 1
|
||
|
|
- Skips AI processing, saves raw aggregated content
|
||
|
|
|
||
|
|
**Best for:**
|
||
|
|
- Gathering research before manual synthesis
|
||
|
|
- Creating reference documents
|
||
|
|
- Debugging context gathering
|
||
|
|
- Exporting collections for external tools
|
||
|
|
|
||
|
|
**Example workflow:**
|
||
|
|
1. Create note with links to all project documentation
|
||
|
|
2. Run "Save Context" → depth 3 → deselect irrelevant notes
|
||
|
|
3. Get single markdown file with all content aggregated
|
||
|
|
4. Use for offline reading, sharing, or manual analysis
|
||
|
|
|
||
|
|
## The Complete Flow
|
||
|
|
|
||
|
|
### Step 1: Context Gathering Configuration
|
||
|
|
|
||
|
|
**Modal: "Gather Context"**
|
||
|
|
|
||
|
|
Configure HOW to discover notes:
|
||
|
|
|
||
|
|
**Source:**
|
||
|
|
- `Linked notes from current note` (follows links)
|
||
|
|
- `Recently modified notes` (time-based)
|
||
|
|
|
||
|
|
**For Linked Notes:**
|
||
|
|
- `Root note`: Shows current note (auto-filled)
|
||
|
|
- `Link depth`: Slider 1-3 levels
|
||
|
|
- `Max characters`: Default 100,000 (adjustable)
|
||
|
|
|
||
|
|
**For Recent Activity:**
|
||
|
|
- `Time window`: "Last N days" OR "Specific date range"
|
||
|
|
- `Days back`: 1, 7, 30, etc.
|
||
|
|
- `From/To dates`: YYYY-MM-DD format
|
||
|
|
|
||
|
|
**Filtering:**
|
||
|
|
- `Exclude folders`: Comma-separated list (e.g., "Templates, Archive")
|
||
|
|
- `Recent sections only`: Toggle for journal filtering
|
||
|
|
- `Journal sections days back`: How many days for section filtering
|
||
|
|
|
||
|
|
**Estimate display:**
|
||
|
|
Shows estimated note count and character count before discovery
|
||
|
|
|
||
|
|
**Action:** Click "Discover Notes" →
|
||
|
|
|
||
|
|
### Step 2: Checkbox Selection
|
||
|
|
|
||
|
|
**Modal: "Select Notes to Include"**
|
||
|
|
|
||
|
|
Review ALL discovered notes with full control:
|
||
|
|
|
||
|
|
**Features:**
|
||
|
|
- ✅ Checkbox for each note (checked = include)
|
||
|
|
- Organized by depth level (for linked notes)
|
||
|
|
- Shows character count per note
|
||
|
|
- Shows discovery path ("root", "linked from [[X]]", "recent activity")
|
||
|
|
- `Select All` / `Deselect All` buttons
|
||
|
|
- Real-time summary: "Selected: 8 of 12 notes (24,532 characters, ~6,133 tokens)"
|
||
|
|
|
||
|
|
**Why this step matters:**
|
||
|
|
- You see exactly what was discovered
|
||
|
|
- Remove irrelevant notes before processing
|
||
|
|
- Verify the context makes sense
|
||
|
|
- Control costs by managing total size
|
||
|
|
|
||
|
|
**Action:** Click "Continue" →
|
||
|
|
|
||
|
|
### Step 3: Context Preview
|
||
|
|
|
||
|
|
**Modal: "Context Preview"**
|
||
|
|
|
||
|
|
Final review before processing:
|
||
|
|
|
||
|
|
**Displays:**
|
||
|
|
- 📊 Summary stats (notes, characters, tokens, source mode, link depth)
|
||
|
|
- 📝 List of all included notes
|
||
|
|
- 👁️ Preview of first 1000 characters of aggregated content
|
||
|
|
|
||
|
|
**Two paths:**
|
||
|
|
|
||
|
|
**Path A: Save Raw Context**
|
||
|
|
- Creates note: `Context YYYY-MM-DD HH-mm-ss.md`
|
||
|
|
- Saved to: `OpenAugi/` folder
|
||
|
|
- Contains: Metadata + full aggregated content
|
||
|
|
- No AI processing, no API cost
|
||
|
|
- Opens immediately for review
|
||
|
|
|
||
|
|
**Path B: Process with AI**
|
||
|
|
- Shows prompt selection modal →
|
||
|
|
|
||
|
|
### Step 4A: Save Raw Context (Path A)
|
||
|
|
|
||
|
|
**Output:**
|
||
|
|
```markdown
|
||
|
|
# Gathered Context
|
||
|
|
|
||
|
|
**Source**: linked-notes
|
||
|
|
**Notes**: 8
|
||
|
|
**Characters**: 24,532
|
||
|
|
**Timestamp**: 2025-10-13T14:30:00Z
|
||
|
|
**Link Depth**: 2
|
||
|
|
|
||
|
|
## Included Notes
|
||
|
|
- [[Root Note]]
|
||
|
|
- [[Note 1]]
|
||
|
|
- [[Note 2]]
|
||
|
|
...
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
[Full aggregated content here]
|
||
|
|
```
|
||
|
|
|
||
|
|
**Use cases:**
|
||
|
|
- Manual synthesis and writing
|
||
|
|
- Debugging context issues
|
||
|
|
- Sharing context with team
|
||
|
|
- Backup before AI processing
|
||
|
|
|
||
|
|
### Step 4B: Process with AI (Path B)
|
||
|
|
|
||
|
|
**Modal: "Process Context"**
|
||
|
|
|
||
|
|
Choose processing type and prompt:
|
||
|
|
|
||
|
|
**Output format:**
|
||
|
|
- `Distill to atomic notes` (default)
|
||
|
|
- `Publish as single post` (new!)
|
||
|
|
|
||
|
|
**Custom prompt (optional):**
|
||
|
|
- Dropdown of prompts from `OpenAugi/Prompts/` folder
|
||
|
|
- Or use default prompt
|
||
|
|
|
||
|
|
**Action:** Click "Process" →
|
||
|
|
|
||
|
|
### Step 5: AI Processing & Output
|
||
|
|
|
||
|
|
**If Distill:**
|
||
|
|
- Creates atomic notes (one concept per note)
|
||
|
|
- Creates summary with links to atomic notes
|
||
|
|
- Extracts tasks
|
||
|
|
- Saved to: `OpenAugi/Notes/Distill [Name] YYYY-MM-DD/`
|
||
|
|
- Summary: `OpenAugi/Summaries/[Name] - distilled.md`
|
||
|
|
|
||
|
|
**If Publish:**
|
||
|
|
- Creates single polished blog post
|
||
|
|
- Conversational, reader-friendly tone
|
||
|
|
- Preserves your voice and personality
|
||
|
|
- Saved to: `OpenAugi/Published/[Title] - Published YYYY-MM-DD.md`
|
||
|
|
- Includes frontmatter with metadata
|
||
|
|
|
||
|
|
## Processing Types Explained
|
||
|
|
|
||
|
|
### Distill to Atomic Notes
|
||
|
|
|
||
|
|
**What it does:**
|
||
|
|
- Analyzes content for distinct concepts and ideas
|
||
|
|
- Creates separate notes (one idea per note)
|
||
|
|
- Deduplicates and merges overlapping concepts
|
||
|
|
- Extracts actionable tasks
|
||
|
|
- Generates summary linking all atomic notes
|
||
|
|
|
||
|
|
**Output structure:**
|
||
|
|
```
|
||
|
|
OpenAugi/Notes/Distill MyProject 2025-10-13 14-30-52/
|
||
|
|
├─ Core Concept.md
|
||
|
|
├─ Key Decision.md
|
||
|
|
├─ Technical Approach.md
|
||
|
|
└─ Risk Consideration.md
|
||
|
|
|
||
|
|
OpenAugi/Summaries/MyProject - distilled.md
|
||
|
|
└─ [Summary with links to above notes + tasks]
|
||
|
|
```
|
||
|
|
|
||
|
|
**Best for:**
|
||
|
|
- Building knowledge base
|
||
|
|
- Organizing research
|
||
|
|
- Breaking down complex topics
|
||
|
|
- Creating reusable concept notes
|
||
|
|
|
||
|
|
### Publish as Single Post
|
||
|
|
|
||
|
|
**What it does:**
|
||
|
|
- Transforms raw notes into ONE cohesive blog post
|
||
|
|
- Preserves your unique voice and personality
|
||
|
|
- Adds narrative structure and transitions
|
||
|
|
- Formats for readability (headers, paragraphs, emphasis)
|
||
|
|
- Creates conversational, direct tone
|
||
|
|
|
||
|
|
**Output structure:**
|
||
|
|
```
|
||
|
|
OpenAugi/Published/Building Second Brains - Published 2025-10-13.md
|
||
|
|
|
||
|
|
---
|
||
|
|
type: published-post
|
||
|
|
published_date: 2025-10-13T14:30:00Z
|
||
|
|
prompt_used: default
|
||
|
|
status: draft
|
||
|
|
source_notes: [[Note 1]], [[Note 2]], [[Note 3]]
|
||
|
|
---
|
||
|
|
|
||
|
|
# Building a Second Brain That Actually Works
|
||
|
|
|
||
|
|
[Full polished blog post ready to copy-paste]
|
||
|
|
|
||
|
|
---
|
||
|
|
*Generated from notes using OpenAugi. Source notes: [[Note 1]], [[Note 2]]...*
|
||
|
|
```
|
||
|
|
|
||
|
|
**Best for:**
|
||
|
|
- Creating shareable content
|
||
|
|
- Blog posts and articles
|
||
|
|
- Discord/forum posts
|
||
|
|
- Documentation
|
||
|
|
- Turning notes into publishable writing
|
||
|
|
|
||
|
|
**Publishing prompt focus:**
|
||
|
|
- PRESERVE: Your voice, tone, creative phrases, core insights
|
||
|
|
- ADD: Context, transitions, narrative arc, why it matters
|
||
|
|
- FORMAT: Short paragraphs, headers, emphasis, conversational
|
||
|
|
- TONE: Direct, honest, friend-to-friend explanation
|
||
|
|
|
||
|
|
## Configuration Settings
|
||
|
|
|
||
|
|
**Settings → OpenAugi → Context Gathering Settings**
|
||
|
|
|
||
|
|
### Default Link Depth
|
||
|
|
- Slider: 1-3
|
||
|
|
- Default: 1 (direct links only)
|
||
|
|
- What it does: Sets initial depth when opening context gathering modal
|
||
|
|
|
||
|
|
### Default Max Characters
|
||
|
|
- Input: Number
|
||
|
|
- Default: 100,000
|
||
|
|
- What it does: Character limit before stopping discovery
|
||
|
|
- Recommended: 50k-150k depending on your vault size
|
||
|
|
|
||
|
|
### Filter Recent Sections by Default
|
||
|
|
- Toggle: On/Off
|
||
|
|
- Default: On
|
||
|
|
- What it does: Enables journal section filtering in recent activity mode
|
||
|
|
- When to disable: If you want full note content always
|
||
|
|
|
||
|
|
### Published Folder
|
||
|
|
- Input: Path
|
||
|
|
- Default: `OpenAugi/Published`
|
||
|
|
- What it does: Where published blog posts are saved
|
||
|
|
|
||
|
|
## How I Intend to Use This
|
||
|
|
|
||
|
|
### Weekly Review & Publishing
|
||
|
|
|
||
|
|
**Every Sunday:**
|
||
|
|
1. Run "Process Recent Activity"
|
||
|
|
2. Set to "last 7 days"
|
||
|
|
3. Exclude "Archive", "Templates", "OpenAugi"
|
||
|
|
4. Enable "Recent sections only" (my daily journal is huge)
|
||
|
|
5. Review checkboxes - uncheck meeting notes, keep insights
|
||
|
|
6. Choose "Publish as single post"
|
||
|
|
7. Get weekly reflection blog post ready for my blog
|
||
|
|
|
||
|
|
**Why this works:**
|
||
|
|
- Automated discovery of my week's work
|
||
|
|
- Filter out noise (meetings, templates)
|
||
|
|
- Only recent journal sections (not entire year)
|
||
|
|
- Direct path from notes → publishable post
|
||
|
|
- Preserves my voice without over-editing
|
||
|
|
|
||
|
|
### Deep Research Synthesis
|
||
|
|
|
||
|
|
**When finishing a research project:**
|
||
|
|
1. Create note: `Project X - Research Hub.md`
|
||
|
|
2. Add links to all research notes, papers, meeting notes
|
||
|
|
3. Run "Process Notes"
|
||
|
|
4. Set depth to 3 (capture transitively related notes)
|
||
|
|
5. Max characters: 150k (large project)
|
||
|
|
6. Review checkboxes, keep only relevant notes
|
||
|
|
7. Choose "Distill to atomic notes"
|
||
|
|
8. Get organized knowledge base of research insights
|
||
|
|
|
||
|
|
**Why this works:**
|
||
|
|
- Depth 3 captures comprehensive context
|
||
|
|
- Checkbox review removes tangential notes
|
||
|
|
- Distillation creates reusable concept notes
|
||
|
|
- Summary shows connections I might have missed
|
||
|
|
|
||
|
|
### Content Pipeline
|
||
|
|
|
||
|
|
**For creating blog content:**
|
||
|
|
|
||
|
|
**Stage 1: Gather context**
|
||
|
|
1. Create `Blog Ideas - October.md`
|
||
|
|
2. Link to rough notes: `[[Idea 1]]`, `[[Idea 2]]`, etc.
|
||
|
|
3. Run "Save Context" (depth 2)
|
||
|
|
4. Review raw aggregated content
|
||
|
|
5. Manually edit/refine the context note
|
||
|
|
|
||
|
|
**Stage 2: Publish**
|
||
|
|
1. Run "Process Notes" on the refined context note
|
||
|
|
2. Depth 1 (just the context itself)
|
||
|
|
3. Choose "Publish as single post"
|
||
|
|
4. Get polished blog post
|
||
|
|
|
||
|
|
**Why this works:**
|
||
|
|
- Save context first lets me review before AI processing
|
||
|
|
- Manual refinement adds my editorial eye
|
||
|
|
- Publishing step transforms refined notes to blog post
|
||
|
|
- Two-stage process: gather → refine → publish
|
||
|
|
|
||
|
|
### Project Documentation
|
||
|
|
|
||
|
|
**Creating comprehensive project docs:**
|
||
|
|
1. Run "Process Notes" on `Project Overview.md`
|
||
|
|
2. Depth 3, max 200k characters
|
||
|
|
3. Include all technical specs, decisions, meeting notes
|
||
|
|
4. Save raw context first (for reference)
|
||
|
|
5. Then process with custom "Technical Documentation" prompt
|
||
|
|
6. Get structured technical docs in atomic note format
|
||
|
|
|
||
|
|
**Why this works:**
|
||
|
|
- Raw context saved for completeness
|
||
|
|
- Deep traversal ensures nothing missed
|
||
|
|
- Custom prompt focuses on technical aspects
|
||
|
|
- Atomic notes create navigable documentation structure
|
||
|
|
|
||
|
|
## Advanced Tips
|
||
|
|
|
||
|
|
### Combining Source Modes
|
||
|
|
|
||
|
|
**Strategy: Recent notes as seed, then traverse links**
|
||
|
|
1. First, run "Process Recent" to discover recent work
|
||
|
|
2. Save the collection (checkbox selection)
|
||
|
|
3. Then run "Process Notes" on that collection with depth 2
|
||
|
|
4. Captures recent work PLUS related context
|
||
|
|
|
||
|
|
### Managing Character Limits
|
||
|
|
|
||
|
|
**For large vaults:**
|
||
|
|
- Start with 50k character limit
|
||
|
|
- Review what gets excluded in checkbox modal
|
||
|
|
- If needed, increase limit and re-run
|
||
|
|
- Or: Process in batches (multiple depth-1 runs)
|
||
|
|
|
||
|
|
### Journal Section Filtering
|
||
|
|
|
||
|
|
**Best practices:**
|
||
|
|
- Set date header format to match your journals
|
||
|
|
- Enable "Recent sections only" by default
|
||
|
|
- Adjust "Journal sections days back" to match time window
|
||
|
|
- Example: 30-day review → 30-day journal sections
|
||
|
|
|
||
|
|
### Custom Prompts for Publishing
|
||
|
|
|
||
|
|
**Create publishing prompt variants:**
|
||
|
|
- `Technical Blog Post.md` - Focus on explaining technical concepts
|
||
|
|
- `Personal Reflection.md` - Emphasis on insights and growth
|
||
|
|
- `Tutorial Style.md` - Step-by-step instructional tone
|
||
|
|
|
||
|
|
**Store in:** `OpenAugi/Prompts/`
|
||
|
|
|
||
|
|
### Iterative Refinement
|
||
|
|
|
||
|
|
**Process:**
|
||
|
|
1. Save raw context first (see what you're working with)
|
||
|
|
2. Review, identify gaps or noise
|
||
|
|
3. Adjust gathering config (depth, exclusions)
|
||
|
|
4. Re-run with refined config
|
||
|
|
5. Process with AI when context is clean
|
||
|
|
|
||
|
|
## Troubleshooting
|
||
|
|
|
||
|
|
### "No notes discovered"
|
||
|
|
|
||
|
|
**Check:**
|
||
|
|
- Is current note open? (for linked notes mode)
|
||
|
|
- Do links exist in current note?
|
||
|
|
- Are folders excluded that contain your notes?
|
||
|
|
- For recent activity: Is date range correct?
|
||
|
|
|
||
|
|
### "Character limit exceeded" warning
|
||
|
|
|
||
|
|
**Solutions:**
|
||
|
|
- Increase max characters in config
|
||
|
|
- Use folder exclusions to filter large notes
|
||
|
|
- Reduce link depth
|
||
|
|
- Process in smaller batches
|
||
|
|
|
||
|
|
### "Journal section filtering not working"
|
||
|
|
|
||
|
|
**Check:**
|
||
|
|
- Date header format matches your notes exactly
|
||
|
|
- Format includes YYYY, MM, DD placeholders
|
||
|
|
- Headers are markdown headers (##, ###, etc.)
|
||
|
|
- Enable "Recent sections only" toggle
|
||
|
|
|
||
|
|
### Processing takes too long
|
||
|
|
|
||
|
|
**Optimize:**
|
||
|
|
- Reduce character count (smaller context)
|
||
|
|
- Use folder exclusions aggressively
|
||
|
|
- Start with depth 1, increase if needed
|
||
|
|
- Check for very large linked notes
|
||
|
|
|
||
|
|
### Output not what expected
|
||
|
|
|
||
|
|
**Try:**
|
||
|
|
- Review raw context first (save context command)
|
||
|
|
- Verify checkbox selections
|
||
|
|
- Use custom prompt for specific focus
|
||
|
|
- Add custom context in notes for guidance
|
||
|
|
|
||
|
|
## Future Enhancements
|
||
|
|
|
||
|
|
Potential additions to the system:
|
||
|
|
|
||
|
|
**Section-level selection:**
|
||
|
|
- Checkbox specific headings within notes
|
||
|
|
- Include only relevant sections
|
||
|
|
- More granular control than note-level
|
||
|
|
|
||
|
|
**Smart filtering:**
|
||
|
|
- Auto-exclude based on tags
|
||
|
|
- Include only notes with specific properties
|
||
|
|
- Filter by note type or template
|
||
|
|
|
||
|
|
**Preset configurations:**
|
||
|
|
- Save gathering configs as presets
|
||
|
|
- Quick-select "Weekly Review" config
|
||
|
|
- Share configs between vaults
|
||
|
|
|
||
|
|
**Graph-based discovery:**
|
||
|
|
- Visual graph of discovered notes
|
||
|
|
- Click to toggle inclusion
|
||
|
|
- See relationships before processing
|
||
|
|
|
||
|
|
**Batch operations:**
|
||
|
|
- Process multiple root notes at once
|
||
|
|
- Merge contexts from different sources
|
||
|
|
- Parallel processing workflows
|
||
|
|
|
||
|
|
## Technical Details
|
||
|
|
|
||
|
|
### BFS Algorithm
|
||
|
|
|
||
|
|
The link traversal uses breadth-first search:
|
||
|
|
|
||
|
|
```typescript
|
||
|
|
Queue: [root]
|
||
|
|
Depth 0: Process root, add direct links to queue
|
||
|
|
Depth 1: Process direct links, add their links to queue
|
||
|
|
Depth 2: Process second-level links, add their links to queue
|
||
|
|
Depth 3: Process third-level links (stop, max depth reached)
|
||
|
|
```
|
||
|
|
|
||
|
|
**Properties:**
|
||
|
|
- Explores broadly before deeply
|
||
|
|
- Guarantees shortest path to any note
|
||
|
|
- Respects character limits during traversal
|
||
|
|
- Marks overflow notes as "discovered but excluded"
|
||
|
|
|
||
|
|
### Character Counting
|
||
|
|
|
||
|
|
Tracks cumulative characters during discovery:
|
||
|
|
|
||
|
|
```typescript
|
||
|
|
totalChars = 0
|
||
|
|
for each discovered note:
|
||
|
|
contentSize = note.length
|
||
|
|
if totalChars + contentSize > maxChars:
|
||
|
|
mark note as excluded (overflow)
|
||
|
|
else:
|
||
|
|
include note
|
||
|
|
totalChars += contentSize
|
||
|
|
```
|
||
|
|
|
||
|
|
User can manually override exclusions in checkbox modal.
|
||
|
|
|
||
|
|
### Aggregation Format
|
||
|
|
|
||
|
|
Content aggregated as:
|
||
|
|
|
||
|
|
```markdown
|
||
|
|
# Note: [Note 1 Title]
|
||
|
|
|
||
|
|
[Note 1 full content]
|
||
|
|
|
||
|
|
# Note: [Note 2 Title]
|
||
|
|
|
||
|
|
[Note 2 full content]
|
||
|
|
```
|
||
|
|
|
||
|
|
This format:
|
||
|
|
- Preserves note boundaries
|
||
|
|
- Maintains context for AI
|
||
|
|
- Easy to read in raw format
|
||
|
|
- Works well for both distill and publish
|
||
|
|
|
||
|
|
## Comparison with Previous System
|
||
|
|
|
||
|
|
| Feature | Before | Now |
|
||
|
|
|---------|--------|-----|
|
||
|
|
| Link depth | 1 only | 1-3 configurable |
|
||
|
|
| Preview before processing | No | Yes (checkbox modal) |
|
||
|
|
| Character limits | None | Configurable |
|
||
|
|
| Save raw context | No | Yes |
|
||
|
|
| Publishing support | No | Yes |
|
||
|
|
| Source flexibility | Fixed per command | Choose in modal |
|
||
|
|
| Manual selection | Only for recent activity | All modes |
|
||
|
|
| Reusable architecture | No | Yes |
|
||
|
|
|
||
|
|
The new system is a **superset** of the old functionality - everything that worked before still works, but with more control and flexibility.
|