2.0 KiB
2.0 KiB
AGENTS.md
Project Overview
- Primary Language: C# (.NET 8 Console Application)
- Key Libraries: RestSharp, Newtonsoft.Json, System.Data.SQLite, Microsoft.Extensions.Configuration
- Purpose: Tumblr API data harvester for collecting notes, posts, likes, and replies, storing results in SQLite.
Architectural Patterns
- CLI entry point in
Program.cswith workflow orchestration DataAccess.cs: Database operations,ApiKeyPool(API key management),APIAccess(Tumblr client)ResponseNotes.cs: Tumblr API response models- Round-robin API key rotation with rate-limit tracking
- Automatic console color assignment per API key for output differentiation
Developer Guidelines
Code Formatting
- 4-space indentation, no tabs, match existing C# style
- PascalCase for public members, camelCase for locals
- Minimize code comments unless explicitly requested
- Use only existing project libraries; no new dependencies without confirmation
- Match accessibility modifiers (
publicfor models,internalfor helpers)
Error Handling
- Wrap file/network operations in
try-catch - Log non-critical errors (e.g., config write failures) with
[Warning]prefix - Preserve console color state: use save/restore pattern for temporary color changes
- API rate limits must use
ApiKeyPool.MarkRateLimited()/MarkAvailable()
Testing
- No existing test suite; use xUnit if adding tests
- Test critical logic:
ApiKeyPoolinit, color parsing, config persistence - Avoid testing one-off CLI workflows
Git Commit Messages
- Imperative mood ("Add feature" not "Added feature")
- Prefix with type:
feat:,fix:,chore:,docs: - Keep messages under 72 characters
- Never commit sensitive data (API keys/tokens)
API Key Color Rules
- Unconfigured keys auto-assign colors from a preset palette
- Auto-assigned colors persist to
appsettings.json - All output for an active key uses its assigned color
- Temporary color changes (e.g., errors) must restore the key's color afterward