-
Notifications
You must be signed in to change notification settings - Fork 4
Design Decisions
Alessio Rocchi edited this page Jan 27, 2026
·
1 revision
Key architectural decisions and rationale.
Decision: Use embedded SQLite instead of client-server database
Rationale:
- Zero configuration
- No separate database server
- ACID guarantees
- FTS5 built-in
- Suitable for local-first tool
Decision: Use stdio instead of HTTP for MCP
Rationale:
- Simpler integration with Claude Code
- No port management
- Process-level isolation
- Standard practice for MCP servers
Decision: Use singletons for Memory, Config, MessageBus
Rationale:
- Application-wide state consistency
- Prevent multiple database connections
- Simpler API for users
Decision: Provide specific agent types vs. generic agent
Rationale:
- Clear separation of concerns
- Specialized system prompts
- Easier to understand and use
- Better task routing
Decision: FTS5 by default, vector search optional
Rationale:
- FTS5 faster for keyword search
- No API costs for FTS5
- Vector search for semantic queries
- Hybrid approach gives best of both
Related:
Getting Started
Core Concepts
Agent Guides
- Overview
- Coder
- Researcher
- Tester
- Reviewer
- Adversarial
- Architect
- Coordinator
- Analyst
- DevOps
- Documentation
- Security Auditor
MCP Tools
- Overview
- Agent Tools
- Memory Tools
- Task Tools
- Session Tools
- System Tools
- GitHub Tools
- Review Loop Tools
- Identity Tools
Recipes
- Index
- Code Review
- Doc Sync
- Multi-Agent
- Adversarial Testing
- Full-Stack Feature
- Memory Patterns
- GitHub Integration
Advanced
- Plugin Development
- Custom Agent Types
- Workflow Engine
- Vector Search Setup
- Web Dashboard
- Programmatic API
- Resource Monitoring
Reference