From onebrain
Migrate vault structure : either full 5-folder → 8-folder migration, or subfolder organization for flat notes
npx claudepluginhub kengio/onebrain --plugin onebrainThis skill uses the workspace's default tool permissions.
This skill handles two scenarios:
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Performs token-optimized structural code search using tree-sitter AST parsing to discover symbols, outline files, and unfold code without reading full files.
This skill handles two scenarios:
02-areas/, 04-resources/, 05-agent/, renumbers archive/logs. Run this if your vault was set up before the 8-folder layout.Check vault version: Read vault.yml. If the folders.areas key is absent, this vault uses the old structure and needs full migration : run the Full Migration section first. If folders.areas is present, skip to the Subfolder Migration section.
Important: Obsidian wikilinks ([[Note Name]]) resolve by filename regardless of path : moving files does NOT break any existing links in your vault.
Only run if vault.yml is missing folders.areas.
02-areas/, 04-resources/, 05-agent/context/, 05-agent/memory/03-archive/ → 06-archive/: move all contents preserving YYYY/MM/ structure04-logs/ → 07-logs/: move all contents preserving YYYY/MM/ structure02-knowledge/ notes:
research, summary, or reference in frontmatter → move to 04-resources/[same subfolder]source: field matching /research, /summarize, or /reading-notes → move to 04-resources/[same subfolder]03-knowledge/ (treat as synthesized content)README.md into each new root folder (content from .claude/plugins/onebrain/skills/onboarding/SKILL.md Step 10b)vault.yml with all 8 keys:
method: onebrain
folders:
inbox: 00-inbox
projects: 01-projects
areas: 02-areas
knowledge: 03-knowledge
resources: 04-resources
agent: 05-agent
archive: 06-archive
logs: 07-logs
04-resources/, files kept in 03-knowledge/, files needing manual reviewMove existing flat notes into category-based subfolders (kebab-case, max 2 levels). Run this once after upgrading to a version of OneBrain that uses subfolders.
Find notes that are directly in a top-level folder (not already in a subfolder):
01-projects/*.md : glob top-level only (not 01-projects/**/*.md)02-areas/*.md : glob top-level only03-knowledge/*.md : glob top-level only04-resources/*.md : glob top-level only07-logs/*.md : flat session log files not yet in a YYYY/MM/ subfolderAlso check 06-archive/*.md for any flat archive files.
Exclude .gitkeep files.
Report:
Found N notes to organize:
03-knowledge/: N notes04-resources/: N notes02-areas/: N notes01-projects/: N notes07-logs/: N session logs06-archive/: N archive files
If nothing is found, say:
Your vault is already organized into subfolders : nothing to do!
For each note, analyze its content and frontmatter to suggest a subfolder:
For 03-knowledge/, 04-resources/, 02-areas/, and 01-projects/ notes:
programming/python, health/fitness)For 07-logs/ session log files:
YYYY and MM from the filename (YYYY-MM-DD-session-NN.md)YYYY/MM as the subfolderFor 06-archive/ flat files:
YYYY/MMcreated: frontmatter if present and use that date insteadPresent the full migration plan as a table:
## Proposed Reorganization
### 03-knowledge/ (N notes)
| Note | → Subfolder |
|------|------------|
| Machine Learning.md | → technology/ai |
| Sleep Optimization.md | → health |
### 04-resources/ (N notes)
| Note | → Subfolder |
|------|------------|
| Python Basics.md | → programming/python |
### 01-projects/ (N notes)
| Note | → Subfolder |
|------|------------|
| Website Redesign.md | → web-development |
### 07-logs/ (N session logs)
| File | → Subfolder |
|------|------------|
| 2026-01-15-session-01.md | → 2026/01 |
| 2026-02-03-session-01.md | → 2026/02 |
Say:
Does this look right? You can:
- Approve all : move everything as proposed
- Adjust a note : tell me the note name and where to put it instead
- Skip a note : tell me which ones to leave in place
- Cancel : do nothing
Wait for response. Apply any requested adjustments before proceeding.
For each approved move:
mkdir -p [target_folder]/[subfolder])mv "[source_path]" "[target_path]"Process notes by folder (all knowledge, then resources, then areas, then projects, then logs, then archive).
Report:
Reorganization complete!
- Moved N notes in
03-knowledge/into N subfolders- Moved N notes in
04-resources/into N subfolders- Moved N notes in
02-areas/into N subfolders- Moved N notes in
01-projects/into N subfolders- Moved N session logs in
07-logs/into YYYY/MM folders- Moved N files in
06-archive/into YYYY/MM folders- Skipped N notes (left in place)
All existing wikilinks (
[[Note Name]]) still work : Obsidian resolves links by filename, not path.Want to run
/connectto find new connections between your organized notes?