Local-first knowledge management system with BYO API keys. Features: - 3-panel UI (Nodes | Focus | Helpers) - SQLite + sqlite-vec for vector search - Agent system (Easy/Hard mode orchestrators) - Content extraction (YouTube, PDF, web) - Integrate workflow for connection discovery - Dimension system with auto-assignment Tech stack: - Next.js 15 + TypeScript + Tailwind CSS - Anthropic (Claude) + OpenAI (GPT) via Vercel AI SDK Setup: npm install && npm rebuild better-sqlite3 scripts/dev/bootstrap-local.sh npm run dev MIT License
5.0 KiB
Contributing to RA-H
Thank you for your interest in contributing to RA-H! This guide explains how to work inside the private repo that powers the packaged Mac app.
Licensing note: By contributing, you agree that your contributions are provided under the PolyForm Noncommercial License 1.0.0. If you need a commercial exception, contact hello@ra-h.app before submitting changes.
🎯 Ways to Contribute
- 🐛 Bug Reports: Found a bug? Let us know!
- 💡 Feature Requests: Have ideas for new features?
- 📝 Documentation: Help improve our docs
- 🔧 Code Contributions: Fix bugs or implement features
- 🧪 Testing: Help us test new features and find edge cases
🚀 Getting Started
Development Setup
Begin with docs/development/process/0_kickstart.md for internal context. When touching the desktop build, read docs/development/process/6_macpack.md so you follow the packaging checklist. docs/9_open-source.md simply tracks the future BYO-key repo idea; there is no public OSS workflow today.
Development Workflow
Important: We use Claude Code for all development. Follow the 7-step workflow documented in docs/development/process/1_workflow.md:
- Review - Read handoff and workflow docs
- Branch - Create feature branch (NEVER work on main)
- Plan - Write PRD and get approval
- Implement - Code with user testing
- Document - Update handoff and CLAUDE.md
- Commit - Save and merge to main
- Cleanup - Delete branch, confirm clean state
Quick Commands
# Start new feature
git checkout main && git pull && git checkout -b feature/your-name
# Basic development
npm run build && npm run type-check && npm run lint
# Clean generated artefacts before committing
npm run clean:local
📝 Code Standards
TypeScript
- Use strict TypeScript - no
anytypes unless absolutely necessary - Provide proper type definitions for all functions and objects
- Use meaningful interface names
React/Next.js
- Use functional components with hooks
- Follow Next.js App Router patterns
- Use proper error boundaries
Database
- All database operations must use the service layer (
/src/services/database/) - No direct SQL in components - use service methods
- Include proper error handling
Styling
- Use Tailwind CSS utilities
- Follow the existing color scheme (dark theme)
- Ensure responsive design
🏗️ Project Architecture
See docs/overview.md for complete system architecture.
Key Patterns
- Use service layer for all database operations
- Components organized by feature area
- Helpers are JSON-configured AI assistants
- All development follows 7-step Claude Code workflow
🧪 Testing
Manual testing is primary - use npm run build && npm run type-check && npm run lint to verify changes.
📚 Documentation
What to Document
- New features and their usage
- API endpoint changes
- Database schema modifications
- Breaking changes
Documentation Style
- Use clear, concise language
- Include code examples
- Add screenshots for UI changes
- Keep README.md updated
🚨 Issue Reporting
Bug Reports
Include:
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, Node version, etc.)
- Screenshots if applicable
- Error messages/logs
Feature Requests
Include:
- Clear problem description
- Proposed solution
- Use cases
- Alternatives considered
🔍 Pull Request Process
Before Submitting
- Tests pass locally
- Code follows our style guide
- Documentation updated if needed
- Branch is up to date with main
PR Template
We'll provide a template, but include:
- Description: What does this PR do?
- Type: Bug fix, feature, docs, etc.
- Testing: How was this tested?
- Screenshots: For UI changes
Review Process
- Automated checks must pass
- At least one maintainer review required
- Address feedback promptly
- Squash commits before merge
🏷️ Labels and Tagging
We use these labels:
bug- Something isn't workingenhancement- New feature or requestdocumentation- Improvements to docsgood first issue- Good for newcomershelp wanted- Extra attention neededpriority: high/medium/low- Priority levels
💬 Communication
Channels
- Issues: Bug reports and feature requests
- Discussions: General questions and ideas
- Pull Requests: Code review discussions
Code of Conduct
- Be respectful and inclusive
- Focus on constructive feedback
- Help others learn and grow
- Follow our Code of Conduct
🎉 Recognition
Contributors will be:
- Listed in our README acknowledgments
- Mentioned in release notes
- Invited to join our contributors team
📞 Getting Help
Stuck? Need help?
- Check existing issues and discussions
- Create a new discussion for questions
- Tag maintainers in issues if urgent
- Join our community discussions
Happy Contributing! 🚀
Your contributions help make RA-H better for everyone. Thank you for being part of our open-source community!