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.
- Open an issue with steps to reproduce
- Include your OS, Claude Code version, and relevant vault structure
- Open an issue with the
enhancementlabel - Describe the problem you're solving, not just the solution
- Bonus: explain how it connects to the goal cascade
- Fork the repo
- Create a feature branch (
git checkout -b feature/my-improvement) - Make your changes in
vault-template/ - Test by copying to a fresh vault and running the affected skills
- Commit with a clear message
- Open a PR against
main
- Fix typos, clarify instructions, add examples
- Documentation PRs are always welcome and easy to review
Look for issues labeled good first issue. 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)
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
-
Zero dependencies — No npm, no Python, no external tools. Everything is bash + markdown. This is intentional — keep it that way.
-
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.
-
Skills, not scripts — Skills are markdown files that instruct Claude, not executable code. They describe what to do, and Claude figures out how.
-
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.
-
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.
- Create
vault-template/.claude/skills/your-skill/SKILL.md - Add YAML frontmatter:
--- name: your-skill description: One-line description of what it does. allowed-tools: Read, Write, Edit, Glob, Grep model: sonnet user-invocable: true ---
- Write the skill prompt — describe the workflow, output format, and integration points
- Add it to
vault-template/CLAUDE.mdskills table - Update
README.mdskills table - Test in a fresh vault
- Create
vault-template/.claude/agents/your-agent.md - Add frontmatter with
memory: projectfor cross-session learning - Define the agent's personality, responsibilities, and output format
- Add to
vault-template/CLAUDE.mdagents table - Test multi-turn interactions
- 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.
There's no automated test suite (yet). To test your changes:
- Copy
vault-template/to a temporary location - Open it as an Obsidian vault
- Start Claude Code in that directory
- Run the affected skills/agents
- Verify the output matches expectations
Open an issue or start a discussion. We're happy to help you find the right place to contribute.