obsidian-workspace/skills/init/SKILL.md
Interactively create .obsidian.yaml for a project and install starter templates (task / doc / adr) into the vault's Templates folder. Skips templates that already exist; never overwrites.
npx skillsauth add musingfox/cc-plugins initInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Initialise the project's Obsidian Workspace configuration and seed starter templates.
Handle existing config — if .obsidian.yaml exists in the project root, show a one-line summary (vault name + project) and ask whether to overwrite.
Pick a vault — list vaults from Obsidian's config and ask the user:
cat ~/Library/Application\ Support/obsidian/obsidian.json \
| jq -r '.vaults | to_entries[] | "\(.key)\t\(.value.path)"'
(Linux: ~/.config/obsidian/obsidian.json; Windows: %APPDATA%\obsidian\obsidian.json.) Resolve $VAULT_PATH from the chosen entry.
Ask config options (via AskUserQuestion):
/obw:pm? (default = current directory basename; allow "skip" to omit the pm section)/obw:note? (default Inbox)/obw:note? options: title / slug / timestamp-titleMention: daily note folder / filename / template are configured in Obsidian's Daily Notes core plugin, not here. /obw:cap always prepends HH:MM and writes #tag tokens inline (Obsidian indexes them automatically).
Install starter templates — read the Templates folder from $VAULT_PATH/.obsidian/templates.json:
TF=$(jq -r .folder "$VAULT_PATH/.obsidian/templates.json" 2>/dev/null)
.obsidian/templates.json is missing → tell the user to enable the Templates core plugin in Obsidian, then re-run /obw:init. Stop.TF means vault root; otherwise mkdir -p "$VAULT_PATH/$TF".task.md, doc.md, adr.md:
[ -e "$VAULT_PATH/$TF/task.md" ] || cp "${CLAUDE_PLUGIN_ROOT}/templates/task.md" "$VAULT_PATH/$TF/task.md"
Never overwrite existing templates. Do not read template contents into the conversation — cp is enough.Write .obsidian.yaml using the template below. Omit the pm section if skipped.
Offer .gitignore entry — ask whether to add .obsidian.yaml to .gitignore.
# Obsidian Workspace configuration
vault: <VAULT_NAME>
note:
default_folder: Inbox
filename_strategy: title # title | slug | timestamp-title
pm:
project: <PROJECT_NAME>
Return a summary in this shape:
.obsidian.yaml created (vault=<NAME>, project=<PROJ>).
Templates installed to <TF>/: task.md, doc.md, adr.md (only the missing ones).
Next:
/obw:cap <text> — quick capture to today's daily note
/obw:note <title> — create a long-form note
/obw:pm — task / doc / ADR management
data-ai
Unified entry point for Obsidian daily-note captures and long-form notes. Triggers on "記一下 / log / 紀錄 / capture this / 寫到 journal" (→ cap mode) and "建立筆記 / new note / 寫一份筆記 / create a note on" (→ note mode). Also via `/obw:cap` and `/obw:note`. Requires `.obsidian.yaml`.
tools
Use the `gog` CLI to operate Google Workspace — Gmail (read/search/send/labels/drafts), Calendar (events/RSVP/freebusy/focus-time/out-of-office), and Drive (list/search/upload/ download/share/move). Triggers on any Gmail, inbox, email, calendar, agenda, meeting, schedule, RSVP, Drive, Google Doc/Sheet/Slides, file share, or upload/download request.
tools
Manage project hook-guard installation — set up, diagnose, or update Claude Code hooks, git pre-commit, and commit-msg scripts with security checks, code-quality gates, and CLAUDECODE skip logic. Triggers on "set up hooks", "configure pre-commit", "add linting hooks", "initialize hook-guard", "check hooks", "hook doctor", "verify hook setup", "troubleshoot hooks", "update hooks", "regenerate hooks", "sync hooks with current tools", or similar requests.
development
Render markdown or Mermaid content as formatted HTML in the browser. Triggers when the user asks to view, render, or preview a document as HTML; when the user asks to visualize, diagram, chart, or draw architecture, flows, sequence/class/state/ER diagrams; when resolving plan files from ~/.claude/plans/; or proactively when about to output a table with 4+ rows or 3+ columns, a structured comparison, an audit, a feature matrix, or any formatted content exceeding ~50 lines in the terminal.