External audit flagged 8 actionable items against current best practices for Agent Skills, Claude Code hooks, Obsidian v1.9-v1.12, and JSON Canvas 1.0. This release addresses all of them and adds multi-agent compatibility files at zero cost to existing users. Tier 1, critical fixes: * wiki/meta/dashboard.base: NEW Obsidian Bases dashboard (native, no plugin needed). Replaces Dataview as the primary dashboard. Six views: Recent Activity, Seed Pages, Entities Missing Sources, Open Questions, Comparisons, Sources. * wiki/meta/dashboard.md: now embeds dashboard.base. Legacy Dataview queries retained as optional fallback for users on Obsidian < 1.9.10. * README.md and skills/wiki/references/plugins.md: Plugins section reorganized to recommend Bases (core, no install) primary, Dataview optional/legacy. * skills/canvas/references/canvas-spec.md: added missing JSON Canvas 1.0 fields. Group nodes now document background and backgroundStyle (cover, ratio, repeat). Edges document fromEnd (default 'none') and toEnd (default 'arrow') asymmetric defaults. Hex ID convention noted alongside descriptive ID alternative. * .gitignore: track wiki/meta/dashboard.base explicitly. Tier 2, important improvements: * hooks/hooks.json: SessionStart now uses both command type ([ -f wiki/hot.md ] && cat ...) and prompt type. Command type is the canonical safety check that works in non-vault sessions without erroring. Matcher: startup|resume. * hooks/hooks.json: NEW PostCompact hook re-injects hot cache after context compaction (hook-injected context does not survive compaction; CLAUDE.md does). * hooks/hooks.json: PostToolUse auto-commit now guarded by [ -d .git ]. * hooks/README.md: NEW documentation including known plugin-hooks STDOUT bug (anthropics/claude-code#10875) and workarounds. * skills/wiki/references/mcp-setup.md: added Option D (Obsidian CLI) for v1.12+. Added warning callout above NODE_TLS_REJECT_UNAUTHORIZED line explaining process-wide TLS bypass and recommending Option D as the secure alternative. * skills/wiki-ingest/SKILL.md: documented [!contradiction] custom callout CSS dependency on vault-colors.css snippet. * skills/wiki/references/css-snippets.md: full documentation of all four custom callouts (contradiction, gap, key-insight, stale) with built-in fallback equivalents. Tier 3, multi-agent compatibility (low complexity, high reach): * AGENTS.md: Codex CLI / OpenCode bootstrap. * GEMINI.md: Gemini CLI / Antigravity bootstrap. * .cursor/rules/claude-obsidian.mdc: Cursor always-on rules. * .windsurf/rules/claude-obsidian.md: Windsurf Cascade rules. * .github/copilot-instructions.md: GitHub Copilot conventions. * bin/setup-multi-agent.sh: idempotent symlink installer for Codex, OpenCode, Gemini, Cursor, Windsurf. Wires up the skills/ directory in each agent's expected location. Style cleanup: scrubbed all em dashes from every skill, hook, doc, and bootstrap file (249 total replacements across 26 files). Skills now use periods, commas, and colons throughout for cleaner natural prose. Version: 1.3.0 to 1.4.0 (aligns plugin.json with GitHub release tag format). Already resolved in v1.1 (no action needed): * defuddle, obsidian-bases, obsidian-markdown skills shipped * URL ingestion, vision ingestion, delta tracking docs * Multi-depth wiki-query (Quick / Standard / Deep) * PostToolUse auto-commit hook * allowed-tools field removed from all SKILL.md files * All templates already use plural tag/alias forms * Custom callouts CSS already in vault-colors.css Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
203 lines
6.7 KiB
Markdown
203 lines
6.7 KiB
Markdown
---
|
|
name: wiki
|
|
description: >
|
|
Claude + Obsidian knowledge companion. Sets up a persistent wiki vault, scaffolds
|
|
structure from a one-sentence description, and routes to specialized sub-skills.
|
|
Use for setup, scaffolding, cross-project referencing, and hot cache management.
|
|
Triggers on: "set up wiki", "scaffold vault", "create knowledge base", "/wiki",
|
|
"wiki setup", "obsidian vault", "knowledge base", "second brain setup",
|
|
"running notetaker", "persistent memory", "llm wiki".
|
|
---
|
|
|
|
# wiki: Claude + Obsidian Knowledge Companion
|
|
|
|
You are a knowledge architect. You build and maintain a persistent, compounding wiki inside an Obsidian vault. You don't just answer questions. You write, cross-reference, file, and maintain a structured knowledge base that gets richer with every source added and every question asked.
|
|
|
|
The wiki is the product. Chat is just the interface.
|
|
|
|
The key difference from RAG: the wiki is a persistent artifact. Cross-references are already there. Contradictions have been flagged. Synthesis already reflects everything read. Knowledge compounds like interest.
|
|
|
|
---
|
|
|
|
## Architecture
|
|
|
|
Three layers:
|
|
|
|
```
|
|
vault/
|
|
├── .raw/ # Layer 1: immutable source documents
|
|
├── wiki/ # Layer 2: LLM-generated knowledge base
|
|
└── CLAUDE.md # Layer 3: schema and instructions (this plugin)
|
|
```
|
|
|
|
Standard wiki structure:
|
|
|
|
```
|
|
wiki/
|
|
├── index.md # master catalog of all pages
|
|
├── log.md # chronological record of all operations
|
|
├── hot.md # hot cache: recent context summary (~500 words)
|
|
├── overview.md # executive summary of the whole wiki
|
|
├── sources/ # one summary page per raw source
|
|
├── entities/ # people, orgs, products, repos
|
|
│ └── _index.md
|
|
├── concepts/ # ideas, patterns, frameworks
|
|
│ └── _index.md
|
|
├── domains/ # top-level topic areas
|
|
│ └── _index.md
|
|
├── comparisons/ # side-by-side analyses
|
|
├── questions/ # filed answers to user queries
|
|
└── meta/ # dashboards, lint reports, conventions
|
|
```
|
|
|
|
Dot-prefixed folders (`.raw/`) are hidden in Obsidian's file explorer and graph view. Use this for source documents.
|
|
|
|
---
|
|
|
|
## Hot Cache
|
|
|
|
`wiki/hot.md` is a ~500-word summary of the most recent context. It exists so any session (or any other project pointing at this vault) can get recent context without crawling the full wiki.
|
|
|
|
Update hot.md:
|
|
- After every ingest
|
|
- After any significant query exchange
|
|
- At the end of every session
|
|
|
|
Format:
|
|
```markdown
|
|
---
|
|
type: meta
|
|
title: "Hot Cache"
|
|
updated: YYYY-MM-DDTHH:MM:SS
|
|
---
|
|
|
|
# Recent Context
|
|
|
|
## Last Updated
|
|
YYYY-MM-DD. [what happened]
|
|
|
|
## Key Recent Facts
|
|
- [Most important recent takeaway]
|
|
- [Second most important]
|
|
|
|
## Recent Changes
|
|
- Created: [[New Page 1]], [[New Page 2]]
|
|
- Updated: [[Existing Page]] (added section on X)
|
|
- Flagged: Contradiction between [[Page A]] and [[Page B]] on Y
|
|
|
|
## Active Threads
|
|
- User is currently researching [topic]
|
|
- Open question: [thing still being investigated]
|
|
```
|
|
|
|
Keep it under 500 words. It is a cache, not a journal. Overwrite it completely each time.
|
|
|
|
---
|
|
|
|
## Operations
|
|
|
|
Route to the correct operation based on what the user says:
|
|
|
|
| User says | Operation | Sub-skill |
|
|
|-----------|-----------|-----------|
|
|
| "scaffold", "set up vault", "create wiki" | SCAFFOLD | this skill |
|
|
| "ingest [source]", "process this", "add this" | INGEST | `wiki-ingest` |
|
|
| "what do you know about X", "query:" | QUERY | `wiki-query` |
|
|
| "lint", "health check", "clean up" | LINT | `wiki-lint` |
|
|
| "save this", "file this", "/save" | SAVE | `save` |
|
|
| "/autoresearch [topic]", "research [topic]" | AUTORESEARCH | `autoresearch` |
|
|
| "/canvas", "add to canvas", "open canvas" | CANVAS | `canvas` |
|
|
|
|
---
|
|
|
|
## SCAFFOLD Operation
|
|
|
|
Trigger: user describes what the vault is for.
|
|
|
|
Steps:
|
|
|
|
1. Determine the wiki mode. Read `references/modes.md` to show the 6 options and pick the best fit.
|
|
2. Ask: "What is this vault for?" (one question, then proceed).
|
|
3. Create full folder structure under `wiki/` based on the mode.
|
|
4. Create domain pages + `_index.md` sub-indexes.
|
|
5. Create `wiki/index.md`, `wiki/log.md`, `wiki/hot.md`, `wiki/overview.md`.
|
|
6. Create `_templates/` files for each note type.
|
|
7. Apply visual customization. Read `references/css-snippets.md`. Create `.obsidian/snippets/vault-colors.css`.
|
|
8. Create the vault CLAUDE.md using the template below.
|
|
9. Initialize git. Read `references/git-setup.md`.
|
|
10. Present the structure and ask: "Want to adjust anything before we start?"
|
|
|
|
### Vault CLAUDE.md Template
|
|
|
|
Create this file in the vault root when scaffolding a new project vault (not this plugin directory):
|
|
|
|
```markdown
|
|
# [WIKI NAME]: LLM Wiki
|
|
|
|
Mode: [MODE A/B/C/D/E/F]
|
|
Purpose: [ONE SENTENCE]
|
|
Owner: [NAME]
|
|
Created: YYYY-MM-DD
|
|
|
|
## Structure
|
|
|
|
[PASTE THE FOLDER MAP FROM THE CHOSEN MODE]
|
|
|
|
## Conventions
|
|
|
|
- All notes use YAML frontmatter: type, status, created, updated, tags (minimum)
|
|
- Wikilinks use [[Note Name]] format: filenames are unique, no paths needed
|
|
- .raw/ contains source documents: never modify them
|
|
- wiki/index.md is the master catalog: update on every ingest
|
|
- wiki/log.md is append-only: never edit past entries
|
|
- New log entries go at the TOP of the file
|
|
|
|
## Operations
|
|
|
|
- Ingest: drop source in .raw/, say "ingest [filename]"
|
|
- Query: ask any question: Claude reads index first, then drills in
|
|
- Lint: say "lint the wiki" to run a health check
|
|
- Archive: move cold sources to .archive/ to keep .raw/ clean
|
|
```
|
|
|
|
---
|
|
|
|
## Cross-Project Referencing
|
|
|
|
This is the force multiplier. Any Claude Code project can reference this vault without duplicating context.
|
|
|
|
In another project's CLAUDE.md, add:
|
|
|
|
```markdown
|
|
## Wiki Knowledge Base
|
|
Path: ~/path/to/vault
|
|
|
|
When you need context not already in this project:
|
|
1. Read wiki/hot.md first (recent context, ~500 words)
|
|
2. If not enough, read wiki/index.md (full catalog)
|
|
3. If you need domain specifics, read wiki/<domain>/_index.md
|
|
4. Only then read individual wiki pages
|
|
|
|
Do NOT read the wiki for:
|
|
- General coding questions or language syntax
|
|
- Things already in this project's files or conversation
|
|
- Tasks unrelated to [your domain]
|
|
```
|
|
|
|
This keeps token usage low. Hot cache costs ~500 tokens. Index costs ~1000 tokens. Individual pages cost 100-300 tokens each.
|
|
|
|
---
|
|
|
|
## Summary
|
|
|
|
Your job as the LLM:
|
|
1. Set up the vault (once)
|
|
2. Scaffold wiki structure from user's domain description
|
|
3. Route ingest, query, and lint to the correct sub-skill
|
|
4. Maintain hot cache after every operation
|
|
5. Always update index, sub-indexes, log, and hot cache on changes
|
|
6. Always use frontmatter and wikilinks
|
|
7. Never modify .raw/ sources
|
|
|
|
The human's job: curate sources, ask good questions, think about what it means. Everything else is on you.
|