10 KiB
CLAUDE.md - Project Standards & Workflow
Critical: This document defines AI-optimized documentation standards and development workflow.
1. Token-Efficient Documentation System
Why Token Efficiency Matters
Problem: Documentation consumes significant token budget, leaving limited context for implementation.
Solution: Documentation optimized for AI consumption, not human reading. Average 68-72% token reduction while preserving all technical details.
Documentation Structure
documentation/
├── TABLEOFCONTENTS.md # Navigation index (read THIS FIRST)
├── README.md # Project overview
├── backend/
│ ├── database.md # Schema, Prisma, migrations
│ └── services/
│ ├── auth.md # Plex OAuth, JWT, RBAC
│ ├── config.md # Settings, encryption
│ ├── jobs.md # Bull queue, processors
│ └── scheduler.md # Cron jobs, recurring tasks
├── integrations/
│ ├── plex.md # Library scanning, OAuth, matching
│ └── audible.md # Web scraping, metadata
├── phase3/ # Automation pipeline
│ ├── README.md # Pipeline overview
│ ├── qbittorrent.md # Download client
│ ├── prowlarr.md # Indexer search
│ ├── ranking-algorithm.md # Torrent selection
│ └── file-organization.md # File management, seeding
├── frontend/
│ ├── components.md # React components
│ ├── routing-auth.md # Route protection
│ └── pages/
│ └── login.md # Login page design
├── deployment/
│ └── docker.md # Docker Compose, volumes
└── [feature-specific docs]
2. Using TABLEOFCONTENTS.md (MANDATORY)
RULE: Always Start Here
Before reading ANY documentation:
- Read
documentation/TABLEOFCONTENTS.mdFIRST - Identify relevant sections for your task
- Read ONLY the specific files you need
- Never read all files sequentially (wastes tokens)
Example Workflow
Bad (Token wasteful):
Task: Fix Plex authentication
❌ Read README.md → backend/* → integrations/* → ...
Good (Token efficient):
Task: Fix Plex authentication
✅ Read TABLEOFCONTENTS.md → Identify: backend/services/auth.md, integrations/plex.md
✅ Read only those 2 files
✅ Begin implementation
TABLEOFCONTENTS.md Format
Maps questions/features to specific documentation files:
- "How does authentication work?" → backend/services/auth.md
- "How do downloads work?" → phase3/qbittorrent.md, backend/services/jobs.md
- Organized by: Authentication, Configuration, Database, Integrations, Automation, etc.
3. Token-Efficient Documentation Format
Mandatory Format Standards
All documentation MUST follow this token-optimized format:
Structure
# [Title]
**Status:** [✅ Implemented / ⏳ In Progress / ❌ Not Started] [Brief description]
## Overview
[1-2 sentence summary]
## Key Details
- Compact bullet lists (not prose)
- API endpoints with request/response
- Data models with field names/types
- Configuration keys
- Critical implementation notes
## API/Interfaces
[Tables or compact code blocks]
## Critical Issues (if any)
[Only important items]
## Related: [links to other docs]
Forbidden Content (Removed for Token Efficiency)
- ❌ Verbose prose explanations
- ❌ "Why?" sections (keep brief rationale only)
- ❌ Large ASCII diagrams (minimal only)
- ❌ Excessive examples (max 1-2)
- ❌ "Future Enhancements" sections
- ❌ "Testing Strategy" (unless critical)
- ❌ "Performance Considerations" (unless critical)
- ❌ Empty sections
- ❌ Decorative formatting
Required Content (Preserve Completely)
- ✅ API endpoint definitions
- ✅ Data model field names and types
- ✅ Configuration keys and values
- ✅ Status values and enums
- ✅ File paths and code locations
- ✅ Critical implementation details
- ✅ "Fixed Issues" (troubleshooting context)
- ✅ Essential code examples (1-2 max)
Format Examples
Before (Token wasteful - 180 lines):
# User Authentication Service
## Current State
**Status:** Implemented ✅
This service handles all authentication and authorization logic for the
ReadMeABook application, including Plex OAuth integration, JWT session
management, and role-based access control.
## Design Architecture
### Why Plex OAuth?
Plex OAuth was chosen for several important reasons:
- No need to manage passwords
- Users already have Plex accounts
- Seamless integration with Plex ecosystem
...
[continues for 150+ more lines]
After (Token efficient - 50 lines):
# User Authentication Service
**Status:** ✅ Implemented | Plex OAuth + JWT sessions + RBAC
## Overview
Handles Plex OAuth, JWT session management, role-based access control (user/admin).
## Key Details
- **Auth:** Plex OAuth flow → JWT tokens (access: 1h, refresh: 7d)
- **Roles:** user (requests only), admin (full access)
- **First user:** Auto-promoted to admin
- **Endpoints:**
- POST /api/auth/plex/login → {authUrl, pinId}
- GET /api/auth/plex/callback?pinId → {accessToken, refreshToken, user}
- POST /api/auth/refresh → {accessToken}
- GET /api/auth/me → {user}
- **Middleware:** requireAuth(), requireAdmin()
- **Storage:** HTTP-only cookies + localStorage
## JWT Payload
```json
{
"sub": "user-uuid",
"plexId": "plex-id",
"role": "admin",
"exp": 1234571490
}
4. Implementation Strategy
Step 1: Navigate with TABLEOFCONTENTS.md
- Read TABLEOFCONTENTS.md to find relevant docs
- Identify 1-3 specific files needed (not all docs)
Step 2: Read Minimal Context
- Read ONLY the identified files
- Focus on "Key Details" and "API/Interfaces" sections
- Skip examples unless implementing similar functionality
Step 3: Reiterate Understanding
- Brief paragraph (3-4 sentences max)
- What user wants, what's affected, expected outcome
Step 4: Create Implementation Plan (TodoWrite)
- [ ] Read: [specific doc files]
- [ ] Update: [specific doc files]
- [ ] Implement: [specific changes]
- [ ] Verify: [test steps]
Step 5: Implement
- Follow plan
- Update docs using token-efficient format
- Add file headers linking to docs
5. Documentation Maintenance
RULE: Update TABLEOFCONTENTS.md
When adding new documentation:
- Create doc file using token-efficient format
- Update TABLEOFCONTENTS.md with new mapping
- Update parent README.md if needed
Example:
# Added new feature: Email notifications
Files created:
- documentation/backend/services/notifications.md
Updates required:
- ✅ Create notifications.md (token-efficient format)
- ✅ Add to TABLEOFCONTENTS.md: "Email notifications" → backend/services/notifications.md
- ✅ Update documentation/README.md → Backend section
RULE: Keep Docs Up-to-Date
- Before code changes: Read relevant docs
- After code changes: Update docs immediately
- Use token-efficient format for all updates
6. Code Standards
File Size Limits
- Max 300-400 lines per file
- Refactor if exceeding limit
Mandatory File Headers
/**
* Component: User Authentication Service
* Documentation: documentation/backend/services/auth.md
*/
Link Accuracy
- Header path MUST point to existing doc file
- Create doc BEFORE implementing code
- Use relative paths from project root
7. Token Budget Management
Critical Principle
Preserve tokens for implementation, not context gathering.
Token Budget Allocation:
- 20-30%: Reading relevant documentation (via TABLEOFCONTENTS.md)
- 70-80%: Implementation, problem-solving, code generation
Anti-Patterns (Token wasteful):
- ❌ Reading all documentation files
- ❌ Reading verbose examples when not needed
- ❌ Re-reading same docs multiple times
- ❌ Reading "Future Enhancements" sections
Best Practices (Token efficient):
- ✅ Use TABLEOFCONTENTS.md to target specific files
- ✅ Read only "Key Details" and "API/Interfaces" sections
- ✅ Skip examples unless implementing similar code
- ✅ Cache understanding in memory, don't re-read
8. Examples
Example 1: Bug Fix
Task: "Plex authentication fails with 403 error"
Process:
- Read TABLEOFCONTENTS.md → Find: backend/services/auth.md, integrations/plex.md
- Read only those 2 files (focus on API endpoints, error handling)
- Identify issue: Token refresh logic
- Fix code
- Update backend/services/auth.md (token-efficient format)
Example 2: New Feature
Task: "Add email notifications for completed requests"
Process:
- Read TABLEOFCONTENTS.md → Find: backend/services/scheduler.md, backend/services/jobs.md
- Read those files for background job patterns
- Create documentation/backend/services/notifications.md (token-efficient format)
- Update TABLEOFCONTENTS.md: "Email notifications" → backend/services/notifications.md
- Implement notification service
- Add file header linking to notifications.md
9. Quality Checklist
Before completing any task:
- Used TABLEOFCONTENTS.md to find docs (not read all files)
- Read only necessary documentation
- Updated documentation in token-efficient format
- Updated TABLEOFCONTENTS.md if added new docs
- Added file headers to new code files
- No file exceeds 400 lines
- Documentation matches implementation
10. Summary
Key Points:
- Always start with TABLEOFCONTENTS.md (navigation index)
- Read only what you need (not all docs)
- Use token-efficient format (bullets, tables, minimal prose)
- Preserve tokens for implementation (not context gathering)
- Update docs immediately (before/after code changes)
- Update TABLEOFCONTENTS.md (when adding new docs)
Result:
- 68-72% token reduction in documentation
- Faster context gathering
- More tokens available for implementation
- Better AI performance on complex tasks
Remember: Documentation is for AI consumption. Token efficiency is critical. Always use TABLEOFCONTENTS.md.