Sanskrit terms name system behaviors. Design principles carry evidence and trade-offs. Philosophy isn't metaphor here — it's architecture.
Each Sanskrit term names a measurable operation
Why we store what we store, how we store it
The memory system doesn't just hold data — it shapes retrieval. Like a musical instrument colors every note, chitta's architecture affects what surfaces and when.
Vector embeddings stored in dedicated database, separate from memory content. Query isolation — vector search doesn't touch main storage.
chitta_embeddings.duckdb → FLOAT[768] + HNSW
chitta.duckdb → content, metadata, relationshipsSemantic similarity finds related concepts. But "X caused Y" or "user prefers A over B" needs explicit relationships. Triplets encode directional knowledge.
No predefined categories. Themes emerge from embedding clusters using HDBSCAN. The system discovers what concepts naturally group together based on your usage.
Memory confidence decreases through exponential decay, but asymptotically approaches a floor (0.1). Old memories fade but never fully disappear.
new_confidence = floor + (current - floor) * 0.995
Decay every 60s during idle. Floor = 0.1.Soul Shorthand Language achieves 40-60% token reduction while preserving semantic content. Embeddings still work because meaning is preserved.
How memories surface at the right moment
Neither semantic search nor keyword search alone is sufficient. We combine vector similarity, BM25 keyword matching, and graph traversal for comprehensive retrieval.
Claude's ~200K token context is finite. Every surfaced memory consumes space. Retrieval maximizes signal-to-noise, not total recall.
How the system adapts to you
When you correct Claude, that's signal gold. Corrections captured automatically, stored with boosted confidence, surfaced proactively to prevent repeat mistakes.
VakYantra doesn't passively convert text to vectors. It actively shapes what becomes memorable by how it embeds. Different models produce different memory behaviors.
Background operations and lifecycle
Session boundaries, prompt submissions, tool calls — these carry learning value but users won't manually log them. Hooks automate capture at strategic points.
The daemon runs background tasks during idle: confidence decay, theme clustering, memory consolidation. These would interrupt conversation if done synchronously.
How cc-soul fits into Claude Code
A persistent daemon (chittad) keeps DuckDB, HNSW indexes, and ONNX model warm. Without this, every tool call pays ~750ms cold-start costs.
These aren't decorative labels or arbitrary choices. Each concept was chosen because its operational semantics match a system behavior. Each principle emerged from research and implementation. The philosophy constrains the engineering — and the engineering validates the philosophy.
Full claim files with cross-references available in the philosophy/ directory.