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>
116 lines
3.7 KiB
Markdown
116 lines
3.7 KiB
Markdown
---
|
|
name: save
|
|
description: >
|
|
Save the current conversation, answer, or insight into the Obsidian wiki vault as a
|
|
structured note. Analyzes the chat, determines the right note type, creates frontmatter,
|
|
files it in the correct wiki folder, and updates index, log, and hot cache.
|
|
Triggers on: "save this", "save that answer", "/save", "file this",
|
|
"save to wiki", "save this session", "file this conversation", "keep this",
|
|
"save this analysis", "add this to the wiki".
|
|
---
|
|
|
|
# save: File Conversations Into the Wiki
|
|
|
|
Good answers and insights shouldn't disappear into chat history. This skill takes what was just discussed and files it as a permanent wiki page.
|
|
|
|
The wiki compounds. Save often.
|
|
|
|
---
|
|
|
|
## Note Type Decision
|
|
|
|
Determine the best type from the conversation content:
|
|
|
|
| Type | Folder | Use when |
|
|
|------|--------|---------|
|
|
| synthesis | wiki/questions/ | Multi-step analysis, comparison, or answer to a specific question |
|
|
| concept | wiki/concepts/ | Explaining or defining an idea, pattern, or framework |
|
|
| source | wiki/sources/ | Summary of external material discussed in the session |
|
|
| decision | wiki/meta/ | Architectural, project, or strategic decision that was made |
|
|
| session | wiki/meta/ | Full session summary: captures everything discussed |
|
|
|
|
If the user specifies a type, use that. If not, pick the best fit based on the content. When in doubt, use `synthesis`.
|
|
|
|
---
|
|
|
|
## Save Workflow
|
|
|
|
1. **Scan** the current conversation. Identify the most valuable content to preserve.
|
|
2. **Ask** (if not already named): "What should I call this note?" Keep the name short and descriptive.
|
|
3. **Determine** note type using the table above.
|
|
4. **Extract** all relevant content from the conversation. Rewrite it in declarative present tense (not "the user asked" but the actual content itself).
|
|
5. **Create** the note in the correct folder with full frontmatter.
|
|
6. **Collect links**: identify any wiki pages mentioned in the conversation. Add them to `related` in frontmatter.
|
|
7. **Update** `wiki/index.md`. Add the new entry at the top of the relevant section.
|
|
8. **Append** to `wiki/log.md`. New entry at the TOP:
|
|
```
|
|
## [YYYY-MM-DD] save | Note Title
|
|
- Type: [note type]
|
|
- Location: wiki/[folder]/Note Title.md
|
|
- From: conversation on [brief topic description]
|
|
```
|
|
9. **Update** `wiki/hot.md` to reflect the new addition.
|
|
10. **Confirm**: "Saved as [[Note Title]] in wiki/[folder]/."
|
|
|
|
---
|
|
|
|
## Frontmatter Template
|
|
|
|
```yaml
|
|
---
|
|
type: <synthesis|concept|source|decision|session>
|
|
title: "Note Title"
|
|
created: YYYY-MM-DD
|
|
updated: YYYY-MM-DD
|
|
tags:
|
|
- <relevant-tag>
|
|
status: developing
|
|
related:
|
|
- "[[Any Wiki Page Mentioned]]"
|
|
sources:
|
|
- "[[.raw/source-if-applicable.md]]"
|
|
---
|
|
```
|
|
|
|
For `question` type, add:
|
|
```yaml
|
|
question: "The original query as asked."
|
|
answer_quality: solid
|
|
```
|
|
|
|
For `decision` type, add:
|
|
```yaml
|
|
decision_date: YYYY-MM-DD
|
|
status: active
|
|
```
|
|
|
|
---
|
|
|
|
## Writing Style
|
|
|
|
- Declarative, present tense. Write the knowledge, not the conversation.
|
|
- Not: "The user asked about X and Claude explained..."
|
|
- Yes: "X works by doing Y. The key insight is Z."
|
|
- Include all relevant context. Future sessions should be able to read this page cold.
|
|
- Link every mentioned concept, entity, or wiki page with wikilinks.
|
|
- Cite sources where applicable: `(Source: [[Page]])`.
|
|
|
|
---
|
|
|
|
## What to Save vs. Skip
|
|
|
|
Save:
|
|
- Non-obvious insights or synthesis
|
|
- Decisions with rationale
|
|
- Analyses that took significant effort
|
|
- Comparisons that are likely to be referenced again
|
|
- Research findings
|
|
|
|
Skip:
|
|
- Mechanical Q&A (lookup questions with obvious answers)
|
|
- Setup steps already documented elsewhere
|
|
- Temporary debugging sessions with no lasting insight
|
|
- Anything already in the wiki
|
|
|
|
If it's already in the wiki, update the existing page instead of creating a duplicate.
|