Skip to content

UndiFineD/obsidian-AI-assistant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

641 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Obsidian AI Agent

Version: 0.1.38 (Unreleased)

CI Backend Tests Tests Coverage Quality OpenSpec Architecture

Offline-first AI assistant for Obsidian with comprehensive backend services, semantic search, and voice input support.


📚 Documentation Structure

Key Documentation:

Architecture Updates (v0.1.35+):

  • ✅ Module structure: backend/agent/ (see .github/copilot-instructions.md)
  • ✅ Models directory: Centralized to ./models/ at root level
  • ✅ All service patterns updated for improved modularity
  • ✅ 100% backward compatible with existing configurations

Recent Consolidation (Oct 20-22, 2025):

  • ✅ Reorganized documentation into structured docs/ directory (Oct 22)
  • ✅ Created docs/ with 6 subdirectories for better organization
  • ✅ Moved 50+ reference files to appropriate docs/ subdirectories
  • ✅ Moved 40+ status and completion documentation to docs/historical/
  • ✅ Cleaned root directory: 100+ files → ~15 essential files
  • ✅ Updated README.md with documentation navigation
  • ✅ Created docs/README.md with comprehensive navigation guide
  • See docs/README.md for details

Table of Contents


Features

Core Capabilities

  • 🤖 Local LLM Integration: Support for LLaMA, GPT4All, and other offline models
  • 🔍 Semantic Search: ChromaDB-powered vector search across your notes
  • 🎤 Voice Input: Speech-to-text transcription with Vosk
  • 📄 Document Processing: Index Markdown, PDF, and web content
  • ⚡ Multi-Level Caching: L1-L4 caching strategy for optimal performance
  • 🔐 Security: Encryption, authentication, and secure data handling
  • 📊 Analytics Dashboard: Track semantic coverage and QA history
  • 🔄 Auto-Linking: Generate semantic links between related notes

Enterprise Features (Optional)

  • 🔒 SSO Authentication: Azure AD, Google, Okta, SAML, LDAP
  • 🏢 Multi-Tenant Support: Isolated data and settings per organization
  • 👥 Role-Based Access Control: Granular permissions and user management
  • 📋 Compliance: GDPR and SOC2 compliance tools and audit trails
  • 📈 Admin Dashboard: Comprehensive management interface

Quick Start

⚡ 5-Minute Quick Start (TL;DR)

For the impatient:

# 1. Clone and setup (2 minutes)
git clone https://github.com/UndiFineD/obsidian-AI-assistant.git
cd obsidian-AI-assistant
./setup.ps1                          # Windows
# or
bash setup.sh                        # Linux/macOS

# 2. Start backend (1 minute)
cd agent
python -m uvicorn backend:app --reload

# 3. Verify it works (1 minute)
curl http://localhost:8000/health   # Should return {"status":"healthy",...}

# 4. Use in Obsidian (1 minute)
# • Open Obsidian → Settings → Community Plugins → Enable "Obsidian AI Agent"
# • Click the AI Assistant ribbon icon
# • Ask a question!

That's it! Your AI assistant is ready to use.


Prerequisites

  • Python 3.11 or higher
  • Obsidian 1.5 or higher
  • 4GB RAM minimum (8GB recommended)
  • Optional: CUDA-capable GPU for faster inference

Installation

1. Automated Setup (Recommended)

Linux/macOS:

bash setup.sh

Windows PowerShell:

.\setup.ps1

The setup script will:

  • ✅ Create Python virtual environment
  • ✅ Install all dependencies
  • ✅ Download AI models (GPT4All, embeddings)
  • ✅ Set up vector database
  • ✅ Prepare plugin files

2. Start the Backend

# Activate virtual environment
source .venv/bin/activate  # Linux/macOS
# or
.\venv\Scripts\Activate.ps1  # Windows

# Start FastAPI backend (agent/ directory)
cd agent
python -m uvicorn backend:app --host 127.0.0.1 --port 8000 --reload

