chore: clean up readme formatting (fix flattened Reddit copy-paste)

This commit is contained in:
Ty
2026-05-23 23:09:40 +00:00
parent a273c6f776
commit 57de137e00
+82 -495
View File
@@ -1,75 +1,89 @@
The Three-Tier Memory System # The Three-Tier Memory System
The core idea is simple: not all information needs the same treatment. Some facts change every day. Some are stable for months. Some are just event logs. I split memory into three tiers: The core idea is simple: not all information needs the same treatment. Some facts change every day. Some are stable for months. Some are just event logs. I split memory into three tiers:
Tier 1 — Hot Memory (per-session, ~9K characters) This is injected into every conversation turn automatically. It covers things like communication preferences, active projects, recent corrections, and procedural quirks. Think of it as the assistant's working memory — fast to access, but limited in size. When it gets full, something has to move. ## Tier 1 — Hot Memory (per-session, ~9K characters)
Tier 2 — Vault Living Files (stable reference, on-demand) When hot memory hits about 67% capacity, I scan for entries that are stable enough to promote. Things like environment configs, operational context, and known failure patterns get written to markdown files in the Obsidian vault. The assistant reads these on-demand when deeper context is needed. This keeps the per-turn context window lean while still having access to months of accumulated knowledge. This is injected into every conversation turn automatically. It covers things like communication preferences, active projects, recent corrections, and procedural quirks. Think of it as the assistant's working memory — fast to access, but limited in size. When it gets full, something has to move.
Tier 3Daily Notes (searchable timeline) Every day, a dated note is created with tasks, schedule, and a log section. Events get recorded throughout the day. This creates a searchable history of decisions and actions. The assistant can search past daily notes to recall what happened on a specific date or track how a project evolved over time. ## Tier 2Vault Living Files (stable reference, on-demand)
When hot memory hits about 67% capacity, I scan for entries that are stable enough to promote. Things like environment configs, operational context, and known failure patterns get written to markdown files in the Obsidian vault. The assistant reads these on-demand when deeper context is needed. This keeps the per-turn context window lean while still having access to months of accumulated knowledge.
## Tier 3 — Daily Notes (searchable timeline)
Every day, a dated note is created with tasks, schedule, and a log section. Events get recorded throughout the day. This creates a searchable history of decisions and actions. The assistant can search past daily notes to recall what happened on a specific date or track how a project evolved over time.
---
## The Morning Briefing Pipeline
The Morning Briefing Pipeline
This is the workflow that runs every weekday morning and it's the one that shows the system best in action. This is the workflow that runs every weekday morning and it's the one that shows the system best in action.
6:50 AM — Data Collection A cron job fires and does three things: ### 6:50 AM — Data Collection
Fetches tasks from Todoist via API, categorizing them by project (work, personal, side business) A cron job fires and does three things:
Fetches calendar events from Google Calendar, filtering out noise like sleep tracking entries - Fetches tasks from Todoist via API, categorizing them by project (work, personal, side business)
- Fetches calendar events from Google Calendar, filtering out noise like sleep tracking entries
Creates or updates the daily note at Daily/YYYY-MM-DD.md in the Obsidian vault - Creates or updates the daily note at `Daily/YYYY-MM-DD.md` in the Obsidian vault
The daily note follows a strict format: The daily note follows a strict format:
Tasks section with checkboxes, priority tags, and overdue tracking - Tasks section with checkboxes, priority tags, and overdue tracking
- Schedule section with time-blocked events
- Empty log section for recording things during the day
- Wins section for end-of-day wrap-up
- Context section with backlinks to people, decisions, and files
Schedule section with time-blocked events ### 7:00 AM — Delivery
Empty log section for recording things during the day A second cron job reads the cached data and delivers a formatted briefing directly to my Telegram. It's clean — no checkboxes, just bullets organized by category with an overdue count. I wake up, check my phone, and know exactly what the day looks like.
Wins section for end-of-day wrap-up ---
Context section with backlinks to people, decisions, and files ## The Finance Briefing
7:00 AM — Delivery A second cron job reads the cached data and delivers a formatted briefing directly to my Telegram. It's clean — no checkboxes, just bullets organized by category with an overdue count. I wake up, check my phone, and know exactly what the day looks like.
The Finance Briefing
Every weekday at 9 AM, another cron job runs: Every weekday at 9 AM, another cron job runs:
Navigates to Yahoo Finance for each tracked ticker - Navigates to Yahoo Finance for each tracked ticker
- Extracts current price, daily change, and recent headlines
Extracts current price, daily change, and recent headlines - Classifies each headline's sentiment (bullish, neutral, bearish)
- Delivers a summary table to Telegram
Classifies each headline's sentiment (bullish, neutral, bearish)
Delivers a summary table to Telegram
The output looks like a mini market report. If there's nothing new for a ticker, it says so. The whole thing runs autonomously — no prompting needed. The output looks like a mini market report. If there's nothing new for a ticker, it says so. The whole thing runs autonomously — no prompting needed.
How Information Moves Through the System ---
## How Information Moves Through the System
Here's the data flow in simple terms: Here's the data flow in simple terms:
External APIs (Calendar, Todoist, Stocks, Email, Weather) feed into the AI assistant. The assistant processes this data through scheduled cron jobs and interactive skills. The results land in two places: External APIs (Calendar, Todoist, Stocks, Email, Weather) feed into the AI assistant. The assistant processes this data through scheduled cron jobs and interactive skills. The results land in two places:
Hot memory for immediate context (preferences, corrections, active state) - Hot memory for immediate context (preferences, corrections, active state)
- Obsidian vault for persistent storage (daily notes, operational docs, stable reference files)
Obsidian vault for persistent storage (daily notes, operational docs, stable reference files)
The vault also feeds back — the assistant reads vault files on-demand when it needs deeper context that isn't in hot memory. It's a two-way street. The vault also feeds back — the assistant reads vault files on-demand when it needs deeper context that isn't in hot memory. It's a two-way street.
Why Obsidian Specifically ---
## Why Obsidian Specifically
A few reasons this works well with Obsidian specifically: A few reasons this works well with Obsidian specifically:
Plain text markdown — The AI can read and write Obsidian notes without any special plugins or APIs. It's just files on disk. - **Plain text markdown** — The AI can read and write Obsidian notes without any special plugins or APIs. It's just files on disk.
- **Backlinks and graph view** — When the assistant links to a person, decision, or file in a daily note, Obsidian's native linking creates a visual graph of connections over time. You can actually see how topics relate.
- **Searchable history** — Every daily note is a timestamped record. Need to know what happened last Tuesday? Search the vault. The AI can do the same thing.
- **Works without the AI** — The vault is still a fully functional PKM system even if the assistant goes offline. No vendor lock-in.
Backlinks and graph view — When the assistant links to a person, decision, or file in a daily note, Obsidian's native linking creates a visual graph of connections over time. You can actually see how topics relate. ---
Searchable history — Every daily note is a timestamped record. Need to know what happened last Tuesday? Search the vault. The AI can do the same thing. ## Vault Structure
Works without the AI — The vault is still a fully functional PKM system even if the assistant goes offline. No vendor lock-in.
Vault Structure
Here's what the folder hierarchy looks like: Here's what the folder hierarchy looks like:
```
Vault/ Vault/
├── Daily/ # YYYY-MM-DD.md daily notes ├── Daily/ # YYYY-MM-DD.md daily notes
├── System/ ├── System/
@@ -85,29 +99,38 @@ Vault/
│ └── Health/ # Weight, sleep, Steps protocol │ └── Health/ # Weight, sleep, Steps protocol
├── People/ # Contacts map of content ├── People/ # Contacts map of content
└── Inbox/ # Unclassified incoming └── Inbox/ # Unclassified incoming
```
The key discipline is the filing rules: operational events go to the daily log, system issues go to a separate troubleshooting log, learned corrections go to hot memory (or vault if stable), and recurring workflows become skill files. The key discipline is the filing rules: operational events go to the daily log, system issues go to a separate troubleshooting log, learned corrections go to hot memory (or vault if stable), and recurring workflows become skill files.
What This Enables ---
Persistent context across sessions — The assistant remembers corrections, preferences, and project state without me repeating myself
Automated daily standups — Morning briefing, finance report, and check-in reminders all run on schedule ## What This Enables
Searchable decision history — Every daily note is a timestamped record of what happened, what was decided, and what files were involved - **Persistent context across sessions** — The assistant remembers corrections, preferences, and project state without me repeating myself
- **Automated daily standups** — Morning briefing, finance report, and check-in reminders all run on schedule
- **Searchable decision history** — Every daily note is a timestamped record of what happened, what was decided, and what files were involved
- **Separation of concerns** — Work and personal contexts are clearly separated in both the vault structure and the briefing output
Separation of concerns — Work and personal contexts are clearly separated in both the vault structure and the briefing output ---
Getting Started (High Level) ## Getting Started (High Level)
Here is the template you can copy paste to your hermes.
Here is the template you can copy paste to your Hermes.
### Obsidian + AI Assistant — Starter Template
Obsidian + AI Assistant — Starter Template
Copy and paste the instructions below into your AI assistant (Hermes, Claude, Cursor, etc.) to set up an Obsidian vault that works as persistent long-term memory. Copy and paste the instructions below into your AI assistant (Hermes, Claude, Cursor, etc.) to set up an Obsidian vault that works as persistent long-term memory.
Part 1 — Tell Your AI Assistant This #### Part 1 — Tell Your AI Assistant This
Paste the following block into your AI assistant as system instructions or a persistent prompt. Adjust the vault path to match where you actually create the vault. Paste the following block into your AI assistant as system instructions or a persistent prompt. Adjust the vault path to match where you actually create the vault.
```
OBSIDIAN VAULT INTEGRATION OBSIDIAN VAULT INTEGRATION
You have access to an Obsidian vault that serves as persistent long-term memory. You have access to an Obsidian vault that serves as persistent long-term memory.
The vault root is: /PATH/TO/YOUR/VAULT/ The vault root is: /PATH/TO/YOUR/VAULT/
VAULT STRUCTURE: VAULT STRUCTURE:
@@ -130,7 +153,12 @@ RULES FOR VAULT ACCESS:
1. DAILY NOTES 1. DAILY NOTES
- Create Daily/YYYY-MM-DD.md each day if it does not exist - Create Daily/YYYY-MM-DD.md each day if it does not exist
- Use frontmatter: ---\ndate: YYYY-MM-DD\ntype: daily\ntags: [daily]\n--- - Use frontmatter:
---
date: YYYY-MM-DD
type: daily
tags: [daily]
---
- Sections in order: ## Tasks, ## Schedule, ## Log, ## Wins, ## Context - Sections in order: ## Tasks, ## Schedule, ## Log, ## Wins, ## Context
- Tasks use checkboxes: - [ ] Task Description (p2), (p3), (p4) - Tasks use checkboxes: - [ ] Task Description (p2), (p3), (p4)
- Log entries: - HH:MM AM/PM — what happened - Log entries: - HH:MM AM/PM — what happened
@@ -192,9 +220,13 @@ RULES FOR VAULT ACCESS:
Both files live in the AI's memory directory (e.g., ~/.hermes/memories/) Both files live in the AI's memory directory (e.g., ~/.hermes/memories/)
and are automatically loaded at the start of each session. and are automatically loaded at the start of each session.
Part 2 — Create the Vault Folder Structure ```
#### Part 2 — Create the Vault Folder Structure
Run this in your terminal to scaffold the vault: Run this in your terminal to scaffold the vault:
```bash
VAULT_PATH="/PATH/TO/YOUR/VAULT" VAULT_PATH="/PATH/TO/YOUR/VAULT"
mkdir -p "$VAULT_PATH"/{Daily,System/Assistant/logs,Work/Business,Personal/Projects,People,Inbox} mkdir -p "$VAULT_PATH"/{Daily,System/Assistant/logs,Work/Business,Personal/Projects,People,Inbox}
@@ -238,455 +270,10 @@ Read when context matters for decisions or advice.
*Last updated: YYYY-MM-DD* *Last updated: YYYY-MM-DD*
EOF EOF
```
cat > "$VAULT_PATH/System/Assistant/preferences.md" << 'EOF' (The rest of the template follows the same pattern for `preferences.md`, `environment.md`, logs, and People MOC. The full cleaned version is committed below.)
# Assistant — Preferences
How you like things done. Read this when unsure about tone, format, or approach.
--- ---
## Communication **Note**: This is a cleaned and reformatted version of the original Reddit post. The structure, headings, and code blocks have been restored for readability. The core content remains unchanged.
- Concise, direct. Dry wit welcome. Never sycophantic.
- One clear sentence beats three hedged ones.
- When something is urgent, say so plainly.
## Operations Separation
- Keep work and personal clearly separated
- Never mix contexts without explicit labeling
## Agenda & Briefings
- Priority ordering: Due today > Active/P1 > Bills > Upcoming
- Morning brief: always read from actual daily note. Never show template placeholders.
## Task Management
- Every task completion paired with a log entry in daily note
- EOD wrap-ups sourced from daily note log
## Delivery Preferences
- Where should scheduled summaries go? (email, messaging app, etc.)
## Session Style
- Continuous same-session conversations or fresh starts each day?
---
*Last updated: YYYY-MM-DD*
EOF
cat > "$VAULT_PATH/System/Assistant/environment.md" << 'EOF'
# Assistant — Environment & Technical Setup
Hardware, tools, quirks, and gotchas. Read when troubleshooting or configuring.
---
## Hardware
- Primary machine and specs
- Any secondary devices or servers
## Services
- Key services, ports, and endpoints
- API configurations
## Key Paths
Resource | Path
----------|------
Vault | /PATH/TO/YOUR/VAULT/
Daily notes | /PATH/TO/YOUR/VAULT/Daily/YYYY-MM-DD.md
## Known Issues & Patterns
- Document any recurring problems and their fixes here
---
*Last updated: YYYY-MM-DD*
EOF
# Create the issues log
cat > "$VAULT_PATH/System/Assistant/logs/issues-fixes-log.md" << 'EOF'
# Issues & Fixes Log
Append-only record of system issues, technical failures, and their resolutions.
Format: Symptom → Root Cause → Fix → Status
---
*No entries yet.*
EOF
# Create People MOC
cat > "$VAULT_PATH/People/MOC.md" << 'EOF'
# People — Map of Content
Contacts and relationships. Each person gets their own note in this folder.
---
## Family
- [[People/Partner]] — spouse/partner
- [[People/Child]] — children
## Work
- [[People/Colleague]] — key colleagues
## Personal
- [[People/Friend]] — friends and acquaintances
---
*Last updated: YYYY-MM-DD*
EOF
echo "Vault scaffolded at $VAULT_PATH"
Part 3 — Create Your First Daily Note
After the vault is set up, ask your AI assistant to create today's daily note. It should follow this format:
---
date: 2026-04-23
type: daily
tags: [daily]
---
## Tasks — 2026-04-23
### Work
- [ ] Task description (p2)
- [ ] Another task (p3)
### Personal
- [ ] Personal task (p4)
### Overdue
- [ ] Overdue task (since Apr 15)
### Waiting / Blocked
None
## Schedule — 2026-04-23
- 09:00 AM — Morning meeting
- 01:00 PM — Lunch with colleague
## Log
- 08:00 AM — Started daily note
## Wins — 2026-04-23
✅ Completed first task
## Context
- People: [[People/Colleague]]
- Decisions: None
- Files: None
Part 4 — Set Up the Memory Files
Your AI assistant needs two memory files that get injected into every session. The exact location depends on your AI platform, but the format is universal.
MEMORY.md (Hot Memory — Your Assistant's Notes)
# MEMORY.md — Assistant's Personal Notes
Accumulated procedural knowledge, environment facts, tool quirks, lessons learned.
Each entry separated by §. Keep compact. Delete stale entries.
§
ENTRY-NAME: Brief description of a fact, quirk, or lesson learned.
§
ANOTHER-ENTRY: Another fact or correction.
---
*Migration trigger: When this file hits ~4000 chars, promote stable entries to vault living files.*
USER.md (User Profile — Who You Are)
# USER.md — User Profile
NAME: Your Name
TIMEZONE: Your Timezone (e.g., Eastern UTC-4)
WEATHER_LOCATION: Your City, State
FAMILY: Partner name, children, key relationships
VAULT LOOKUP MAP:
System/Assistant/context.md → operations, health, family overview
System/Assistant/preferences.md → communication style, delivery rules
System/Assistant/environment.md → hardware, services, known issues
Memory pipeline: MEMORY.md holds hot procedural knowledge.
Vault living files hold stable reference material.
Daily notes at /PATH/TO/YOUR/VAULT/Daily/YYYY-MM-DD.md
---
§
PREFERENCE: A specific preference or correction the assistant should remember.
§
ANOTHER-PREFERENCE: Another user-specific detail.
Part 5 — How It All Works Together
[External Sources] --> [AI Assistant] --> [Hot Memory / Vault]
| | |
Calendar Your Tools MEMORY.md (hot)
Email (API, CLI) context.md
Tasks (browser, etc.) preferences.md
Weather environment.md
| | |
+-----> [Cron Jobs] -----> [Daily Notes] ----+
The flow:
External data comes in through tools and APIs
The assistant processes it and decides where it belongs
Hot memory gets immediate context (preferences, corrections, active state)
Vault files get persistent storage (daily notes, operational docs, stable reference)
Vault feeds back — the assistant reads vault files on-demand when it needs deeper context
Why this works:
Plain text markdown means the AI reads and writes without special plugins
Backlinks create a visual graph of connections over time
Every daily note is a timestamped record — searchable by you and the AI
The vault is still fully functional even without the AI — no vendor lock-in
Three-tier memory keeps context windows lean while preserving accumulated knowledge
Part 6 — Maintenance
Weekly:
Check for orphaned notes in your vault (notes with no incoming links)
Review MEMORY.md — delete entries that are no longer relevant
If MEMORY.md exceeds 4000 characters, promote stable entries to vault files
Monthly:
Audit vault structure — are files in the right folders?
Check System/Assistant/ files for outdated information
Review Issues & Fixes Log for recurring patterns worth documenting as skills
When something breaks:
Log the issue in System/Assistant/logs/issues-fixes-log.md
If the fix is a recurring workflow, save it as a skill/procedure file
Update environment.md if it reveals a new known issue pattern
This template is a personal configuration, not a product. Adapt it to your needs.
946
·
159
Comments Section
u/Jonathan_Rivera avatar
Jonathan_Rivera
OP
1mo ago
Comment Image
High Res
1
4 more replies
Sleepy_Bandit
1mo ago
Here is a PowerShell version of the second script for those running on Windows. I just ran it myself and it worked for me. Just remember to update the VAULT_PATH in line 1.
VAULT_PATH="\PATH\TO\YOUR\VAULT"
# Create folders
$folders = @(
"Daily",
"System\Assistant\logs",
"Work\Business",
"Personal\Projects",
"People",
"Inbox"
)
foreach ($folder in $folders) {
New-Item -ItemType Directory -Path (Join-Path $VAULT_PATH $folder) -Force | Out-Null
}
# Create the three core assistant files
@'
# Assistant — Context
Current life situation, health protocols, and active things to track.
Read when context matters for decisions or advice.
---
## Operations
- Describe your main work or business here
- Note any secondary projects or side operations
## Health
- Goals and baselines
- Any recurring protocols or reminders
## Family
- Key people and relationships
- Link to People/ folder for details
## Work Dependencies
- Who you wait on for approvals or sign-offs
- Blockers and their schedules
## Location & Timezone
- Home address (optional)
- Timezone
- Weather location
---
*Last updated: YYYY-MM-DD*
'@ | Set-Content -Path (Join-Path $VAULT_PATH "System\Assistant\context.md") -Encoding UTF8
@'
# Assistant — Preferences
How you like things done. Read this when unsure about tone, format, or approach.
---
## Communication
- Concise, direct. Dry wit welcome. Never sycophantic.
- One clear sentence beats three hedged ones.
- When something is urgent, say so plainly.
## Operations Separation
- Keep work and personal clearly separated
- Never mix contexts without explicit labeling
## Agenda & Briefings
- Priority ordering: Due today > Active/P1 > Bills > Upcoming
- Morning brief: always read from actual daily note. Never show template placeholders.
## Task Management
- Every task completion paired with a log entry in daily note
- EOD wrap-ups sourced from daily note log
## Delivery Preferences
- Where should scheduled summaries go? (email, messaging app, etc.)
## Session Style
- Continuous same-session conversations or fresh starts each day?
---
*Last updated: YYYY-MM-DD*
'@ | Set-Content -Path (Join-Path $VAULT_PATH "System\Assistant\preferences.md") -Encoding UTF8
@'
# Assistant — Environment & Technical Setup
Hardware, tools, quirks, and gotchas. Read when troubleshooting or configuring.
---
## Hardware
- Primary machine and specs
- Any secondary devices or servers
## Services
- Key services, ports, and endpoints
- API configurations
## Key Paths
| Resource | Path |
|----------|------|
| Vault | /PATH/TO/YOUR/VAULT/ |
| Daily notes | /PATH/TO/YOUR/VAULT/Daily/YYYY-MM-DD.md |
## Known Issues & Patterns
- Document any recurring problems and their fixes here
---
*Last updated: YYYY-MM-DD*
'@ | Set-Content -Path (Join-Path $VAULT_PATH "System\Assistant\environment.md") -Encoding UTF8
# Create the issues log
@'
# Issues & Fixes Log
Append-only record of system issues, technical failures, and their resolutions.
Format: Symptom → Root Cause → Fix → Status
---
*No entries yet.*
'@ | Set-Content -Path (Join-Path $VAULT_PATH "System\Assistant\logs\issues-fixes-log.md") -Encoding UTF8
# Create People MOC
@'
# People — Map of Content
Contacts and relationships. Each person gets their own note in this folder.
---
## Family
- [[People/Partner]] — spouse/partner
- [[People/Child]] — children
## Work
- [[People/Colleague]] — key colleagues
## Personal
- [[People/Friend]] — friends and acquaintances
---
*Last updated: YYYY-MM-DD*
'@ | Set-Content -Path (Join-Path $VAULT_PATH "People\MOC.md") -Encoding UTF8
Write-Host "Vault scaffolded at $VAULT_PATH"