- Add claude-md-guardian agent with SessionStart hook for auto CLAUDE.md maintenance - Add 6 thinking commands: /my-world, /emerge, /challenge, /connect, /today, /close - Add my-world skill for one-shot vault context loading - Fix command injection vulnerability in init-vault.sh (use env vars) - Add error handling and logging to vault-sync.sh - Update write-article skill with complete frontmatter fields - Upgrade CLAUDE.md to v1.3.0 with cycle time tracking and exit criteria Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
105 lines
2.6 KiB
Markdown
105 lines
2.6 KiB
Markdown
---
|
|
name: my-world
|
|
description: "One-shot context loader for the content-forge Obsidian vault. This skill should be used at the start of any Claude Code session to load the user's projects, topics, drafts, knowledge graph, and current priorities into context. Replaces repeated re-explanation of who the user is and what they're working on."
|
|
---
|
|
|
|
# /my-world — Load My World
|
|
|
|
Load the entire content-forge vault context into the current session in one shot.
|
|
|
|
## When to Use
|
|
|
|
Run at the start of any session that involves content creation, vault operations, or when needing awareness of current projects and priorities.
|
|
|
|
## What It Does
|
|
|
|
1. Read vault stats (file count, tags, recent activity)
|
|
2. Scan all active content (topics, drafts, in-review)
|
|
3. Map the knowledge graph (backlinks, wikilinks, orphans)
|
|
4. Surface current priorities and blockers
|
|
5. Present a concise world-view summary
|
|
|
|
## Important: Vault Directory
|
|
|
|
All `obsidian` CLI commands must run from within the vault directory to auto-detect the vault:
|
|
|
|
```bash
|
|
cd /home/kang/apps/content-forge/content-forge
|
|
```
|
|
|
|
Run all subsequent commands after this `cd`. The `vault=` parameter is unreliable; directory-based detection is the correct approach.
|
|
|
|
## Execution Steps
|
|
|
|
### Step 1: Vault Health
|
|
|
|
```bash
|
|
cd /home/kang/apps/content-forge/content-forge
|
|
obsidian vault
|
|
obsidian files total
|
|
obsidian tags counts sort=count
|
|
```
|
|
|
|
### Step 2: Active Content Pipeline
|
|
|
|
Scan each pipeline stage for active items:
|
|
|
|
```bash
|
|
obsidian files folder="00-inbox"
|
|
obsidian files folder="01-topics"
|
|
obsidian files folder="02-drafts"
|
|
obsidian files folder="03-review"
|
|
obsidian files folder="04-published"
|
|
```
|
|
|
|
For each file found, read its frontmatter to extract `title`, `status`, `content_type`, `channels`:
|
|
|
|
```bash
|
|
obsidian properties path="<file-path>"
|
|
```
|
|
|
|
### Step 3: Knowledge Graph
|
|
|
|
```bash
|
|
obsidian orphans
|
|
obsidian deadends
|
|
obsidian unresolved
|
|
```
|
|
|
|
### Step 4: Recent Activity
|
|
|
|
```bash
|
|
obsidian recents
|
|
```
|
|
|
|
### Step 5: Summarize
|
|
|
|
Present a concise summary in this format:
|
|
|
|
```
|
|
=== My World ===
|
|
|
|
Vault: content-forge (X files, Y tags)
|
|
|
|
Pipeline:
|
|
inbox: N items
|
|
topics: N items (list titles)
|
|
drafts: N items (list titles + status)
|
|
review: N items (list titles)
|
|
published: N items total
|
|
|
|
Knowledge Graph:
|
|
Orphans: N (notes with no incoming links)
|
|
Dead ends: N (notes with no outgoing links)
|
|
Unresolved: N (broken [[wikilinks]])
|
|
|
|
Recent: (last 5 files touched)
|
|
|
|
Priorities:
|
|
- (inferred from draft/review status and recency)
|
|
```
|
|
|
|
## Output
|
|
|
|
A structured world-view that gives full context for the session. No files are written — this is read-only.
|