3. Install Obsidian Plugin

  1. Copy .obsidian/plugins/obsidian-ai-agent/ to your vault's plugins directory
  2. Open Obsidian → Settings → Community Plugins
  3. Enable "Obsidian AI Agent"
  4. Configure plugin settings:
    • Backend URL: http://localhost:8000
    • Vault Path: Path to your notes directory

4. Verify Installation

  • Visit http://localhost:8000/health - should return "healthy"
  • Visit http://localhost:8000/docs - interactive API documentation
  • In Obsidian, click the AI Assistant ribbon icon

That's it! You're ready to start using the AI assistant.


Architecture

System Overview

┌─────────────────────┐     ┌─────────────────────┐     ┌─────────────────────┐
│  Obsidian Plugin    │────▶│  FastAPI Backend    │────▶│  AI Models          │
│  • UI Components    │     │  • REST APIs        │     │  • LLaMA / GPT4All  │
│  • Voice Input      │     │  • Health Checks    │     │  • Embeddings       │
│  • Settings         │     │  • Vector Search    │     │  • Vosk (Voice)     │
└─────────────────────┘     └─────────────────────┘     └─────────────────────┘
                                     │
                                     ▼
                            ┌─────────────────────┐
                            │  Storage Layers     │
                            │  • ChromaDB         │
                            │  • Multi-level Cache│
                            │  • SQLite Logs      │
                            └─────────────────────┘

Project Structure

obsidian-ai-agent/
├── agent/                          # FastAPI backend
│   ├── backend.py                   # Main application
│   ├── settings.py                  # Configuration management
│   ├── modelmanager.py              # AI model lifecycle
│   ├── embeddings.py                # Vector operations
│   ├── indexing.py                  # Document processing
│   ├── caching.py                   # Multi-level cache
│   ├── security.py                  # Authentication & encryption
│   ├── voice.py                     # Speech recognition
│   ├── performance.py               # Performance optimization
│   ├── models/                      # AI model files (*.gguf, embeddings)
│   ├── cache/                       # Cached embeddings and responses
│   └── vector_db/                   # ChromaDB storage
├── .obsidian/plugins/obsidian-ai-agent/  # Obsidian plugin
│   ├── main.js                      # Plugin entry point
│   ├── manifest.json                # Plugin metadata
│   ├── backendClient.js             # API communication
│   ├── rightPane.js                 # UI components
│   ├── voiceInput.js                # Voice recording
│   ├── enterpriseAuth.js            # SSO authentication (optional)
│   └── styles.css                   # Plugin styling
├── tests/                            # Comprehensive test suite
│   ├── agent/                     # Backend unit tests
│   ├── integration/                 # Integration tests
│   └── conftest.py                  # Test configuration
├── docs/                             # Detailed documentation
├── openspec/                         # Documentation governance
├── setup.ps1                         # Windows setup script
├── setup.sh                          # Linux/macOS setup script
└── requirements.txt                  # Python dependencies

Configuration

Configuration Hierarchy

Settings are loaded in this order (later overrides earlier):

  1. Code defaults (lowest priority)
  2. agent/config.yaml file
  3. Environment variables (highest priority)

Key Configuration Options

# agent/config.yaml

# Server settings
agent_url: 'http://127.0.0.1:8000'
api_port: 8000
allow_network: false          # Enable web content fetching
continuous_mode: false        # Continuous processing mode

# Paths
vault_path: 'vault'           # Path to Obsidian vault
models_dir: 'agent/models'  # AI models directory
cache_dir: 'agent/cache'    # Cache directory

# AI Model settings
model_backend: 'llama_cpp'    # 'llama_cpp' or 'gpt4all'
model_path: 'agent/models/mistral-7b-instruct-v0.1.Q4_0.gguf'
embed_model: 'sentence-transformers/all-MiniLM-L6-v2'
gpu: true                      # Use GPU acceleration if available

