Initial project setup: Obsidian intelligent journal organizer

- Add core agent architecture with Command + Skill pattern
- Implement Claude API integration for content analysis
- Add Obsidian REST API integration for vault operations
- Create conversational interface (v2.0) with natural language processing
- Add comprehensive configuration management and validation
- Include project documentation and developer guides
- Set up testing framework with unit, integration, and property tests
- Add Kiro specs for Claude API configuration and code quality improvements
- Configure project steering files for development guidelines
This commit is contained in:
windyboy
2025-12-31 17:55:10 +08:00
parent 3200ad3dd5
commit f7e54692a9
67 changed files with 23088 additions and 0 deletions
+102
View File
@@ -0,0 +1,102 @@
# Technology Stack
## Core Technologies
- **Python 3.8+**: Primary programming language
- **asyncio**: Asynchronous programming for concurrent operations
- **aiohttp**: HTTP client for API interactions
- **PyYAML**: Configuration file management
- **Anthropic Claude API**: AI-powered content analysis and understanding
- **Obsidian Local REST API**: Integration with Obsidian vault
## Key Dependencies
```
anthropic>=0.25.0 # Claude API client
aiohttp>=3.9.0 # Async HTTP client
pyyaml>=6.0 # YAML configuration parsing
```
## Architecture Patterns
### Command + Skill Pattern
- **Commands**: High-level operations that orchestrate multiple Skills
- **Skills**: Atomic functional units for specific tasks (READ, WRITE, ANALYZE, TRANSFORM, INTEGRATE)
- **Agent Core**: Base framework defining interfaces and interaction logic
### Async/Await Pattern
- All Skills and Commands use async/await for non-blocking operations
- HTTP API calls are asynchronous using aiohttp
- Supports concurrent execution of multiple operations
### Configuration-Driven Design
- YAML-based configuration files for all settings
- Environment variable support for sensitive data
- Separation of code and configuration
## Common Commands
### Development Setup
```bash
# Install dependencies
pip install -r requirements.txt
# Copy and configure settings
cp config.example.yaml config.yaml
# Edit config.yaml with your API keys and paths
```
### Running the Application
#### v1.0 - Direct Commands
```bash
# Organize today's journal
python -m journal_organizer organize
# Organize specific date
python -m journal_organizer organize --date 2025-12-31
# List available commands
python -m journal_organizer list
# Get help for specific command
python -m journal_organizer help organize
```
#### v2.0 - Conversational Interface
```bash
# Start interactive chat
python -m journal_organizer.chat_main
# Single query mode
python -m journal_organizer.chat_main --query "整理今天的日记"
```
### Configuration
```bash
# Use custom config file
python -m journal_organizer --config /path/to/config.yaml organize
# Set log level
python -m journal_organizer --log-level DEBUG organize
```
## API Integration Requirements
### Obsidian Setup
1. Install "Local REST API" plugin in Obsidian
2. Generate API key in plugin settings
3. Configure API URL (default: https://localhost:27123)
4. Disable SSL verification for local development
### Claude API Setup
1. Obtain Anthropic API key
2. Set environment variable: `ANTHROPIC_API_KEY`
3. Configure model in config.yaml (default: claude-3-5-sonnet-20241022)
## Error Handling Patterns
- All Skills return `SkillResult` objects with success/failure status
- Comprehensive logging at DEBUG, INFO, WARNING, ERROR levels
- Graceful degradation when external APIs are unavailable
- SSL context configuration for local HTTPS endpoints