plugin 0.2.2
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
# Copy to your local shell env or secret manager. Do not commit real secrets into the vault.
|
||||
OBSIDIAN_REST_API_URL=https://goldbrainapi.mpm.to
|
||||
OBSIDIAN_REST_API_KEY=replace-me
|
||||
OBSIDIAN_VAULT_NAME=goldbrain
|
||||
COWORK_PLUGIN_MODE=disabled
|
||||
@@ -0,0 +1,192 @@
|
||||
---
|
||||
type: reference
|
||||
status: active
|
||||
created: 2026-06-02
|
||||
updated: 2026-06-02
|
||||
tags: [agent, bootstrap, system]
|
||||
agent_written: true
|
||||
source_notes: []
|
||||
---
|
||||
|
||||
# BOOTSTRAP.md
|
||||
|
||||
## Purpose
|
||||
This is the **first file any agent reads** when operating against this vault. It does three things, in order:
|
||||
|
||||
1. **Checks** that the required files and folders exist.
|
||||
2. **Generates** anything that is missing, using the templates and conventions below.
|
||||
3. **Instructs** the agent on how to use the memory system once the vault is healthy.
|
||||
|
||||
Run the bootstrap check at the start of every session before following the Session Protocol in [[CLAUDE]]. The check is cheap, idempotent, and safe to repeat.
|
||||
|
||||
---
|
||||
|
||||
## 1. Preflight Check
|
||||
|
||||
Verify the following exist. Treat each as `[ ]` until confirmed, then `[x]`. If a path is missing, jump to the matching entry in section 2 (Repair) before continuing.
|
||||
|
||||
### Root control docs
|
||||
- [ ] `CLAUDE.md` — operating contract and session protocol
|
||||
- [ ] `BOOTSTRAP.md` — this file
|
||||
- [ ] `STRUCTURE.md` — layout, taxonomy, frontmatter standard
|
||||
- [ ] `spinup.md` — one-time setup walkthrough
|
||||
- [ ] `index.md` — navigation hub
|
||||
- [ ] `README.md` — human-facing overview
|
||||
- [ ] `.env.example` — config template for REST/API clients
|
||||
|
||||
### Required folders
|
||||
- [ ] `inbox/` (with `captures/`, `imports/`, `processing-log/`)
|
||||
- [ ] `journal/` (with `daily/`, `weekly/`, `monthly/`, `templates/`)
|
||||
- [ ] `projects/` (with `active/`, `incubating/`, `on-hold/`, `archived/`)
|
||||
- [ ] `areas/` (with `business/`, `personal/`, `learning/`, `systems/`)
|
||||
- [ ] `resources/` (with `concepts/`, `references/`, `people/`, `meetings/`, `source-material/`)
|
||||
- [ ] `decisions/` (with `by-date/`, `by-project/`)
|
||||
- [ ] `reviews/` (with `weekly/`, `monthly/`, `quarterly/`, `annual/`)
|
||||
- [ ] `archive/` (with `notes/`, `projects/`, `imports/`)
|
||||
- [ ] `_agent/` (see agent subtree below)
|
||||
|
||||
### Required `_agent/` subtree
|
||||
- [ ] `_agent/context/` — active context bundles
|
||||
- [ ] `_agent/memory/working/` — short-lived working memory
|
||||
- [ ] `_agent/memory/episodic/` — event/session-derived memory
|
||||
- [ ] `_agent/memory/semantic/` — durable facts, patterns, preferences
|
||||
- [ ] `_agent/sessions/` — session logs
|
||||
- [ ] `_agent/templates/` — note templates
|
||||
- [ ] `_agent/heartbeat/` — liveness / scheduled-run markers
|
||||
- [ ] `_agent/skills/` (with `active/`, `archived/`)
|
||||
- [ ] `_agent/outputs/` (with `briefs/`, `drafts/`, `summaries/`, `synthesis/`)
|
||||
|
||||
### Required templates
|
||||
- [ ] `_agent/templates/session-log-template.md`
|
||||
- [ ] `_agent/templates/context-bundle-template.md`
|
||||
- [ ] `_agent/templates/working-memory-template.md`
|
||||
- [ ] `_agent/templates/semantic-memory-template.md`
|
||||
- [ ] `journal/templates/daily-note-template.md`
|
||||
- [ ] `journal/templates/weekly-review-template.md`
|
||||
- [ ] `projects/project-template.md`
|
||||
- [ ] `decisions/decision-template.md`
|
||||
|
||||
### Anchor notes (recommended, not blocking)
|
||||
- [ ] `_agent/context/current-context.md`
|
||||
- [ ] `_agent/memory/semantic/operator-preferences.md`
|
||||
- [ ] today's daily note in `journal/daily/YYYY-MM-DD.md`
|
||||
|
||||
A quick way to list the tree for comparison:
|
||||
|
||||
```bash
|
||||
find . -type d | sort # folders
|
||||
find . -type f -name '*.md' | sort # notes
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. Repair (generate what's missing)
|
||||
|
||||
Only create what is missing. **Never overwrite an existing file** during bootstrap — that violates the additive-update principle in [[CLAUDE]]. If a file exists but looks malformed, flag it in the session log instead of replacing it.
|
||||
|
||||
### Missing folders
|
||||
Create the folder and add a one-line `README.md` inside any leaf folder that would otherwise be empty (Obsidian and git both ignore empty dirs):
|
||||
|
||||
```bash
|
||||
mkdir -p "<path>"
|
||||
```
|
||||
|
||||
### Missing root control docs
|
||||
- `STRUCTURE.md`, `spinup.md`, `README.md`, `.env.example` — if absent, note it and reconstruct from the conventions in this file and [[STRUCTURE]]. Do not invent secrets in `.env.example`; use placeholders only.
|
||||
- `index.md` — rebuild as a link hub pointing at the Start Here docs, current daily note, active context, latest session log, and active projects.
|
||||
|
||||
### Missing templates
|
||||
Recreate from the canonical frontmatter (section 4). Each template is just frontmatter plus the section headings its note type uses.
|
||||
|
||||
### Missing anchor notes
|
||||
- `_agent/context/current-context.md` — create an empty context bundle (type `context-bundle`) scoped to the current task.
|
||||
- today's daily note — create from `journal/templates/daily-note-template.md`.
|
||||
- `operator-preferences.md` — only create if you have evidence to record; do not fabricate preferences.
|
||||
|
||||
### After repair
|
||||
Append a line to the daily note's **Agent Log** and write/refresh a session log in `_agent/sessions/` recording what was generated.
|
||||
|
||||
---
|
||||
|
||||
## 3. How to Use the Memory System
|
||||
|
||||
Once preflight passes, operate as follows.
|
||||
|
||||
### Session start
|
||||
1. Read this file (bootstrap), then [[CLAUDE]].
|
||||
2. Read today's daily note in `journal/daily/`.
|
||||
3. Read the most recent log in `_agent/sessions/`.
|
||||
4. Read active bundles in `_agent/context/`.
|
||||
5. Scan `inbox/` for unprocessed material relevant to the task.
|
||||
6. Review active projects in `projects/active/` and open loops.
|
||||
|
||||
### During the session
|
||||
- Put short-lived state in `_agent/memory/working/` (expires; safe to prune).
|
||||
- Promote durable, reusable facts and patterns into `_agent/memory/semantic/`.
|
||||
- Record notable events and outcomes in `_agent/memory/episodic/`.
|
||||
- Keep task-scoped context in `_agent/context/` and refresh it as focus shifts.
|
||||
- Capture raw, unprocessed input in `inbox/captures/`; log processing in `inbox/processing-log/`.
|
||||
- Record meaningful choices as decision notes in `decisions/` (mirror by-date and by-project as needed).
|
||||
|
||||
### Session end
|
||||
1. Write or update a session log in `_agent/sessions/` (`YYYY-MM-DD-HHMM-slug.md`).
|
||||
2. Record what changed, decisions made, and what remains open.
|
||||
3. Update durable notes if the session produced lasting knowledge.
|
||||
4. Add a concise entry to the daily note's **Agent Log**.
|
||||
5. Leave the vault cleaner and more queryable than you found it.
|
||||
|
||||
### Memory model (where things live)
|
||||
- **Working** → `_agent/memory/working/` — transient, time-boxed.
|
||||
- **Episodic** → `_agent/memory/episodic/` — what happened, when.
|
||||
- **Semantic** → `_agent/memory/semantic/` — durable facts, patterns, preferences.
|
||||
- **Context bundles** → `_agent/context/` — task-focused reading lists and state.
|
||||
|
||||
### Safety rules (from [[CLAUDE]])
|
||||
- Do not fabricate facts, relationships, or prior decisions.
|
||||
- Do not mass-restructure the vault unless explicitly asked.
|
||||
- Do not delete notes unless deletion is explicitly requested and clearly safe.
|
||||
- Do not store secrets or API keys inside the vault.
|
||||
- Default to additive updates and explicit status changes.
|
||||
|
||||
---
|
||||
|
||||
## 4. Canonical Frontmatter
|
||||
|
||||
Every note carries this block. Fill what applies; leave the rest empty rather than guessing.
|
||||
|
||||
```yaml
|
||||
---
|
||||
type: # one of the note types in STRUCTURE.md
|
||||
status: # active | draft | done | archived
|
||||
created: # YYYY-MM-DD
|
||||
updated: # YYYY-MM-DD
|
||||
tags: []
|
||||
agent_written: false
|
||||
source_notes: [] # plain relative paths as strings — NEVER [[wikilinks]]
|
||||
---
|
||||
```
|
||||
|
||||
Agent-generated notes set `agent_written: true` and list their `source_notes`. This is the key signal that separates agent-managed content from human-authored content.
|
||||
|
||||
> **No `[[wikilinks]]` in frontmatter.** YAML interprets `[[...]]` as nested lists, so wiki
|
||||
> links in frontmatter break — they do not render as clickable links in Obsidian's reading
|
||||
> view. Put every cross-reference in a **`## Related`** section in the note **body** as a
|
||||
> bulleted list of `[[links]]`. Frontmatter holds scalar/string metadata only; `source_notes`
|
||||
> values are plain relative paths, not links. (The older `related:` frontmatter field has
|
||||
> been retired for this reason.)
|
||||
|
||||
---
|
||||
|
||||
## 5. REST / API Readiness
|
||||
|
||||
Future clients (Obsidian Local REST API, CoWork plugin) may operate without filesystem access. Keep the bootstrap contract portable: stable paths, parseable frontmatter, durable titles, and all state stored in notes rather than hidden conversation memory. Config for those clients lives in a local `.env` derived from `.env.example` — never committed with real values.
|
||||
|
||||
---
|
||||
|
||||
_This file is the entry point. If you change folder conventions or required files, update both this manifest and [[STRUCTURE]] so they stay in sync._
|
||||
|
||||
## Related
|
||||
- [[CLAUDE]]
|
||||
- [[STRUCTURE]]
|
||||
- [[index]]
|
||||
- [[spinup]]
|
||||
@@ -0,0 +1,50 @@
|
||||
# CLAUDE.md
|
||||
|
||||
## Purpose
|
||||
This vault is a shared memory substrate for human work, Claude Code sessions, and future agent clients that access the vault through the Obsidian Local REST API or a CoWork plugin integration. The vault must remain readable by humans, writable by agents, and structured enough that tools can reliably navigate, synthesize, and update knowledge over time.
|
||||
|
||||
## Core Principles
|
||||
- Treat the vault as the system of record for long-term memory, not as a scratchpad.
|
||||
- Prefer Markdown, YAML frontmatter, wiki-links, and stable folder conventions over proprietary structures.
|
||||
- Write notes so both humans and agents can understand them without hidden context.
|
||||
- Preserve history instead of silently overwriting important decisions, summaries, or inferred preferences.
|
||||
- Keep agent-managed content clearly separated from human-authored content when possible.
|
||||
- Default to additive updates, explicit status changes, and traceable summaries.
|
||||
- Optimize for portability so the same vault can work with Claude Code, CoWork, MCP-compatible tools, REST API clients, and future agents.
|
||||
|
||||
## What This Agent Is
|
||||
You are an agent operating against an Obsidian vault that functions as an AI second brain. Your role is to read context, synthesize across notes, create structured outputs, update memory carefully, and leave durable traces of work in the vault rather than keeping important state inside the conversation only.
|
||||
|
||||
## Bootstrap (Start Here)
|
||||
Before anything else in a new session, read [[BOOTSTRAP]] (`BOOTSTRAP.md`). It is the entry point to the memory system: it verifies that the required files and folders exist, regenerates anything missing using the canonical conventions, and restates how to operate the vault. Only proceed to the Session Protocol below once the bootstrap preflight passes. Never overwrite existing files during bootstrap — generate only what is missing.
|
||||
|
||||
## Session Protocol
|
||||
At the start of each session:
|
||||
0. Run the bootstrap preflight in [[BOOTSTRAP]] and repair any missing files/folders.
|
||||
1. Read today’s daily note in `journal/daily/` if present.
|
||||
2. Read the most recent relevant notes in `_agent/sessions/`.
|
||||
3. Read active context files in `_agent/context/`.
|
||||
4. Check `inbox/` for unprocessed material related to the task.
|
||||
5. Review active project notes and open loops before taking action.
|
||||
|
||||
At the end of each session:
|
||||
1. Write or update a session log in `_agent/sessions/`.
|
||||
2. Record what changed, what decisions were made, and what remains open.
|
||||
3. Update related notes if the session produced durable knowledge.
|
||||
4. Add a concise agent log block to the daily note when appropriate.
|
||||
5. Leave the vault in a cleaner, more queryable state than it was at the start.
|
||||
|
||||
## Memory Model
|
||||
- Working memory: `_agent/memory/working/`
|
||||
- Episodic memory: `_agent/memory/episodic/`
|
||||
- Semantic memory: `_agent/memory/semantic/`
|
||||
- Task-focused context bundles: `_agent/context/`
|
||||
|
||||
## REST/API Readiness
|
||||
Assume future clients may interact through the Obsidian Local REST API instead of direct filesystem access. Keep paths predictable, frontmatter parseable, titles stable, and state stored in notes rather than hidden memory.
|
||||
|
||||
## Safety
|
||||
- Do not fabricate facts, relationships, or prior decisions.
|
||||
- Do not mass-restructure the vault unless explicitly asked.
|
||||
- Do not delete notes unless deletion is explicitly requested and clearly safe.
|
||||
- Do not store secrets or API keys inside the vault.
|
||||
@@ -0,0 +1,20 @@
|
||||
# Starter Memory Vault
|
||||
|
||||
This is a review scaffold for an Obsidian-based memory vault designed for Claude Code, future CoWork plugin integration, and Obsidian Local REST API access.
|
||||
|
||||
## Included
|
||||
- Root control docs: `CLAUDE.md`, `STRUCTURE.md`, `BOOTSTRAP.md`, `spinup.md`
|
||||
- Core knowledge folders
|
||||
- Agent memory and session folders
|
||||
- Starter templates
|
||||
- Starter seed notes
|
||||
- Index pages for navigation
|
||||
- `.env.example` for future local integration config
|
||||
|
||||
## Review focus
|
||||
- Folder shape
|
||||
- Frontmatter standards
|
||||
- Note taxonomy
|
||||
- Session flow
|
||||
- Agent memory layout
|
||||
- CoWork/API readiness
|
||||
@@ -0,0 +1,66 @@
|
||||
# STRUCTURE.md
|
||||
|
||||
## Purpose
|
||||
This document defines the vault layout, note taxonomy, naming conventions, and frontmatter templates for a memory storage vault designed for Claude Code today and future CoWork plugin access through the Obsidian Local REST API.
|
||||
|
||||
## Recommended Vault Layout
|
||||
|
||||
```text
|
||||
vault/
|
||||
├── CLAUDE.md
|
||||
├── STRUCTURE.md
|
||||
├── BOOTSTRAP.md
|
||||
├── spinup.md
|
||||
├── index.md
|
||||
├── README.md
|
||||
├── inbox/
|
||||
├── journal/
|
||||
├── projects/
|
||||
├── areas/
|
||||
├── resources/
|
||||
├── decisions/
|
||||
├── reviews/
|
||||
├── _agent/
|
||||
└── archive/
|
||||
```
|
||||
|
||||
## Note Types
|
||||
- daily-note
|
||||
- weekly-note
|
||||
- monthly-note
|
||||
- project
|
||||
- project-update
|
||||
- area
|
||||
- concept
|
||||
- reference
|
||||
- person
|
||||
- meeting
|
||||
- decision
|
||||
- review
|
||||
- session-log
|
||||
- working-memory
|
||||
- episodic-memory
|
||||
- semantic-memory
|
||||
- context-bundle
|
||||
- skill
|
||||
- draft
|
||||
- inbox-item
|
||||
|
||||
## Core Frontmatter
|
||||
```yaml
|
||||
---
|
||||
type:
|
||||
status:
|
||||
created:
|
||||
updated:
|
||||
tags: []
|
||||
agent_written: false
|
||||
source_notes: [] # plain relative paths as strings — NEVER [[wikilinks]]
|
||||
---
|
||||
```
|
||||
|
||||
> **No `[[wikilinks]]` in frontmatter.** YAML parses `[[...]]` as nested lists, so wiki
|
||||
> links placed in frontmatter (e.g. an old `related:` field) silently break and do not
|
||||
> render as clickable links. All cross-references go in a **`## Related`** section in the
|
||||
> note **body**, as a bulleted list of `[[links]]`. Keep frontmatter to scalar/string
|
||||
> metadata only. `source_notes`, when used, holds plain relative path strings, not links.
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
type: context-bundle
|
||||
status: active
|
||||
created: 2026-06-01
|
||||
updated: 2026-06-01
|
||||
tags: [agent, context]
|
||||
agent_written: true
|
||||
source_notes: []
|
||||
scope: vault-foundation
|
||||
refresh_strategy: on-demand
|
||||
---
|
||||
|
||||
# Current Context
|
||||
|
||||
## Scope
|
||||
Initial scaffold review for a Claude Code + Obsidian memory vault.
|
||||
|
||||
## Active Priorities
|
||||
- Review scaffold folders.
|
||||
- Review templates.
|
||||
- Review root docs.
|
||||
- Plan REST API and CoWork plugin alignment.
|
||||
|
||||
## Relevant Entities
|
||||
- [[projects/active/vault-foundation]]
|
||||
- [[resources/references/obsidian-local-rest-api]]
|
||||
- [[resources/people/jason-stedwell]]
|
||||
|
||||
## Key Decisions
|
||||
- Separate durable knowledge from operational agent state.
|
||||
- Preserve portability across direct filesystem and API-driven clients.
|
||||
|
||||
## Open Questions
|
||||
- Which note types should the plugin create directly?
|
||||
- Should decisions live by project only, or by date and project?
|
||||
- What should the session end hook write automatically?
|
||||
|
||||
## Source Notes
|
||||
- [[journal/daily/2026-06-01]]
|
||||
- [[projects/active/vault-foundation]]
|
||||
|
||||
## Related
|
||||
- [[projects/active/vault-foundation]]
|
||||
- [[journal/daily/2026-06-01]]
|
||||
- [[_agent/sessions/2026-06-01-2200-initial-vault-scaffold]]
|
||||
@@ -0,0 +1,3 @@
|
||||
# Heartbeat
|
||||
|
||||
Use this folder for periodic state snapshots, compression summaries, and maintenance reports.
|
||||
@@ -0,0 +1,5 @@
|
||||
# episodic/
|
||||
|
||||
Episodic memory: notable events and outcomes, what happened and when.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
@@ -0,0 +1,34 @@
|
||||
---
|
||||
type: semantic-memory
|
||||
status: active
|
||||
created: 2026-06-01
|
||||
updated: 2026-06-02
|
||||
tags: [agent, semantic-memory, preferences]
|
||||
agent_written: true
|
||||
source_notes: []
|
||||
confidence: medium
|
||||
last_reviewed: 2026-06-02
|
||||
---
|
||||
|
||||
# Operator Preferences
|
||||
|
||||
## Operator
|
||||
The **primary operator** of this vault is [[resources/people/bryan-gilliom]] (Bryan Gilliom, CEO of Message Point Media). Unless stated otherwise, "the operator" below refers to Bryan. [[resources/people/jason-stedwell]] is the vault's architect/creator and a possible future collaborator; preferences attributed to the vault's design originate with Jason and should not be assumed to be Bryan's until observed.
|
||||
|
||||
## Fact / Pattern
|
||||
The vault is built around structured systems, clear roadmaps, durable documentation, and implementation-ready scaffolds. Bryan's own working preferences are not yet established and should be captured from real interactions rather than assumed.
|
||||
|
||||
## Evidence
|
||||
The vault's design and request history (root documentation, structural guidance, setup walkthroughs, plugin-oriented direction) reflect Jason's design intent as architect. No direct evidence of Bryan's preferences has been recorded yet.
|
||||
|
||||
## Recommendation or Implication
|
||||
Default to explicit files, repeatable workflows, and low-ambiguity structure when extending this vault. As Bryan uses the system, record observed preferences here with evidence and raise confidence accordingly — do not fabricate.
|
||||
|
||||
## Review Notes
|
||||
Reconfirm and attribute preferences to Bryan once direct interactions provide evidence; revisit at the start of the plugin development workflow.
|
||||
|
||||
## Related
|
||||
- [[CLAUDE]]
|
||||
- [[resources/people/bryan-gilliom]]
|
||||
- [[resources/people/jason-stedwell]]
|
||||
- [[projects/active/vault-foundation]]
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
type: working-memory
|
||||
status: active
|
||||
created: 2026-06-01T22:00
|
||||
updated: 2026-06-01T22:00
|
||||
tags: [agent, working-memory]
|
||||
agent_written: true
|
||||
source_notes: []
|
||||
expires_after: 48h
|
||||
---
|
||||
|
||||
# Working Context
|
||||
|
||||
## Active Focus
|
||||
Starter scaffold review and refinement.
|
||||
|
||||
## Recent Decisions
|
||||
- Include root navigation notes.
|
||||
- Include config example for future REST/API use.
|
||||
|
||||
## Open Threads
|
||||
- Add hooks, policies, and plugin CRUD docs.
|
||||
|
||||
## Relevant Links
|
||||
- [[index]]
|
||||
- [[README]]
|
||||
|
||||
## Related
|
||||
- [[_agent/context/current-context]]
|
||||
- [[projects/active/vault-foundation]]
|
||||
@@ -0,0 +1,5 @@
|
||||
# briefs/
|
||||
|
||||
Agent-generated briefs.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
@@ -0,0 +1,5 @@
|
||||
# drafts/
|
||||
|
||||
Agent-generated drafts.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
@@ -0,0 +1,5 @@
|
||||
# summaries/
|
||||
|
||||
Agent-generated summaries.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
@@ -0,0 +1,5 @@
|
||||
# synthesis/
|
||||
|
||||
Agent-generated synthesis across notes.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
---
|
||||
type: session-log
|
||||
status: complete
|
||||
created: 2026-06-01T22:00
|
||||
updated: 2026-06-01T22:00
|
||||
tags: [agent, session, scaffold]
|
||||
agent_written: true
|
||||
source_notes: []
|
||||
session_date: 2026-06-01
|
||||
client: claude-code
|
||||
---
|
||||
|
||||
# Session Log
|
||||
|
||||
## Goal
|
||||
Create a reviewable starter scaffold for a memory-oriented Obsidian vault.
|
||||
|
||||
## Notes Read
|
||||
- [[CLAUDE]]
|
||||
- [[STRUCTURE]]
|
||||
- [[BOOTSTRAP]]
|
||||
- [[spinup]]
|
||||
|
||||
## Actions Taken
|
||||
- Created the core folder tree.
|
||||
- Added root operating documents.
|
||||
- Added templates for high-value note types.
|
||||
- Seeded example operational notes.
|
||||
- Added API config example and review index.
|
||||
|
||||
## Decisions Made
|
||||
- Include `_agent/` as a first-class operational layer.
|
||||
- Add a root `index.md` and `README.md` for review and navigation.
|
||||
- Include `.env.example` but not actual config.
|
||||
|
||||
## Outputs Created
|
||||
- Starter vault scaffold
|
||||
- Root docs
|
||||
- Templates
|
||||
- Seed notes
|
||||
|
||||
## Open Threads
|
||||
- Add plugin integration spec.
|
||||
- Add startup/shutdown hooks.
|
||||
- Add archive policy and sync policy notes.
|
||||
|
||||
## Suggested Next Step
|
||||
Review the scaffold and then generate a plugin spec plus note CRUD contract.
|
||||
|
||||
## Related
|
||||
- [[projects/active/vault-foundation]]
|
||||
- [[_agent/context/current-context]]
|
||||
- [[journal/daily/2026-06-01]]
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
---
|
||||
type: session-log
|
||||
status: complete
|
||||
created: 2026-06-02T16:18
|
||||
updated: 2026-06-02T16:18
|
||||
tags: [agent, session, plugin, rest-api, goldbrain]
|
||||
agent_written: true
|
||||
source_notes: ["resources/references/obsidian-local-rest-api.md", "references-only/reference-obsidian-memory.plugin"]
|
||||
session_date: 2026-06-02
|
||||
client: cowork
|
||||
---
|
||||
|
||||
# Session Log
|
||||
|
||||
## Goal
|
||||
Prep the goldbrain vault from the reference materials, stand up and verify the Obsidian Local REST API, and build the `goldbrain-memory` CoWork plugin ready to hand off to Bryan.
|
||||
|
||||
## Notes Read
|
||||
- [[BOOTSTRAP]], [[STRUCTURE]], [[CLAUDE]], [[spinup]]
|
||||
- [[_agent/memory/semantic/operator-preferences]], [[resources/people/bryan-gilliom]]
|
||||
- [[resources/references/obsidian-local-rest-api]]
|
||||
|
||||
## Actions Taken
|
||||
Reviewed the references-only materials (reference vault + the existing `obsidian-memory` plugin + REST API docs). Found the vault scaffold was structurally complete but plugin/REST-readiness was thin, so filled the stub API reference with a full command reference + memory routing map and refreshed `.env.example` for goldbrain.
|
||||
|
||||
Diagnosed a `502` from the reverse proxy: the Obsidian Local REST API plugin was bound to `127.0.0.1`. Changed binding to `0.0.0.0` and added the proxy hostname to the cert SAN; API came up clean (v4.1.2, valid TLS). Verified a full write → read → list → delete round-trip.
|
||||
|
||||
Confirmed the scaffold copy into the live vault, then created the 24 empty subfolders that file-copy had dropped (placeholder READMEs) so the full required tree resolves over the API. Marked spin-up steps complete.
|
||||
|
||||
Built the `goldbrain-memory` plugin (skill + 4 reference files) adapted to: operator = Bryan, base URL `goldbrainapi.mpm.to`, vault-root paths, goldbrain's PARA + `_agent/` layout, canonical frontmatter, HHMM session logs. Live-tested every documented operation.
|
||||
|
||||
Fixed two bugs found during testing: (1) v4.1.2 PATCH requires the **full `::`-delimited heading path** (bare subheading name returns `invalid-target`); (2) `[[wikilinks]]` in YAML frontmatter break in Obsidian's reading view — migrated all 23 affected notes to move links into a body `## Related` section, retired the `related:` frontmatter field, and codified the rule in STRUCTURE.md / BOOTSTRAP.md and the plugin docs.
|
||||
|
||||
## Decisions Made
|
||||
- Vault addressed at root (no `Projects/agents/` prefix) — goldbrain is a dedicated vault.
|
||||
- API base URL `https://goldbrainapi.mpm.to`; no `-k` needed (valid cert behind reverse proxy → `192.168.86.15:27124`).
|
||||
- API key hardcoded in the plugin only, never written into the vault (per the vault's own safety rule).
|
||||
- Rule established: no `[[wikilinks]]` in frontmatter; all cross-references live in a body `## Related` section. `source_notes` holds plain relative path strings.
|
||||
- PATCH heading targets must use the full `H1::H2` path.
|
||||
|
||||
## Outputs Created
|
||||
- `goldbrain-memory.plugin` — installable CoWork plugin (delivered to the goldbrain root folder)
|
||||
- Full REST command reference + routing map in [[resources/references/obsidian-local-rest-api]]
|
||||
- 24 folder-placeholder READMEs; 23 notes + templates migrated for the frontmatter-link fix
|
||||
|
||||
## Open Threads
|
||||
- [ ] Validate Claude Code direct filesystem access to the vault host (spin-up step 6).
|
||||
- [ ] Capture Bryan's real preferences in [[_agent/memory/semantic/operator-preferences]] from actual use — do not fabricate.
|
||||
- [ ] Begin the daily/session/review operating rhythm (spin-up step 8).
|
||||
|
||||
## Suggested Next Step
|
||||
Hand off `goldbrain-memory.plugin` to Bryan, install it, and run one live session to confirm the skill triggers and that load/write land correctly through the plugin.
|
||||
|
||||
## Related
|
||||
- [[projects/active/vault-foundation]]
|
||||
- [[resources/references/obsidian-local-rest-api]]
|
||||
- [[resources/people/bryan-gilliom]]
|
||||
- [[BOOTSTRAP]]
|
||||
@@ -0,0 +1,3 @@
|
||||
# Active Skills
|
||||
|
||||
Store reusable agent skills here with clear triggers, versioning, and expected outputs.
|
||||
@@ -0,0 +1,5 @@
|
||||
# archived/
|
||||
|
||||
Retired agent skills.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
type: context-bundle
|
||||
status: active
|
||||
created: {{date:YYYY-MM-DD}}
|
||||
updated: {{date:YYYY-MM-DD}}
|
||||
tags: [agent, context]
|
||||
agent_written: true
|
||||
source_notes: []
|
||||
scope:
|
||||
refresh_strategy: on-demand
|
||||
---
|
||||
|
||||
# Context Bundle Title
|
||||
|
||||
## Scope
|
||||
|
||||
## Active Priorities
|
||||
|
||||
## Relevant Entities
|
||||
|
||||
## Key Decisions
|
||||
|
||||
## Open Questions
|
||||
|
||||
## Source Notes
|
||||
|
||||
## Related
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
type: semantic-memory
|
||||
status: active
|
||||
created: {{date:YYYY-MM-DD}}
|
||||
updated: {{date:YYYY-MM-DD}}
|
||||
tags: [agent, semantic-memory]
|
||||
agent_written: true
|
||||
source_notes: []
|
||||
confidence: high
|
||||
last_reviewed: {{date:YYYY-MM-DD}}
|
||||
---
|
||||
|
||||
# Semantic Memory Title
|
||||
|
||||
## Fact / Pattern
|
||||
|
||||
## Evidence
|
||||
|
||||
## Recommendation or Implication
|
||||
|
||||
## Review Notes
|
||||
|
||||
## Related
|
||||
@@ -0,0 +1,29 @@
|
||||
---
|
||||
type: session-log
|
||||
status: complete
|
||||
created: {{date:YYYY-MM-DDTHH:mm}}
|
||||
updated: {{date:YYYY-MM-DDTHH:mm}}
|
||||
tags: [agent, session]
|
||||
agent_written: true
|
||||
source_notes: []
|
||||
session_date: {{date:YYYY-MM-DD}}
|
||||
client: claude-code
|
||||
---
|
||||
|
||||
# Session Log
|
||||
|
||||
## Goal
|
||||
|
||||
## Notes Read
|
||||
|
||||
## Actions Taken
|
||||
|
||||
## Decisions Made
|
||||
|
||||
## Outputs Created
|
||||
|
||||
## Open Threads
|
||||
|
||||
## Suggested Next Step
|
||||
|
||||
## Related
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
type: working-memory
|
||||
status: active
|
||||
created: {{date:YYYY-MM-DDTHH:mm}}
|
||||
updated: {{date:YYYY-MM-DDTHH:mm}}
|
||||
tags: [agent, working-memory]
|
||||
agent_written: true
|
||||
source_notes: []
|
||||
expires_after: 48h
|
||||
---
|
||||
|
||||
# Working Context
|
||||
|
||||
## Active Focus
|
||||
|
||||
## Recent Decisions
|
||||
|
||||
## Open Threads
|
||||
|
||||
## Relevant Links
|
||||
|
||||
## Related
|
||||
@@ -0,0 +1,3 @@
|
||||
# Archive
|
||||
|
||||
Move completed or inactive notes here instead of deleting them when they may still be useful later.
|
||||
@@ -0,0 +1,5 @@
|
||||
# imports/
|
||||
|
||||
Archived imported material.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
@@ -0,0 +1,5 @@
|
||||
# notes/
|
||||
|
||||
Archived standalone notes.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
@@ -0,0 +1,5 @@
|
||||
# projects/
|
||||
|
||||
Archived project material.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
type: area
|
||||
status: active
|
||||
created: 2026-06-01
|
||||
updated: 2026-06-01
|
||||
tags: [area, business]
|
||||
agent_written: false
|
||||
source_notes: []
|
||||
---
|
||||
|
||||
# Business Ops
|
||||
|
||||
## Scope
|
||||
Operational business responsibilities that persist beyond any single project.
|
||||
|
||||
## Active Concerns
|
||||
- Documentation systems
|
||||
- Client operations
|
||||
- Tooling standardization
|
||||
|
||||
## Related
|
||||
- [[projects/active/vault-foundation]]
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
type: area
|
||||
status: active
|
||||
created: 2026-06-01
|
||||
updated: 2026-06-01
|
||||
tags: [area, learning]
|
||||
agent_written: false
|
||||
source_notes: []
|
||||
---
|
||||
|
||||
# Learning Backlog
|
||||
|
||||
## Scope
|
||||
Topics worth exploring and formalizing into durable notes.
|
||||
|
||||
## Current Topics
|
||||
- Obsidian Local REST API details
|
||||
- CoWork plugin design patterns
|
||||
- Session compression into semantic memory
|
||||
|
||||
## Related
|
||||
- [[resources/references/obsidian-local-rest-api]]
|
||||
@@ -0,0 +1,5 @@
|
||||
# personal/
|
||||
|
||||
Ongoing personal responsibilities and notes.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
type: area
|
||||
status: active
|
||||
created: 2026-06-01
|
||||
updated: 2026-06-01
|
||||
tags: [area, systems]
|
||||
agent_written: false
|
||||
source_notes: []
|
||||
---
|
||||
|
||||
# Systems Architecture
|
||||
|
||||
## Scope
|
||||
System-level design decisions, infrastructure patterns, and integration planning.
|
||||
|
||||
## Active Concerns
|
||||
- Vault architecture
|
||||
- API integration patterns
|
||||
- Plugin interoperability
|
||||
|
||||
## Related
|
||||
- [[projects/active/vault-foundation]]
|
||||
- [[resources/references/obsidian-local-rest-api]]
|
||||
@@ -0,0 +1,5 @@
|
||||
# by-date/
|
||||
|
||||
Decision records indexed chronologically.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
@@ -0,0 +1,5 @@
|
||||
# by-project/
|
||||
|
||||
Decision records mirrored by project.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
type: decision
|
||||
status: complete
|
||||
created: {{date:YYYY-MM-DD}}
|
||||
updated: {{date:YYYY-MM-DD}}
|
||||
tags: [decision]
|
||||
agent_written: true
|
||||
source_notes: []
|
||||
decision_date: {{date:YYYY-MM-DD}}
|
||||
impact: medium
|
||||
---
|
||||
|
||||
# Decision Title
|
||||
|
||||
## Context
|
||||
|
||||
## Decision
|
||||
|
||||
## Rationale
|
||||
|
||||
## Consequences
|
||||
|
||||
## Follow-Up
|
||||
|
||||
## Related
|
||||
@@ -0,0 +1,3 @@
|
||||
# Inbox Captures
|
||||
|
||||
Drop raw captures here before they are processed into canonical notes.
|
||||
@@ -0,0 +1,5 @@
|
||||
# imports/
|
||||
|
||||
Raw imported material awaiting processing.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
@@ -0,0 +1,5 @@
|
||||
# processing-log/
|
||||
|
||||
Logs of how inbox items were triaged and where they went.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
@@ -0,0 +1,28 @@
|
||||
# Vault Index
|
||||
|
||||
## Start Here
|
||||
- [[README]]
|
||||
- [[CLAUDE]]
|
||||
- [[STRUCTURE]]
|
||||
- [[BOOTSTRAP]]
|
||||
- [[spinup]]
|
||||
|
||||
## Operational Notes
|
||||
- [[journal/daily/2026-06-01]]
|
||||
- [[_agent/context/current-context]]
|
||||
- [[_agent/sessions/2026-06-01-2200-initial-vault-scaffold]]
|
||||
- [[projects/active/vault-foundation]]
|
||||
|
||||
## Core Areas
|
||||
- [[areas/business/business-ops]]
|
||||
- [[areas/systems/systems-architecture]]
|
||||
- [[areas/learning/learning-backlog]]
|
||||
|
||||
## Reference Notes
|
||||
- [[resources/concepts/agent-memory-model]]
|
||||
- [[resources/references/obsidian-local-rest-api]]
|
||||
- [[resources/people/bryan-gilliom]]
|
||||
- [[resources/people/jason-stedwell]]
|
||||
|
||||
## Reviews
|
||||
- [[reviews/weekly/2026-W23]]
|
||||
@@ -0,0 +1,37 @@
|
||||
---
|
||||
type: daily-note
|
||||
status: active
|
||||
created: 2026-06-01
|
||||
updated: 2026-06-01
|
||||
tags: [daily, journal]
|
||||
agent_written: false
|
||||
source_notes: []
|
||||
---
|
||||
|
||||
# 2026-06-01
|
||||
|
||||
## Top Priorities
|
||||
- Review and refine starter memory vault scaffold.
|
||||
- Finalize note taxonomy and folder layout.
|
||||
- Prepare for future Obsidian REST API and CoWork plugin work.
|
||||
|
||||
## Schedule / Commitments
|
||||
- Initial vault design and scaffold review.
|
||||
|
||||
## Open Loops
|
||||
- Decide whether to keep `areas/` broad or business-specific.
|
||||
- Decide which templates should be exposed in the plugin UI first.
|
||||
- Decide how session compression should roll into semantic memory.
|
||||
|
||||
## Notes
|
||||
This vault is being initialized as a human-plus-agent memory system.
|
||||
|
||||
## Context for AI
|
||||
Prioritize stable structure, machine-readable metadata, and low-friction future API access.
|
||||
|
||||
## Agent Log
|
||||
- Initial scaffold generated for review.
|
||||
|
||||
## Related
|
||||
- [[projects/active/vault-foundation]]
|
||||
- [[_agent/context/current-context]]
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
type: daily-note
|
||||
status: active
|
||||
created: 2026-06-02
|
||||
updated: 2026-06-02
|
||||
tags: [daily, journal]
|
||||
agent_written: false
|
||||
source_notes: []
|
||||
---
|
||||
|
||||
# 2026-06-02
|
||||
|
||||
## Top Priorities
|
||||
|
||||
## Schedule / Commitments
|
||||
|
||||
## Open Loops
|
||||
|
||||
## Notes
|
||||
|
||||
## Context for AI
|
||||
|
||||
## Agent Log
|
||||
|
||||
- 16:18 — Built and verified the goldbrain-memory plugin; see [[_agent/sessions/2026-06-02-1618-goldbrain-plugin-build]].
|
||||
|
||||
## Related
|
||||
@@ -0,0 +1,5 @@
|
||||
# monthly/
|
||||
|
||||
Monthly journal notes.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
type: daily-note
|
||||
status: active
|
||||
created: {{date:YYYY-MM-DD}}
|
||||
updated: {{date:YYYY-MM-DD}}
|
||||
tags: [daily, journal]
|
||||
agent_written: false
|
||||
source_notes: []
|
||||
---
|
||||
|
||||
# {{date:YYYY-MM-DD}}
|
||||
|
||||
## Top Priorities
|
||||
|
||||
## Schedule / Commitments
|
||||
|
||||
## Open Loops
|
||||
|
||||
## Notes
|
||||
|
||||
## Context for AI
|
||||
|
||||
## Agent Log
|
||||
|
||||
## Related
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
type: review
|
||||
status: active
|
||||
created: {{date:gggg-[W]WW}}
|
||||
updated: {{date:gggg-[W]WW}}
|
||||
tags: [review, weekly]
|
||||
agent_written: true
|
||||
source_notes: []
|
||||
period: weekly
|
||||
---
|
||||
|
||||
# Weekly Review
|
||||
|
||||
## Completed Work
|
||||
|
||||
## Open Loops
|
||||
|
||||
## Stale Projects
|
||||
|
||||
## Decisions
|
||||
|
||||
## Priorities Next Week
|
||||
|
||||
## Agent Notes
|
||||
|
||||
## Related
|
||||
@@ -0,0 +1,5 @@
|
||||
# weekly/
|
||||
|
||||
Weekly journal notes.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
@@ -0,0 +1,54 @@
|
||||
---
|
||||
type: project
|
||||
status: active
|
||||
created: 2026-06-01
|
||||
updated: 2026-06-01
|
||||
tags: [project, vault]
|
||||
agent_written: false
|
||||
source_notes: []
|
||||
owner: Jason Stedwell
|
||||
review_cycle: weekly
|
||||
---
|
||||
|
||||
# Vault Foundation
|
||||
|
||||
## Purpose
|
||||
Build an Obsidian memory vault scaffold that supports Claude Code now and future CoWork plugin access later.
|
||||
|
||||
## Status
|
||||
Scaffold created and ready for review.
|
||||
|
||||
## Goals
|
||||
- Create clean root docs.
|
||||
- Establish predictable folder structure.
|
||||
- Define frontmatter and note taxonomy.
|
||||
- Seed initial notes and templates.
|
||||
- Prepare for REST API integration.
|
||||
|
||||
## Current Context
|
||||
This project is the setup layer for the broader memory vault system.
|
||||
|
||||
## Open Loops
|
||||
- Finalize plugin-facing CRUD conventions.
|
||||
- Decide how reviews should promote working memory into semantic memory.
|
||||
- Determine whether to add dashboards or MOC notes in v1.
|
||||
|
||||
## Key Decisions
|
||||
- Separate `_agent/` from human-facing knowledge folders.
|
||||
- Use frontmatter-based note typing.
|
||||
- Keep secrets outside the vault.
|
||||
|
||||
## Related Notes
|
||||
- [[index]]
|
||||
- [[BOOTSTRAP]]
|
||||
- [[spinup]]
|
||||
- [[resources/concepts/agent-memory-model]]
|
||||
|
||||
## Session History
|
||||
- [[_agent/sessions/2026-06-01-2200-initial-vault-scaffold]]
|
||||
|
||||
## Related
|
||||
- [[CLAUDE]]
|
||||
- [[STRUCTURE]]
|
||||
- [[_agent/context/current-context]]
|
||||
- [[journal/daily/2026-06-01]]
|
||||
@@ -0,0 +1,5 @@
|
||||
# archived/
|
||||
|
||||
Completed or abandoned projects.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
@@ -0,0 +1,5 @@
|
||||
# incubating/
|
||||
|
||||
Early-stage project ideas not yet active.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
@@ -0,0 +1,5 @@
|
||||
# on-hold/
|
||||
|
||||
Paused projects, kept for later resumption.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
@@ -0,0 +1,31 @@
|
||||
---
|
||||
type: project
|
||||
status: active
|
||||
created: {{date:YYYY-MM-DD}}
|
||||
updated: {{date:YYYY-MM-DD}}
|
||||
tags: [project]
|
||||
agent_written: false
|
||||
source_notes: []
|
||||
owner:
|
||||
review_cycle: weekly
|
||||
---
|
||||
|
||||
# Project Name
|
||||
|
||||
## Purpose
|
||||
|
||||
## Status
|
||||
|
||||
## Goals
|
||||
|
||||
## Current Context
|
||||
|
||||
## Open Loops
|
||||
|
||||
## Key Decisions
|
||||
|
||||
## Related Notes
|
||||
|
||||
## Session History
|
||||
|
||||
## Related
|
||||
@@ -0,0 +1,32 @@
|
||||
---
|
||||
type: concept
|
||||
status: reference
|
||||
created: 2026-06-01
|
||||
updated: 2026-06-01
|
||||
tags: [concept, memory, agent]
|
||||
agent_written: false
|
||||
source_notes: []
|
||||
---
|
||||
|
||||
# Agent Memory Model
|
||||
|
||||
## Summary
|
||||
This vault uses a layered memory design with working memory, episodic memory, semantic memory, and task-focused context bundles.
|
||||
|
||||
## Key Details
|
||||
- Working memory supports active session execution.
|
||||
- Episodic memory preserves what happened.
|
||||
- Semantic memory stores stable patterns and durable knowledge.
|
||||
- Context bundles provide compact, high-value retrieval targets.
|
||||
|
||||
## Why It Matters
|
||||
This separation reduces clutter and makes future API-driven retrieval more efficient.
|
||||
|
||||
## Related Concepts
|
||||
- [[resources/references/obsidian-local-rest-api]]
|
||||
- [[projects/active/vault-foundation]]
|
||||
|
||||
## Related
|
||||
- [[CLAUDE]]
|
||||
- [[_agent/context/current-context]]
|
||||
- [[_agent/memory/semantic/operator-preferences]]
|
||||
@@ -0,0 +1,5 @@
|
||||
# meetings/
|
||||
|
||||
Meeting notes and records.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
@@ -0,0 +1,42 @@
|
||||
---
|
||||
type: person
|
||||
status: active
|
||||
created: 2026-06-02
|
||||
updated: 2026-06-02
|
||||
tags: [person, primary-operator]
|
||||
agent_written: true
|
||||
source_notes: []
|
||||
company: Message Point Media (MPM)
|
||||
role: CEO
|
||||
last_contact:
|
||||
---
|
||||
|
||||
# Bryan Gilliom
|
||||
|
||||
## Who They Are
|
||||
|
||||
CEO of Message Point Media (MPM) and the **primary user** of this memory vault. This vault exists to serve as Bryan's persistent second brain across Claude/CoWork sessions — the system of record for his context, decisions, projects, and preferences.
|
||||
|
||||
## Relationship Context
|
||||
|
||||
- **Primary operator** — default "the operator" in agent memory and preferences refers to Bryan unless stated otherwise.
|
||||
- [[resources/people/jason-stedwell]] is the architect and creator of the vault, and a possible future collaborator — not the day-to-day user.
|
||||
|
||||
## Working Preferences
|
||||
|
||||
_To be learned and recorded as evidence accumulates. Do not fabricate — capture only what is observed or stated, then promote durable patterns to [[_agent/memory/semantic/operator-preferences]]._
|
||||
|
||||
## Recent Interactions
|
||||
|
||||
- _None recorded yet._
|
||||
|
||||
## Open Follow-Ups
|
||||
|
||||
- Confirm Bryan's preferred communication style, output formats, and recurring workflows.
|
||||
- Identify the active projects and areas Bryan wants tracked first.
|
||||
- Confirm which connectors/tools Bryan relies on (MPM systems, email, calendar, etc.).
|
||||
|
||||
## Related
|
||||
|
||||
- [[resources/people/jason-stedwell]]
|
||||
- [[_agent/memory/semantic/operator-preferences]]
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
type: person
|
||||
status: active
|
||||
created: 2026-06-01
|
||||
updated: 2026-06-01
|
||||
tags: [person]
|
||||
agent_written: false
|
||||
source_notes: []
|
||||
company: MPM / ALABAMA wISP
|
||||
role: Director of Technical Services / Systems Engineer
|
||||
last_contact: 2026-06-01
|
||||
---
|
||||
|
||||
# Jason Stedwell
|
||||
|
||||
## Who They Are
|
||||
|
||||
Primary designer of this memory vault system.
|
||||
|
||||
## Relationship Context
|
||||
|
||||
Designed the structure, workflow, and future plugin direction for this vault.
|
||||
|
||||
## Recent Interactions
|
||||
|
||||
- Requested starter vault scaffold and documentation-first setup.
|
||||
|
||||
## Open Follow-Ups
|
||||
|
||||
- Confirm plugin CRUD priorities.
|
||||
- Confirm desired startup/shutdown agent hooks.
|
||||
|
||||
## Related Projects
|
||||
|
||||
- [[projects/active/vault-foundation]]
|
||||
|
||||
## Related
|
||||
- [[projects/active/vault-foundation]]
|
||||
@@ -0,0 +1,245 @@
|
||||
---
|
||||
type: reference
|
||||
status: active
|
||||
created: 2026-06-01
|
||||
updated: 2026-06-02
|
||||
tags: [reference, api, obsidian, rest, plugin]
|
||||
agent_written: true
|
||||
source_notes: []
|
||||
---
|
||||
|
||||
# Obsidian Local REST API
|
||||
|
||||
## Summary
|
||||
This is the operational command reference for reaching the **goldbrain** vault over the
|
||||
[Obsidian Local REST API](https://github.com/coddingtonbear/obsidian-local-rest-api).
|
||||
It is the contract a CoWork plugin or any REST client follows to read and write memory.
|
||||
Paths address the vault **at its root** (e.g. `/vault/_agent/...`), matching the layout
|
||||
defined in STRUCTURE and verified by BOOTSTRAP.
|
||||
|
||||
## Connection
|
||||
|
||||
| Setting | Value |
|
||||
|---------|-------|
|
||||
| Base URL | `https://goldbrainapi.mpm.to` |
|
||||
| Auth | `Authorization: Bearer <key>` on every request |
|
||||
| Content type (writes) | `text/markdown` (or `application/json` for frontmatter patches) |
|
||||
|
||||
**Never store the key in the vault.** It lives in the local environment / plugin config,
|
||||
not in any note. The examples below read it from the shell:
|
||||
|
||||
```bash
|
||||
export OBSIDIAN_REST_API_URL="https://goldbrainapi.mpm.to"
|
||||
export OBSIDIAN_REST_API_KEY="<bearer-token>"
|
||||
AUTH="Authorization: Bearer ${OBSIDIAN_REST_API_KEY}"
|
||||
BASE="${OBSIDIAN_REST_API_URL}"
|
||||
```
|
||||
|
||||
> TLS note: `goldbrainapi.mpm.to` presents a valid certificate (reverse proxy →
|
||||
> `192.168.86.15:27124`), so `-k` is **not** needed. Add `-k` only if the endpoint is ever
|
||||
> switched to a self-signed certificate.
|
||||
|
||||
---
|
||||
|
||||
## Reading Files
|
||||
|
||||
```bash
|
||||
curl -s -H "$AUTH" "$BASE/vault/_agent/context/current-context.md"
|
||||
```
|
||||
|
||||
Returns raw file content (`text/markdown`). A `404` means the file does not exist.
|
||||
|
||||
```bash
|
||||
# Read only one heading's content (full heading path, :: delimited)
|
||||
curl -s -H "$AUTH" \
|
||||
"$BASE/vault/_agent/memory/semantic/operator-preferences.md/heading/Operator%20Preferences%3A%3AFact%20%2F%20Pattern"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Listing Directories
|
||||
|
||||
```bash
|
||||
curl -s -H "$AUTH" "$BASE/vault/_agent/sessions/" # trailing slash required
|
||||
```
|
||||
|
||||
Returns JSON: `{ "files": [...], "folders": [...] }`.
|
||||
|
||||
---
|
||||
|
||||
## Appending Content (POST)
|
||||
|
||||
`POST` appends to the **end** of an existing file; it creates the file if absent.
|
||||
|
||||
```bash
|
||||
cat > /tmp/obs_entry.md << 'OBSEOF'
|
||||
- 2026-06-02: quick note to triage later
|
||||
OBSEOF
|
||||
|
||||
curl -s -X POST -H "$AUTH" -H "Content-Type: text/markdown" \
|
||||
--data-binary @/tmp/obs_entry.md \
|
||||
"$BASE/vault/inbox/captures/inbox.md"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Creating or Overwriting Files (PUT)
|
||||
|
||||
`PUT` creates a new file or fully overwrites one. Missing parent directories are created automatically.
|
||||
|
||||
```bash
|
||||
cat > /tmp/obs_file.md << 'OBSEOF'
|
||||
---
|
||||
type: session-log
|
||||
status: complete
|
||||
created: 2026-06-02
|
||||
updated: 2026-06-02
|
||||
tags: []
|
||||
agent_written: true
|
||||
source_notes: []
|
||||
---
|
||||
|
||||
# Session: <title>
|
||||
|
||||
## Related
|
||||
- [[projects/active/some-project]]
|
||||
OBSEOF
|
||||
|
||||
curl -s -X PUT -H "$AUTH" -H "Content-Type: text/markdown" \
|
||||
--data-binary @/tmp/obs_file.md \
|
||||
"$BASE/vault/_agent/sessions/2026-06-02-1430-my-session.md"
|
||||
```
|
||||
|
||||
Include the canonical frontmatter (see STRUCTURE / BOOTSTRAP §4) and set `agent_written: true`
|
||||
on agent-generated notes. Cross-reference links go in a body `## Related` section, never in frontmatter.
|
||||
|
||||
---
|
||||
|
||||
## Patching a Specific Section (PATCH)
|
||||
|
||||
`PATCH` edits inside a file without rewriting it. Target and operation are set via headers.
|
||||
|
||||
### Append under a heading
|
||||
|
||||
**Heading targets must be the FULL heading path, `::`-delimited from the top-level heading.**
|
||||
A bare subheading name returns `400 invalid-target` (errorCode 40080). Verified against
|
||||
API v4.1.2. Example: `## Fact / Pattern` under `# Operator Preferences` →
|
||||
`Target: Operator Preferences::Fact / Pattern`. Percent-encode non-ASCII; spaces are fine.
|
||||
|
||||
```bash
|
||||
cat > /tmp/obs_patch.md << 'OBSEOF'
|
||||
Bryan prefers concise status updates — lead with the decision.
|
||||
OBSEOF
|
||||
|
||||
curl -s -X PATCH -H "$AUTH" \
|
||||
-H "Operation: append" \
|
||||
-H "Target-Type: heading" \
|
||||
-H "Target: Operator Preferences::Fact / Pattern" \
|
||||
-H "Content-Type: text/markdown" \
|
||||
--data-binary @/tmp/obs_patch.md \
|
||||
"$BASE/vault/_agent/memory/semantic/operator-preferences.md"
|
||||
```
|
||||
|
||||
To discover exact heading paths, GET the note with `Accept: application/vnd.olrapi.document-map+json`;
|
||||
it returns `{ "headings": [...], "blocks": [...], "frontmatterFields": [...] }` — copy the
|
||||
heading string verbatim into `Target`.
|
||||
|
||||
### Replace a heading's content entirely
|
||||
|
||||
Same call with `Operation: replace` — e.g. to refresh a project's `Project Name::Current status`.
|
||||
|
||||
### Prepend under a heading
|
||||
|
||||
Same call with `Operation: prepend`.
|
||||
|
||||
### Patch a frontmatter field
|
||||
|
||||
```bash
|
||||
curl -s -X PATCH -H "$AUTH" \
|
||||
-H "Operation: replace" \
|
||||
-H "Target-Type: frontmatter" \
|
||||
-H "Target: updated" \
|
||||
-H "Content-Type: application/json" \
|
||||
--data '"2026-06-02"' \
|
||||
"$BASE/vault/projects/active/vault-foundation.md"
|
||||
```
|
||||
|
||||
Use this to keep `updated:` and `status:` current after a write.
|
||||
|
||||
---
|
||||
|
||||
## Searching
|
||||
|
||||
```bash
|
||||
curl -s -X POST -H "$AUTH" "$BASE/search/simple/?query=weekly+review"
|
||||
```
|
||||
|
||||
Returns an array of `{ filename, score, matches: [{ context, match }] }`.
|
||||
|
||||
---
|
||||
|
||||
## Deleting Files
|
||||
|
||||
```bash
|
||||
curl -s -X DELETE -H "$AUTH" "$BASE/vault/archive/notes/old-note.md"
|
||||
```
|
||||
|
||||
Only on an explicit request. Deletion is destructive; memory is append-friendly.
|
||||
|
||||
---
|
||||
|
||||
## URL-Encoding Notes
|
||||
|
||||
- Path separators (`/`) in the vault path are **literal** — do not encode them.
|
||||
- Spaces in filenames or heading targets in a URL: use `%20`.
|
||||
- Nested heading levels in a URL path: use `%3A%3A` for `::`.
|
||||
- Heading text in the `Target:` header: the **full heading path** joined by `::` (e.g. `Operator Preferences::Fact / Pattern`), no `#`; spaces fine; percent-encode non-ASCII.
|
||||
|
||||
---
|
||||
|
||||
## Memory Routing Map
|
||||
|
||||
Where each kind of write lands in goldbrain (mirrors BOOTSTRAP §3 and the taxonomy in STRUCTURE).
|
||||
|
||||
| Situation | Vault path | Method |
|
||||
|-----------|-----------|--------|
|
||||
| Unsorted / quick capture | `inbox/captures/inbox.md` (date-prefixed line) | POST |
|
||||
| Raw imported material | `inbox/imports/` | PUT |
|
||||
| Operator preference / durable fact | `_agent/memory/semantic/operator-preferences.md` | PATCH |
|
||||
| Other durable facts, patterns | `_agent/memory/semantic/<slug>.md` | PUT |
|
||||
| Event record (what happened) | `_agent/memory/episodic/<slug>.md` | PUT |
|
||||
| Short-lived, time-boxed state | `_agent/memory/working/<slug>.md` | PUT |
|
||||
| Task-scoped context / focus | `_agent/context/current-context.md` | PATCH / PUT |
|
||||
| Working-session log | `_agent/sessions/YYYY-MM-DD-HHMM-<slug>.md` | PUT |
|
||||
| Long-running project state | `projects/active/<slug>.md` | PUT + PATCH |
|
||||
| Non-obvious decision (ADR) | `decisions/by-date/YYYY-MM-DD-<slug>.md` (mirror `by-project/`) | PUT |
|
||||
| Person context | `resources/people/<name>.md` | PUT / PATCH |
|
||||
| Concept / reference note | `resources/concepts/` or `resources/references/` | PUT |
|
||||
| Daily activity / Agent Log | `journal/daily/YYYY-MM-DD.md` | POST / PATCH |
|
||||
| Periodic review | `reviews/{weekly,monthly,quarterly,annual}/` | PUT |
|
||||
|
||||
**Slug rules:** kebab-case, ASCII, ~40 chars max. Every file carries canonical frontmatter (no `[[wikilinks]]` in it).
|
||||
|
||||
---
|
||||
|
||||
## Plugin Readiness Checklist
|
||||
|
||||
- [ ] Base URL reachable; returns `401` without the key, content with it.
|
||||
- [ ] `GET /vault/BOOTSTRAP.md` succeeds (vault bootstrapped — else run BOOTSTRAP).
|
||||
- [ ] A test `PUT` into `_agent/sessions/` creates the file and parent dirs.
|
||||
- [ ] A `PATCH` `Target-Type: heading` append with a full `::` path lands under the right heading.
|
||||
- [ ] `POST /search/simple/?query=...` returns scored matches.
|
||||
- [ ] Key supplied via env / plugin config only — never written into a note.
|
||||
|
||||
## Sources / Notes
|
||||
Adapted from the working `obsidian-memory` plugin reference, retargeted to goldbrain's
|
||||
vault-root layout and the `goldbrainapi.mpm.to` host. Record host-binding or plugin-specific
|
||||
conventions here as they emerge.
|
||||
|
||||
## Related
|
||||
- [[spinup]]
|
||||
- [[BOOTSTRAP]]
|
||||
- [[STRUCTURE]]
|
||||
- [[CLAUDE]]
|
||||
- [[_agent/context/current-context]]
|
||||
- [[projects/active/vault-foundation]]
|
||||
@@ -0,0 +1,5 @@
|
||||
# source-material/
|
||||
|
||||
Raw source documents and references to process.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
@@ -0,0 +1,5 @@
|
||||
# annual/
|
||||
|
||||
Annual reviews.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
@@ -0,0 +1,5 @@
|
||||
# monthly/
|
||||
|
||||
Monthly reviews.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
@@ -0,0 +1,5 @@
|
||||
# quarterly/
|
||||
|
||||
Quarterly reviews.
|
||||
|
||||
> Placeholder so this folder persists (empty dirs are dropped by file copies and git). Safe to delete once the folder has real content.
|
||||
@@ -0,0 +1,37 @@
|
||||
---
|
||||
type: review
|
||||
status: active
|
||||
created: 2026-W23
|
||||
updated: 2026-W23
|
||||
tags: [review, weekly]
|
||||
agent_written: true
|
||||
source_notes: []
|
||||
period: weekly
|
||||
---
|
||||
|
||||
# Weekly Review
|
||||
|
||||
## Completed Work
|
||||
- Created the starter memory vault scaffold.
|
||||
|
||||
## Open Loops
|
||||
- Review and refine all templates.
|
||||
- Add plugin-facing contracts.
|
||||
|
||||
## Stale Projects
|
||||
- None yet.
|
||||
|
||||
## Decisions
|
||||
- Root docs will define vault behavior.
|
||||
- `_agent/` will hold operational agent state.
|
||||
|
||||
## Priorities Next Week
|
||||
- Add plugin spec.
|
||||
- Add startup/shutdown automation docs.
|
||||
|
||||
## Agent Notes
|
||||
Use this note to promote important observations into semantic memory.
|
||||
|
||||
## Related
|
||||
- [[journal/daily/2026-06-01]]
|
||||
- [[projects/active/vault-foundation]]
|
||||
@@ -0,0 +1,29 @@
|
||||
# spinup.md
|
||||
|
||||
## Purpose
|
||||
|
||||
This guide is the complete user (not agent) spin-up walkthrough for taking a fresh Obsidian vault from empty folder to live operational memory system for Claude Code, with a path toward future CoWork plugin integration through the Obsidian Local REST API.
|
||||
|
||||
## High-Level Flow
|
||||
|
||||
- [x] 1. Create the vault.
|
||||
- [x] 2. Add root operating docs.
|
||||
- [x] 3. Build the folder tree.
|
||||
- [x] 4. Add templates.
|
||||
- [x] 5. Create initial notes.
|
||||
- [ ] 6. Validate Claude Code access.
|
||||
- [x] 7. Enable the Obsidian Local REST API.
|
||||
- [ ] 8. Start the daily/session/review operating rhythm.
|
||||
|
||||
## Verified status — 2026-06-02
|
||||
|
||||
Checked against the live vault at `goldbrainapi.mpm.to` after the scaffold copy.
|
||||
|
||||
- **1. Create the vault** — Done. Vault is live and reachable via the REST API.
|
||||
- **2. Add root operating docs** — Done. `CLAUDE.md`, `BOOTSTRAP.md`, `STRUCTURE.md`, `spinup.md`, `index.md`, `README.md`, and `.env.example` all present.
|
||||
- **3. Build the folder tree** — Done. Full tree present and verified over the API. The empty subfolders that file-copy dropped (`inbox/imports`, `inbox/processing-log`, `journal/weekly`, `journal/monthly`, `projects/incubating`, `projects/on-hold`, `projects/archived`, `areas/personal`, `resources/meetings`, `resources/source-material`, `decisions/by-date`, `decisions/by-project`, `reviews/monthly`, `reviews/quarterly`, `reviews/annual`, `archive/notes`, `archive/projects`, `archive/imports`, `_agent/memory/episodic`, `_agent/outputs/{briefs,drafts,summaries,synthesis}`, `_agent/skills/archived`) were recreated with a placeholder `README.md` in each so they persist.
|
||||
- **4. Add templates** — Done. All eight templates present (`_agent/templates/*`, `journal/templates/*`, `projects/project-template.md`, `decisions/decision-template.md`).
|
||||
- **5. Create initial notes** — Done. Seed/anchor notes present (`current-context.md`, `operator-preferences.md`, `active-setup.md`, initial session log, daily note, people notes, etc.).
|
||||
- **6. Validate Claude Code access** — Not yet verified. Confirm Claude Code can read/write the vault folder directly on the host.
|
||||
- **7. Enable the Obsidian Local REST API** — Done. Verified end-to-end: API v4.1.2 responds through the reverse proxy with a valid TLS cert, the bearer key authenticates, and a write → read → list → delete round-trip succeeded.
|
||||
- **8. Start the daily/session/review operating rhythm** — Not yet. Begins once the operator starts using the vault day-to-day.
|
||||
Reference in New Issue
Block a user