# Vector database
vector_db: 'chromadb'
top_k: 5                       # Number of search results
chunk_size: 1000              # Document chunk size
chunk_overlap: 200            # Chunk overlap for context
similarity_threshold: 0.7     # Minimum similarity score

# Voice recognition
vosk_model_path: 'agent/models/vosk-model-small-en-us-0.15'

# Caching
cache_ttl: 3600               # Cache time-to-live (seconds)
cache_max_size: 1000          # Maximum cache entries

Environment Variables

# Core settings
export API_PORT=8000
export VAULT_PATH="/path/to/vault"
export GPU=true

# Model settings
export MODEL_BACKEND=llama_cpp
export MODEL_PATH="/path/to/model.gguf"

# Performance
export CACHE_TTL=3600
export MAX_CONNECTIONS=100

Runtime Configuration API

Update settings without restarting the server:

# Get current configuration
curl http://localhost:8000/api/config

# Update specific settings
curl -X POST http://localhost:8000/api/config \
  -H "Content-Type: application/json" \
  -d '{"vault_path": "/new/vault/path", "gpu": true}'

# Reload configuration from file
curl -X POST http://localhost:8000/api/config/reload

Usage

Basic Workflow

  1. Start the Backend

    cd backend
    python -m uvicorn backend:app --host 127.0.0.1 --port 8000 --reload
  2. Open Obsidian and enable the plugin

  3. Ask Questions

    • Click the AI ribbon icon (🎲)
    • Type your question
    • Question is added to the processing queue
  4. Process Queue

    • Click the Start Queue icon (▶)
    • Tasks are processed in order
    • Results appear in your notes
  5. Review Analytics

    • Click the Analytics icon (📊)
    • View semantic coverage and QA history

Voice Input

  1. Click the microphone icon in the plugin
  2. Speak your question
  3. Speech is transcribed to text
  4. Question is added to the queue

Advanced Features

Document Indexing

Index your vault for semantic search:

curl -X POST http://localhost:8000/reindex

Web Content Indexing

Fetch and index web pages (requires allow_network: true):

curl -X POST http://localhost:8000/web \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com", "max_depth": 2}'

Semantic Search

Search your notes semantically:

curl -X POST http://localhost:8000/api/search \
  -H "Content-Type: application/json" \
  -d '{"query": "quantum computing", "top_k": 10}'

Enterprise Features

Overview

Enterprise features provide advanced authentication, multi-tenancy, compliance, and administration capabilities for organizational deployments.

Features

  • SSO Authentication: Azure AD, Google Workspace, Okta, SAML 2.0, LDAP
  • Multi-Tenant Architecture: Isolated data storage per organization
  • Role-Based Access Control: Admin, Manager, Analyst, User roles
  • Compliance Tools: GDPR data management, SOC2 controls, audit logging
  • Admin Dashboard: User management, tenant configuration, security monitoring

Configuration

Enable enterprise features in agent/config.yaml:

enterprise:
  enabled: true
  
  sso:
    providers:
      - azure_ad
      - google
      - okta
    default_provider: azure_ad
  
  tenant:
    multi_tenant: true
    default_tenant: 'default'
    storage_quota_gb: 100
  
  compliance:
    gdpr: true
    soc2: true
    audit_retention_days: 2555  # 7 years
  
  security:
    session_timeout: 3600
    mfa_required: false
    password_policy: 'strong'

Accessing Enterprise Features

Once enabled:

  1. Admin Dashboard: Settings → Enterprise → Admin Dashboard
  2. SSO Login: Settings → Enterprise → Enterprise Login
  3. Configuration: Settings → Enterprise → Enterprise Configuration
  4. User Management: Admin Dashboard → Users tab
  5. Tenant Management: Admin Dashboard → Tenants tab
  6. Security Monitoring: Admin Dashboard → Security tab
  7. Compliance Reports: Admin Dashboard → Compliance tab

Enterprise API Endpoints

