Soul Kernel Developer Onboarding
Welcome to the Soul Kernel project! This guide will help you get started with contributing to the Companion Intelligence Core.๐ฏ Project Overview
Soul Kernel is a portable, open-core platform that embeds identity, memory, personality, and proactivity into any surfaceโmobile, AR/VR, or physical robots. Think of it as the โUnity for AI companionsโ or โROS for emotional intelligence.โKey Concepts
- Soul: An AI companion with persistent identity and memory
- Digital Twin: A Soul that maintains consistent identity across multiple devices
- Kernel: The core runtime that manages Soul lifecycle
- Skills: Plugin capabilities (vision, voice, actuators)
- Shells: Platform-specific hosts (iOS, Unity, Physical AI)
๐ Quick Start
Prerequisites
-
Rust 1.79+ - Our core runtime language
- Git - For version control
- GitHub Account - For contributing
First Steps
-
Clone the repository
-
Build and test
- Read the architecture
๐ Learning Path
Week 1: Foundations
- Complete Rust basics (if new to Rust)
- Run the Soul Kernel locally
- Read through the codebase structure
- Understand the Skill ABI concept
Week 2: Deep Dive
- Implement a simple Skill
- Explore the memory graph design
- Review the gRPC API surface
- Join our Discord community
Week 3: Contributing
- Pick a โgood first issueโ
- Submit your first PR
- Participate in code reviews
- Update documentation
๐๏ธ Development Workflow
1. Agile Process
We follow an Agile workflow with:- Epics: Large features (one active at a time)
- Stories: Implementable units with clear acceptance criteria
- Tasks: Technical steps within stories
2. Code Standards
- Use
cargo fmtbefore committing - Run
cargo clippyfor linting - Write tests for new functionality
- Keep binary size minimal
3. Git Workflow
๐ ๏ธ Development Environment
Recommended Tools
- IDE: VS Code with rust-analyzer or IntelliJ IDEA with Rust plugin
- Debugging: lldb or gdb with Rust support
- Profiling: cargo-flamegraph for performance analysis
VS Code Setup
๐ค Getting Help
- Discord: Join #soul-kernel-dev channel
- GitHub Discussions: For design questions
- Issue Tracker: For bugs and features
- Weekly Office Hours: Thursdays 2pm PT
๐ Key Resources
- Rust Book - Learn Rust
- gRPC Documentation - For API work
- Skill Development Guide - Create Skills
- Memory Graph Design - Core concept
๐ Your First Contribution
- Look for issues labeled
good-first-issue - Comment on the issue to claim it
- Fork the repository
- Create a branch from
main - Make your changes with tests
- Submit a PR referencing the issue