Compare commits
10 Commits
c2ee446009
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ef1e4da2f3 | ||
|
|
5f0444fe5f | ||
|
|
b2151c075a | ||
|
|
bb7a9960ce | ||
|
|
31217feacb | ||
|
|
3e868eb7e9 | ||
|
|
b0d7251751 | ||
|
|
859c1d4431 | ||
|
|
9b3356301e | ||
|
|
1a128f071f |
116
CONTRIBUTING.md
Normal file
116
CONTRIBUTING.md
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
# Contributing to Obsidian + Claude Code PKM
|
||||||
|
|
||||||
|
Thanks for your interest in contributing! This project aims to be the best AI-powered accountability system for Obsidian, and community contributions make it better for everyone.
|
||||||
|
|
||||||
|
## Ways to Contribute
|
||||||
|
|
||||||
|
### Report Bugs
|
||||||
|
- Open an [issue](https://github.com/ballred/obsidian-claude-pkm/issues/new) with steps to reproduce
|
||||||
|
- Include your OS, Claude Code version, and relevant vault structure
|
||||||
|
|
||||||
|
### Suggest Features
|
||||||
|
- Open an issue with the `enhancement` label
|
||||||
|
- Describe the problem you're solving, not just the solution
|
||||||
|
- Bonus: explain how it connects to the goal cascade
|
||||||
|
|
||||||
|
### Submit Code
|
||||||
|
1. Fork the repo
|
||||||
|
2. Create a feature branch (`git checkout -b feature/my-improvement`)
|
||||||
|
3. Make your changes in `vault-template/`
|
||||||
|
4. Test by copying to a fresh vault and running the affected skills
|
||||||
|
5. Commit with a clear message
|
||||||
|
6. Open a PR against `main`
|
||||||
|
|
||||||
|
### Improve Documentation
|
||||||
|
- Fix typos, clarify instructions, add examples
|
||||||
|
- Documentation PRs are always welcome and easy to review
|
||||||
|
|
||||||
|
## Good First Issues
|
||||||
|
|
||||||
|
Look for issues labeled [`good first issue`](https://github.com/ballred/obsidian-claude-pkm/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22). These are scoped tasks that don't require deep knowledge of the full system.
|
||||||
|
|
||||||
|
Good candidates for first contributions:
|
||||||
|
- **New goal templates** — Add alternative goal structures (OKRs, SMART goals, theme-based)
|
||||||
|
- **New output styles** — Create personas beyond Productivity Coach (Socratic tutor, stoic mentor, etc.)
|
||||||
|
- **Template variations** — Alternative daily/weekly note formats
|
||||||
|
- **Documentation** — Improve setup guides, add workflow examples, fix unclear instructions
|
||||||
|
- **Rule files** — Add new path-specific conventions (e.g., health tracking, learning logs)
|
||||||
|
|
||||||
|
## Architecture Overview
|
||||||
|
|
||||||
|
Understanding the system helps you contribute effectively:
|
||||||
|
|
||||||
|
```
|
||||||
|
vault-template/
|
||||||
|
├── .claude/
|
||||||
|
│ ├── skills/ # Slash commands — each has a SKILL.md
|
||||||
|
│ │ # user-invocable: true → shows in /skill-name
|
||||||
|
│ │ # user-invocable: false → auto-triggered
|
||||||
|
│ ├── agents/ # Multi-turn personas with memory
|
||||||
|
│ ├── hooks/ # Bash scripts triggered by events
|
||||||
|
│ ├── rules/ # Always-loaded context conventions
|
||||||
|
│ ├── output-styles/ # Tone/persona configurations
|
||||||
|
│ └── settings.json # Permissions, env vars, hook config
|
||||||
|
├── Goals/ # The cascade files
|
||||||
|
├── Templates/ # Note templates
|
||||||
|
└── CLAUDE.md # Root context file
|
||||||
|
```
|
||||||
|
|
||||||
|
### Key Design Principles
|
||||||
|
|
||||||
|
1. **Zero dependencies** — No npm, no Python, no external tools. Everything is bash + markdown. This is intentional — keep it that way.
|
||||||
|
|
||||||
|
2. **The cascade is the moat** — Every feature should strengthen the connection between goals → projects → daily tasks. If a feature doesn't connect to the cascade, it probably doesn't belong.
|
||||||
|
|
||||||
|
3. **Skills, not scripts** — Skills are markdown files that instruct Claude, not executable code. They describe *what to do*, and Claude figures out *how*.
|
||||||
|
|
||||||
|
4. **Agents have opinions** — Agents aren't generic assistants. The goal-aligner should challenge you. The weekly-reviewer should ask uncomfortable questions. The productivity coach should hold you accountable.
|
||||||
|
|
||||||
|
5. **User content is sacred** — Never modify Daily Notes, Goals, Projects, or Archives without explicit user confirmation. System files in `.claude/` are fair game for upgrades.
|
||||||
|
|
||||||
|
## Adding a New Skill
|
||||||
|
|
||||||
|
1. Create `vault-template/.claude/skills/your-skill/SKILL.md`
|
||||||
|
2. Add YAML frontmatter:
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
name: your-skill
|
||||||
|
description: One-line description of what it does.
|
||||||
|
allowed-tools: Read, Write, Edit, Glob, Grep
|
||||||
|
model: sonnet
|
||||||
|
user-invocable: true
|
||||||
|
---
|
||||||
|
```
|
||||||
|
3. Write the skill prompt — describe the workflow, output format, and integration points
|
||||||
|
4. Add it to `vault-template/CLAUDE.md` skills table
|
||||||
|
5. Update `README.md` skills table
|
||||||
|
6. Test in a fresh vault
|
||||||
|
|
||||||
|
## Adding a New Agent
|
||||||
|
|
||||||
|
1. Create `vault-template/.claude/agents/your-agent.md`
|
||||||
|
2. Add frontmatter with `memory: project` for cross-session learning
|
||||||
|
3. Define the agent's personality, responsibilities, and output format
|
||||||
|
4. Add to `vault-template/CLAUDE.md` agents table
|
||||||
|
5. Test multi-turn interactions
|
||||||
|
|
||||||
|
## Code Style
|
||||||
|
|
||||||
|
- **Markdown** — Follow `vault-template/.claude/rules/markdown-standards.md`
|
||||||
|
- **Bash scripts** — POSIX-compatible where possible, handle both macOS and Linux
|
||||||
|
- **Commit messages** — Imperative mood, concise summary, body for context
|
||||||
|
- **File naming** — Skills: `SKILL.md`. Agents: `kebab-case.md`. Rules: `kebab-case.md`.
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
|
||||||
|
There's no automated test suite (yet). To test your changes:
|
||||||
|
|
||||||
|
1. Copy `vault-template/` to a temporary location
|
||||||
|
2. Open it as an Obsidian vault
|
||||||
|
3. Start Claude Code in that directory
|
||||||
|
4. Run the affected skills/agents
|
||||||
|
5. Verify the output matches expectations
|
||||||
|
|
||||||
|
## Questions?
|
||||||
|
|
||||||
|
Open an issue or start a discussion. We're happy to help you find the right place to contribute.
|
||||||
286
README.md
286
README.md
@@ -2,182 +2,208 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Obsidian + Claude Code PKM Starter Kit 🚀
|
# Obsidian + Claude Code: AI Accountability System
|
||||||
|
|
||||||
A complete personal knowledge management system that combines Obsidian's powerful note-taking with Claude Code's AI assistance. Go from zero to a fully functional PKM in 15 minutes or less.
|
**Not another PKM starter kit.** This is an execution system that connects your 3-year vision to what you do today — and holds you accountable with AI.
|
||||||
|
|
||||||
**v2.1** - Unified skills pattern (skills and slash commands merged), hooks, agents, and rules.
|
```
|
||||||
|
3-Year Vision ──→ Yearly Goals ──→ Projects ──→ Monthly Goals ──→ Weekly Review ──→ Daily Tasks
|
||||||
|
↑
|
||||||
|
/project new
|
||||||
|
(the bridge layer)
|
||||||
|
```
|
||||||
|
|
||||||
## ✨ Features
|
Every layer connects. `/daily` surfaces your ONE Big Thing from the weekly review. `/weekly` shows project progress. `/monthly` checks quarterly milestones. `/goal-tracking` knows which goals have no active project. Nothing falls through the cracks.
|
||||||
|
|
||||||
### Core PKM
|
**v3.1** · Zero dependencies · MIT License
|
||||||
- **🎯 Goal-Aligned System** - Cascading goals from 3-year vision to daily tasks
|
|
||||||
- **📅 Daily Notes System** - Structured daily planning and reflection
|
|
||||||
- **📱 Mobile Ready** - GitHub integration for notes on any device
|
|
||||||
- **🔄 Version Controlled** - Never lose a thought with automatic Git backups
|
|
||||||
- **🎨 Fully Customizable** - Adapt templates and structure to your needs
|
|
||||||
|
|
||||||
### AI-Powered (v2.1)
|
## The Cascade
|
||||||
- **⚡ Unified Skills** - Skills and slash commands merged (`/daily`, `/weekly`, `/push`, `/onboard`)
|
|
||||||
- **🪝 Hooks** - Auto-commit on save, session initialization
|
|
||||||
- **🤖 Custom Agents** - Note organizer, weekly reviewer, goal aligner, inbox processor
|
|
||||||
- **📏 Modular Rules** - Path-specific conventions for markdown, productivity, projects
|
|
||||||
- **🧠 Output Styles** - Productivity Coach for accountability
|
|
||||||
- **📊 Status Line** - Vault stats in terminal (note count, inbox, uncommitted changes)
|
|
||||||
|
|
||||||
## 🚀 Quick Start
|
The #1 reason people star this repo: **"I want goals → projects → daily notes → tasks to actually connect."**
|
||||||
|
|
||||||
|
| Layer | File | Skill | What It Does |
|
||||||
|
|-------|------|-------|-------------|
|
||||||
|
| Vision | `Goals/0. Three Year Goals.md` | `/goal-tracking` | Life areas, long-term direction |
|
||||||
|
| Annual | `Goals/1. Yearly Goals.md` | `/goal-tracking` | Measurable objectives, quarterly milestones |
|
||||||
|
| Projects | `Projects/*/CLAUDE.md` | `/project` | Active initiatives linked to goals |
|
||||||
|
| Monthly | `Goals/2. Monthly Goals.md` | `/monthly` | Roll up weekly reviews, check quarterly progress |
|
||||||
|
| Weekly | `Goals/3. Weekly Review.md` | `/weekly` | Reflect, realign, plan next week |
|
||||||
|
| Daily | `Daily Notes/YYYY-MM-DD.md` | `/daily` | Morning planning, evening reflection |
|
||||||
|
|
||||||
|
### How It Flows
|
||||||
|
|
||||||
|
**Morning** — `/daily` creates today's note, shows your week's ONE Big Thing and active project next-actions. You pick your focus.
|
||||||
|
|
||||||
|
**Evening** — `/daily` summarizes which goals and projects got attention today. Unlinked tasks get flagged.
|
||||||
|
|
||||||
|
**Sunday** — `/weekly` reads all your daily notes, scans project status, calculates goal progress, and helps you plan next week. Optional agent team mode parallelizes the collection.
|
||||||
|
|
||||||
|
**End of month** — `/monthly` rolls up the weekly reviews, checks quarterly milestones against yearly goals, and sets next month's priorities.
|
||||||
|
|
||||||
|
**Ad hoc** — `/project new` creates a project linked to a goal. `/project status` shows a dashboard. `/review` auto-detects the right review type based on context.
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
### Prerequisites
|
### Prerequisites
|
||||||
- [Obsidian](https://obsidian.md/) installed
|
- [Obsidian](https://obsidian.md/) installed
|
||||||
- [Claude Code CLI](https://code.claude.com/docs) installed
|
- [Claude Code CLI](https://docs.anthropic.com/en/docs/claude-code) installed
|
||||||
- Git installed
|
- Git installed
|
||||||
- GitHub account (optional, for mobile sync)
|
|
||||||
|
|
||||||
### 15-Minute Quickstart
|
### Setup
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1) Install prerequisites (once)
|
# Clone and set up
|
||||||
# - Obsidian: https://obsidian.md/
|
|
||||||
# - Git: https://git-scm.com/
|
|
||||||
# - Claude Code CLI: https://code.claude.com/docs
|
|
||||||
|
|
||||||
# 2) Clone this repository
|
|
||||||
git clone https://github.com/ballred/obsidian-claude-pkm.git
|
git clone https://github.com/ballred/obsidian-claude-pkm.git
|
||||||
cd obsidian-claude-pkm
|
cd obsidian-claude-pkm
|
||||||
|
chmod +x scripts/setup.sh && ./scripts/setup.sh
|
||||||
|
|
||||||
# 3) Run setup (macOS/Linux)
|
# Open vault in Obsidian, then start Claude Code:
|
||||||
chmod +x scripts/setup.sh
|
cd ~/your-vault-location
|
||||||
./scripts/setup.sh
|
claude
|
||||||
|
```
|
||||||
|
|
||||||
# 3b) Windows
|
On first run, you'll see a welcome message with the cascade visualization. Run `/onboard` to personalize your vault — it asks your name, preferred review day, and goal areas, then configures everything.
|
||||||
|
|
||||||
|
### Already have a vault?
|
||||||
|
|
||||||
|
You don't need to start from the template. Run `/adopt` from the root of your existing Obsidian vault — it scans your folder structure, detects your organization method (PARA, Zettelkasten, LYT, etc.), maps your folders interactively, and generates all config files scoped to your directory names. Your vault structure stays untouched.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd ~/your-existing-vault
|
||||||
|
claude
|
||||||
|
# then type: /adopt
|
||||||
|
```
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/ballred/obsidian-claude-pkm.git
|
||||||
|
cd obsidian-claude-pkm
|
||||||
scripts\setup.bat
|
scripts\setup.bat
|
||||||
```
|
```
|
||||||
|
|
||||||
### Manual Copy (alternative)
|
## Skills (Slash Commands)
|
||||||
|
|
||||||
|
| Skill | Command | Purpose |
|
||||||
|
|-------|---------|---------|
|
||||||
|
| Daily | `/daily` | Morning planning, midday check-in, evening reflection |
|
||||||
|
| Weekly | `/weekly` | 30-min weekly review with project rollup |
|
||||||
|
| Monthly | `/monthly` | Monthly review, quarterly milestone check |
|
||||||
|
| Project | `/project` | Create, track, archive projects linked to goals |
|
||||||
|
| Review | `/review` | Smart router — detects morning/Sunday/end-of-month context |
|
||||||
|
| Push | `/push` | Commit and push vault changes to Git |
|
||||||
|
| Onboard | `/onboard` | Interactive setup + load vault context |
|
||||||
|
| Adopt | `/adopt` | Scaffold onto an existing vault (BYOV) |
|
||||||
|
| Upgrade | `/upgrade` | Update to latest version, preserving your content |
|
||||||
|
| Goal Tracking | *(auto)* | Track progress across the full cascade |
|
||||||
|
| Vault Ops | *(auto)* | Read/write files, manage wiki-links |
|
||||||
|
|
||||||
|
## AI Agents
|
||||||
|
|
||||||
|
Four specialized agents with cross-session memory:
|
||||||
|
|
||||||
|
| Agent | What It Does |
|
||||||
|
|-------|-------------|
|
||||||
|
| `goal-aligner` | Audits daily activity against stated goals. Flags misalignment. |
|
||||||
|
| `weekly-reviewer` | Facilitates the 3-phase weekly review. Learns your reflection style. |
|
||||||
|
| `note-organizer` | Fixes broken links, consolidates duplicates, maintains vault hygiene. |
|
||||||
|
| `inbox-processor` | GTD-style inbox processing — categorize, clarify, organize. |
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Copy the vault template to your preferred location
|
claude "Use the goal-aligner agent to analyze my last 2 weeks"
|
||||||
cp -r vault-template ~/Documents/ObsidianPKM
|
claude "Use the inbox-processor agent to clear my inbox"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Open in Obsidian
|
Agents use `memory: project` to learn your patterns across sessions — the goal-aligner remembers recurring misalignment patterns, the weekly-reviewer learns what reflection questions resonate.
|
||||||
1. Launch Obsidian
|
|
||||||
2. Click "Open folder as vault"
|
|
||||||
3. Select your vault folder (e.g., ~/Documents/ObsidianPKM)
|
|
||||||
4. Start with today's daily note!
|
|
||||||
|
|
||||||
## 📖 Documentation
|
## Productivity Coach
|
||||||
|
|
||||||
- **[Setup Guide](docs/SETUP_GUIDE.md)** - Detailed installation instructions
|
An output style that transforms Claude into an accountability partner:
|
||||||
- **[Customization](docs/CUSTOMIZATION.md)** - Make it yours
|
|
||||||
- **[Workflow Examples](docs/WORKFLOW_EXAMPLES.md)** - Daily routines and best practices
|
|
||||||
- **[Troubleshooting](docs/TROUBLESHOOTING.md)** - Common issues and solutions
|
|
||||||
|
|
||||||
## 🗂️ Structure
|
```bash
|
||||||
|
/output-style coach
|
||||||
|
```
|
||||||
|
|
||||||
|
The coach challenges assumptions, points out goal-action misalignment, asks powerful questions, and holds you to your commitments. Pairs naturally with `/daily` and `/weekly`.
|
||||||
|
|
||||||
|
## Automation
|
||||||
|
|
||||||
|
**Zero dependencies.** Everything runs on bash and markdown.
|
||||||
|
|
||||||
|
- **Auto-commit** — Every file write/edit triggers a Git commit via PostToolUse hook
|
||||||
|
- **Session init** — Surfaces your ONE Big Thing, active project count, and days since last review
|
||||||
|
- **First-run welcome** — New vaults get a guided onboarding experience
|
||||||
|
- **Skill discovery** — Mention "skill" or "help" and available commands are listed automatically
|
||||||
|
- **Path-specific rules** — Markdown standards, productivity workflow, and project management conventions loaded contextually
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
```
|
```
|
||||||
Your Vault/
|
Your Vault/
|
||||||
├── CLAUDE.md # AI context and navigation
|
├── CLAUDE.md # AI context and navigation
|
||||||
├── CLAUDE.local.md.template # Template for personal overrides
|
|
||||||
├── .claude-plugin/
|
|
||||||
│ └── plugin.json # Plugin manifest
|
|
||||||
├── .claude/
|
├── .claude/
|
||||||
│ ├── agents/ # Custom AI agents
|
│ ├── agents/ # 4 specialized AI agents (with memory)
|
||||||
│ │ ├── note-organizer.md
|
│ ├── skills/ # 10 skills (8 listed above + 2 auto)
|
||||||
│ │ ├── weekly-reviewer.md
|
│ ├── hooks/ # Auto-commit, session init, skill discovery
|
||||||
│ │ ├── goal-aligner.md
|
│ ├── rules/ # Path-specific conventions
|
||||||
│ │ └── inbox-processor.md
|
│ ├── output-styles/ # Productivity Coach
|
||||||
│ ├── skills/ # Unified skills (invoke with /skill-name)
|
│ └── settings.json # Permissions, env vars, hooks config
|
||||||
│ │ ├── daily/ # /daily - Create daily notes, routines
|
├── Daily Notes/ # YYYY-MM-DD.md
|
||||||
│ │ ├── weekly/ # /weekly - Weekly review process
|
├── Goals/ # The cascade (3-year → weekly)
|
||||||
│ │ ├── push/ # /push - Git commit and push
|
├── Projects/ # Active projects with CLAUDE.md each
|
||||||
│ │ ├── onboard/ # /onboard - Load vault context
|
├── Templates/ # Reusable note structures
|
||||||
│ │ ├── goal-tracking/ # Auto: Track goal progress
|
├── Archives/ # Completed/inactive content
|
||||||
│ │ └── obsidian-vault-ops/ # Auto: Vault file operations
|
└── Inbox/ # Quick captures (optional)
|
||||||
│ ├── hooks/ # Event automation (NEW)
|
|
||||||
│ │ ├── session-init.sh
|
|
||||||
│ │ └── auto-commit.sh
|
|
||||||
│ ├── rules/ # Path-specific conventions (NEW)
|
|
||||||
│ │ ├── markdown-standards.md
|
|
||||||
│ │ ├── productivity-workflow.md
|
|
||||||
│ │ └── project-management.md
|
|
||||||
│ ├── scripts/
|
|
||||||
│ │ └── statusline.sh # Terminal status display (NEW)
|
|
||||||
│ ├── output-styles/
|
|
||||||
│ │ └── coach.md # Productivity Coach
|
|
||||||
│ └── settings.json # Permissions and config (NEW)
|
|
||||||
├── Daily Notes/
|
|
||||||
├── Goals/
|
|
||||||
├── Projects/
|
|
||||||
├── Templates/
|
|
||||||
└── Archives/
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## 🧠 Output Styles
|
## Upgrading
|
||||||
|
|
||||||
This starter kit includes a **Productivity Coach** output style that transforms Claude into an accountability partner. The coach will:
|
### Built-in upgrade (v3.1+)
|
||||||
|
|
||||||
- Challenge you to clarify your true intentions
|
|
||||||
- Point out misalignments between stated goals and actions
|
|
||||||
- Ask powerful questions to drive momentum
|
|
||||||
- Hold you accountable to your commitments
|
|
||||||
- Help you identify and overcome resistance
|
|
||||||
|
|
||||||
To use the coach style in Claude Code:
|
|
||||||
1. The output style is automatically included in `.claude/output-styles/`
|
|
||||||
2. Start Claude Code and type `/output-style` to select from available styles
|
|
||||||
3. Or directly activate with: `/output-style coach`
|
|
||||||
4. The style preference is automatically saved for your project
|
|
||||||
|
|
||||||
Learn more about [customizing output styles](docs/CUSTOMIZATION.md#output-styles).
|
|
||||||
|
|
||||||
## 🤖 Custom Agents (v2.0)
|
|
||||||
|
|
||||||
Ask Claude to use specialized agents for common PKM tasks:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Organize your vault and fix broken links
|
/upgrade check # Preview what's changed
|
||||||
claude "Use the note-organizer agent to audit my vault"
|
/upgrade # Interactive upgrade with backup
|
||||||
|
|
||||||
# Facilitate weekly review aligned with goals
|
|
||||||
claude "Use the weekly-reviewer agent for my weekly review"
|
|
||||||
|
|
||||||
# Check if daily work aligns with long-term goals
|
|
||||||
claude "Use the goal-aligner agent to analyze my recent activity"
|
|
||||||
|
|
||||||
# Process inbox items using GTD principles
|
|
||||||
claude "Use the inbox-processor agent to clear my inbox"
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## 🔄 Upgrading from v1.x
|
The upgrade skill creates a timestamped backup, shows diffs for each changed file, and never touches your content folders (Daily Notes, Goals, Projects, etc.).
|
||||||
|
|
||||||
If you have an existing vault from v1.x:
|
### Manual upgrade from v2.1
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. Copy new directories to your vault
|
# Copy new skill directories
|
||||||
cp -r vault-template/.claude-plugin your-vault/
|
cp -r vault-template/.claude/skills/project your-vault/.claude/skills/
|
||||||
cp -r vault-template/.claude/agents your-vault/.claude/
|
cp -r vault-template/.claude/skills/monthly your-vault/.claude/skills/
|
||||||
cp -r vault-template/.claude/skills your-vault/.claude/
|
cp -r vault-template/.claude/skills/review your-vault/.claude/skills/
|
||||||
cp -r vault-template/.claude/hooks your-vault/.claude/
|
cp -r vault-template/.claude/skills/upgrade your-vault/.claude/skills/
|
||||||
cp -r vault-template/.claude/rules your-vault/.claude/
|
|
||||||
cp -r vault-template/.claude/scripts your-vault/.claude/
|
# Update agents, hooks, settings
|
||||||
|
cp vault-template/.claude/agents/*.md your-vault/.claude/agents/
|
||||||
|
cp vault-template/.claude/hooks/* your-vault/.claude/hooks/
|
||||||
cp vault-template/.claude/settings.json your-vault/.claude/
|
cp vault-template/.claude/settings.json your-vault/.claude/
|
||||||
cp vault-template/CLAUDE.local.md.template your-vault/
|
|
||||||
|
|
||||||
# 2. Review and merge CLAUDE.md changes
|
|
||||||
# Your customizations are preserved, just add references to new features
|
|
||||||
|
|
||||||
# 3. Make hook scripts executable
|
|
||||||
chmod +x your-vault/.claude/hooks/*.sh
|
chmod +x your-vault/.claude/hooks/*.sh
|
||||||
chmod +x your-vault/.claude/scripts/*.sh
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## 🤝 Contributing
|
### From v1.x
|
||||||
|
|
||||||
Found a bug or have a feature idea? Please open an issue or submit a PR!
|
```bash
|
||||||
|
cp -r vault-template/.claude-plugin your-vault/
|
||||||
|
cp -r vault-template/.claude your-vault/
|
||||||
|
cp vault-template/CLAUDE.md your-vault/
|
||||||
|
chmod +x your-vault/.claude/hooks/*.sh
|
||||||
|
```
|
||||||
|
|
||||||
## 📄 License
|
## Documentation
|
||||||
|
|
||||||
MIT - Use this freely for your personal knowledge management journey.
|
- **[Setup Guide](docs/SETUP_GUIDE.md)** — Detailed installation instructions
|
||||||
|
- **[Customization](docs/CUSTOMIZATION.md)** — Make it yours
|
||||||
|
- **[Workflow Examples](docs/WORKFLOW_EXAMPLES.md)** — Daily routines and best practices
|
||||||
|
- **[Troubleshooting](docs/TROUBLESHOOTING.md)** — Common issues and solutions
|
||||||
|
- **[Contributing](CONTRIBUTING.md)** — How to help
|
||||||
|
|
||||||
---
|
## Contributing
|
||||||
|
|
||||||
**Ready to transform your note-taking?** Follow the [Setup Guide](docs/SETUP_GUIDE.md) to get started!
|
We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. Good first issues are labeled — check the [issues page](https://github.com/ballred/obsidian-claude-pkm/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22).
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
MIT — Use this freely for your personal knowledge management journey.
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
---
|
---
|
||||||
name: goal-aligner
|
name: goal-aligner
|
||||||
description: Analyze alignment between daily activities and long-term goals. Identify gaps, over/under-investment, and suggest rebalancing. Use for goal audits and priority checks.
|
description: Analyze alignment between daily activities and long-term goals. Identify gaps, over/under-investment, and suggest rebalancing. Use for goal audits and priority checks.
|
||||||
tools: Read, Grep, Glob
|
tools: Read, Grep, Glob, TaskCreate, TaskUpdate, TaskList
|
||||||
model: sonnet
|
model: sonnet
|
||||||
|
memory: project
|
||||||
---
|
---
|
||||||
|
|
||||||
# Goal Aligner Agent
|
# Goal Aligner Agent
|
||||||
@@ -82,6 +83,22 @@ When analyzing, surface these insights:
|
|||||||
- "You're spending 3x more time on [X] than [Y], but [Y] is ranked higher."
|
- "You're spending 3x more time on [X] than [Y], but [Y] is ranked higher."
|
||||||
- "This goal has been 'in progress' for 6 weeks with no measurable advancement."
|
- "This goal has been 'in progress' for 6 weeks with no measurable advancement."
|
||||||
|
|
||||||
|
## Progress Tracking
|
||||||
|
|
||||||
|
Track multi-file analysis with session tasks:
|
||||||
|
|
||||||
|
```
|
||||||
|
[Spinner] Reading 3-year goals...
|
||||||
|
[Spinner] Reading yearly goals...
|
||||||
|
[Spinner] Reading monthly goals...
|
||||||
|
[Spinner] Scanning 7 days of daily notes...
|
||||||
|
[Spinner] Analyzing activity patterns...
|
||||||
|
[Spinner] Calculating alignment score...
|
||||||
|
[Done] Goal alignment analysis complete (6/6 steps)
|
||||||
|
```
|
||||||
|
|
||||||
|
Task tools provide visibility when analyzing the full goal cascade across multiple files.
|
||||||
|
|
||||||
## Integration
|
## Integration
|
||||||
|
|
||||||
Works well with:
|
Works well with:
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
---
|
---
|
||||||
name: inbox-processor
|
name: inbox-processor
|
||||||
description: Process inbox items using GTD principles. Categorize, clarify, and organize captured notes into actionable items. Use for inbox zero and capture processing.
|
description: Process inbox items using GTD principles. Categorize, clarify, and organize captured notes into actionable items. Use for inbox zero and capture processing.
|
||||||
tools: Read, Write, Edit, Glob, Bash
|
tools: Read, Write, Edit, Glob, Bash, TaskCreate, TaskUpdate, TaskList
|
||||||
model: sonnet
|
model: sonnet
|
||||||
|
memory: project
|
||||||
---
|
---
|
||||||
|
|
||||||
# Inbox Processor Agent
|
# Inbox Processor Agent
|
||||||
@@ -109,6 +110,19 @@ Confirm? (y/n/modify)
|
|||||||
4. Link to relevant goals when possible
|
4. Link to relevant goals when possible
|
||||||
5. Add context tags for filtering (#work, #personal, etc.)
|
5. Add context tags for filtering (#work, #personal, etc.)
|
||||||
|
|
||||||
|
## Progress Tracking
|
||||||
|
|
||||||
|
When processing multiple inbox items, create a task for each item to show batch progress:
|
||||||
|
|
||||||
|
```
|
||||||
|
[Spinner] Processing item 1/5: Meeting notes...
|
||||||
|
[Spinner] Processing item 2/5: Book recommendation...
|
||||||
|
[Spinner] Processing item 3/5: Project idea...
|
||||||
|
[Done] Inbox processing complete (5/5 items)
|
||||||
|
```
|
||||||
|
|
||||||
|
Task tools provide visibility into batch processing. Each inbox item becomes a session task that shows status as it's categorized and filed.
|
||||||
|
|
||||||
## Integration
|
## Integration
|
||||||
|
|
||||||
Works well with:
|
Works well with:
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
---
|
---
|
||||||
name: note-organizer
|
name: note-organizer
|
||||||
description: Organize and restructure vault notes. Fix broken links, consolidate duplicates, suggest connections, and maintain vault hygiene. Use when managing vault organization or cleaning up notes.
|
description: Organize and restructure vault notes. Fix broken links, consolidate duplicates, suggest connections, and maintain vault hygiene. Use when managing vault organization or cleaning up notes.
|
||||||
tools: Read, Write, Edit, Glob, Grep, Bash
|
tools: Read, Write, Edit, Glob, Grep, Bash, TaskCreate, TaskUpdate, TaskList
|
||||||
model: sonnet
|
model: sonnet
|
||||||
|
memory: project
|
||||||
---
|
---
|
||||||
|
|
||||||
# Note Organizer Agent
|
# Note Organizer Agent
|
||||||
@@ -65,6 +66,27 @@ Always provide a summary of proposed changes before executing:
|
|||||||
|
|
||||||
Wait for user confirmation before making changes.
|
Wait for user confirmation before making changes.
|
||||||
|
|
||||||
|
## Progress Tracking
|
||||||
|
|
||||||
|
Track proposed changes as tasks before execution:
|
||||||
|
|
||||||
|
```
|
||||||
|
[Spinner] Scanning vault structure...
|
||||||
|
[Spinner] Identifying orphan notes...
|
||||||
|
[Spinner] Checking for broken links...
|
||||||
|
[Spinner] Auditing tag consistency...
|
||||||
|
[Done] Analysis complete (4/4 checks)
|
||||||
|
|
||||||
|
Proposed changes:
|
||||||
|
- Task: Move 3 files to Projects/
|
||||||
|
- Task: Fix 2 broken links
|
||||||
|
- Task: Consolidate 5 duplicate tags
|
||||||
|
|
||||||
|
[Awaiting confirmation]
|
||||||
|
```
|
||||||
|
|
||||||
|
Each proposed change becomes a task, giving visibility into what will be modified before confirmation.
|
||||||
|
|
||||||
## Integration
|
## Integration
|
||||||
|
|
||||||
Works well with:
|
Works well with:
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
---
|
---
|
||||||
name: weekly-reviewer
|
name: weekly-reviewer
|
||||||
description: Facilitate comprehensive weekly review process. Analyze past week's daily notes, calculate goal progress, and help plan next week. Use for Sunday/Monday weekly reviews.
|
description: Facilitate comprehensive weekly review process. Analyze past week's daily notes, calculate goal progress, and help plan next week. Use for Sunday/Monday weekly reviews.
|
||||||
tools: Read, Write, Edit, Glob, Grep
|
tools: Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdate, TaskList
|
||||||
model: sonnet
|
model: sonnet
|
||||||
|
memory: project
|
||||||
---
|
---
|
||||||
|
|
||||||
# Weekly Reviewer Agent
|
# Weekly Reviewer Agent
|
||||||
@@ -79,6 +80,25 @@ When Productivity Coach output style is active, include probing questions:
|
|||||||
- "How does next week's plan differ from patterns that didn't work?"
|
- "How does next week's plan differ from patterns that didn't work?"
|
||||||
- "What's the ONE thing that would make everything else easier?"
|
- "What's the ONE thing that would make everything else easier?"
|
||||||
|
|
||||||
|
## Progress Tracking
|
||||||
|
|
||||||
|
Track the 3-phase review process with task dependencies:
|
||||||
|
|
||||||
|
```
|
||||||
|
Task 1: Collect - blocked by nothing
|
||||||
|
Task 2: Reflect - blocked by Task 1
|
||||||
|
Task 3: Plan - blocked by Task 2
|
||||||
|
|
||||||
|
[Spinner] Phase 1: Collecting from daily notes...
|
||||||
|
[Done] Phase 1 complete
|
||||||
|
[Spinner] Phase 2: Reflecting on goals...
|
||||||
|
[Done] Phase 2 complete
|
||||||
|
[Spinner] Phase 3: Planning next week...
|
||||||
|
[Done] Weekly review complete (3/3 phases)
|
||||||
|
```
|
||||||
|
|
||||||
|
Dependencies ensure phases complete in order. Task tools provide visibility into the 30-minute review process.
|
||||||
|
|
||||||
## Integration
|
## Integration
|
||||||
|
|
||||||
Works well with:
|
Works well with:
|
||||||
|
|||||||
@@ -25,14 +25,19 @@ fi
|
|||||||
# Generate commit message based on file location
|
# Generate commit message based on file location
|
||||||
TIMESTAMP=$(date +"%Y-%m-%d %H:%M")
|
TIMESTAMP=$(date +"%Y-%m-%d %H:%M")
|
||||||
|
|
||||||
if [[ "$MODIFIED_FILE" == *"Daily Notes"* ]]; then
|
DAILY_DIR="${DAILY_NOTES_DIR:-Daily Notes}"
|
||||||
|
GOALS_DIR_NAME="${GOALS_DIR:-Goals}"
|
||||||
|
PROJECTS_DIR_NAME="${PROJECTS_DIR:-Projects}"
|
||||||
|
TEMPLATES_DIR_NAME="${TEMPLATES_DIR:-Templates}"
|
||||||
|
|
||||||
|
if [[ "$MODIFIED_FILE" == *"$DAILY_DIR"* ]]; then
|
||||||
MSG="Update daily note - $TIMESTAMP"
|
MSG="Update daily note - $TIMESTAMP"
|
||||||
elif [[ "$MODIFIED_FILE" == *"Goals"* ]]; then
|
elif [[ "$MODIFIED_FILE" == *"$GOALS_DIR_NAME"* ]]; then
|
||||||
MSG="Update goals - $TIMESTAMP"
|
MSG="Update goals - $TIMESTAMP"
|
||||||
elif [[ "$MODIFIED_FILE" == *"Projects"* ]]; then
|
elif [[ "$MODIFIED_FILE" == *"$PROJECTS_DIR_NAME"* ]]; then
|
||||||
PROJECT=$(echo "$MODIFIED_FILE" | sed 's|.*/Projects/\([^/]*\)/.*|\1|')
|
PROJECT=$(echo "$MODIFIED_FILE" | sed "s|.*/$PROJECTS_DIR_NAME/\([^/]*\)/.*|\1|")
|
||||||
MSG="Update project: $PROJECT - $TIMESTAMP"
|
MSG="Update project: $PROJECT - $TIMESTAMP"
|
||||||
elif [[ "$MODIFIED_FILE" == *"Templates"* ]]; then
|
elif [[ "$MODIFIED_FILE" == *"$TEMPLATES_DIR_NAME"* ]]; then
|
||||||
MSG="Update template - $TIMESTAMP"
|
MSG="Update template - $TIMESTAMP"
|
||||||
else
|
else
|
||||||
MSG="Vault update - $TIMESTAMP"
|
MSG="Vault update - $TIMESTAMP"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Session initialization hook for Obsidian PKM vault
|
# Session initialization hook for Obsidian PKM vault
|
||||||
# Sets up environment variables for the Claude Code session
|
# Sets up environment variables and surfaces priorities for the Claude Code session
|
||||||
|
|
||||||
# Set vault path (defaults to current directory)
|
# Set vault path (defaults to current directory)
|
||||||
export VAULT_PATH="${VAULT_PATH:-$(pwd)}"
|
export VAULT_PATH="${VAULT_PATH:-$(pwd)}"
|
||||||
@@ -11,7 +11,26 @@ export YESTERDAY=$(date -v-1d +%Y-%m-%d 2>/dev/null || date -d "yesterday" +%Y-%
|
|||||||
export CURRENT_WEEK=$(date +%Y-W%V)
|
export CURRENT_WEEK=$(date +%Y-W%V)
|
||||||
|
|
||||||
# Daily note path
|
# Daily note path
|
||||||
export DAILY_NOTE="$VAULT_PATH/Daily Notes/$TODAY.md"
|
export DAILY_NOTE="$VAULT_PATH/${DAILY_NOTES_DIR:-Daily Notes}/$TODAY.md"
|
||||||
|
|
||||||
|
# First-run detection
|
||||||
|
if [ -f "$VAULT_PATH/FIRST_RUN" ]; then
|
||||||
|
echo ""
|
||||||
|
echo "Welcome to the Obsidian + Claude Code AI Accountability System!"
|
||||||
|
echo ""
|
||||||
|
echo " The Cascade — your goals-to-tasks execution system:"
|
||||||
|
echo ""
|
||||||
|
echo " 3-Year Vision -> Yearly Goals -> Projects -> Monthly -> Weekly -> Daily"
|
||||||
|
echo " | | | | | |"
|
||||||
|
echo " /goal-tracking /goal-tracking /project /monthly /weekly /daily"
|
||||||
|
echo ""
|
||||||
|
echo " Run /onboard to personalize your vault (takes ~2 minutes)."
|
||||||
|
echo " This will ask your name, preferred review day, and goal areas."
|
||||||
|
echo ""
|
||||||
|
echo " After that, try /daily to start your first morning routine."
|
||||||
|
echo ""
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
# Verify vault structure
|
# Verify vault structure
|
||||||
if [ ! -f "$VAULT_PATH/CLAUDE.md" ]; then
|
if [ ! -f "$VAULT_PATH/CLAUDE.md" ]; then
|
||||||
@@ -22,3 +41,43 @@ fi
|
|||||||
echo "PKM Session initialized"
|
echo "PKM Session initialized"
|
||||||
echo " Vault: $VAULT_PATH"
|
echo " Vault: $VAULT_PATH"
|
||||||
echo " Today: $TODAY"
|
echo " Today: $TODAY"
|
||||||
|
|
||||||
|
# Surface today's ONE Big Thing from most recent weekly review
|
||||||
|
WEEKLY_REVIEW="$VAULT_PATH/${GOALS_DIR:-Goals}/3. Weekly Review.md"
|
||||||
|
if [ -f "$WEEKLY_REVIEW" ]; then
|
||||||
|
ONE_BIG_THING=$(grep -A 1 "ONE Big Thing" "$WEEKLY_REVIEW" | tail -1 | sed 's/^[> ]*//' | sed 's/^[[:space:]]*//')
|
||||||
|
if [ -n "$ONE_BIG_THING" ] && [ "$ONE_BIG_THING" != "" ]; then
|
||||||
|
echo " ONE Big Thing: $ONE_BIG_THING"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Days since last weekly review
|
||||||
|
LAST_REVIEW_DATE=$(grep -oE '[0-9]{4}-[0-9]{2}-[0-9]{2}' "$WEEKLY_REVIEW" | tail -1)
|
||||||
|
if [ -n "$LAST_REVIEW_DATE" ]; then
|
||||||
|
if date -j -f "%Y-%m-%d" "$LAST_REVIEW_DATE" +%s >/dev/null 2>&1; then
|
||||||
|
# macOS
|
||||||
|
LAST_EPOCH=$(date -j -f "%Y-%m-%d" "$LAST_REVIEW_DATE" +%s 2>/dev/null)
|
||||||
|
NOW_EPOCH=$(date +%s)
|
||||||
|
else
|
||||||
|
# Linux
|
||||||
|
LAST_EPOCH=$(date -d "$LAST_REVIEW_DATE" +%s 2>/dev/null)
|
||||||
|
NOW_EPOCH=$(date +%s)
|
||||||
|
fi
|
||||||
|
if [ -n "$LAST_EPOCH" ] && [ -n "$NOW_EPOCH" ]; then
|
||||||
|
DAYS_SINCE=$(( (NOW_EPOCH - LAST_EPOCH) / 86400 ))
|
||||||
|
if [ "$DAYS_SINCE" -gt 7 ]; then
|
||||||
|
echo " Weekly review overdue! Last review: $DAYS_SINCE days ago"
|
||||||
|
else
|
||||||
|
echo " Last weekly review: $DAYS_SINCE days ago"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Active project count
|
||||||
|
PROJECTS_DIR_PATH="$VAULT_PATH/${PROJECTS_DIR:-Projects}"
|
||||||
|
if [ -d "$PROJECTS_DIR_PATH" ]; then
|
||||||
|
PROJECT_COUNT=$(find "$PROJECTS_DIR_PATH" -maxdepth 2 -name "CLAUDE.md" 2>/dev/null | wc -l | tr -d ' ')
|
||||||
|
if [ "$PROJECT_COUNT" -gt 0 ]; then
|
||||||
|
echo " Active projects: $PROJECT_COUNT"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|||||||
35
vault-template/.claude/hooks/skill-discovery.sh
Executable file
35
vault-template/.claude/hooks/skill-discovery.sh
Executable file
@@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Skill discovery hook — triggered on UserPromptSubmit
|
||||||
|
# Lists available skills when user mentions "skill", "help", "command", or "what can"
|
||||||
|
# Non-blocking: always exits 0
|
||||||
|
|
||||||
|
# Read user prompt from stdin
|
||||||
|
PROMPT=$(cat)
|
||||||
|
|
||||||
|
# Case-insensitive check for trigger words
|
||||||
|
if echo "$PROMPT" | grep -iqE '\b(skills?|commands?|what can|help me|available|slash)\b'; then
|
||||||
|
echo ""
|
||||||
|
echo "Available skills (invoke with /skill-name):"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
SKILLS_DIR="$(pwd)/.claude/skills"
|
||||||
|
if [ -d "$SKILLS_DIR" ]; then
|
||||||
|
for skill_dir in "$SKILLS_DIR"/*/; do
|
||||||
|
if [ -f "$skill_dir/SKILL.md" ]; then
|
||||||
|
skill_name=$(basename "$skill_dir")
|
||||||
|
# Extract description from YAML frontmatter
|
||||||
|
desc=$(sed -n '/^---$/,/^---$/{ /^description:/{ s/^description: *//; p; q; } }' "$skill_dir/SKILL.md")
|
||||||
|
# Check if user-invocable
|
||||||
|
invocable=$(sed -n '/^---$/,/^---$/{ /^user-invocable:/{ s/^user-invocable: *//; p; q; } }' "$skill_dir/SKILL.md")
|
||||||
|
if [ "$invocable" = "true" ]; then
|
||||||
|
printf " /%s — %s\n" "$skill_name" "$desc"
|
||||||
|
else
|
||||||
|
printf " %s (auto) — %s\n" "$skill_name" "$desc"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
120
vault-template/.claude/rules/task-tracking.md
Normal file
120
vault-template/.claude/rules/task-tracking.md
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
---
|
||||||
|
paths: "**/*.md"
|
||||||
|
---
|
||||||
|
|
||||||
|
# Session Task Tracking Conventions
|
||||||
|
|
||||||
|
These conventions govern the use of Claude Code's session task tools (`TaskCreate`, `TaskUpdate`, `TaskList`) for providing progress visibility during multi-step operations.
|
||||||
|
|
||||||
|
## Key Distinction
|
||||||
|
|
||||||
|
**Session tasks ≠ Your actual tasks**
|
||||||
|
|
||||||
|
- **Session tasks**: Temporary progress indicators that exist only during a Claude session
|
||||||
|
- **Your tasks**: Markdown checkboxes in daily notes that persist across sessions
|
||||||
|
|
||||||
|
Session tasks show *what Claude is doing*. Markdown checkboxes track *what you need to do*.
|
||||||
|
|
||||||
|
## When to Use Session Tasks
|
||||||
|
|
||||||
|
Use session tasks for operations with 3+ distinct steps:
|
||||||
|
|
||||||
|
### Good Use Cases
|
||||||
|
- Morning/evening routines (4+ steps)
|
||||||
|
- Weekly review phases (3 phases)
|
||||||
|
- Batch inbox processing (multiple items)
|
||||||
|
- Multi-file analysis (goal cascade)
|
||||||
|
- Vault organization audits
|
||||||
|
|
||||||
|
### Skip Session Tasks For
|
||||||
|
- Single file reads/writes
|
||||||
|
- Quick lookups
|
||||||
|
- Simple edits
|
||||||
|
- 1-2 step operations
|
||||||
|
|
||||||
|
## Task Naming Conventions
|
||||||
|
|
||||||
|
### Subject (Imperative)
|
||||||
|
```
|
||||||
|
Create daily note
|
||||||
|
Pull incomplete tasks
|
||||||
|
Calculate goal progress
|
||||||
|
Process inbox item
|
||||||
|
```
|
||||||
|
|
||||||
|
### activeForm (Present Continuous)
|
||||||
|
```
|
||||||
|
Creating daily note...
|
||||||
|
Pulling incomplete tasks...
|
||||||
|
Calculating goal progress...
|
||||||
|
Processing inbox item...
|
||||||
|
```
|
||||||
|
|
||||||
|
The `activeForm` appears in the spinner while the task runs.
|
||||||
|
|
||||||
|
## Task Dependencies
|
||||||
|
|
||||||
|
Use dependencies when order matters:
|
||||||
|
|
||||||
|
```
|
||||||
|
Task 1: Collect (no dependencies)
|
||||||
|
Task 2: Reflect (blockedBy: Task 1)
|
||||||
|
Task 3: Plan (blockedBy: Task 2)
|
||||||
|
```
|
||||||
|
|
||||||
|
This ensures phases complete in sequence.
|
||||||
|
|
||||||
|
## Progress Patterns
|
||||||
|
|
||||||
|
### Sequential Steps
|
||||||
|
```
|
||||||
|
[Spinner] Step 1 of 4: Creating daily note...
|
||||||
|
[Spinner] Step 2 of 4: Pulling tasks...
|
||||||
|
[Spinner] Step 3 of 4: Surfacing goals...
|
||||||
|
[Spinner] Step 4 of 4: Setting time blocks...
|
||||||
|
[Done] Morning routine complete (4/4)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Batch Processing
|
||||||
|
```
|
||||||
|
[Spinner] Processing item 1/5: Meeting notes...
|
||||||
|
[Spinner] Processing item 2/5: Book idea...
|
||||||
|
...
|
||||||
|
[Done] Inbox complete (5/5 items)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Phased Work
|
||||||
|
```
|
||||||
|
[Done] Phase 1: Collect complete
|
||||||
|
[Spinner] Phase 2: Reflect in progress...
|
||||||
|
[Pending] Phase 3: Plan (blocked)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Status Transitions
|
||||||
|
|
||||||
|
```
|
||||||
|
pending → in_progress → completed
|
||||||
|
```
|
||||||
|
|
||||||
|
- Set `in_progress` when starting a task
|
||||||
|
- Set `completed` only when fully done
|
||||||
|
- Never mark incomplete work as completed
|
||||||
|
|
||||||
|
## Best Practices
|
||||||
|
|
||||||
|
1. **Create tasks upfront** - Create all tasks at the start of a multi-step operation
|
||||||
|
2. **Update as you go** - Mark tasks in_progress before starting, completed after finishing
|
||||||
|
3. **Use activeForm** - Always provide spinner text for user visibility
|
||||||
|
4. **Keep it lightweight** - Don't over-task simple operations
|
||||||
|
5. **Trust markdown for persistence** - Session tasks disappear; use checkboxes for real work
|
||||||
|
|
||||||
|
## Integration with PKM
|
||||||
|
|
||||||
|
Session tasks complement but don't replace:
|
||||||
|
|
||||||
|
| Concern | Tool |
|
||||||
|
|---------|------|
|
||||||
|
| Progress during session | Session tasks (TaskCreate/Update) |
|
||||||
|
| Actual to-do items | Markdown checkboxes in daily notes |
|
||||||
|
| Goal tracking | Percentages in goal files |
|
||||||
|
| Project status | Project CLAUDE.md files |
|
||||||
@@ -9,8 +9,8 @@ TOTAL_NOTES=$(find "$VAULT_PATH" -name "*.md" -type f -not -path "*/\.*" 2>/dev/
|
|||||||
|
|
||||||
# Count inbox items
|
# Count inbox items
|
||||||
INBOX_COUNT=0
|
INBOX_COUNT=0
|
||||||
if [ -d "$VAULT_PATH/Inbox" ]; then
|
if [ -d "$VAULT_PATH/${INBOX_DIR:-Inbox}" ]; then
|
||||||
INBOX_COUNT=$(find "$VAULT_PATH/Inbox" -name "*.md" -type f 2>/dev/null | wc -l | tr -d ' ')
|
INBOX_COUNT=$(find "$VAULT_PATH/${INBOX_DIR:-Inbox}" -name "*.md" -type f 2>/dev/null | wc -l | tr -d ' ')
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Add notes tagged with #inbox (if grep available)
|
# Add notes tagged with #inbox (if grep available)
|
||||||
@@ -28,7 +28,7 @@ fi
|
|||||||
|
|
||||||
# Check if today's note exists
|
# Check if today's note exists
|
||||||
TODAY=$(date +%Y-%m-%d)
|
TODAY=$(date +%Y-%m-%d)
|
||||||
if [ -f "$VAULT_PATH/Daily Notes/$TODAY.md" ]; then
|
if [ -f "$VAULT_PATH/${DAILY_NOTES_DIR:-Daily Notes}/$TODAY.md" ]; then
|
||||||
TODAY_STATUS="Yes"
|
TODAY_STATUS="Yes"
|
||||||
else
|
else
|
||||||
TODAY_STATUS="No"
|
TODAY_STATUS="No"
|
||||||
|
|||||||
@@ -7,6 +7,8 @@
|
|||||||
"Bash(date:*)",
|
"Bash(date:*)",
|
||||||
"Bash(wc:*)",
|
"Bash(wc:*)",
|
||||||
"Bash(find:*)",
|
"Bash(find:*)",
|
||||||
|
"Bash(cp:*)",
|
||||||
|
"Bash(mv:*)",
|
||||||
"Read(*)",
|
"Read(*)",
|
||||||
"Write(Daily Notes/**)",
|
"Write(Daily Notes/**)",
|
||||||
"Write(Goals/**)",
|
"Write(Goals/**)",
|
||||||
@@ -45,6 +47,17 @@
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"UserPromptSubmit": [
|
||||||
|
{
|
||||||
|
"hooks": [
|
||||||
|
{
|
||||||
|
"type": "command",
|
||||||
|
"command": ".claude/hooks/skill-discovery.sh",
|
||||||
|
"timeout": 5000
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
"PostToolUse": [
|
"PostToolUse": [
|
||||||
{
|
{
|
||||||
"matcher": "Write|Edit",
|
"matcher": "Write|Edit",
|
||||||
|
|||||||
7
vault-template/.claude/skills/adopt/CLAUDE.md
Normal file
7
vault-template/.claude/skills/adopt/CLAUDE.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<claude-mem-context>
|
||||||
|
# Recent Activity
|
||||||
|
|
||||||
|
<!-- This section is auto-generated by claude-mem. Edit content outside the tags. -->
|
||||||
|
|
||||||
|
*No recent activity*
|
||||||
|
</claude-mem-context>
|
||||||
331
vault-template/.claude/skills/adopt/SKILL.md
Normal file
331
vault-template/.claude/skills/adopt/SKILL.md
Normal file
@@ -0,0 +1,331 @@
|
|||||||
|
---
|
||||||
|
name: adopt
|
||||||
|
description: Scaffold the PKM system onto an existing Obsidian vault. Scans your vault structure, maps folders interactively, and generates configuration — no template required.
|
||||||
|
allowed-tools: Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion
|
||||||
|
model: sonnet
|
||||||
|
user-invocable: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# Adopt Skill
|
||||||
|
|
||||||
|
Bring Your Own Vault (BYOV) — install the Claude PKM system onto an existing Obsidian vault.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```
|
||||||
|
/adopt # Run from the root of your existing Obsidian vault
|
||||||
|
```
|
||||||
|
|
||||||
|
## When to Use
|
||||||
|
|
||||||
|
- You have an existing Obsidian vault and want to add the Claude PKM system
|
||||||
|
- You don't want to start from the vault template
|
||||||
|
- You want to keep your current folder structure
|
||||||
|
|
||||||
|
## Phase 1: Scan Vault Structure
|
||||||
|
|
||||||
|
Analyze the existing vault to understand its organization.
|
||||||
|
|
||||||
|
### Steps
|
||||||
|
|
||||||
|
1. **List top-level directories** using `ls`, excluding system dirs (`.obsidian`, `.git`, `.claude`, `.trash`, `.claude-plugin`)
|
||||||
|
|
||||||
|
2. **For each directory**, gather signals:
|
||||||
|
- Count `.md` files (using Glob)
|
||||||
|
- Check for date-named files (`YYYY-MM-DD*.md`) — indicates daily notes
|
||||||
|
- Grep for goal/review/template keywords in filenames and content
|
||||||
|
- Check for existing `CLAUDE.md` in subdirs — indicates projects
|
||||||
|
|
||||||
|
3. **Detect organization method** based on signals:
|
||||||
|
- **PARA**: Folders named Projects, Areas, Resources, Archives
|
||||||
|
- **Zettelkasten**: Numeric-prefixed notes, heavy wiki-linking, flat structure
|
||||||
|
- **Johnny Decimal**: `00-09`, `10-19` style folder names
|
||||||
|
- **LYT (Linking Your Thinking)**: Folders named Atlas, Calendar, Cards, Extras, Sources
|
||||||
|
- **Flat**: Few folders, most files at root
|
||||||
|
- **Custom**: None of the above patterns match
|
||||||
|
|
||||||
|
4. **Present findings** to the user:
|
||||||
|
```
|
||||||
|
Vault scan complete!
|
||||||
|
|
||||||
|
Found 342 notes across 8 folders:
|
||||||
|
Daily/ → 180 notes (date-named — likely daily notes)
|
||||||
|
Projects/ → 45 notes (has CLAUDE.md files — likely projects)
|
||||||
|
Goals/ → 12 notes (contains goal keywords)
|
||||||
|
Templates/ → 8 notes (contains template keywords)
|
||||||
|
Archive/ → 67 notes
|
||||||
|
Inbox/ → 15 notes
|
||||||
|
Resources/ → 10 notes
|
||||||
|
Meeting Notes/ → 5 notes
|
||||||
|
|
||||||
|
Detected method: PARA-like structure
|
||||||
|
```
|
||||||
|
|
||||||
|
## Phase 2: Map Folders to Roles
|
||||||
|
|
||||||
|
Use AskUserQuestion to confirm or correct the detected mappings.
|
||||||
|
|
||||||
|
### Roles to Map
|
||||||
|
|
||||||
|
Each role maps a PKM function to a folder in the user's vault:
|
||||||
|
|
||||||
|
| Role | Purpose | Detection Signal |
|
||||||
|
|------|---------|-----------------|
|
||||||
|
| Daily Notes | Daily journal entries | Date-named files (`YYYY-MM-DD`) |
|
||||||
|
| Goals | Goal cascade (3-year → weekly) | Files with goal/review keywords |
|
||||||
|
| Projects | Active projects | Subdirs with CLAUDE.md or project keywords |
|
||||||
|
| Templates | Reusable note structures | Files with template keywords or in Templates/ |
|
||||||
|
| Archives | Completed/inactive content | Folder named Archive(s) or with old dates |
|
||||||
|
| Inbox | Uncategorized captures | Folder named Inbox, or files tagged #inbox |
|
||||||
|
|
||||||
|
### Interactive Mapping
|
||||||
|
|
||||||
|
For each role, ask the user to confirm or correct:
|
||||||
|
|
||||||
|
**Question format (use AskUserQuestion):**
|
||||||
|
- "Which folder holds your **daily notes**?"
|
||||||
|
- Options: detected candidate(s), "I don't have one (create it)", "Skip — I don't use this"
|
||||||
|
- For optional roles (Inbox), include "Skip" as a default
|
||||||
|
|
||||||
|
**Edge cases:**
|
||||||
|
- **Existing CLAUDE.md at root**: Ask the user — back up as `CLAUDE.md.backup` or merge content
|
||||||
|
- **No candidate for a role**: Offer to create the folder
|
||||||
|
- **Multiple candidates**: Present all and let the user choose
|
||||||
|
|
||||||
|
### Save Mappings
|
||||||
|
|
||||||
|
Store the folder mapping for use in later phases:
|
||||||
|
```
|
||||||
|
dailyNotes → "Daily"
|
||||||
|
goals → "Goals"
|
||||||
|
projects → "Projects"
|
||||||
|
templates → "Templates"
|
||||||
|
archives → "Archive"
|
||||||
|
inbox → "Inbox" (or null if skipped)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Phase 3: Personalize Preferences
|
||||||
|
|
||||||
|
Ask the same 4 questions as `/onboard`:
|
||||||
|
|
||||||
|
**Question 1: Your name**
|
||||||
|
- "What should I call you?"
|
||||||
|
- Used for personalized prompts and greetings
|
||||||
|
|
||||||
|
**Question 2: Preferred review day**
|
||||||
|
- "What day do you prefer for your weekly review?"
|
||||||
|
- Options: Sunday (Recommended), Saturday, Monday, Friday
|
||||||
|
- Used by `/review` auto-detection and session-init nudges
|
||||||
|
|
||||||
|
**Question 3: Primary goal areas**
|
||||||
|
- "Which areas are most important to you right now? (Pick 2-4)"
|
||||||
|
- Options: Career & Professional, Health & Wellness, Relationships, Personal Growth
|
||||||
|
- Also offer: Financial, Creativity & Fun, Learning, Other
|
||||||
|
- multiSelect: true
|
||||||
|
- Used to customize goal template suggestions
|
||||||
|
|
||||||
|
**Question 4: Work style**
|
||||||
|
- "How do you prefer Claude to interact?"
|
||||||
|
- Options: Direct and concise (Recommended), Coaching and challenging, Detailed and thorough, Minimal — just do the task
|
||||||
|
- Sets output style preference
|
||||||
|
|
||||||
|
## Phase 4: Generate Configuration
|
||||||
|
|
||||||
|
### 4a. Write `settings.json`
|
||||||
|
|
||||||
|
Write `.claude/settings.json` with permissions scoped to the user's actual folders:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"permissions": {
|
||||||
|
"allow": [
|
||||||
|
"Read",
|
||||||
|
"Write **/{mapped-daily}/**",
|
||||||
|
"Write **/{mapped-goals}/**",
|
||||||
|
"Write **/{mapped-projects}/**",
|
||||||
|
"Write **/{mapped-templates}/**",
|
||||||
|
"Edit **/{mapped-daily}/**",
|
||||||
|
"Edit **/{mapped-goals}/**",
|
||||||
|
"Edit **/{mapped-projects}/**",
|
||||||
|
"Glob",
|
||||||
|
"Grep"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Replace `{mapped-*}` with actual folder names from Phase 2.
|
||||||
|
|
||||||
|
### 4b. Write root `CLAUDE.md`
|
||||||
|
|
||||||
|
Generate a root `CLAUDE.md` that describes the user's **actual** vault structure. Use the same format as the template's CLAUDE.md but with:
|
||||||
|
- Their folder names in the Directory Structure table
|
||||||
|
- Their goal areas in the System Purpose section
|
||||||
|
- Their actual skills table (same as template)
|
||||||
|
- Cascade section adapted to their folder names
|
||||||
|
|
||||||
|
If the user had an existing `CLAUDE.md`, merge their content into the appropriate sections (preserve their mission statement, custom conventions, etc.).
|
||||||
|
|
||||||
|
### 4c. Write `vault-config.json`
|
||||||
|
|
||||||
|
Write `vault-config.json` in the vault root:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "User's name",
|
||||||
|
"reviewDay": "Sunday",
|
||||||
|
"goalAreas": ["Career & Professional", "Health & Wellness"],
|
||||||
|
"workStyle": "Direct and concise",
|
||||||
|
"setupDate": "2026-02-17",
|
||||||
|
"version": "3.1",
|
||||||
|
"adoptedVault": true,
|
||||||
|
"folderMapping": {
|
||||||
|
"dailyNotes": "Daily",
|
||||||
|
"goals": "Goals",
|
||||||
|
"projects": "Projects",
|
||||||
|
"templates": "Templates",
|
||||||
|
"archives": "Archive",
|
||||||
|
"inbox": "Inbox"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4d. Set Environment Variables
|
||||||
|
|
||||||
|
Write or update `CLAUDE.local.md` with env var exports for hooks:
|
||||||
|
```markdown
|
||||||
|
## Environment Overrides
|
||||||
|
|
||||||
|
These env vars allow hooks and scripts to find your folders:
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Export these in your shell profile or they'll be set by session-init:
|
||||||
|
-->
|
||||||
|
DAILY_NOTES_DIR={mapped daily notes folder}
|
||||||
|
GOALS_DIR={mapped goals folder}
|
||||||
|
PROJECTS_DIR={mapped projects folder}
|
||||||
|
TEMPLATES_DIR={mapped templates folder}
|
||||||
|
INBOX_DIR={mapped inbox folder}
|
||||||
|
ARCHIVES_DIR={mapped archives folder}
|
||||||
|
```
|
||||||
|
|
||||||
|
Also create `.claude/hooks/adopt-env.sh` that exports these variables:
|
||||||
|
```bash
|
||||||
|
#!/bin/bash
|
||||||
|
# Environment variables for adopted vault folder mapping
|
||||||
|
# Generated by /adopt — edit vault-config.json and re-run /adopt to update
|
||||||
|
|
||||||
|
export DAILY_NOTES_DIR="{mapped daily notes}"
|
||||||
|
export GOALS_DIR="{mapped goals}"
|
||||||
|
export PROJECTS_DIR="{mapped projects}"
|
||||||
|
export TEMPLATES_DIR="{mapped templates}"
|
||||||
|
export INBOX_DIR="{mapped inbox}"
|
||||||
|
export ARCHIVES_DIR="{mapped archives}"
|
||||||
|
```
|
||||||
|
|
||||||
|
Then add a `source` line to `session-init.sh` if not already present:
|
||||||
|
```bash
|
||||||
|
# Source adopted vault env vars if present
|
||||||
|
ADOPT_ENV="$VAULT_PATH/.claude/hooks/adopt-env.sh"
|
||||||
|
if [ -f "$ADOPT_ENV" ]; then
|
||||||
|
source "$ADOPT_ENV"
|
||||||
|
fi
|
||||||
|
```
|
||||||
|
|
||||||
|
## Phase 5: Scaffold Missing Pieces
|
||||||
|
|
||||||
|
Check what's missing and offer to create it. **Always ask before creating.**
|
||||||
|
|
||||||
|
### 5a. Goal Cascade Files
|
||||||
|
|
||||||
|
If the goals folder is empty or newly created:
|
||||||
|
- "Your goals folder is empty. Want me to create the goal cascade? (3-year vision, yearly goals, monthly goals, weekly review)"
|
||||||
|
- If yes: copy the standard templates, adapting paths to the user's folder names
|
||||||
|
- If no: skip
|
||||||
|
|
||||||
|
### 5b. Templates
|
||||||
|
|
||||||
|
If the templates folder is empty or newly created:
|
||||||
|
- "Want me to add standard templates? (Daily, Weekly Review, Project)"
|
||||||
|
- If yes: copy templates, adapting internal links to the user's folder names
|
||||||
|
- If no: skip
|
||||||
|
|
||||||
|
### 5c. CLAUDE.local.md.template
|
||||||
|
|
||||||
|
If `CLAUDE.local.md.template` doesn't exist:
|
||||||
|
- Copy it from the standard template
|
||||||
|
- Adapt any folder references
|
||||||
|
|
||||||
|
### 5d. Claude Config Directories
|
||||||
|
|
||||||
|
Ensure these directories exist (create silently):
|
||||||
|
- `.claude/skills/` (for future skill additions)
|
||||||
|
- `.claude/rules/`
|
||||||
|
- `.claude/hooks/`
|
||||||
|
- `.claude/agents/`
|
||||||
|
|
||||||
|
Copy standard rules files if `.claude/rules/` is empty:
|
||||||
|
- `markdown-standards.md`
|
||||||
|
- `productivity-workflow.md`
|
||||||
|
- `project-management.md`
|
||||||
|
- `task-tracking.md`
|
||||||
|
|
||||||
|
## Phase 6: Verify & Next Steps
|
||||||
|
|
||||||
|
### 6a. Validation
|
||||||
|
|
||||||
|
Run quick checks:
|
||||||
|
- `vault-config.json` is valid JSON (read it back)
|
||||||
|
- All mapped folders exist
|
||||||
|
- `CLAUDE.md` is present and non-empty
|
||||||
|
- `.claude/hooks/adopt-env.sh` is present and executable
|
||||||
|
|
||||||
|
### 6b. Summary
|
||||||
|
|
||||||
|
Present a summary:
|
||||||
|
```
|
||||||
|
Adoption complete!
|
||||||
|
|
||||||
|
Vault: /path/to/vault
|
||||||
|
Method: PARA-like (preserved your existing structure)
|
||||||
|
Mapped folders:
|
||||||
|
Daily Notes → Daily/
|
||||||
|
Goals → Goals/
|
||||||
|
Projects → Projects/
|
||||||
|
Templates → Templates/
|
||||||
|
Archives → Archive/
|
||||||
|
Inbox → Inbox/
|
||||||
|
|
||||||
|
Created:
|
||||||
|
✓ CLAUDE.md (vault context)
|
||||||
|
✓ vault-config.json (preferences)
|
||||||
|
✓ .claude/hooks/adopt-env.sh (folder mapping)
|
||||||
|
✓ Goal cascade files (4 files)
|
||||||
|
✓ Standard templates (3 files)
|
||||||
|
|
||||||
|
Your vault structure is unchanged — only configuration files were added.
|
||||||
|
```
|
||||||
|
|
||||||
|
### 6c. Next Steps
|
||||||
|
|
||||||
|
Suggest what to do next:
|
||||||
|
- "Try `/daily` to create today's note using your vault's structure"
|
||||||
|
- "Try `/review` for a guided weekly review"
|
||||||
|
- "Run `/push` to commit these changes to git"
|
||||||
|
- "Edit `CLAUDE.local.md` for private preferences (not committed to git)"
|
||||||
|
|
||||||
|
## Error Handling
|
||||||
|
|
||||||
|
- **Not in a vault**: If no `.obsidian` directory found, warn: "This doesn't look like an Obsidian vault. Continue anyway?"
|
||||||
|
- **Already adopted**: If `vault-config.json` exists with `adoptedVault: true`, ask: "This vault was already adopted. Re-run adoption? (This will regenerate config files.)"
|
||||||
|
- **Permission errors**: If `.claude/` can't be written, suggest checking permissions
|
||||||
|
- **Empty vault**: If no `.md` files found, suggest using `/onboard` with the template instead
|
||||||
|
|
||||||
|
## Integration
|
||||||
|
|
||||||
|
Works with:
|
||||||
|
- `/onboard` — adopt replaces onboard for existing vaults
|
||||||
|
- `/daily` — uses mapped daily notes folder
|
||||||
|
- `/weekly` — uses mapped goals folder
|
||||||
|
- `/review` — respects adopted vault structure
|
||||||
|
- `/push` — commits adoption changes
|
||||||
|
- All hooks — read env vars from `adopt-env.sh`
|
||||||
108
vault-template/.claude/skills/check-links/SKILL.md
Normal file
108
vault-template/.claude/skills/check-links/SKILL.md
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
---
|
||||||
|
name: check-links
|
||||||
|
description: Find broken wiki-links in the vault. Read-only analysis — scans for [[links]] and verifies target files exist. No writes, no dependencies.
|
||||||
|
allowed-tools: Grep, Glob, Read
|
||||||
|
user-invocable: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# Check Links Skill
|
||||||
|
|
||||||
|
Finds broken `[[wiki-links]]` across your vault by extracting link targets and verifying that each target file exists. Read-only — never modifies files.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```
|
||||||
|
/check-links
|
||||||
|
```
|
||||||
|
|
||||||
|
Or ask:
|
||||||
|
- "Check for broken links in my vault"
|
||||||
|
- "Find dead wiki-links"
|
||||||
|
- "Are there any broken links?"
|
||||||
|
|
||||||
|
## How to Execute
|
||||||
|
|
||||||
|
### Step 1: Extract all wiki-links
|
||||||
|
|
||||||
|
Use **Grep** to find all `[[...]]` patterns in markdown files:
|
||||||
|
|
||||||
|
```
|
||||||
|
Grep:
|
||||||
|
pattern: "\\[\\[([^\\]|]+)"
|
||||||
|
glob: "*.md"
|
||||||
|
output_mode: content
|
||||||
|
-n: true
|
||||||
|
```
|
||||||
|
|
||||||
|
This captures the link target (before any `|` alias). Exclude `.claude/` and `.obsidian/` directories from results.
|
||||||
|
|
||||||
|
### Step 2: Build unique target list
|
||||||
|
|
||||||
|
From the grep results, extract the unique link targets. For each match like `[[My Note]]` or `[[My Note|display text]]`, the target is `My Note`.
|
||||||
|
|
||||||
|
Strip:
|
||||||
|
- Heading anchors: `[[Note#heading]]` → target is `Note`
|
||||||
|
- Block references: `[[Note^block-id]]` → target is `Note`
|
||||||
|
- Aliases: `[[Note|alias]]` → target is `Note`
|
||||||
|
|
||||||
|
### Step 3: Verify each target exists
|
||||||
|
|
||||||
|
For each unique target, use **Glob** to check if a matching file exists:
|
||||||
|
|
||||||
|
```
|
||||||
|
Glob:
|
||||||
|
pattern: "**/<target>.md"
|
||||||
|
```
|
||||||
|
|
||||||
|
A link is **broken** if no file matches. A link is **valid** if at least one file matches.
|
||||||
|
|
||||||
|
### Step 4: Report results
|
||||||
|
|
||||||
|
Group broken links by source file:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
## Broken Links Report
|
||||||
|
|
||||||
|
### Daily Notes/2024-01-15.md
|
||||||
|
- [[Projet Alpha]] — no matching file found
|
||||||
|
- [[Old Goal]] — no matching file found
|
||||||
|
|
||||||
|
### Projects/Project Beta.md
|
||||||
|
- [[Meeting Notes Jan]] — no matching file found
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Summary:** 3 broken links across 2 files (out of 45 total links checked)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 5: Suggest fixes
|
||||||
|
|
||||||
|
For each broken link, try to find a close match:
|
||||||
|
|
||||||
|
1. Use **Glob** with a partial pattern: `**/*<partial-target>*.md`
|
||||||
|
2. If a similar filename exists, suggest it:
|
||||||
|
```
|
||||||
|
- [[Projet Alpha]] — Did you mean [[Project Alpha]]?
|
||||||
|
```
|
||||||
|
3. If no close match, just report "no matching file found"
|
||||||
|
|
||||||
|
## Edge Cases
|
||||||
|
|
||||||
|
- **Embedded images** (`![[image.png]]`) — skip these, they reference attachments
|
||||||
|
- **External links** (`[text](https://...)`) — skip these, they are not wiki-links
|
||||||
|
- **Template placeholders** (`[[{{date}}]]`) — skip anything with `{{` in the target
|
||||||
|
- **Empty links** (`[[]]`) — report as malformed, not broken
|
||||||
|
|
||||||
|
## No Broken Links
|
||||||
|
|
||||||
|
If all links are valid:
|
||||||
|
|
||||||
|
```
|
||||||
|
✅ All wiki-links verified — no broken links found across X files (Y links checked)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Tips
|
||||||
|
|
||||||
|
- Run `/check-links` periodically to catch link rot
|
||||||
|
- After renaming files, run this to find links that need updating
|
||||||
|
- Combine with `/search` to find notes that reference deleted content
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: daily
|
name: daily
|
||||||
description: Create daily notes and manage morning, midday, and evening routines. Structure daily planning, task review, and end-of-day reflection. Use for daily productivity routines or when asked to create today's note.
|
description: Create daily notes and manage morning, midday, and evening routines. Structure daily planning, task review, and end-of-day reflection. Use for daily productivity routines or when asked to create today's note.
|
||||||
allowed-tools: Read, Write, Edit, Glob, Grep
|
allowed-tools: Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdate, TaskList, TaskGet
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -54,16 +54,39 @@ Your daily template can use:
|
|||||||
### Automated Steps
|
### Automated Steps
|
||||||
1. Create today's daily note (if not exists)
|
1. Create today's daily note (if not exists)
|
||||||
2. Pull incomplete tasks from yesterday
|
2. Pull incomplete tasks from yesterday
|
||||||
3. Review weekly goals for today's priority
|
3. Read this week's ONE Big Thing from `Goals/3. Weekly Review.md`
|
||||||
4. Surface any calendar events or deadlines
|
4. Surface active project next-actions from `Projects/*/CLAUDE.md`
|
||||||
|
5. Review weekly goals for today's priority
|
||||||
|
|
||||||
|
### Cascade Context Surfacing
|
||||||
|
Before interactive prompts, automatically surface:
|
||||||
|
- **ONE Big Thing** from most recent weekly review
|
||||||
|
- **Active project next-actions** from `Projects/*/CLAUDE.md` (read "Next Actions" section)
|
||||||
|
- **Monthly priority** from `Goals/2. Monthly Goals.md`
|
||||||
|
|
||||||
|
Display as a brief context block at the top of the morning routine:
|
||||||
|
```markdown
|
||||||
|
### Today's Context
|
||||||
|
- **Week's ONE Big Thing:** [from weekly review]
|
||||||
|
- **Active Projects:** [project names with first next-action each]
|
||||||
|
- **Monthly Focus:** [from monthly goals]
|
||||||
|
```
|
||||||
|
|
||||||
### Interactive Prompts
|
### Interactive Prompts
|
||||||
- "What's your ONE thing for today?"
|
- "What's your ONE thing for today?"
|
||||||
- "What might get in the way?"
|
- "What might get in the way?"
|
||||||
- "How do you want to feel at end of day?"
|
- "How do you want to feel at end of day?"
|
||||||
|
|
||||||
|
### Task Creation Guidance
|
||||||
|
When adding tasks to the daily note, recommend linking to goals/projects:
|
||||||
|
```markdown
|
||||||
|
- [ ] Draft API spec — Supports: [[Projects/MyApp]]
|
||||||
|
- [ ] Review chapter 3 — Supports: [[1. Yearly Goals#Read 12 books]]
|
||||||
|
```
|
||||||
|
|
||||||
### Morning Checklist
|
### Morning Checklist
|
||||||
- [ ] Daily note created
|
- [ ] Daily note created
|
||||||
|
- [ ] Cascade context reviewed (ONE Big Thing, projects, monthly focus)
|
||||||
- [ ] Yesterday's incomplete tasks reviewed
|
- [ ] Yesterday's incomplete tasks reviewed
|
||||||
- [ ] ONE priority identified
|
- [ ] ONE priority identified
|
||||||
- [ ] Time blocks set
|
- [ ] Time blocks set
|
||||||
@@ -96,6 +119,15 @@ Your daily template can use:
|
|||||||
3. Log energy levels (1-10)
|
3. Log energy levels (1-10)
|
||||||
4. Record gratitude items
|
4. Record gratitude items
|
||||||
|
|
||||||
|
### Goal & Project Attention Summary
|
||||||
|
Automatically generate an end-of-day summary showing which goals and projects received attention:
|
||||||
|
```markdown
|
||||||
|
### Today's Cascade Impact
|
||||||
|
- **Goals touched:** [[Goal 1]] (2 tasks), [[Goal 3]] (1 task)
|
||||||
|
- **Projects advanced:** [[ProjectA]] (3 tasks), [[ProjectB]] (1 task)
|
||||||
|
- **Unlinked tasks:** 2 (consider linking to a goal or project)
|
||||||
|
```
|
||||||
|
|
||||||
### Reflect
|
### Reflect
|
||||||
- What went well today?
|
- What went well today?
|
||||||
- What could be better?
|
- What could be better?
|
||||||
@@ -181,11 +213,75 @@ Organize daily notes by month/year:
|
|||||||
Daily Notes/2024/01/2024-01-15.md
|
Daily Notes/2024/01/2024-01-15.md
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Task-Based Progress Tracking
|
||||||
|
|
||||||
|
The daily skill uses session tasks to show progress during multi-step routines.
|
||||||
|
|
||||||
|
### Morning Routine Tasks
|
||||||
|
|
||||||
|
Create tasks at skill start:
|
||||||
|
|
||||||
|
```
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Create daily note"
|
||||||
|
description: "Create or open today's daily note from template"
|
||||||
|
activeForm: "Creating daily note..."
|
||||||
|
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Pull incomplete tasks"
|
||||||
|
description: "Carry forward uncompleted tasks from yesterday"
|
||||||
|
activeForm: "Pulling incomplete tasks from yesterday..."
|
||||||
|
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Surface relevant goals"
|
||||||
|
description: "Review weekly/monthly goals for today's priority"
|
||||||
|
activeForm: "Surfacing relevant goals..."
|
||||||
|
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Set time blocks"
|
||||||
|
description: "Establish time blocks based on energy and priorities"
|
||||||
|
activeForm: "Setting time blocks..."
|
||||||
|
```
|
||||||
|
|
||||||
|
### Dependencies
|
||||||
|
|
||||||
|
Morning routine tasks run sequentially:
|
||||||
|
```
|
||||||
|
TaskUpdate: "Pull incomplete tasks", addBlockedBy: [create-daily-note-id]
|
||||||
|
TaskUpdate: "Surface relevant goals", addBlockedBy: [pull-incomplete-tasks-id]
|
||||||
|
TaskUpdate: "Set time blocks", addBlockedBy: [surface-relevant-goals-id]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Evening Shutdown Tasks
|
||||||
|
|
||||||
|
```
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Update task statuses"
|
||||||
|
description: "Mark completed tasks, note blockers"
|
||||||
|
activeForm: "Updating task statuses..."
|
||||||
|
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Generate reflection prompts"
|
||||||
|
description: "Prompt for wins, challenges, learnings, gratitude"
|
||||||
|
activeForm: "Generating reflection prompts..."
|
||||||
|
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Prepare tomorrow's preview"
|
||||||
|
description: "Identify tomorrow's priority and move incomplete tasks"
|
||||||
|
activeForm: "Preparing tomorrow's preview..."
|
||||||
|
```
|
||||||
|
|
||||||
|
Mark each task `in_progress` when starting, `completed` when done using TaskUpdate.
|
||||||
|
|
||||||
|
Task tools provide visibility into what's happening during longer operations. Tasks are session-scoped and don't persist between Claude sessions—your actual work items remain in your daily note markdown checkboxes.
|
||||||
|
|
||||||
## Integration
|
## Integration
|
||||||
|
|
||||||
Works with:
|
Works with:
|
||||||
- `/push` - Commit end-of-day changes
|
- `/push` - Commit end-of-day changes
|
||||||
- `/weekly` - Weekly planning uses daily notes
|
- `/weekly` - Weekly planning uses daily notes
|
||||||
|
- `/monthly` - Monthly goals inform daily focus
|
||||||
|
- `/project` - Surface project next-actions in morning
|
||||||
- `/onboard` - Load context before planning
|
- `/onboard` - Load context before planning
|
||||||
- Goal tracking skill - Align daily tasks to goals
|
- Goal tracking skill - Align daily tasks to goals
|
||||||
- Productivity Coach - Accountability for daily routines
|
- Productivity Coach - Accountability for daily routines
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
---
|
---
|
||||||
name: goal-tracking
|
name: goal-tracking
|
||||||
description: Track progress toward 3-year, yearly, monthly, and weekly goals. Calculate completion percentages, surface stalled goals, connect daily tasks to objectives. Use for goal reviews and progress tracking.
|
description: Track progress toward 3-year, yearly, monthly, and weekly goals. Calculate completion percentages, surface stalled goals, connect daily tasks to objectives. Use for goal reviews and progress tracking.
|
||||||
allowed-tools: Read, Grep, Glob, Edit
|
allowed-tools: Read, Grep, Glob, Edit, TaskCreate, TaskUpdate, TaskList, TaskGet
|
||||||
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
# Goal Tracking Skill
|
# Goal Tracking Skill
|
||||||
@@ -15,6 +16,8 @@ Goals/0. Three Year Goals.md <- Vision (Life areas)
|
|||||||
↓
|
↓
|
||||||
Goals/1. Yearly Goals.md <- Annual objectives
|
Goals/1. Yearly Goals.md <- Annual objectives
|
||||||
↓
|
↓
|
||||||
|
Projects/*/CLAUDE.md <- Active projects (bridge layer)
|
||||||
|
↓
|
||||||
Goals/2. Monthly Goals.md <- Current month focus
|
Goals/2. Monthly Goals.md <- Current month focus
|
||||||
↓
|
↓
|
||||||
Goals/3. Weekly Review.md <- Weekly planning
|
Goals/3. Weekly Review.md <- Weekly planning
|
||||||
@@ -97,6 +100,20 @@ When adding tasks to daily notes:
|
|||||||
2. Flag goals with no progress in 14+ days
|
2. Flag goals with no progress in 14+ days
|
||||||
3. Suggest actions to restart momentum
|
3. Suggest actions to restart momentum
|
||||||
|
|
||||||
|
## Project-Aware Progress
|
||||||
|
|
||||||
|
### Project Integration
|
||||||
|
When calculating goal progress, include project data:
|
||||||
|
1. Scan `Projects/*/CLAUDE.md` for all active projects
|
||||||
|
2. Match projects to goals via their "Goal Link" / "Supports" field
|
||||||
|
3. Include project completion % in goal progress calculations
|
||||||
|
4. Surface which projects support each goal
|
||||||
|
|
||||||
|
### Orphan Goal Detection
|
||||||
|
Flag goals that have no active project supporting them:
|
||||||
|
- A goal with 0 linked projects may need a project created (`/project new`)
|
||||||
|
- A goal with only completed/archived projects may need a new initiative
|
||||||
|
|
||||||
## Progress Report Format
|
## Progress Report Format
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
@@ -105,23 +122,87 @@ When adding tasks to daily notes:
|
|||||||
### Overall: XX%
|
### Overall: XX%
|
||||||
|
|
||||||
### By Goal
|
### By Goal
|
||||||
| Goal | Progress | Last Activity | Status |
|
| Goal | Progress | Projects | Last Activity | Status |
|
||||||
|------|----------|---------------|--------|
|
|------|----------|----------|---------------|--------|
|
||||||
| Goal 1 | 75% | 2 days ago | On Track |
|
| Goal 1 | 75% | [[ProjectA]] (80%), [[ProjectB]] (60%) | 2 days ago | On Track |
|
||||||
| Goal 2 | 30% | 14 days ago | Stalled |
|
| Goal 2 | 30% | (none) | 14 days ago | Stalled |
|
||||||
|
|
||||||
|
### Project Status
|
||||||
|
| Project | Goal | Progress | Phase |
|
||||||
|
|---------|------|----------|-------|
|
||||||
|
| [[ProjectA]] | Goal 1 | 80% | Active |
|
||||||
|
| [[ProjectB]] | Goal 1 | 60% | Active |
|
||||||
|
|
||||||
|
### Orphan Goals (no active project)
|
||||||
|
- Goal 2 — Consider `/project new` to create a supporting project
|
||||||
|
|
||||||
### This Week's Contributions
|
### This Week's Contributions
|
||||||
- [Task] -> [[Goal 1]]
|
- [Task] -> [[Goal 1]] via [[ProjectA]]
|
||||||
- [Task] -> [[Goal 2]]
|
- [Task] -> [[Goal 2]]
|
||||||
|
|
||||||
### Recommended Focus
|
### Recommended Focus
|
||||||
1. [Stalled goal needs attention]
|
1. [Stalled goal needs attention]
|
||||||
2. [Nearly complete goal - finish it]
|
2. [Nearly complete goal - finish it]
|
||||||
|
3. [Orphan goal needs a project]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Task-Based Progress Tracking
|
||||||
|
|
||||||
|
The goal tracking skill uses session tasks when generating comprehensive progress reports.
|
||||||
|
|
||||||
|
### Progress Report Tasks
|
||||||
|
|
||||||
|
Create tasks at skill start:
|
||||||
|
|
||||||
|
```
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Read three-year goals"
|
||||||
|
description: "Load vision statements from Goals/0. Three Year Goals.md"
|
||||||
|
activeForm: "Reading three-year goals..."
|
||||||
|
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Read yearly goals"
|
||||||
|
description: "Load annual objectives from Goals/1. Yearly Goals.md"
|
||||||
|
activeForm: "Reading yearly goals..."
|
||||||
|
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Read monthly goals"
|
||||||
|
description: "Load current month focus from Goals/2. Monthly Goals.md"
|
||||||
|
activeForm: "Reading monthly goals..."
|
||||||
|
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Scan recent daily notes"
|
||||||
|
description: "Find task completions and goal contributions from past week"
|
||||||
|
activeForm: "Scanning recent daily notes..."
|
||||||
|
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Calculate completion percentages"
|
||||||
|
description: "Compute progress for each goal based on checkboxes and metrics"
|
||||||
|
activeForm: "Calculating completion percentages..."
|
||||||
|
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Identify stalled goals"
|
||||||
|
description: "Flag goals with no progress in 14+ days"
|
||||||
|
activeForm: "Identifying stalled goals..."
|
||||||
|
```
|
||||||
|
|
||||||
|
### Dependencies
|
||||||
|
|
||||||
|
Goal file reads can run in parallel, but analysis depends on having all data:
|
||||||
|
```
|
||||||
|
TaskUpdate: "Scan recent daily notes", addBlockedBy: [read-monthly-goals-id]
|
||||||
|
TaskUpdate: "Calculate completion percentages", addBlockedBy: [scan-recent-daily-notes-id]
|
||||||
|
TaskUpdate: "Identify stalled goals", addBlockedBy: [calculate-completion-percentages-id]
|
||||||
|
```
|
||||||
|
|
||||||
|
Mark each task `in_progress` when starting, `completed` when done using TaskUpdate.
|
||||||
|
|
||||||
|
Task tools are session-scoped and don't persist—your actual goal progress is tracked through markdown checkboxes and percentages in your goal files.
|
||||||
|
|
||||||
## Integration Points
|
## Integration Points
|
||||||
|
|
||||||
- Weekly review: Full progress assessment
|
- `/weekly` review: Full progress assessment with project rollup
|
||||||
- Daily planning: Surface relevant goals
|
- `/daily` planning: Surface relevant goals and project next-actions
|
||||||
- Monthly review: Adjust goals as needed
|
- `/monthly` review: Adjust goals as needed, check quarterly milestones
|
||||||
|
- `/project status`: Project completion feeds goal calculations
|
||||||
- Quarterly review: Cascade from 3-year vision
|
- Quarterly review: Cascade from 3-year vision
|
||||||
|
|||||||
200
vault-template/.claude/skills/monthly/SKILL.md
Normal file
200
vault-template/.claude/skills/monthly/SKILL.md
Normal file
@@ -0,0 +1,200 @@
|
|||||||
|
---
|
||||||
|
name: monthly
|
||||||
|
description: Monthly review and planning. Roll up weekly reviews, check quarterly milestones, set next month's focus. Use at end of month or start of new month.
|
||||||
|
allowed-tools: Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdate, TaskList, TaskGet
|
||||||
|
model: sonnet
|
||||||
|
user-invocable: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# Monthly Review Skill
|
||||||
|
|
||||||
|
Facilitates monthly review and planning by rolling up weekly reviews, checking quarterly milestones, and setting next month's focus.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```
|
||||||
|
/monthly # Run monthly review for current month
|
||||||
|
```
|
||||||
|
|
||||||
|
Or ask:
|
||||||
|
- "Help me with my monthly review"
|
||||||
|
- "Plan next month"
|
||||||
|
- "How did this month go?"
|
||||||
|
|
||||||
|
## What This Skill Does
|
||||||
|
|
||||||
|
1. **Creates or opens monthly goals file** (`Goals/2. Monthly Goals.md`)
|
||||||
|
2. **Rolls up weekly reviews** from the past month
|
||||||
|
3. **Checks quarterly milestones** against yearly goals
|
||||||
|
4. **Plans next month's** focus areas and priorities
|
||||||
|
|
||||||
|
## Review Process
|
||||||
|
|
||||||
|
### Phase 1: Collect Monthly Data (10 minutes)
|
||||||
|
|
||||||
|
1. Read all weekly reviews from the past month (`Goals/3. Weekly Review.md` or weekly review notes)
|
||||||
|
2. Read daily notes from past 30 days (scan for patterns)
|
||||||
|
3. Read current `Goals/2. Monthly Goals.md` for this month's targets
|
||||||
|
4. Scan `Projects/*/CLAUDE.md` for project status updates
|
||||||
|
|
||||||
|
**Extract:**
|
||||||
|
- Wins from each week
|
||||||
|
- Challenges and recurring blockers
|
||||||
|
- Goal progress percentages
|
||||||
|
- Project milestones completed
|
||||||
|
- Habits tracked (completion rates)
|
||||||
|
|
||||||
|
### Phase 2: Reflect on Month (10 minutes)
|
||||||
|
|
||||||
|
1. Read `Goals/1. Yearly Goals.md` for quarterly milestones
|
||||||
|
2. Calculate which quarter we're in and check milestone progress
|
||||||
|
3. Identify patterns across weeks (energy, productivity, focus areas)
|
||||||
|
4. Compare planned vs actual outcomes
|
||||||
|
|
||||||
|
**Generate:**
|
||||||
|
- Monthly accomplishment summary
|
||||||
|
- Quarterly milestone progress check
|
||||||
|
- Pattern analysis (what worked, what didn't)
|
||||||
|
- Goal alignment assessment
|
||||||
|
|
||||||
|
### Phase 3: Plan Next Month (10 minutes)
|
||||||
|
|
||||||
|
1. Identify next month's quarterly milestones
|
||||||
|
2. Surface projects that need attention
|
||||||
|
3. Set next month's primary focus (ONE thing)
|
||||||
|
4. Define 3-tier priorities (must/should/nice-to-have)
|
||||||
|
5. Plan habits to build or maintain
|
||||||
|
|
||||||
|
**Write:**
|
||||||
|
- Update `Goals/2. Monthly Goals.md` with next month's plan
|
||||||
|
- Set specific weekly milestones for the month ahead
|
||||||
|
|
||||||
|
## Output Format
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
## Monthly Review: [Month Year]
|
||||||
|
|
||||||
|
### Month Summary
|
||||||
|
- Weeks reviewed: 4
|
||||||
|
- Daily notes analyzed: [N]
|
||||||
|
- Projects active: [N]
|
||||||
|
|
||||||
|
### Wins
|
||||||
|
1. [Major accomplishment]
|
||||||
|
2. [Progress milestone]
|
||||||
|
3. [Habit success]
|
||||||
|
|
||||||
|
### Challenges
|
||||||
|
1. [Recurring blocker]
|
||||||
|
2. [Missed target]
|
||||||
|
|
||||||
|
### Patterns
|
||||||
|
- **Energy:** [When were you most productive?]
|
||||||
|
- **Focus:** [What got the most attention?]
|
||||||
|
- **Gaps:** [What was consistently avoided?]
|
||||||
|
|
||||||
|
### Goal Progress
|
||||||
|
| Goal | Start of Month | End of Month | Delta |
|
||||||
|
|------|---------------|-------------|-------|
|
||||||
|
| [Goal 1] | 30% | 45% | +15% |
|
||||||
|
| [Goal 2] | 50% | 55% | +5% |
|
||||||
|
|
||||||
|
### Quarterly Milestone Check
|
||||||
|
**Quarter: Q[N] ([Month Range])**
|
||||||
|
| Milestone | Status | Notes |
|
||||||
|
|-----------|--------|-------|
|
||||||
|
| [Milestone 1] | On Track | [Detail] |
|
||||||
|
| [Milestone 2] | At Risk | [What's needed] |
|
||||||
|
|
||||||
|
### Project Status
|
||||||
|
| Project | Progress | Status | Next Month Focus |
|
||||||
|
|---------|----------|--------|-----------------|
|
||||||
|
| [Project 1] | 60% | Active | [Key deliverable] |
|
||||||
|
|
||||||
|
### Next Month Plan
|
||||||
|
|
||||||
|
**ONE Focus:** [Primary objective]
|
||||||
|
|
||||||
|
**Must Complete:**
|
||||||
|
1. [Non-negotiable deliverable]
|
||||||
|
2. [Critical milestone]
|
||||||
|
3. [Key commitment]
|
||||||
|
|
||||||
|
**Should Complete:**
|
||||||
|
1. [Important but flexible]
|
||||||
|
2. [Supporting goal]
|
||||||
|
|
||||||
|
**Nice to Have:**
|
||||||
|
1. [Stretch goal]
|
||||||
|
|
||||||
|
**Weekly Milestones:**
|
||||||
|
- Week 1: [Focus]
|
||||||
|
- Week 2: [Focus]
|
||||||
|
- Week 3: [Focus]
|
||||||
|
- Week 4: [Focus + monthly review]
|
||||||
|
|
||||||
|
### Wellbeing Check
|
||||||
|
- Physical Health: /10
|
||||||
|
- Mental Health: /10
|
||||||
|
- Relationships: /10
|
||||||
|
- Work Satisfaction: /10
|
||||||
|
- Overall: /10
|
||||||
|
|
||||||
|
### Questions to Consider
|
||||||
|
- "What would make next month feel truly successful?"
|
||||||
|
- "What commitment should you drop or delegate?"
|
||||||
|
- "Which goal needs a different approach?"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Data Sources
|
||||||
|
|
||||||
|
Always read these files:
|
||||||
|
- `Goals/0. Three Year Goals.md` - Long-term vision context
|
||||||
|
- `Goals/1. Yearly Goals.md` - Quarterly milestones and annual objectives
|
||||||
|
- `Goals/2. Monthly Goals.md` - Current month's plan (to review) and next month's (to write)
|
||||||
|
- `Goals/3. Weekly Review.md` - Weekly reviews from past month
|
||||||
|
- `Daily Notes/*.md` - Past 30 days of notes
|
||||||
|
- `Projects/*/CLAUDE.md` - All active project statuses
|
||||||
|
|
||||||
|
## Task-Based Progress Tracking
|
||||||
|
|
||||||
|
### Monthly Review Tasks
|
||||||
|
```
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Phase 1: Collect monthly data"
|
||||||
|
description: "Read weekly reviews, daily notes, and project files from past month"
|
||||||
|
activeForm: "Collecting monthly data..."
|
||||||
|
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Phase 2: Reflect on month"
|
||||||
|
description: "Analyze patterns, check quarterly milestones, assess goal alignment"
|
||||||
|
activeForm: "Reflecting on monthly patterns..."
|
||||||
|
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Phase 3: Plan next month"
|
||||||
|
description: "Set focus, define priorities, establish weekly milestones"
|
||||||
|
activeForm: "Planning next month..."
|
||||||
|
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Write monthly review note"
|
||||||
|
description: "Generate and save the monthly review document"
|
||||||
|
activeForm: "Writing monthly review..."
|
||||||
|
```
|
||||||
|
|
||||||
|
### Dependencies
|
||||||
|
```
|
||||||
|
TaskUpdate: "Phase 2: Reflect", addBlockedBy: [phase-1-id]
|
||||||
|
TaskUpdate: "Phase 3: Plan", addBlockedBy: [phase-2-id]
|
||||||
|
TaskUpdate: "Write monthly review", addBlockedBy: [phase-3-id]
|
||||||
|
```
|
||||||
|
|
||||||
|
Mark each task `in_progress` when starting, `completed` when done.
|
||||||
|
|
||||||
|
## Integration
|
||||||
|
|
||||||
|
Works with:
|
||||||
|
- `/weekly` - Monthly review rolls up weekly reviews
|
||||||
|
- `/goal-tracking` - Quarterly milestone progress
|
||||||
|
- `/project status` - Project progress feeds monthly assessment
|
||||||
|
- `/daily` - Next month's plan informs daily priorities
|
||||||
|
- `/push` - Commit after completing review
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
name: obsidian-vault-ops
|
name: obsidian-vault-ops
|
||||||
description: Read and write Obsidian vault files, manage wiki-links, process markdown with YAML frontmatter. Use when working with vault file operations, creating notes, or managing links.
|
description: Read and write Obsidian vault files, manage wiki-links, process markdown with YAML frontmatter. Use when working with vault file operations, creating notes, or managing links.
|
||||||
allowed-tools: Read, Write, Edit, Glob, Grep
|
allowed-tools: Read, Write, Edit, Glob, Grep
|
||||||
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
# Obsidian Vault Operations Skill
|
# Obsidian Vault Operations Skill
|
||||||
|
|||||||
@@ -1,29 +1,96 @@
|
|||||||
---
|
---
|
||||||
name: onboard
|
name: onboard
|
||||||
description: Load CLAUDE.md context files from vault for comprehensive understanding. Discovers hierarchical context, recent notes, and project states. Use at start of session or when Claude needs full vault context.
|
description: Interactive vault setup and context loading. On first run, personalizes your vault. On subsequent runs, loads full context. Use at start of session or when Claude needs full vault context.
|
||||||
allowed-tools: Read, Glob, Grep
|
allowed-tools: Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion
|
||||||
|
model: sonnet
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
---
|
---
|
||||||
|
|
||||||
# Onboard Skill
|
# Onboard Skill
|
||||||
|
|
||||||
Loads all CLAUDE.md files from your vault to provide comprehensive context for intelligent assistance.
|
Interactive vault setup (first run) and context loading (subsequent runs).
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Invoke with `/onboard` or ask Claude to learn about your vault.
|
|
||||||
|
|
||||||
### Full Context Load
|
|
||||||
```
|
```
|
||||||
/onboard
|
/onboard # Full onboard (setup if first run, context load if not)
|
||||||
|
/onboard Projects/MyProject # Load specific project context
|
||||||
```
|
```
|
||||||
|
|
||||||
### Specific Project Context
|
## First-Run Setup
|
||||||
```
|
|
||||||
/onboard Projects/MyProject
|
If the file `FIRST_RUN` exists in the vault root, this is a new vault. Run the interactive setup:
|
||||||
|
|
||||||
|
### Step 1: Welcome
|
||||||
|
Greet the user and explain what will happen:
|
||||||
|
- "I'll ask a few questions to personalize your vault (~2 minutes)"
|
||||||
|
- "Your answers are saved locally in vault-config.json"
|
||||||
|
- "You can change these anytime by editing that file or running /onboard again"
|
||||||
|
|
||||||
|
### Step 2: Ask Questions
|
||||||
|
|
||||||
|
Use AskUserQuestion to ask these interactively:
|
||||||
|
|
||||||
|
**Question 1: Your name**
|
||||||
|
- "What should I call you?"
|
||||||
|
- Used for personalized prompts and greetings
|
||||||
|
|
||||||
|
**Question 2: Preferred review day**
|
||||||
|
- "What day do you prefer for your weekly review?"
|
||||||
|
- Options: Sunday (Recommended), Saturday, Monday, Friday
|
||||||
|
- Used by `/review` auto-detection and session-init nudges
|
||||||
|
|
||||||
|
**Question 3: Primary goal areas**
|
||||||
|
- "Which areas are most important to you right now? (Pick 2-4)"
|
||||||
|
- Options: Career & Professional, Health & Wellness, Relationships, Personal Growth
|
||||||
|
- Also offer: Financial, Creativity & Fun, Learning, Other
|
||||||
|
- multiSelect: true
|
||||||
|
- Used to customize goal template suggestions
|
||||||
|
|
||||||
|
**Question 4: Work style**
|
||||||
|
- "How do you prefer Claude to interact?"
|
||||||
|
- Options: Direct and concise (Recommended), Coaching and challenging, Detailed and thorough, Minimal — just do the task
|
||||||
|
- Sets output style preference
|
||||||
|
|
||||||
|
### Step 3: Save Configuration
|
||||||
|
|
||||||
|
Write `vault-config.json` in the vault root:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "User's name",
|
||||||
|
"reviewDay": "Sunday",
|
||||||
|
"goalAreas": ["Career & Professional", "Health & Wellness"],
|
||||||
|
"workStyle": "Direct and concise",
|
||||||
|
"setupDate": "2026-02-15",
|
||||||
|
"version": "3.1"
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## What This Skill Does
|
### Step 4: Personalize CLAUDE.md
|
||||||
|
|
||||||
|
Edit the root `CLAUDE.md`:
|
||||||
|
- Replace `[CUSTOMIZE: Add your personal mission statement here]` with a prompt based on their goal areas
|
||||||
|
- Update the "Current Focus" section to reference their chosen areas
|
||||||
|
|
||||||
|
### Step 5: Remove First-Run Marker
|
||||||
|
|
||||||
|
```bash
|
||||||
|
rm FIRST_RUN
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 6: Confirm Setup
|
||||||
|
|
||||||
|
Tell the user:
|
||||||
|
- "Your vault is set up! Here's what's available:"
|
||||||
|
- Brief cascade overview
|
||||||
|
- "Try `/daily` to start your first morning routine"
|
||||||
|
- "Try `/review` anytime — it auto-detects the right review type"
|
||||||
|
|
||||||
|
Then proceed to the standard context loading below.
|
||||||
|
|
||||||
|
## Standard Context Loading (Subsequent Runs)
|
||||||
|
|
||||||
|
### What This Skill Does
|
||||||
|
|
||||||
1. **Discovers Context Files**
|
1. **Discovers Context Files**
|
||||||
- Searches for all CLAUDE.md files
|
- Searches for all CLAUDE.md files
|
||||||
@@ -35,7 +102,17 @@ Invoke with `/onboard` or ask Claude to learn about your vault.
|
|||||||
- Project-specific CLAUDE.md files
|
- Project-specific CLAUDE.md files
|
||||||
- Recent daily notes for current state
|
- Recent daily notes for current state
|
||||||
|
|
||||||
3. **Builds Understanding**
|
3. **Scans Active Projects**
|
||||||
|
- Auto-discovers all `Projects/*/CLAUDE.md` files
|
||||||
|
- Extracts project name, phase, progress, and goal linkage
|
||||||
|
- Displays active project count and summary in onboard output
|
||||||
|
|
||||||
|
4. **Reads User Preferences**
|
||||||
|
- Loads `vault-config.json` if present
|
||||||
|
- Applies name, review day, work style preferences
|
||||||
|
- Uses goal areas to prioritize context loading
|
||||||
|
|
||||||
|
5. **Builds Understanding**
|
||||||
- Your personal mission/goals
|
- Your personal mission/goals
|
||||||
- Project structures and status
|
- Project structures and status
|
||||||
- Workflow preferences
|
- Workflow preferences
|
||||||
@@ -102,6 +179,16 @@ Automatically considers:
|
|||||||
- Current week's review
|
- Current week's review
|
||||||
- Recently modified projects
|
- Recently modified projects
|
||||||
|
|
||||||
|
### Project Summary
|
||||||
|
When loading full context, include a project overview:
|
||||||
|
```markdown
|
||||||
|
### Active Projects (N)
|
||||||
|
| Project | Phase | Progress | Goal |
|
||||||
|
|---------|-------|----------|------|
|
||||||
|
| [[ProjectA]] | Active | 60% | [[Goal 1]] |
|
||||||
|
| [[ProjectB]] | Planning | 10% | [[Goal 3]] |
|
||||||
|
```
|
||||||
|
|
||||||
### Selective Loading
|
### Selective Loading
|
||||||
For focused assistance:
|
For focused assistance:
|
||||||
```
|
```
|
||||||
@@ -178,4 +265,6 @@ Works with:
|
|||||||
- All other skills (provides context)
|
- All other skills (provides context)
|
||||||
- `/daily` - Better daily planning with context
|
- `/daily` - Better daily planning with context
|
||||||
- `/weekly` - Informed weekly reviews
|
- `/weekly` - Informed weekly reviews
|
||||||
|
- `/monthly` - Monthly review with full context
|
||||||
|
- `/project` - Project status overview
|
||||||
- Goal tracking - Understand goal cascade
|
- Goal tracking - Understand goal cascade
|
||||||
|
|||||||
167
vault-template/.claude/skills/project/SKILL.md
Normal file
167
vault-template/.claude/skills/project/SKILL.md
Normal file
@@ -0,0 +1,167 @@
|
|||||||
|
---
|
||||||
|
name: project
|
||||||
|
description: Create, track, and archive projects linked to goals. The bridge between goals and daily tasks. Use for project creation, status dashboards, and archiving completed work.
|
||||||
|
allowed-tools: Read, Write, Edit, Glob, Grep, Bash, TaskCreate, TaskUpdate, TaskList, TaskGet
|
||||||
|
model: sonnet
|
||||||
|
user-invocable: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# Project Skill
|
||||||
|
|
||||||
|
Create, track, and archive projects that bridge the gap between goals and daily tasks.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```
|
||||||
|
/project # Interactive: create new project or view status
|
||||||
|
/project new # Create a new project
|
||||||
|
/project status # Dashboard of all active projects
|
||||||
|
/project archive <name> # Archive a completed project
|
||||||
|
```
|
||||||
|
|
||||||
|
## Commands
|
||||||
|
|
||||||
|
### `/project` or `/project new`
|
||||||
|
|
||||||
|
Creates a new project folder with a CLAUDE.md context file, interactively linked to a goal.
|
||||||
|
|
||||||
|
**Steps:**
|
||||||
|
1. Read `Goals/1. Yearly Goals.md` to list available goals
|
||||||
|
2. Ask user which goal this project supports (or "none" for standalone)
|
||||||
|
3. Ask for project name
|
||||||
|
4. Create `Projects/<ProjectName>/CLAUDE.md` with structure below
|
||||||
|
5. If linked to a goal, add `[[Projects/<ProjectName>]]` reference in the yearly goals file
|
||||||
|
|
||||||
|
**Project CLAUDE.md Template:**
|
||||||
|
```markdown
|
||||||
|
# Project: <Name>
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
[Brief description of what this project achieves]
|
||||||
|
|
||||||
|
## Goal Link
|
||||||
|
Supports: [[1. Yearly Goals#<Goal Name>]]
|
||||||
|
|
||||||
|
## Status
|
||||||
|
- **Phase:** Planning | Active | Review | Complete
|
||||||
|
- **Progress:** 0%
|
||||||
|
- **Started:** <date>
|
||||||
|
- **Target:** <date>
|
||||||
|
|
||||||
|
## Key Decisions
|
||||||
|
- [Decision 1] - [Date] - [Rationale]
|
||||||
|
|
||||||
|
## Next Actions
|
||||||
|
- [ ] [First concrete step]
|
||||||
|
- [ ] [Second step]
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
[Running log of updates, blockers, learnings]
|
||||||
|
```
|
||||||
|
|
||||||
|
### `/project status`
|
||||||
|
|
||||||
|
Scans all `Projects/*/CLAUDE.md` files and displays a dashboard.
|
||||||
|
|
||||||
|
**Steps:**
|
||||||
|
1. Glob for `Projects/*/CLAUDE.md`
|
||||||
|
2. Read each file, extract: name, status/phase, progress%, goal linkage, next action
|
||||||
|
3. Display dashboard table
|
||||||
|
|
||||||
|
**Output Format:**
|
||||||
|
```markdown
|
||||||
|
## Project Dashboard
|
||||||
|
|
||||||
|
| Project | Phase | Progress | Goal | Next Action |
|
||||||
|
|---------|-------|----------|------|-------------|
|
||||||
|
| ProjectA | Active | 60% | [[Goal 1]] | Review PR |
|
||||||
|
| ProjectB | Planning | 10% | [[Goal 3]] | Draft spec |
|
||||||
|
|
||||||
|
### Summary
|
||||||
|
- Active projects: N
|
||||||
|
- Total progress (weighted): X%
|
||||||
|
- Projects without goal link: [list]
|
||||||
|
- Stalled projects (no update in 14+ days): [list]
|
||||||
|
```
|
||||||
|
|
||||||
|
### `/project archive <name>`
|
||||||
|
|
||||||
|
Moves a completed project to the archives.
|
||||||
|
|
||||||
|
**Steps:**
|
||||||
|
1. Verify `Projects/<name>/` exists
|
||||||
|
2. Confirm with user before archiving
|
||||||
|
3. Update project CLAUDE.md status to "Complete" and progress to 100%
|
||||||
|
4. Move folder: `mv Projects/<name> Archives/Projects/<name>`
|
||||||
|
5. Create `Archives/Projects/` directory if it doesn't exist
|
||||||
|
6. Update any goal references to note completion
|
||||||
|
7. Report what was archived
|
||||||
|
|
||||||
|
## Project Naming Conventions
|
||||||
|
|
||||||
|
- Use PascalCase for folder names: `Projects/LearnSpanish/`
|
||||||
|
- Keep names concise but descriptive
|
||||||
|
- Avoid special characters
|
||||||
|
|
||||||
|
## Cascade Integration
|
||||||
|
|
||||||
|
Projects are the critical middle layer:
|
||||||
|
|
||||||
|
```
|
||||||
|
Goals/1. Yearly Goals.md <- "What I want to achieve"
|
||||||
|
|
|
||||||
|
v
|
||||||
|
Projects/*/CLAUDE.md <- "How I'll achieve it" (THIS SKILL)
|
||||||
|
|
|
||||||
|
v
|
||||||
|
Daily Notes/*.md <- "What I'm doing today"
|
||||||
|
```
|
||||||
|
|
||||||
|
When creating tasks in daily notes, reference the project:
|
||||||
|
```markdown
|
||||||
|
- [ ] Draft API spec — [[Projects/MyApp/CLAUDE.md|MyApp]]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Task-Based Progress Tracking
|
||||||
|
|
||||||
|
### New Project Tasks
|
||||||
|
```
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Read yearly goals"
|
||||||
|
description: "Load goals for project linking"
|
||||||
|
activeForm: "Reading yearly goals..."
|
||||||
|
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Create project structure"
|
||||||
|
description: "Create folder and CLAUDE.md for new project"
|
||||||
|
activeForm: "Creating project structure..."
|
||||||
|
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Link project to goal"
|
||||||
|
description: "Add project reference to yearly goals file"
|
||||||
|
activeForm: "Linking project to goal..."
|
||||||
|
```
|
||||||
|
|
||||||
|
### Status Dashboard Tasks
|
||||||
|
```
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Scan project files"
|
||||||
|
description: "Glob and read all Projects/*/CLAUDE.md files"
|
||||||
|
activeForm: "Scanning project files..."
|
||||||
|
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Generate dashboard"
|
||||||
|
description: "Compile status dashboard from project data"
|
||||||
|
activeForm: "Generating project dashboard..."
|
||||||
|
```
|
||||||
|
|
||||||
|
Mark each task `in_progress` when starting, `completed` when done.
|
||||||
|
|
||||||
|
## Integration
|
||||||
|
|
||||||
|
Works with:
|
||||||
|
- `/daily` - Surface project next-actions in morning routine
|
||||||
|
- `/weekly` - Project status in weekly review
|
||||||
|
- `/goal-tracking` - Project progress feeds goal calculations
|
||||||
|
- `/onboard` - Discover and load project context
|
||||||
|
- `/push` - Commit project changes
|
||||||
@@ -2,6 +2,8 @@
|
|||||||
name: push
|
name: push
|
||||||
description: Commit and push vault changes to Git with smart commit messages. Auto-stages files, creates meaningful commits, and syncs with remote. Use after making vault changes or at end of day.
|
description: Commit and push vault changes to Git with smart commit messages. Auto-stages files, creates meaningful commits, and syncs with remote. Use after making vault changes or at end of day.
|
||||||
allowed-tools: Bash, Read, Glob
|
allowed-tools: Bash, Read, Glob
|
||||||
|
model: sonnet
|
||||||
|
disable-model-invocation: true
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
123
vault-template/.claude/skills/review/SKILL.md
Normal file
123
vault-template/.claude/skills/review/SKILL.md
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
---
|
||||||
|
name: review
|
||||||
|
description: Smart review router. Detects context (morning, Sunday, end of month) and launches the appropriate review workflow. Use anytime for the right review at the right time.
|
||||||
|
allowed-tools: Read, Write, Edit, Glob, Grep, Bash, TaskCreate, TaskUpdate, TaskList, TaskGet
|
||||||
|
model: sonnet
|
||||||
|
user-invocable: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# Review Skill
|
||||||
|
|
||||||
|
Smart router that detects context and launches the appropriate review workflow.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```
|
||||||
|
/review # Auto-detect the right review based on time/context
|
||||||
|
/review daily # Force daily review
|
||||||
|
/review weekly # Force weekly review
|
||||||
|
/review monthly # Force monthly review
|
||||||
|
```
|
||||||
|
|
||||||
|
Or simply: "Help me review" — and the right workflow starts.
|
||||||
|
|
||||||
|
## Auto-Detection Logic
|
||||||
|
|
||||||
|
When invoked without arguments, detect context using these rules:
|
||||||
|
|
||||||
|
### 1. Check the Time of Day
|
||||||
|
|
||||||
|
```bash
|
||||||
|
HOUR=$(date +%H)
|
||||||
|
```
|
||||||
|
|
||||||
|
- **Before noon (< 12):** Morning routine — delegate to `/daily` morning workflow
|
||||||
|
- **After 5 PM (>= 17):** Evening shutdown — delegate to `/daily` evening workflow
|
||||||
|
- **Midday (12-17):** Midday check-in — delegate to `/daily` midday workflow
|
||||||
|
|
||||||
|
### 2. Check the Day of Week
|
||||||
|
|
||||||
|
```bash
|
||||||
|
DAY_OF_WEEK=$(date +%u) # 1=Monday, 7=Sunday
|
||||||
|
```
|
||||||
|
|
||||||
|
- **Sunday (7) or Monday (1):** Weekly review — delegate to `/weekly`
|
||||||
|
- Override time-of-day detection
|
||||||
|
- Ask: "Ready for your weekly review?" before proceeding
|
||||||
|
|
||||||
|
### 3. Check the Day of Month
|
||||||
|
|
||||||
|
```bash
|
||||||
|
DAY_OF_MONTH=$(date +%d)
|
||||||
|
DAYS_IN_MONTH=$(date -v+1m -v1d -v-1d +%d 2>/dev/null || date -d "$(date +%Y-%m-01) +1 month -1 day" +%d)
|
||||||
|
```
|
||||||
|
|
||||||
|
- **Last 3 days of month (DAY_OF_MONTH >= DAYS_IN_MONTH - 2):** Monthly review — delegate to `/monthly`
|
||||||
|
- Override both time-of-day and day-of-week detection
|
||||||
|
- Ask: "End of month — ready for your monthly review?" before proceeding
|
||||||
|
|
||||||
|
- **First day of month (DAY_OF_MONTH == 1):** Also suggest monthly review
|
||||||
|
- "It's the first of the month. Want to do your monthly review for last month?"
|
||||||
|
|
||||||
|
### 4. Check Staleness
|
||||||
|
|
||||||
|
Before routing, check for overdue reviews:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Read weekly review file for last date
|
||||||
|
WEEKLY_REVIEW="Goals/3. Weekly Review.md"
|
||||||
|
# If last weekly review > 7 days ago, suggest weekly regardless of day
|
||||||
|
```
|
||||||
|
|
||||||
|
- **Weekly review overdue (>7 days):** Suggest weekly review
|
||||||
|
- "Your last weekly review was N days ago. Want to catch up?"
|
||||||
|
- If user says no, fall through to time-of-day detection
|
||||||
|
|
||||||
|
## Routing Behavior
|
||||||
|
|
||||||
|
After detecting context:
|
||||||
|
|
||||||
|
1. Tell the user what was detected: "It's Sunday evening — launching your weekly review."
|
||||||
|
2. Delegate to the appropriate skill's workflow
|
||||||
|
3. The delegated skill handles everything from there
|
||||||
|
|
||||||
|
### Delegation
|
||||||
|
|
||||||
|
This skill does NOT duplicate the logic of `/daily`, `/weekly`, or `/monthly`. It:
|
||||||
|
1. Detects context
|
||||||
|
2. Informs the user
|
||||||
|
3. Follows the instructions from the target skill's SKILL.md
|
||||||
|
|
||||||
|
### Explicit Override
|
||||||
|
|
||||||
|
If the user specifies a type (`/review weekly`), skip auto-detection entirely and go directly to that review type.
|
||||||
|
|
||||||
|
## Output on Detection
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
### Review Router
|
||||||
|
|
||||||
|
**Time:** 7:15 AM (Morning)
|
||||||
|
**Day:** Sunday
|
||||||
|
**Month day:** 15th
|
||||||
|
|
||||||
|
**Detected:** Weekly review (Sunday override)
|
||||||
|
**Last weekly review:** 3 days ago (not overdue)
|
||||||
|
|
||||||
|
Launching weekly review...
|
||||||
|
```
|
||||||
|
|
||||||
|
## Edge Cases
|
||||||
|
|
||||||
|
- **Multiple triggers** (e.g., last Sunday of month): Monthly takes priority over weekly
|
||||||
|
- **No daily note exists**: Create one first, then continue with review
|
||||||
|
- **User says "no" to suggestion**: Fall through to next detection level
|
||||||
|
- **Explicit argument overrides everything**: `/review monthly` runs monthly review even on a Tuesday morning
|
||||||
|
|
||||||
|
## Integration
|
||||||
|
|
||||||
|
Works with:
|
||||||
|
- `/daily` — Morning, midday, and evening routines
|
||||||
|
- `/weekly` — Full weekly review process
|
||||||
|
- `/monthly` — Monthly review and planning
|
||||||
|
- Session init hook — Staleness data already calculated
|
||||||
104
vault-template/.claude/skills/search/SKILL.md
Normal file
104
vault-template/.claude/skills/search/SKILL.md
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
---
|
||||||
|
name: search
|
||||||
|
description: Search vault content by keyword using Grep. Zero dependencies — works in any vault without indexes or plugins. Groups results by directory for easy scanning.
|
||||||
|
allowed-tools: Grep, Glob, Read
|
||||||
|
user-invocable: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# Search Skill
|
||||||
|
|
||||||
|
Fast keyword search across all vault markdown files using the Grep tool. No indexes, no plugins, no setup — just structured search with directory grouping.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```
|
||||||
|
/search <term>
|
||||||
|
```
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- `/search project planning`
|
||||||
|
- `/search weekly review`
|
||||||
|
- `/search TODO`
|
||||||
|
|
||||||
|
## How to Execute
|
||||||
|
|
||||||
|
When the user invokes `/search <term>`:
|
||||||
|
|
||||||
|
### Step 1: Search for the term
|
||||||
|
|
||||||
|
Use the **Grep** tool to search all `.md` files for the term:
|
||||||
|
|
||||||
|
```
|
||||||
|
Grep:
|
||||||
|
pattern: <search term>
|
||||||
|
glob: "*.md"
|
||||||
|
output_mode: content
|
||||||
|
-n: true
|
||||||
|
-C: 1
|
||||||
|
```
|
||||||
|
|
||||||
|
Exclude hidden directories (`.claude/`, `.obsidian/`) and templates:
|
||||||
|
|
||||||
|
```
|
||||||
|
Grep:
|
||||||
|
pattern: <search term>
|
||||||
|
glob: "*.md"
|
||||||
|
path: .
|
||||||
|
output_mode: content
|
||||||
|
-n: true
|
||||||
|
-C: 1
|
||||||
|
```
|
||||||
|
|
||||||
|
Filter out results from `.claude/`, `.obsidian/`, and `Templates/` directories.
|
||||||
|
|
||||||
|
### Step 2: Group results by directory
|
||||||
|
|
||||||
|
Organise matches into sections by their parent directory:
|
||||||
|
|
||||||
|
- **Daily Notes/** — journal entries
|
||||||
|
- **Goals/** — goal and vision documents
|
||||||
|
- **Projects/** — project notes
|
||||||
|
- **Archives/** — archived content
|
||||||
|
- **Inbox/** — unprocessed items
|
||||||
|
- **(root)** — top-level notes
|
||||||
|
|
||||||
|
### Step 3: Present results
|
||||||
|
|
||||||
|
Format output as:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
## Search: "<term>"
|
||||||
|
|
||||||
|
### Daily Notes/
|
||||||
|
- **2024-01-15.md** (line 23): ...matching context...
|
||||||
|
- **2024-01-14.md** (line 8): ...matching context...
|
||||||
|
|
||||||
|
### Projects/
|
||||||
|
- **Project Alpha.md** (line 45): ...matching context...
|
||||||
|
|
||||||
|
### Goals/
|
||||||
|
- **2024 Goals.md** (line 12): ...matching context...
|
||||||
|
|
||||||
|
**Found X matches across Y files**
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 4: Suggest related content
|
||||||
|
|
||||||
|
After showing results, check if any matched files contain `[[wiki-links]]` to other notes. If so, briefly mention:
|
||||||
|
|
||||||
|
```
|
||||||
|
💡 Related notes mentioned in results: [[Note A]], [[Note B]]
|
||||||
|
```
|
||||||
|
|
||||||
|
## No Results
|
||||||
|
|
||||||
|
If no matches are found:
|
||||||
|
1. Suggest alternative search terms (synonyms, related words)
|
||||||
|
2. Offer to search with case-insensitive matching if the original search was case-sensitive
|
||||||
|
3. Suggest checking `Archives/` if not already included
|
||||||
|
|
||||||
|
## Tips
|
||||||
|
|
||||||
|
- Search is case-sensitive by default. Add `-i: true` to the Grep call for case-insensitive search
|
||||||
|
- Use regex patterns for advanced searches: `task.*complete`, `#tag-name`
|
||||||
|
- Combine with `/daily` to quickly find when something was mentioned
|
||||||
145
vault-template/.claude/skills/upgrade/SKILL.md
Normal file
145
vault-template/.claude/skills/upgrade/SKILL.md
Normal file
@@ -0,0 +1,145 @@
|
|||||||
|
---
|
||||||
|
name: upgrade
|
||||||
|
description: Update vault to the latest version of obsidian-claude-pkm. Creates backup, shows diffs, preserves your content. Use when a new version is available.
|
||||||
|
allowed-tools: Read, Write, Edit, Glob, Grep, Bash
|
||||||
|
model: sonnet
|
||||||
|
user-invocable: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# Upgrade Skill
|
||||||
|
|
||||||
|
Updates your vault's system files to the latest version while preserving all your personal content.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```
|
||||||
|
/upgrade # Interactive upgrade with backup and diff review
|
||||||
|
/upgrade check # Preview what's changed without making modifications
|
||||||
|
```
|
||||||
|
|
||||||
|
## What Gets Updated (System Files)
|
||||||
|
|
||||||
|
- `.claude/skills/*/SKILL.md` — Skill definitions
|
||||||
|
- `.claude/agents/*.md` — Agent configurations
|
||||||
|
- `.claude/hooks/*.sh` — Automation scripts
|
||||||
|
- `.claude/rules/*.md` — Convention rules
|
||||||
|
- `.claude/output-styles/*.md` — Output style definitions
|
||||||
|
- `.claude/settings.json` — Permissions and hook config
|
||||||
|
- `CLAUDE.md` — Root context file (merged carefully)
|
||||||
|
- `Templates/*.md` — Note templates
|
||||||
|
|
||||||
|
## What Never Gets Touched (Your Content)
|
||||||
|
|
||||||
|
- `Daily Notes/**` — Your daily journal entries
|
||||||
|
- `Goals/**` — Your goal files and reviews
|
||||||
|
- `Projects/**` — Your project folders and CLAUDE.md files
|
||||||
|
- `Archives/**` — Your archived content
|
||||||
|
- `Inbox/**` — Your captured items
|
||||||
|
- `CLAUDE.local.md` — Your personal overrides
|
||||||
|
- `vault-config.json` — Your preferences
|
||||||
|
|
||||||
|
## Upgrade Process
|
||||||
|
|
||||||
|
### Step 1: Check for Updates
|
||||||
|
|
||||||
|
Read the current version from `CLAUDE.md` (look for "System Version:" line).
|
||||||
|
|
||||||
|
Compare with the upstream repo. If using git:
|
||||||
|
```bash
|
||||||
|
git fetch origin
|
||||||
|
git log HEAD..origin/main --oneline
|
||||||
|
```
|
||||||
|
|
||||||
|
If not a git repo or no remote, inform user they need to download the latest `vault-template/` manually.
|
||||||
|
|
||||||
|
### Step 2: Create Backup
|
||||||
|
|
||||||
|
Before any changes, create a timestamped backup:
|
||||||
|
```bash
|
||||||
|
BACKUP_DIR=".backup/upgrade-$(date +%Y%m%d-%H%M%S)"
|
||||||
|
mkdir -p "$BACKUP_DIR"
|
||||||
|
cp -r .claude "$BACKUP_DIR/"
|
||||||
|
cp CLAUDE.md "$BACKUP_DIR/"
|
||||||
|
cp -r Templates "$BACKUP_DIR/" 2>/dev/null
|
||||||
|
```
|
||||||
|
|
||||||
|
Tell the user: "Backup created at $BACKUP_DIR"
|
||||||
|
|
||||||
|
### Step 3: Diff Review
|
||||||
|
|
||||||
|
For each system file that differs from upstream:
|
||||||
|
1. Show a summary of what changed (additions, removals, modifications)
|
||||||
|
2. Ask user to confirm: "Apply this update? (yes/skip/stop)"
|
||||||
|
3. If yes: apply the change
|
||||||
|
4. If skip: leave this file unchanged
|
||||||
|
5. If stop: halt the upgrade (backup remains, partial changes preserved)
|
||||||
|
|
||||||
|
### Step 4: Apply Changes
|
||||||
|
|
||||||
|
For each confirmed file:
|
||||||
|
- Copy the new version from upstream
|
||||||
|
- For `CLAUDE.md`: merge carefully — preserve user customizations (Personal Mission, Current Focus sections) while updating system sections (Skills table, version number)
|
||||||
|
- For `settings.json`: merge — add new permissions/hooks, preserve existing customizations
|
||||||
|
|
||||||
|
### Step 5: Post-Upgrade
|
||||||
|
|
||||||
|
1. Make hook scripts executable: `chmod +x .claude/hooks/*.sh`
|
||||||
|
2. Show summary of changes applied
|
||||||
|
3. Update version in CLAUDE.md
|
||||||
|
4. Suggest running `/onboard` to reload context
|
||||||
|
|
||||||
|
## Check Mode (`/upgrade check`)
|
||||||
|
|
||||||
|
When invoked with "check":
|
||||||
|
1. Compare system files against upstream
|
||||||
|
2. List files that would be updated with brief change description
|
||||||
|
3. Show version numbers (current → available)
|
||||||
|
4. Do NOT make any changes
|
||||||
|
5. Suggest running `/upgrade` to apply
|
||||||
|
|
||||||
|
## Output Format
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
## Upgrade Check
|
||||||
|
|
||||||
|
**Current version:** 3.0 (The Cascade)
|
||||||
|
**Available version:** 3.1
|
||||||
|
|
||||||
|
### Files to Update
|
||||||
|
| File | Change Summary |
|
||||||
|
|------|---------------|
|
||||||
|
| `.claude/skills/daily/SKILL.md` | Added cascade context surfacing |
|
||||||
|
| `.claude/agents/goal-aligner.md` | Added memory: project |
|
||||||
|
| `.claude/hooks/session-init.sh` | Added priority surfacing |
|
||||||
|
|
||||||
|
### New Files
|
||||||
|
- `.claude/skills/review/SKILL.md` — Smart review router
|
||||||
|
- `.claude/hooks/skill-discovery.sh` — Auto-list skills
|
||||||
|
|
||||||
|
### No Changes Needed
|
||||||
|
- `.claude/rules/` — Already up to date
|
||||||
|
|
||||||
|
Run `/upgrade` to apply these updates (backup will be created first).
|
||||||
|
```
|
||||||
|
|
||||||
|
## Safety Features
|
||||||
|
|
||||||
|
- Complete backup before any modification
|
||||||
|
- File-by-file confirmation
|
||||||
|
- Can be stopped at any point
|
||||||
|
- User content folders are never touched
|
||||||
|
- `CLAUDE.local.md` personal overrides preserved
|
||||||
|
- Backup includes restoration instructions
|
||||||
|
|
||||||
|
## Error Handling
|
||||||
|
|
||||||
|
- If no git remote: guide user to download latest vault-template manually
|
||||||
|
- If backup fails: abort entire upgrade
|
||||||
|
- If a file copy fails: report error, continue with next file
|
||||||
|
- Always leave vault in a usable state
|
||||||
|
|
||||||
|
## Integration
|
||||||
|
|
||||||
|
Works with:
|
||||||
|
- `/onboard` — Reload context after upgrade
|
||||||
|
- Session init hook — Will reflect updated priorities
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
name: weekly
|
name: weekly
|
||||||
description: Facilitate weekly review process with reflection, goal alignment, and planning. Create review notes, analyze past week, plan next week. Use on Sundays or whenever doing weekly planning.
|
description: Facilitate weekly review process with reflection, goal alignment, and planning. Create review notes, analyze past week, plan next week. Use on Sundays or whenever doing weekly planning.
|
||||||
allowed-tools: Read, Write, Edit, Glob, Grep
|
allowed-tools: Read, Write, Edit, Glob, Grep, TaskCreate, TaskUpdate, TaskList, TaskGet
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -42,13 +42,16 @@ Invoke with `/weekly` or ask Claude to help with your weekly review.
|
|||||||
- Identify wins and challenges
|
- Identify wins and challenges
|
||||||
- Capture lessons learned
|
- Capture lessons learned
|
||||||
|
|
||||||
### Step 2: Goal Alignment (10 minutes)
|
### Step 2: Goal Alignment + Project Rollup (10 minutes)
|
||||||
- Check monthly goal progress
|
- Check monthly goal progress
|
||||||
- Adjust weekly priorities
|
- Adjust weekly priorities
|
||||||
- Ensure alignment with yearly goals
|
- Ensure alignment with yearly goals
|
||||||
|
- Auto-scan `Projects/*/CLAUDE.md` for current status
|
||||||
|
- Compile project progress table for the review note
|
||||||
|
|
||||||
### Step 3: Planning (10 minutes)
|
### Step 3: Planning (10 minutes)
|
||||||
- Set ONE big thing for the week
|
- Set ONE big thing for the week
|
||||||
|
- Include project next-actions when planning week
|
||||||
- Schedule important tasks
|
- Schedule important tasks
|
||||||
- Block time for deep work
|
- Block time for deep work
|
||||||
|
|
||||||
@@ -106,6 +109,12 @@ The skill guides you through:
|
|||||||
### This Week's Contribution
|
### This Week's Contribution
|
||||||
- [Task] -> [[Goal]]
|
- [Task] -> [[Goal]]
|
||||||
|
|
||||||
|
## Project Progress
|
||||||
|
| Project | Phase | Progress | Next Action |
|
||||||
|
|---------|-------|----------|-------------|
|
||||||
|
| [[ProjectA]] | Active | 60% | [Next step] |
|
||||||
|
| [[ProjectB]] | Planning | 10% | [Next step] |
|
||||||
|
|
||||||
## Next Week Planning
|
## Next Week Planning
|
||||||
|
|
||||||
### ONE Big Thing
|
### ONE Big Thing
|
||||||
@@ -116,6 +125,10 @@ The skill guides you through:
|
|||||||
- [ ]
|
- [ ]
|
||||||
- [ ]
|
- [ ]
|
||||||
|
|
||||||
|
### Project Next-Actions
|
||||||
|
- [ ] [ProjectA] - [specific next step]
|
||||||
|
- [ ] [ProjectB] - [specific next step]
|
||||||
|
|
||||||
### Time Blocks
|
### Time Blocks
|
||||||
- Monday:
|
- Monday:
|
||||||
- Tuesday:
|
- Tuesday:
|
||||||
@@ -163,11 +176,87 @@ Calculate habit success rates from daily notes:
|
|||||||
- Communicate changes
|
- Communicate changes
|
||||||
- Celebrate wins
|
- Celebrate wins
|
||||||
|
|
||||||
|
## Task-Based Progress Tracking
|
||||||
|
|
||||||
|
The weekly skill uses session tasks to show progress through the 3-phase review.
|
||||||
|
|
||||||
|
### Phase Tasks
|
||||||
|
|
||||||
|
Create tasks at skill start:
|
||||||
|
|
||||||
|
```
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Phase 1: Collect"
|
||||||
|
description: "Gather daily notes from past week, extract wins and challenges"
|
||||||
|
activeForm: "Collecting daily notes and extracting highlights..."
|
||||||
|
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Phase 2: Reflect"
|
||||||
|
description: "Calculate goal progress, analyze alignment gaps"
|
||||||
|
activeForm: "Calculating goal progress and alignment..."
|
||||||
|
|
||||||
|
TaskCreate:
|
||||||
|
subject: "Phase 3: Plan"
|
||||||
|
description: "Identify ONE Big Thing, plan daily focus areas for next week"
|
||||||
|
activeForm: "Planning next week's focus..."
|
||||||
|
```
|
||||||
|
|
||||||
|
### Dependencies
|
||||||
|
|
||||||
|
Phases must run in order:
|
||||||
|
```
|
||||||
|
TaskUpdate: "Phase 2: Reflect", addBlockedBy: [phase-1-collect-id]
|
||||||
|
TaskUpdate: "Phase 3: Plan", addBlockedBy: [phase-2-reflect-id]
|
||||||
|
```
|
||||||
|
|
||||||
|
Reflect is blocked until Collect completes. Plan is blocked until Reflect completes. This provides visibility into the 30-minute review process.
|
||||||
|
|
||||||
|
Mark each task `in_progress` when starting, `completed` when done using TaskUpdate.
|
||||||
|
|
||||||
|
Task tools are session-scoped and don't persist between Claude sessions—your actual weekly review content is saved in the review note.
|
||||||
|
|
||||||
|
## Agent Team Workflow (Optional)
|
||||||
|
|
||||||
|
For a faster, more thorough weekly review, use agent teams to parallelize the collection phase:
|
||||||
|
|
||||||
|
```
|
||||||
|
Team Lead (coordinator)
|
||||||
|
├── collector agent — Read all daily notes, extract wins/challenges/tasks
|
||||||
|
├── goal-analyzer agent — Read goal files, calculate progress, find gaps
|
||||||
|
└── project-scanner agent — Scan Projects/*/CLAUDE.md, get status updates
|
||||||
|
```
|
||||||
|
|
||||||
|
### How to Use
|
||||||
|
When invoking `/weekly`, you can request the team-based approach:
|
||||||
|
```
|
||||||
|
/weekly
|
||||||
|
"Use the team approach for a thorough review"
|
||||||
|
```
|
||||||
|
|
||||||
|
The team lead:
|
||||||
|
1. Spawns three agents to work in parallel
|
||||||
|
2. Collector reads daily notes and extracts highlights
|
||||||
|
3. Goal-analyzer reads all goal files and calculates progress
|
||||||
|
4. Project-scanner reads all project CLAUDE.md files for status
|
||||||
|
5. Team lead synthesizes findings into the weekly review note
|
||||||
|
|
||||||
|
This makes the review faster (parallel collection) and more thorough (dedicated analysis per area).
|
||||||
|
|
||||||
|
### Vault Health Check (Ad-hoc)
|
||||||
|
|
||||||
|
The weekly review can optionally include a vault health check using multiple agents:
|
||||||
|
- **note-organizer**: Scan for broken links, orphan notes
|
||||||
|
- **goal-aligner**: Check daily-to-goal alignment
|
||||||
|
- **inbox-processor**: Check for unprocessed items
|
||||||
|
|
||||||
|
Request with: "Include a vault health check in my weekly review"
|
||||||
|
|
||||||
## Integration
|
## Integration
|
||||||
|
|
||||||
Works with:
|
Works with:
|
||||||
- `/daily` - Reviews daily notes from the week
|
- `/daily` - Reviews daily notes from the week
|
||||||
|
- `/monthly` - Weekly reviews feed monthly rollup
|
||||||
|
- `/project` - Project status in review
|
||||||
- `/push` - Commit after completing review
|
- `/push` - Commit after completing review
|
||||||
- `/onboard` - Load context for informed review
|
- `/onboard` - Load context for informed review
|
||||||
- Goal tracking skill - Progress calculations
|
- Goal tracking skill - Progress calculations
|
||||||
- `/daily` skill - Plan next week's routines
|
|
||||||
|
|||||||
@@ -34,11 +34,28 @@ Skills are invoked with `/skill-name` or automatically by Claude when relevant.
|
|||||||
|-------|------------|---------|
|
|-------|------------|---------|
|
||||||
| `daily` | `/daily` | Create daily notes, morning/midday/evening routines |
|
| `daily` | `/daily` | Create daily notes, morning/midday/evening routines |
|
||||||
| `weekly` | `/weekly` | Run weekly review, reflect and plan |
|
| `weekly` | `/weekly` | Run weekly review, reflect and plan |
|
||||||
|
| `monthly` | `/monthly` | Monthly review, quarterly milestone check, next month planning |
|
||||||
|
| `project` | `/project` | Create, track, and archive projects linked to goals |
|
||||||
|
| `review` | `/review` | Smart router — auto-detects daily/weekly/monthly based on context |
|
||||||
| `push` | `/push` | Commit and push changes to Git |
|
| `push` | `/push` | Commit and push changes to Git |
|
||||||
| `onboard` | `/onboard` | Load full vault context |
|
| `onboard` | `/onboard` | Interactive setup (first run) + load vault context |
|
||||||
| `goal-tracking` | (auto) | Track progress across goal cascade |
|
| `adopt` | `/adopt` | Scaffold PKM system onto an existing Obsidian vault |
|
||||||
|
| `upgrade` | `/upgrade` | Update to latest version, preserving your content |
|
||||||
|
| `goal-tracking` | (auto) | Track progress across goal cascade with project awareness |
|
||||||
| `obsidian-vault-ops` | (auto) | Read/write vault files, manage wiki-links |
|
| `obsidian-vault-ops` | (auto) | Read/write vault files, manage wiki-links |
|
||||||
|
|
||||||
|
### Progress Visibility
|
||||||
|
|
||||||
|
Skills and agents use session task tools to show progress during multi-step operations:
|
||||||
|
|
||||||
|
```
|
||||||
|
[Spinner] Creating daily note...
|
||||||
|
[Spinner] Pulling incomplete tasks...
|
||||||
|
[Done] Morning routine complete (4/4 tasks)
|
||||||
|
```
|
||||||
|
|
||||||
|
Session tasks are temporary progress indicators—your actual to-do items remain as markdown checkboxes in daily notes.
|
||||||
|
|
||||||
## Available Agents
|
## Available Agents
|
||||||
|
|
||||||
| Agent | Purpose |
|
| Agent | Purpose |
|
||||||
@@ -56,24 +73,42 @@ Skills are invoked with `/skill-name` or automatically by Claude when relevant.
|
|||||||
- Asks powerful questions for clarity
|
- Asks powerful questions for clarity
|
||||||
- Connects daily work to mission
|
- Connects daily work to mission
|
||||||
|
|
||||||
|
## The Cascade
|
||||||
|
|
||||||
|
The full goals-to-tasks flow:
|
||||||
|
|
||||||
|
```
|
||||||
|
3-Year Vision → Yearly Goals → Projects → Monthly Goals → Weekly Review → Daily Tasks
|
||||||
|
/goal-tracking /project /project /monthly /weekly /daily
|
||||||
|
```
|
||||||
|
|
||||||
## Daily Workflow
|
## Daily Workflow
|
||||||
|
|
||||||
### Morning (5 min)
|
### Morning (5 min)
|
||||||
1. Run `/daily` to create today's note
|
1. Run `/daily` to create today's note
|
||||||
2. Identify ONE main focus
|
2. Review cascade context (ONE Big Thing, project next-actions)
|
||||||
3. Review yesterday's incomplete tasks
|
3. Identify ONE main focus
|
||||||
4. Set time blocks
|
4. Review yesterday's incomplete tasks
|
||||||
|
5. Set time blocks
|
||||||
|
|
||||||
### Evening (5 min)
|
### Evening (5 min)
|
||||||
1. Complete reflection section
|
1. Complete reflection section
|
||||||
2. Move unfinished tasks
|
2. Review goal/project attention summary
|
||||||
3. Run `/push` to save changes
|
3. Move unfinished tasks
|
||||||
|
4. Run `/push` to save changes
|
||||||
|
|
||||||
### Weekly (30 min - Sunday)
|
### Weekly (30 min - Sunday)
|
||||||
1. Run `/weekly` for guided review
|
1. Run `/weekly` for guided review
|
||||||
2. Calculate goal progress
|
2. Review project progress table
|
||||||
3. Plan next week's focus
|
3. Calculate goal progress
|
||||||
4. Archive old notes
|
4. Plan next week's focus
|
||||||
|
5. Archive old notes
|
||||||
|
|
||||||
|
### Monthly (30 min - End of month)
|
||||||
|
1. Run `/monthly` for guided review
|
||||||
|
2. Roll up weekly wins/challenges
|
||||||
|
3. Check quarterly milestones
|
||||||
|
4. Plan next month's focus
|
||||||
|
|
||||||
## Best Practices
|
## Best Practices
|
||||||
|
|
||||||
@@ -90,5 +125,14 @@ See `CLAUDE.local.md.template` for format.
|
|||||||
---
|
---
|
||||||
|
|
||||||
*See @.claude/rules/ for detailed conventions*
|
*See @.claude/rules/ for detailed conventions*
|
||||||
*Last Updated: 2026-01-10*
|
*Last Updated: 2026-02-15*
|
||||||
*System Version: 2.1 (Unified Skills)*
|
*System Version: 3.1*
|
||||||
|
|
||||||
|
|
||||||
|
<claude-mem-context>
|
||||||
|
# Recent Activity
|
||||||
|
|
||||||
|
<!-- This section is auto-generated by claude-mem. Edit content outside the tags. -->
|
||||||
|
|
||||||
|
*No recent activity*
|
||||||
|
</claude-mem-context>
|
||||||
2
vault-template/FIRST_RUN
Normal file
2
vault-template/FIRST_RUN
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
This file triggers the first-run welcome message.
|
||||||
|
It is automatically removed after you run /onboard.
|
||||||
Reference in New Issue
Block a user