# Enterprise status
GET /api/enterprise/status

# SSO authentication
POST /api/enterprise/auth/sso

# Tenant management
GET /api/enterprise/tenants
POST /api/enterprise/tenants

# User management
GET /api/enterprise/users
POST /api/enterprise/users

# Compliance
GET /api/enterprise/compliance/gdpr
GET /api/enterprise/compliance/soc2
POST /api/enterprise/compliance/audit

API Documentation

For complete API documentation, including all endpoints, request/response examples, and interactive Swagger UI, see API_REFERENCE.md.

Quick Links:


Testing & Quality Assurance

Test Results (Latest: 2025-10-17)

Category Tests Pass Rate Status
Backend Core 567 100% ✅ Production Ready
Plugin Integration 165 100% ✅ Complete
Enterprise Features 139 100% ✅ Full Coverage
OpenSpec Governance 90 98.9% ✅ Compliant
Performance Tests 80 100% ✅ Validated
TOTAL 1042 98.2% Production Ready

Key Metrics:

  • 1021 tests passed, 2 skipped, 19 failed
  • 88%+ backend coverage (up from 59.1%)
  • Zero critical failures in production components
  • Execution time: ~180 seconds

Running Tests

Comprehensive Test Suite:

# Activate environment
source .venv/bin/activate  # Linux/macOS
.\venv\Scripts\Activate.ps1  # Windows

# Run all tests
pytest tests/ -v --cov=backend --cov-report=html

# Run specific categories
pytest tests/agent/ -v                    # Backend only
pytest tests/integration/ -v                # Integration only
pytest tests/performance/ -v                # Performance only

# Run specific modules
pytest tests/agent/test_caching.py -v     # Cache tests
pytest tests/agent/test_security.py -v    # Security tests

Coverage Report:

# Generate HTML coverage report
pytest --cov=backend --cov-report=html --cov-report=term

# Open report
open htmlcov/index.html  # macOS
xdg-open htmlcov/index.html  # Linux
start htmlcov/index.html  # Windows

Test Coverage Improvements (October 2025)

Module Before After Improvement Tests Added
Cache Operations 96.3% 98.2% +1.9% 2
Log Management API 13.9% 75.9% +62.0% 43
Enterprise Tenant 49.0% 96.2% +47.2% 55
Enterprise Auth/JWT 77.2% 84.2% +7.0% 16
Totals 59.1% 88.6% +29.5% 116

See docs/TEST_COVERAGE_IMPROVEMENTS_OCTOBER_2025.md for complete details.


Code Quality Standards

JavaScript Code Style

The plugin follows PEP8-inspired JavaScript conventions:

Formatting:

  • 4-space indentation (consistent with Python backend)
  • No trailing whitespace
  • Double quotes for strings
  • Semicolons for statement termination
  • 100-character line length limit

Naming Conventions:

  • PascalCase for classes (BackendClient, VoiceRecorder)
  • camelCase for functions (startListening, sendRequest)
  • UPPER_CASE for constants (ENTERPRISE_AVAILABLE, DEFAULT_TIMEOUT)
  • Underscore prefix for private members (_privateMethod)

Code Structure:

  • Proper module exports with module.exports
  • Try-catch blocks for error handling
  • Async/await for asynchronous operations
  • Proper cleanup in destroy() methods

Automated Quality Checks

# JavaScript quality validation
pytest tests/plugin/test_js_code_quality.py -v

# Automatic style fixing
python fix_js_quality.py

# Python linting
ruff check agent/
bandit -r agent/ -f json -o tests/bandit_report.json

# Type checking
mypy agent/ --ignore-missing-imports

Linting Framework

The project uses Trunk linting framework with:

  • ruff: Fast Python linter (E, F, W, C, I rules)
  • bandit: Security vulnerability scanning
  • prettier: JavaScript/TypeScript formatting
  • markdownlint: Markdown consistency
  • checkov: Infrastructure as code security
  • actionlint: GitHub Actions validation

