From spine
Creates or adopts an Obsidian vault with Spine Architecture conventions, including graph color config, structure, and config file. One-time setup per vault.
How this skill is triggered — by the user, by Claude, or both
Slash command
/spine:spine-initThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Initialize a new Spine Architecture vault, or adopt an existing Obsidian vault into the Spine conventions.
Initialize a new Spine Architecture vault, or adopt an existing Obsidian vault into the Spine conventions.
Spine uses a config chain to find the vault:
$SPINE_VAULT_PATH environment variable~/.spine/config.json → { "vaultPath": "..." }~/Documents/SpineVault/If $ARGUMENTS is provided, use it as the vault path. Otherwise, check the config chain for an existing path. If none found, ask the user.
Check if the path already contains an Obsidian vault (.obsidian/ directory) or markdown files:
~/.spine/config.json."
tier3: truetier3: false~/.spine/config.json:
{ "vaultPath": "/absolute/path/to/vault", "tier3": false }
.obsidian/graph.json with color groups:
{
"collapse-filter": true,
"search": "",
"showTags": false,
"showAttachments": false,
"hideUnresolved": false,
"showOrphans": true,
"collapse-color-groups": false,
"colorGroups": [
{ "query": "tag:#type/spine", "color": { "a": 1, "rgb": 3381759 } },
{ "query": "tag:#type/fix", "color": { "a": 1, "rgb": 14495282 } },
{ "query": "tag:#type/feature", "color": { "a": 1, "rgb": 4439473 } },
{ "query": "tag:#type/architecture", "color": { "a": 1, "rgb": 10170623 } },
{ "query": "tag:#type/plan", "color": { "a": 1, "rgb": 16750848 } },
{ "query": "tag:#type/decision", "color": { "a": 1, "rgb": 16776960 } },
{ "query": "tag:#type/meta", "color": { "a": 1, "rgb": 10066329 } }
],
"collapse-display": true,
"showArrow": false,
"textFadeMultiplier": 0,
"nodeSizeMultiplier": 1,
"lineSizeMultiplier": 1,
"collapse-forces": true,
"centerStrength": 0.5,
"repelStrength": 10,
"linkStrength": 1,
"linkDistance": 250,
"scale": 1.6,
"close": true
}
Spine Architecture.md at the vault root:
---
tags:
- type/meta
---
# Spine Architecture
A knowledge management system that bridges Claude Code's memory with this Obsidian vault, organizing project knowledge as a navigable graph tree.
## Structure
{vault}/
└─ {repo}/
└─ {feature}/
├─ {Feature}.md ← spine note (overview, wikilinks to all children)
├─ Fix - {description}.md
├─ Feature - {description}.md
├─ Architecture - {description}.md
├─ Plan - {description}.md
└─ Decision - {description}.md
## Navigation
Claude Memory → Feature Signpost → Spine Note → Specific Doc
## Conventions
- **Repo-first** hierarchy separates concerns across codebases
- **Feature-first** grouping within each repo keeps related knowledge together
- **Spine notes** are the entry point — read the spine to understand a feature before diving in
- **Naming convention** (`Fix -`, `Feature -`, `Architecture -`, `Plan -`, `Decision -`) keeps the tree shallow
- **Type tags** (`type/spine`, `type/fix`, `type/feature`, `type/architecture`, `type/plan`, `type/decision`) drive graph coloring
- **Cross-repo features** link to each other via `[[wikilinks]]`
basename $(git remote get-url origin 2>/dev/null) .git or the current directory name{vault}/{repo}/---
title: {Feature} — {repo}
tags:
- {repo}
- {feature-kebab-case}
- type/spine
---
# {Feature} ({repo})
{Brief description — ask user or derive from context}
## Fixes
## Features
## Architecture
## Plans
## Decisions
~/.spine/config.json pointing to the existing vault{Feature}.md at the feature folder level).obsidian/graph.json — if missing or missing color groups, create/patch ittype/* frontmatter tagsAdopted existing vault at {path}
Found: {n} repos, {n} features, {n} docs
- {n} docs with correct type tags
- {n} docs missing type tags (run /spine-health to fix)
- Graph colors: {configured/added}
Print:
Spine vault ready at {path}
Next steps:
1. Open {path} in Obsidian (File → Open Vault → choose folder)
2. Press Cmd+G to see the color-coded knowledge graph
3. Use /spine-capture after completing work to add docs
4. Use /spine-health periodically to audit vault health
5. (Optional) Add the status line segment — see docs/status-line.md
After initialization completes, emit a structured observation block.
spine_init_result:
status: success | partial | error
mode: fresh | adopt
summary: "Fresh vault created at ~/Documents/SpineVault with 1 repo, 1 feature"
created:
- { type: "directory", path: "~/Documents/SpineVault/" }
- { type: "directory", path: "~/Documents/SpineVault/spine/" }
- { type: "config", path: "~/.spine/config.json" }
- { type: "graph", path: ".obsidian/graph.json" }
- { type: "meta", path: "Spine Architecture.md" }
- { type: "spine_note", path: "spine/Tier 3 Curator/Tier 3 Curator.md" }
adopted:
repos: 0
features: 0
docs: 0
tags_missing: 0
next_actions:
- { action: "open Obsidian", path: "~/Documents/SpineVault/" }
- { action: "/spine-capture", reason: "start documenting current work" }
recovery_hint: null
Status values:
success — vault fully initialized, all files createdpartial — vault created but some steps skipped (e.g., no git repo detected, user skipped feature creation)error — init failed (permissions, disk space) — include recovery_hintMode: fresh when creating a new vault, adopt when integrating an existing Obsidian vault. The adopted fields are only populated in adopt mode; created is only populated in fresh mode.
npx claudepluginhub nodewarrior/spine --plugin spineInitializes any folder as a Bedrock-powered Obsidian vault by creating entity directories, copying templates, configuring language/domain taxonomy, scaffolding example entities, and checking dependencies. Use for 'bedrock setup' or new vault bootstrapping.
Scaffolds a complete Obsidian vault from scratch using the obsidian-master-kit opinionated folder structure, with CLAUDE.md, _INDEX.md, MOCs, and templates. Conducts a short interview in pt-br and is idempotent.
Scaffolds an agent-ready Obsidian Zettelkasten vault with directories, templates, CLAUDE.md, MCP config, and git init.