From obsidian-update
> Sub-skill for the obsidian-update plugin. Handles all memory persistence operations.
How this skill is triggered — by the user, by Claude, or both
Slash command
/obsidian-update:memory-systemThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> Sub-skill for the obsidian-update plugin. Handles all memory persistence operations.
Sub-skill for the obsidian-update plugin. Handles all memory persistence operations. Called by the personal-os skill — not typically invoked directly. Also called by the Council deliberation-engine and pattern-memory skills for cross-plugin vault operations.
All memory files live in the MoxyWolf Obsidian vault:
${VAULT}/
├── _System/
│ ├── MEMORY.md # Layer 1: Tacit knowledge (THE critical file)
│ ├── IDENTITY.md # Operating identity and principles
│ └── backups/ # MEMORY.md backup copies
│ └── MEMORY-YYYY-MM-DD-HHMMSS.md
├── Daily Journal/ # Layer 2: Daily notes
│ ├── YYYY-MM-DD.md
│ └── ...
├── Projects/ # Layer 3: Project knowledge
│ └── [Project]/11-Knowledge/*.md
├── _Shared Knowledge/ # Layer 3: Cross-cutting knowledge
│ ├── [Area]/*.md
│ └── Agents and Plugins/
│ ├── council-model-performance.md # Synced from Council pattern-memory
│ ├── council-routing-intelligence.md # Synced from Council pattern-memory
│ └── council-deliberation-log.md # Deliberation history log
├── People/ # Layer 3: Contact knowledge
│ └── [Full Name].md
├── Tasks/ # Kanban + individual task files
│ ├── KANBAN_VIEW.md
│ ├── DASHBOARD.md # Read-only (Dataview)
│ └── *.md
└── GOALS.md
Dual access pattern: In interactive Cowork sessions, the vault is the mounted workspace folder — read/write using standard Read/Write/Edit tools. In scheduled task VMs, the vault must be accessed via Google Drive API (proxy_execute via RUBE_REMOTE_WORKBENCH with Composio googledrive, supportsAllDrives=true). The parent personal-os skill resolves the vault path and determines which access method to use.
Called at the start of every session (Step 0 in main skill).
1. Read ${VAULT}/_System/IDENTITY.md
2. Read ${VAULT}/_System/MEMORY.md
3. List files in ${VAULT}/Daily Journal/ sorted descending by filename
4. Read top 3 daily note files
5. Return combined context (do NOT echo to user)
1. Search Google Drive for "IDENTITY.md" in MoxyWolf Vault/_System/
- Use proxy_execute GET /files with q="name='IDENTITY.md'" and supportsAllDrives=true
2. Read content via proxy_execute GET /files/{id} with alt=media
3. Repeat for MEMORY.md
4. Search for files in MoxyWolf Vault/Daily Journal/ sorted by name desc
5. Read top 3 results
If MEMORY.md doesn't exist, return warning string for the main skill to handle.
Called during standup, triage, review, or extraction.
Input: Structured data from the calling mode (energy, priorities, events, facts).
Process:
YYYY-MM-DD${VAULT}/Daily Journal/YYYY-MM-DD.md exists
Template:
---
title: "YYYY-MM-DD — Day of Week"
date: YYYY-MM-DD
type: standup
tags: [daily, standup]
participants: [dorian]
status: active
---
# YYYY-MM-DD — Day of Week
## Energy
- Sleep: [data or "not available"]
- Assessment: [green/yellow/red]
- Stepson week: [yes/no/unknown]
## Today's Board
### 🔥 P0 — Do Today (Max 3)
- [ ] Task #priority/p0 #cat/category #status/n
### ⭐ P1 — This Week
- [ ] Task #priority/p1 #cat/category #status/n
### ⏳ Waiting On
- [ ] Task — waiting on [person] since YYYY-MM-DD #status/w
## Calendar
- [HH:MM] Event description
## Inbox Intelligence
- [Priority] Email summary → action needed
## Decisions Made
- [Decision with rationale]
## Facts Extracted
- [Durable facts discovered today]
## Open Threads
- [Items needing follow-up tomorrow]
## Extraction Status
- Extracted: no
Note: The "Today's Board" section is populated during standup by pulling P0 and P1 tasks from ${VAULT}/Tasks/KANBAN_VIEW.md. These checkboxes are compatible with the Obsidian Tasks plugin — Dorian can check them off during the day.
Called during weekly review and nightly extraction.
Process:
${VAULT}/_System/MEMORY.md## headers)~~strikethrough~~ and [superseded YYYY-MM-DD]
d. Add new fact with timestamp## Shorthand & Decoder Ring: terms/people used 3+ times this week stay hot; not used in 2+ weeks AND low total access → demote> Last updated: YYYY-MM-DD HH:MM UTC> Facts: N active, M superseded${VAULT}/_System/MEMORY.mdCRITICAL RULES:
Replaces the old "Update Knowledge Graph" operation. Called during nightly extraction when significant new entities are encountered.
Process:
${VAULT}/Projects/[Project]/11-Knowledge/
b. If cross-cutting → write/update in ${VAULT}/_Shared Knowledge/[relevant area]/
c. If it's a person → write/update in ${VAULT}/People/[Full Name].md---
title: Note Title
date: YYYY-MM-DD
project: project-name
type: research | insight | reference
tags: [relevant, tags]
status: active
---
[[Projects/SAMS/00-Hub/SAMS Index]]Entity naming convention:
Full Name.md (e.g., Brian Kelley.md)descriptive-slug-YYYY-MM-DD.mdCalled when Dorian asks "what do you know about X?"
Process:
${VAULT}/_System/MEMORY.md for keyword matches (case-insensitive)${VAULT}/Daily Journal/ (last 30 days) for keyword matches${VAULT}/Projects/ and ${VAULT}/_Shared Knowledge/ for keyword matchesCross-plugin operations that connect the Council deliberation engine to the vault's knowledge layer. The memory-system acts as the vault's write gatekeeper — Council skills prepare data, memory-system writes it in the correct format.
Called by the Council deliberation-engine Pre-Step A when it requests vault context before running a deliberation.
This is a READ-ONLY operation. The Council reads; it doesn't write to the memory system during this step.
Process:
${VAULT}/_System/MEMORY.md and summarize to ~500 tokens:
${VAULT}/Projects/), read that project's index file (00-Hub/[Project] Index.md) and summarize key context: current phase, recent decisions, open questions.${VAULT}/_Shared Knowledge/Agents and Plugins/council-deliberation-log.md exists, read the last 5 entries from the table.VAULT CONTEXT (for Council Stage 1 injection):
- memory_summary: [500-token MEMORY.md summary]
- project_context: [project index summary, or null if no project match]
- recent_deliberations: [last 5 log entries, or empty if no log exists]
Callers: deliberation-engine Pre-Step A.
Called by the Council deliberation-engine Step 8d (after each deliberation) and pattern-memory Operation 7 (vault sync).
This is the WRITE path. Council sends structured data; memory-system writes it to the vault in the correct format.
Process:
Validate incoming data. The caller provides:
record_type: one of decision_record, model_performance, routing_intelligence, deliberation_log_entryproject: project name (or null for cross-cutting knowledge)content: the note body (markdown)frontmatter: YAML frontmatter fields (title, date, type, tags, etc.)deliberation_id: for dedup checkingDeduplicate. Check if a note with this deliberation_id already exists:
council-deliberation-log.mdalready_exists: trueWrite based on record type:
decision_record: Write to ${VAULT}/Projects/[project]/11-Knowledge/DR-NNN-council-[query-slug].md if project is specified, or ${VAULT}/_Shared Knowledge/Agents and Plugins/council-decision-[query-slug]-YYYY-MM-DD.md if cross-cutting. Validate frontmatter includes required fields (title, date, project, type: decision, tags, status). Add cross-links: [[_Shared Knowledge/Agents and Plugins/council-deliberation-log|Deliberation Log]].
model_performance: Write/overwrite ${VAULT}/_Shared Knowledge/Agents and Plugins/council-model-performance.md. This is a living reference document — always overwritten with the latest data.
routing_intelligence: Write/overwrite ${VAULT}/_Shared Knowledge/Agents and Plugins/council-routing-intelligence.md. Same pattern — living reference, always current.
deliberation_log_entry: Append a row to the table in ${VAULT}/_Shared Knowledge/Agents and Plugins/council-deliberation-log.md. If the file doesn't exist, create it with the template from FIRST-RUN INITIALIZATION step 2.5. Keep the last 50 entries visible in the main table; if the table exceeds 50 rows, move older entries into a collapsed <details> block at the bottom.
Update project index (decision records only). If the decision record maps to a project, edit that project's index file (00-Hub/[Project] Index.md) to add a one-line entry under "Recent Activity" or "Key Decisions" with a wikilink to the new note.
Callers: deliberation-engine Step 8d, pattern-memory Operation 7.
Called by the obsidian-update skill Step 2.5 (Council Verification Gate) when Council has evaluated a knowledge extraction plan.
Process:
Receive the Council's assessment, which includes:
adjustments: array of suggested changes (re-attribute to different project, add missing item, remove ephemeral item)approved_items: items Council agreed should be capturedflagged_items: items Council flagged as questionable (ephemeral state, already documented, wrong attribution)For each adjustment Dorian approved:
Return the adjusted extraction plan to obsidian-update for Step 3 (Write the Notes).
Callers: obsidian-update Step 2.5.
already_exists: true.council-memory.json remains the authoritative working copy. The vault notes are the durable, cross-linked, human-browsable layer on top.On every MEMORY.md write:
${VAULT}/_System/backups/MEMORY-YYYY-MM-DD-HHMMSS.mdIf ${VAULT}/_System/ doesn't exist (first time using this plugin with the vault):
Create directories:
${VAULT}/_System/${VAULT}/_System/backups/${VAULT}/Daily Journal/ (if not exists)${VAULT}/Tasks/ (if not exists)Create IDENTITY.md at ${VAULT}/_System/IDENTITY.md:
# IDENTITY
**Name:** Chief of Staff
**Role:** Dorian's executive operating partner — a persistent AI chief of staff who manages priorities, tracks context across sessions, and pushes back when needed.
**Operator:** Dorian Cougias, CEO of MoxyWolf LLC
**Platform:** Claude Desktop (Cowork mode) with scheduled tasks, MCP integrations, and plugin ecosystem
## Operating Principles
1. **Be direct.** No hedging, no filler. Say what needs to be said.
2. **Set context.** Always explain the "why" before the "what."
3. **Close the loop.** Every task gets a resolution — done, blocked, or deferred with a reason.
4. **Push back.** Flag problems, point out context-switching, suggest better approaches.
5. **Persist.** Write durable facts to memory. If it matters tomorrow, it gets written down today.
## Communication Style
- Professional but warm. Never corporate-speak.
- MoxyWolf voice: wild intelligence through structured precision.
- Match Dorian's energy level (inferred from health data and time of day).
- Ask clarifying questions rather than guessing.
## Trust Level
Rung 3 of 4: **Act Within Bounds**
- Read all data sources freely
- Draft content and queue for approval before sending externally
- Execute internal operations (task management, memory updates, file organization)
- Escalate: financial transactions, public-facing content, security-sensitive operations
2.5. Create Council integration files:
${VAULT}/_Shared Knowledge/Agents and Plugins/ directory if it doesn't existcouncil-deliberation-log.md at ${VAULT}/_Shared Knowledge/Agents and Plugins/council-deliberation-log.md:
---
title: "Council Deliberation Log"
date: YYYY-MM-DD
type: reference
tags: [council, deliberation-log]
status: active
---
# Council Deliberation Log
> Cross-linked from [[_Shared Knowledge/Agents and Plugins/council-model-performance|Model Performance]] and [[_Shared Knowledge/Agents and Plugins/council-routing-intelligence|Routing Intelligence]].
| ID | Date | Query Summary | Chairman | Confidence | Cost | Rating |
|----|------|---------------|----------|------------|------|--------|
Create MEMORY.md at ${VAULT}/_System/MEMORY.md:
# Memory — Dorian Cougias
> Last updated: YYYY-MM-DD HH:MM UTC
> Facts: 0 active, 0 superseded
## Shorthand & Decoder Ring
> Hot cache — target ~30 people, ~30 terms.
| Nickname | Resolves To | Context |
|----------|-------------|---------|
| Term | Meaning | Context |
|------|---------|---------|
| Codename | Project |
|----------|---------|
## Who Dorian Is
## Preferences & Patterns
## Active Projects
## Relationships & Contacts
## Security & Access
## Decisions Log
## Life Rhythm
## Cold Storage
Create empty KANBAN_VIEW.md at ${VAULT}/Tasks/KANBAN_VIEW.md (if not exists):
---
kanban-plugin: board
---
## 📥 Backlog
## 🔥 P0 - Today (Max 3)
## ⭐ P1 - This Week (Max 7)
## 📅 P2 - Scheduled
## 💭 P3 - Someday
## ⏳ Waiting On
## ✅ Done
%% kanban:settings
{"kanban-plugin":"board"}
%%
Log initialization in a new daily note at ${VAULT}/Daily Journal/YYYY-MM-DD.md
Notify Dorian: "First-run initialization complete. Created _System/ directory with empty MEMORY.md and IDENTITY.md. I'll build context as we work."
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub moxywolfllc/moxywolf-plugins --plugin obsidian-update