Performance & Optimization

Performance Tiers & SLAs

Tier Target Operations
Tier 1 <100ms Health checks, status, config, cache lookup
Tier 2 <500ms Cached ask, simple search, voice transcription
Tier 3 <2s AI generation, document search, embeddings
Tier 4 <10s Web analysis, large document indexing
Tier 5 <60s Vault reindex, model loading

Optimization Strategies

Multi-Level Caching:

  • L1 (Memory): In-memory cache for hot data (TTL: 300s)
  • L2 (Disk): Persistent file cache (TTL: 3600s)
  • L3 (Database): Long-term storage (TTL: 86400s)
  • L4 (Vector DB): Semantic search cache

Connection Pooling:

  • Database connection pooling (min: 2, max: 10)
  • AI model instance pooling (1-3 instances)
  • HTTP client connection reuse

Async Processing:

  • Background task queue for indexing
  • Async I/O for all network operations
  • Non-blocking document processing

Resource Management:

  • Smart memory allocation for large documents
  • CPU affinity for model inference
  • Process priority management

Hardware Recommendations

Minimum:

  • CPU: 2 cores, 2GHz
  • RAM: 4GB
  • Storage: 5GB SSD
  • Network: 10Mbps

Recommended:

  • CPU: 4+ cores, 3GHz+
  • RAM: 16GB
  • Storage: 20GB NVMe SSD
  • GPU: CUDA-capable (optional, 3-5x performance boost)

Production:

  • CPU: 8+ cores, 3.5GHz+ (Intel Xeon/AMD EPYC)
  • RAM: 32GB+ (64GB for enterprise)
  • Storage: 100GB+ NVMe SSD, 3000+ IOPS
  • GPU: NVIDIA RTX 4080+ or Tesla V100+ (optional)
  • Network: Gigabit ethernet, <10ms latency

Performance Tuning

Cache Configuration:

# agent/config.yaml
cache_ttl: 3600              # Increase for better hit rate
cache_max_size: 5000         # Increase for larger cache
cache_cleanup_interval: 300  # Adjust cleanup frequency

Model Selection:

# Use smaller models for faster inference
model_path: 'agent/models/mistral-7b-instruct-v0.1.Q4_0.gguf'  # 4-bit quantized

# Use GPU acceleration
gpu: true
gpu_layers: 35               # Offload layers to GPU

Vector Search Tuning:

chunk_size: 500              # Smaller chunks = faster search
top_k: 3                     # Fewer results = faster retrieval
similarity_threshold: 0.8    # Higher threshold = fewer results

Documentation

Finding What You Need

Quick Start:

For complete documentation:

For API details:

For technical info:

For reference materials:


Troubleshooting

Quick Links

Common Issues

Backend Won't Start

Problem: WinError 10013 or port already in use

Solution:

# Check what's using port 8000
netstat -ano | findstr :8000

# Kill the process
taskkill /PID <pid> /F

# Or use a different port
python -m uvicorn backend:app --port 8001

Models Not Loading

Problem: FileNotFoundError for model files

Solution:

# Check models directory exists (at root level)
ls ./models/

# Download models manually to root ./models/ directory
cd ./models
curl -L -o mistral-7b-instruct-v0.1.Q4_0.gguf \
  https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.1-GGUF/resolve/main/mistral-7b-instruct-v0.1.Q4_0.gguf

Plugin Not Appearing in Obsidian

Problem: Plugin folder exists but not showing in settings

Solution:

  1. Check file structure:
    .obsidian/plugins/obsidian-ai-agent/
    ├── main.js
    ├── manifest.json
    └── styles.css
    
  2. Restart Obsidian
  3. Settings → Community Plugins → Reload plugins
  4. Enable "Obsidian AI Agent"

Slow Response Times

Problem: API requests taking >5 seconds

