Project Context: Vault Intelligence
This skill contains the domain knowledge for the Vault Intelligence Obsidian plugin.
CRITICAL RULES
- •Use search grounding for EVERY technology decision.
- •Use search grounding EVERYTIME you make a decision about LLM AI models or any Typescript library.
1. Project Identity
- •Name: Vault Intelligence
- •Core Function: AI-powered Research Agent & Adaptive Hybrid Search.
- •AI Backend: Google Gemini 3 (via
GeminiService). - •Data Structure: Knowledge Graph + Vector Embeddings (via
GraphService).
2. Architectural Constraints
Source of Truth: devs/ARCHITECTURE.md. (Read this for complex changes. Modify this after complex changes.)
Critical Rules
- •Service-Oriented Architecture (SOA):
- •Never put business logic in Views (UI).
- •Views must call Services to fetch data or modify the vault.
- •Services must be singletons registered in the main plugin class.
- •No Direct Vault Access in UI:
- •❌
view.app.vault.read()inside a View component. - •✅
plugin.graphService.getNoteContent()called by the component.
- •❌
Core Services
- •
GeminiService: Handles all LLM interactions, context window management, and prompt engineering. - •
GraphService: Manages the graph database, embeddings, and relationship mapping. - •
SearchService: Orchestrates Hybrid Search (Keyword + Semantic).
3. Project Structure
- •
src/services/: Core business logic (The Brains). - •
src/views/: Native DOM UI components (The Face). - •
src/utils/: Shared helpers (no state). - •
devs/: Documentation and Architecture Decision Records (ADRs).
4. Maintenance & Operations
- •Versioning: DO NOT bump
package.jsonmanually. This is handled via the Release Workflow. - •Manifest:
idandminAppVersionare strict constraints. Checkobsidian-refskill if modifyingmanifest.json. - •Styling: All CSS variables must align with Obsidian's theme API. See
styles.css.
5. Common Tasks
- •Adding a Feature:
- •Define the Interface in
src/types.ts. - •Implement logic in a Service (
src/services/). - •Expose via
main.tsif needed. - •Build UI in
src/views/(Native DOM).
- •Define the Interface in
- •Accessing GitHub:
- •You can use the
ghcommand-line tool to access GitHub.
- •You can use the