Files
obsidian-claude-pkm/CONTRIBUTING.md
Bill Allred b2151c075a v3.1: Onboarding, upgrade system, and positioning overhaul
Reposition as "AI Accountability System" — not just another PKM starter kit.
README restructured to lead with the cascade as the hero feature.

New skills:
- /review — smart router that auto-detects daily/weekly/monthly context
- /upgrade — built-in update system with backup, diff review, safe merge
- /onboard enhanced — interactive first-run setup (name, review day, goal
  areas, work style) writes vault-config.json and personalizes CLAUDE.md

New infrastructure:
- FIRST_RUN marker + session-init welcome for new vaults
- Skill discovery hook (UserPromptSubmit) — lists available skills when
  user mentions "skill", "help", "command"
- CONTRIBUTING.md with architecture overview and good first issues

README:
- Cascade diagram and flow description as opening hero
- "Not another PKM starter kit" positioning
- Skills table with all 10 skills
- Zero dependencies highlighted as a feature
- v2.1→v3.1 and v1.x→v3.1 upgrade instructions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 20:07:22 +01:00

117 lines
5.0 KiB
Markdown

# 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.