Solutions:

  • Enable GPU acceleration: gpu: true in config
  • Use smaller model: Switch to 7B instead of 13B
  • Increase cache TTL: cache_ttl: 7200
  • Check system resources: GET /status

Out of Memory Errors

Problem: CUDA out of memory or Python MemoryError

Solutions:

# Reduce model size
model_path: 'mistral-7b-instruct-v0.1.Q4_0.gguf'  # 4-bit quantization

# Reduce context length
max_context_length: 2048

# Limit concurrent requests
max_workers: 2

# Reduce GPU memory usage
gpu_layers: 20  # Load fewer layers to GPU

Platform-Specific Issues

Windows

  • PowerShell Execution Policy:

    Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
  • Long Path Support: Enable in registry or use \\?\ prefix for paths

Linux/macOS

  • Permission Denied:

    chmod +x setup.sh
    sudo chown -R $USER:$USER agent/models
  • Port 8000 in use:

    lsof -i :8000
    kill -9 <PID>

Getting Help

  1. Check the logs: agent/logs/app.log
  2. Visit the health endpoint: http://localhost:8000/health
  3. Check system status: http://localhost:8000/status
  4. Review documentation: docs/ directory
  5. Open an issue: https://github.com/UndiFineD/obsidian-ai-agent/issues

Documentation Navigation

Quick Navigation by Role

For Users & Developers (5 min start)

For Architects & Planners

For Security & Operations

For Testing & Quality

Documentation Categories

Available Sections:

  • getting-started/ - Quick start guides
  • guides/ - Tutorials and how-to guides
  • architecture/ - Technical architecture and design
  • reference/ - API reference, specifications, and analysis
  • production/ - Deployment, operations, and troubleshooting
  • historical/ - Historical documents and archives

Operational (5 docs):

  • DEPLOYMENT_SPECIFICATION.md - Secure deployment procedures
  • HEALTH_MONITORING.md - System health and alerts
  • PERFORMANCE_REQUIREMENTS_SPECIFICATION.md - Performance SLAs
  • CI_CD_MAINTENANCE_GUIDE.md - CI/CD pipeline management
  • RELEASE_AUTOMATION.md - Release automation

Technical Details (6 docs):

  • CONFIGURATION_API.md - Runtime configuration management
  • DATA_MODELS_SPECIFICATION.md - Data models and schemas
  • PLUGIN_INTEGRATION_SPECIFICATION.md - Plugin architecture
  • API_KEY_MANAGEMENT.md - API key and authentication
  • JWT_SECRET_MANAGEMENT.md - JWT and secret handling
  • ENTERPRISE_FEATURES_SPECIFICATION.md - Multi-tenant, RBAC, SSO

Quality & Testing (3 docs):

  • TESTING_GUIDE.md - Testing procedures and patterns
  • TESTING_STANDARDS_SPECIFICATION.md - Testing standards
  • TEST_COVERAGE_IMPROVEMENTS_OCTOBER_2025.md - Coverage reports

Deployment & DevOps:

  • DEPLOYMENT_SPECIFICATION.md - Deployment procedures
  • CI_CD_MAINTENANCE_GUIDE.md - CI/CD pipeline management
  • RELEASE_AUTOMATION.md - Release automation

Learning Paths by Experience Level

Beginner (45 minutes):

  1. SETUP_README.md (15 min)
  2. CONTRIBUTING.md (10 min)
  3. API_REFERENCE.md (20 min)

Intermediate (1.5 hours):

  1. SYSTEM_ARCHITECTURE_SPECIFICATION.md (30 min)
  2. DEPLOYMENT_SPECIFICATION.md (20 min)
  3. TESTING_GUIDE.md (20 min)

Advanced (2 hours):

  1. SECURITY_SPECIFICATION.md (30 min)
  2. ENTERPRISE_FEATURES_SPECIFICATION.md (30 min)
  3. HEALTH_MONITORING.md (20 min)
  4. CI_CD_MAINTENANCE_GUIDE.md (20 min)

Finding Documentation by Topic

