18 KiB
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:
- Gather: Discover and collect notes based on your criteria
- Review: Preview and refine your selection with checkboxes
- 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:
- Create note:
2025 Q1 Learning.md - Add links:
[[Book Notes]],[[Course Notes]],[[Project Insights]] - 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:
- Run command
- Change to "last 30 days" for monthly review
- Exclude "Archive" and "Templates" folders
- Select only the notes relevant to your review
- 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:
- Create note with links to all project documentation
- Run "Save Context" → depth 3 → deselect irrelevant notes
- Get single markdown file with all content aggregated
- 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 levelsMax 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 filteringJournal 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 Allbuttons- 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:
# 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:
- Run "Process Recent Activity"
- Set to "last 7 days"
- Exclude "Archive", "Templates", "OpenAugi"
- Enable "Recent sections only" (my daily journal is huge)
- Review checkboxes - uncheck meeting notes, keep insights
- Choose "Publish as single post"
- 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:
- Create note:
Project X - Research Hub.md - Add links to all research notes, papers, meeting notes
- Run "Process Notes"
- Set depth to 3 (capture transitively related notes)
- Max characters: 150k (large project)
- Review checkboxes, keep only relevant notes
- Choose "Distill to atomic notes"
- 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
- Create
Blog Ideas - October.md - Link to rough notes:
[[Idea 1]],[[Idea 2]], etc. - Run "Save Context" (depth 2)
- Review raw aggregated content
- Manually edit/refine the context note
Stage 2: Publish
- Run "Process Notes" on the refined context note
- Depth 1 (just the context itself)
- Choose "Publish as single post"
- 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:
- Run "Process Notes" on
Project Overview.md - Depth 3, max 200k characters
- Include all technical specs, decisions, meeting notes
- Save raw context first (for reference)
- Then process with custom "Technical Documentation" prompt
- 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
- First, run "Process Recent" to discover recent work
- Save the collection (checkbox selection)
- Then run "Process Notes" on that collection with depth 2
- 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 conceptsPersonal Reflection.md- Emphasis on insights and growthTutorial Style.md- Step-by-step instructional tone
Store in: OpenAugi/Prompts/
Iterative Refinement
Process:
- Save raw context first (see what you're working with)
- Review, identify gaps or noise
- Adjust gathering config (depth, exclusions)
- Re-run with refined config
- 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:
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:
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:
# 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.