Life OS Operations
This file is the human-readable operations manual for the Life OS vault. It is the source of truth for how this system works — independent of any AI tool, app, or platform. If Claude is ever replaced, this file is what you hand to whatever comes next.
Keep in sync with
CLAUDE.md. Any timeCLAUDE.mdis updated, update this file too.
What This Is
Life OS is a personal PKM (Personal Knowledge Management) vault built on plain Markdown files with YAML frontmatter. It is managed primarily through Obsidian, but all content is tool-agnostic — any Markdown editor can read and edit it.
There are no build commands, tests, or code pipelines. Everything is notes.
Devices & Sync
| Device | Type | Role |
|---|---|---|
| MacMini | Mac Mini (desktop) | Primary machine — main vault work happens here |
| LMBP | MacBook Pro | Secondary machine — also has Obsidian installed |
| Fold7 | Samsung Galaxy Fold 7 (Android) | Mobile — quick captures, vocab, Tagebuch |
- Obsidian Sync is active across all devices. Changes propagate automatically.
- The vault path on MacMini:
/Volumes/LBMM SSD/Users/l_chalwell_external/Life OS
AI Assistant Setup
The vault uses an AI assistant (currently Claude) with a named persona system. Each persona has a defined specialty. Address them by name to invoke the right mode.
| Persona | Role | Invoke with |
|---|---|---|
| Allan | Lead / Orchestrator / Productivity | Default — any general vault or productivity task |
| Hans | Polyglot tutor (German-first, A2 context) | “Hey Hans, …” |
| Remy | Full-stack web & app developer | ”Remy, …” |
| Zoe | Internet researcher / Obsidian & PKM expert | ”Zoe, …” |
| Nova | Pop culture / internet trends | ”Nova, …” |
| Cal | Finance & markets | ”Cal, …” |
| Miles | Movies, TV & music | ”Miles, …” |
Persona files live at claude/personas/. If switching AI tools, use these files to brief the new assistant on each persona’s voice and expertise.
Vault Structure (PARA-inspired)
| Folder | Purpose |
|---|---|
0 INBOX/ | Default landing zone for new, unsorted notes |
00 Projects/ | Active endeavors with a defined goal and end state |
01 Areas/ | Ongoing areas of interest and responsibility |
02 Resources/ | External media saved for reference (videos, articles, books, etc.) |
04 People/ | Notes on public figures, creators, and thinkers |
05 Archives/ | Inactive or completed notes |
06 Journal/ | Daily journal entries |
wiki/ | AI-maintained knowledge base — synthesis layer over raw resources |
_Templates/ | Note templates (Obsidian Templater format) |
zATTACHMENTS/ | Images and binary attachments |
claude/ | AI session files — handoff notes, persona definitions |
_Tools/ | Custom tools built for the vault (Life OS UI, SendIT) |
Note Types & Templates
All templates live in _Templates/. When creating notes manually, follow the frontmatter structure of the relevant template.
| Template | Used for |
|---|---|
Area.md | Area hub note |
Topic.md | A topic within an area |
Person.md | Public figure (type: person) |
Band.md | Music act (type: band) |
Project.md | Active project (status: active) |
Resource.md | Saved media (type: video/book/podcast/article/pdf/link) |
Movie.md | Film note (MediaDB body) |
TV Series.md | Series note (MediaDB body) |
Album.md | Album note (MediaDB body) |
Game.md | Game note (MediaDB body) |
Book.md | Book note (Book Search plugin) |
Daily Journal.md | Daily journal entry |
New Idea.md | Idea capture note |
Word - <Lang>.md | Vocabulary entry (German/Spanish/Korean/Japanese) |
Grammar Topic - <Lang>.md | Grammar note for a language |
Sentence Theme - <Lang>.md | Themed sentence collection |
Tagebuch - German.md | German free-writing journal entry |
Frontmatter Conventions
Every note should have:
---
title: Note Title
type: [person|movie|series|book|video|article|podcast|area|topic|project|idea|daily|band|album|game]
area: "[[Area Name]]"
created: YYYY-MM-DD
modified: YYYY-MM-DD
status: unread # for resources: unread | read
tags:
---Rules:
createdandmodifieduseYYYY-MM-DDformat — auto-managed by Obsidian Linterareaalways uses wikilink format:"[[Area Name]]"- Resources start with
status: unreadand are updated toreadwhen consumed - Projects use
status: active | completed | on-hold - Multiple areas use YAML list format:
area: - "[[Music]]" - "[[Film & TV]]"
Active Areas
| Area | Folder |
|---|---|
| Artificial Intelligence | 01 Areas/Artificial Intelligence/ |
| Film & TV | 01 Areas/Film & TV/ |
| Finance | 01 Areas/Finance/ |
| Gaming | 01 Areas/Gaming/ |
| Health | 01 Areas/Health/ |
| Languages | 01 Areas/Languages/ |
| Martial Arts | 01 Areas/Martial Arts/ |
| Music | 01 Areas/Music/ |
| Productivity | 01 Areas/Productivity/ |
| Religion | 01 Areas/Religion/ |
| Science | 01 Areas/Science/ |
| Self Development | 01 Areas/Self Development/ |
Language Learning Structure
Each language lives under 01 Areas/Languages/<Language>/ with these sub-folders:
| Folder | Contents |
|---|---|
Wortschatz/ | One note per vocabulary word |
Grammatik/ | One note per grammar topic |
Satzsammlung/ | Themed sentence collections with wikilinked vocabulary |
Tagebuch/ | Free-writing practice entries |
Active languages: German (A2), Spanish, Korean, Japanese.
German — Word Note Conventions
article: der / die / dasarea: "[[German]]"— links back to hubrelated-grammar: list of grammar topic wikilinks
German — Grammar Note Conventions
area: "[[German]]"— links back to hub## Related Vocabularysection with wikilinks to relevant words
German — Sentence Theme Conventions
area: "[[German]]"grammar: grammar topic(s) being practised- Vocabulary words wikilinked inline within sentences
Existing German Grammar Notes (A2 foundations)
Located in 01 Areas/Languages/German/Grammatik/:
- German Articles — der/die/das, ein/eine, kein
- Nominative Case — subject
- Accusative Case — direct object (masculine der → den)
- Dative Case — indirect object, dative prepositions
- Personal Pronouns — all cases
- Present Tense Conjugation — regular + stem-changing verbs
- Sein & Haben — irregular, used as auxiliaries
- Modal Verbs — können/müssen/wollen/dürfen/sollen/möchten
- Negation — nicht vs. kein
- Word Order — V2 rule, questions, TMP, subordinate clauses
- Futur I — werden + infinitive
- Passiv — passive voice (werden + Partizip II)
Primary Use Cases
- YouTube as a resource — Videos saved to
02 Resources/for note-taking. Notes should expand on ideas and link outward — not passive summaries. - German language learning — A2 level.
01 Areas/Languages/German/sees frequent use. Vocabulary and grammar are the main active areas. - Movies & TV — Heavy interest. Added via MediaDB plugin. Each note includes: synopsis, key takeaways, notable moments, quotes, links to related areas/topics/resources.
Knowledge Base (Wiki) System
The vault uses a compounding wiki pattern:
- Raw sources live in
02 Resources/ - A curated synthesis layer lives in
wiki/ - The AI maintains the wiki layer — creating, updating, and cross-referencing pages as new sources arrive
Wiki Structure
wiki/
index.md — catalog of all wiki pages (link + one-line summary)
log.md — append-only history of all ingest/query/lint operations
topics/ — synthesis pages per topic or concept
syntheses/ — analyses, comparisons, and answers worth preserving
Wiki Map.canvas — visual graph of topic relationships
Wiki Map — Summary.md — portable Markdown version of the graph
Wiki Topic Page Structure
---
title:
type: internal
area:
sources: (count of source notes)
created: YYYY-MM-DD
modified: YYYY-MM-DD
---
## Overview
## Key Concepts
## Synthesis
## Contradictions / Open Questions
## Related
- Topics: [[]]
- People: [[]]
- Resources: [[]]Ingest Workflow
Division of labour:
- You (the user): set
areaandtopicin Obsidian before handing off; tell the AI what stood out or what you want to capture; updatestatus: readwhen you’ve consumed the source - The AI: handles everything else — resource note, people/song/band notes, wiki topic pages, index, log
When processing a new source (video, article, book, etc.):
- Read the source — read the resource note in
02 Resources/(or the URL directly) - Ask what to capture — ask the user what stood out or what they want to preserve. The user’s angle determines what gets written, not just what the source covers.
- Update the resource note — add
## Summaryand## Notessections; updatestatustoreadif consumed; setmodifieddate - Create people and connected notes — for any people, songs, bands, or specific works mentioned that deserve their own note, create them. Use the appropriate template and folder.
- Update or create wiki topic pages — this is the most important step. Every ingest should leave at least one wiki topic page touched or created. The wiki topic is where knowledge compounds — not the resource note.
- Existing page → add insights, update synthesis, flag contradictions
- No page → create one using the structure above
- Capture any open questions or threads the user wants to dig into later in
## Contradictions / Open Questions
- Cross-area scan — check all active areas for meaningful connections, not just the obvious one
- Language layer — extract vocabulary or grammar worth capturing into the relevant language folder
- Update
wiki/index.md— add or update the entry for any touched pages - Append to
wiki/log.md— one entry per ingest operation
Query Workflow
When answering a question from the wiki:
- Read
wiki/index.mdto identify relevant pages - Read those pages and synthesise an answer with citations
- If the answer is a valuable analysis or comparison, offer to save it in
wiki/syntheses/ - Append to
wiki/log.md
Vault Health Check (Lint)
Periodically:
- Scan wiki pages for orphans, missing cross-references, stale claims
- Check
02 Resources/forstatus: unreadnotes that could be processed - Report findings as a prioritised list
Installed Plugins (Obsidian)
| Plugin | Purpose |
|---|---|
| Templater | Template engine — powers all _Templates/ files |
| Obsidian Linter | Frontmatter and formatting consistency; auto-updates modified date |
| Media DB | Populates metadata for movies/TV/music/games from external APIs |
| Book Search | Populates metadata for books from Google Books API |
| Bases | Database views — filters/sorts notes by frontmatter (.base files) |
| Featured Image | Auto-assigns cover images to notes |
| Image Toolkit | Enhanced image viewing |
| Terminal | In-app terminal access |
| ytranscript | Fetch YouTube transcripts directly inside Obsidian |
Obsidian Key Settings
- New notes default to
0 INBOX/ - Attachments go to
zATTACHMENTS/ - Links auto-update on rename (
alwaysUpdateLinks: true) - Linter: YAML Timestamp enabled — auto-fills
created/modifiedon save - Templater: “Trigger on new file creation” enabled
Obsidian-Specific Files (Portability Notes)
These file types are Obsidian-specific. If migrating away, use the summary/documentation equivalents.
| File type | What it does | Portable equivalent |
|---|---|---|
.base | Database view (filter/sort by frontmatter) | Documented in wiki/topics/Bases & Views.md |
.canvas | Visual layout / mind map | Summary notes: Start Page — Summary.md, wiki/Wiki Map — Summary.md |
Wikilinks ([[Note Name]]) are semi-proprietary but widely supported in Logseq, Foam, Dendron, and many editors. They are the connection standard for this vault and are worth keeping.
Custom Tools
| Tool | Location | Purpose |
|---|---|---|
| Life OS UI | _Tools/life-os-ui/ | Browser-based vault reader/navigator (Node/Express + React/Vite, ports 3737/5173) |
| SendIT | _Tools/sendit/ | Custom Mac↔Phone file transfer app |
Starting Life OS UI
cd "_Tools/life-os-ui"
nohup node server/index.js > /tmp/life-os-api.log 2>&1 &
nohup npm run dev --prefix client > /tmp/life-os-client.log 2>&1 &
open http://localhost:5173Stopping Life OS UI
lsof -nP -i :3737 -i :5173 | awk '/LISTEN/{print $2}' | sort -u | xargs killSession Continuity
The AI maintains a handoff file at claude/session-handoff.md.
If you are a new AI assistant reading this: Read
claude/session-handoff.mdfirst — before responding to any request. It contains the current state of all active work, recent decisions, and what to tackle next. Acknowledge what was last worked on before starting anything new.
At the start of every session: Read claude/session-handoff.md and briefly acknowledge what was last worked on.
At the end of every session (when the user says “wrap up”): Update claude/session-handoff.md with:
- What was worked on
- Current status of any tasks
- Key decisions made
- What to tackle next
- Important file paths or context
This file syncs via Obsidian Sync across all devices — it is the live continuity thread across machines and sessions.