Topic Documents
Getting Started SETUP_README, CONTRIBUTING
Architecture SYSTEM_ARCHITECTURE_SPECIFICATION, PLUGIN_INTEGRATION_SPECIFICATION
API API_REFERENCE, CONFIGURATION_API, API_KEY_MANAGEMENT
Security SECURITY_SPECIFICATION, DEPLOYMENT_SPECIFICATION
Operations HEALTH_MONITORING, PERFORMANCE_REQUIREMENTS_SPECIFICATION
Testing TESTING_GUIDE, TEST_COVERAGE_IMPROVEMENTS_OCTOBER_2025
Features ENTERPRISE_FEATURES_SPECIFICATION, DATA_MODELS_SPECIFICATION

Documentation Governance

This project uses OpenSpec for documentation governance to ensure consistency, quality, and proper review of material documentation changes.

Cross‑references:

  • Archived change for docs/TASKS.md governance — see openspec/archive/update-doc-docs-tasks/
  • Archived change for openspec/AGENTS.md governance — see openspec/archive/update-doc-agents/

OpenSpec Structure

  • Project Context: openspec/project.md - Project conventions
  • AI Agent Instructions: openspec/AGENTS.md - AI coding assistant guidelines
  • Capability Specs: openspec/specs/ - Documentation requirements
  • Change Management: openspec/changes/ - Tracked documentation updates

Change Proposal Requirements

Material changes to documentation require OpenSpec proposals:

  • README.md, AGENTS.md, .github/copilot-instructions.md
  • Documentation in docs/ directory
  • Architecture and specification documents

Minor changes (typos, clarifications) can be made directly.

Compliance

  • Run pytest tests/ -v to validate documentation governance
  • All OpenSpec tests must pass for compliance
  • Latest validation: 90/90 tests passed (100%)

See openspec/specs/project-documentation.md for detailed requirements.


Contributing

We welcome contributions! Please follow these guidelines:

Getting Started

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes
  4. Run tests: pytest tests/ -v
  5. Commit with clear messages: git commit -m "feat: Add amazing feature"
  6. Push to your fork: git push origin feature/amazing-feature
  7. Open a Pull Request (PR)

Development Guidelines

  • Follow PEP 8 for Python code
  • Follow project JavaScript style guide
  • Write tests for new features
  • Update documentation as needed
  • Check OpenSpec compliance for doc changes

OpenSpec Workflow Lanes

The project uses a 13-stage OpenSpec workflow with three optimization lanes:

Documentation Lane (Docs)

  • Use for: README updates, documentation changes, guides
  • Speed: < 5 minutes (67% faster than standard)
  • Command: python scripts/workflow.py --change-id my-change --lane docs

Standard Lane (Default)

  • Use for: New features, bug fixes, general changes
  • Speed: ~15 minutes
  • Command: python scripts/workflow.py --change-id my-change

Heavy Lane (Strict)

  • Use for: Critical/security changes, production fixes
  • Speed: ~20 minutes (more thorough validation)
  • Command: python scripts/workflow.py --change-id my-change --lane heavy

Learn more: See docs/guides/The_Workflow_Process.md

Code Review Process

  1. All Pull Requests (PRs) require at least one review
  2. All tests must pass
  3. Code coverage should not decrease
  4. Documentation must be updated
  5. OpenSpec validation must pass

License

Author: Keimpe de Jong
License: MIT
Repository: https://github.com/UndiFineD/obsidian-ai-agent


Acknowledgments

This project builds on excellent open-source tools:


Status: Production Ready ✅
Version: 0.1.27 (Current Release)
Last Updated: October 20, 2025 (Documentation reorganized)
Test Coverage: 1021 passed, 2 skipped (98.2% success rate)
Backend Coverage: 88%+ (production-grade quality)

Documentation Status: ✅ Consolidated & organized (59.8% reduction in meta-docs, 100% content preserved)

About

obsidian AI assistant

Resources

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors