# AI Development Instructions for URLNotesGrabberCORE

This document provides essential context for AI agents working with URLNotesGrabberCORE, a .NET Core application designed to process and analyze blog notes and interactions.

## Project Architecture

### Core Components
- **Program.cs**: Entry point and command handler for various operations (parsing, testing, collecting notes)
- **DataAccess.cs**: SQLite database operations for storing blog and note data
- **ResponseNotes.cs**: Data models for API responses
- **appsettings.json**: Configuration for paths and application settings

### Data Flow
1. Input text files are processed from configured input path
2. Blog data is extracted and stored in SQLite database
3. API calls collect notes/interactions for each blog post
4. Results are written to configured output paths

## Key Development Workflows

### Building and Running
```powershell
dotnet build
dotnet run            # Process all files in input directory
dotnet run -- -parse [blogname]  # Process specific blog
dotnet run -- -test [blogname] [postID]  # Test API for specific post
```

### Command-Line Interface
- `-parse [blogname]`: Parse text files for specific blog
- `-test [blogname] [postID]`: Test API note collection
- `-posts`: Export post blogs to file
- `-blogs`: Export blog list to file
- `-collect`: Collect notes for all posts in DB
- `-blogsR`: Export reply blogs to file
- `-blogsO [start] [stop]`: Export blogs within range

## Project Conventions

### Configuration
- All paths and settings are managed in `appsettings.json`
- Command-line args override config file settings
- SQLite database is used for persistent storage

### API Integration
- Uses RestSharp for API calls with OAuth authentication
- Rate limiting implemented via `System.Threading.RateLimiting`
- Resilient HTTP handling with `Microsoft.Extensions.Http.Resilience`

### Data Models
- `ReblogRecord`: Core data structure for blog post information
- `Note`: Represents interaction data from API responses
- Default field values are "." (period) to handle null cases

## Integration Points
- SQLite Database: Primary data store (`System.Data.SQLite`)
- REST API: External blog platform API (OAuth authentication)
- File System: Input/Output for text file processing

For questions or clarifications, please refer to the codebase or request updates to these instructions.