79 lines
2.3 KiB
Markdown
79 lines
2.3 KiB
Markdown
# 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
|
|
├── 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
|
|
|
|
## Project Lifecycle
|
|
Project notes live in one of four subfolders by state, and `frontmatter.status` MUST match the folder:
|
|
|
|
- `projects/active/` — `status: active` (current work)
|
|
- `projects/incubating/` — `status: incubating` (idea stage)
|
|
- `projects/on-hold/` — `status: on-hold` (paused but kept)
|
|
- `projects/archived/` — `status: archived` (done/abandoned)
|
|
|
|
Promotion between states = move the file **and** update `status`. Before creating a new project note, search all four subfolders for the slug (the echo-memory skill's mandatory search-first rule) — a duplicate in a non-active folder is the most common drift bug.
|
|
|
|
## Decisions
|
|
Decision notes live in `decisions/by-date/YYYY-MM-DD-<slug>.md`. `decisions/by-project/` is **deprecated** — instead, mirror a project-relevant decision as a `[[wikilink]]` under that project's `## Key Decisions` heading.
|
|
|
|
## 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.
|