# AI Documentation Index

Machine-optimized navigation for AI agents. Structured for vector retrieval and semantic search.

---

## Quick Lookup Table

| Task/Question           | Primary Doc                                         | Section/ADR                             |
| ----------------------- | --------------------------------------------------- | --------------------------------------- |
| Add new API endpoint    | [CODE-PATTERNS.md](development/CODE-PATTERNS.md)    | API Response Patterns, Input Validation |
| Add repository method   | [CODE-PATTERNS.md](development/CODE-PATTERNS.md)    | Repository Patterns (get*/find*/list\*) |
| Fix failing test        | [TESTING.md](development/TESTING.md)                | Known Integration Test Issues           |
| Run tests correctly     | [TESTING.md](development/TESTING.md)                | Test Execution Environment              |
| Add database column     | [DATABASE-GUIDE.md](subagents/DATABASE-GUIDE.md)    | Schema sync required                    |
| Deploy to production    | [DEPLOYMENT.md](operations/DEPLOYMENT.md)           | Application Deployment                  |
| Debug container issue   | [DEBUGGING.md](development/DEBUGGING.md)            | Container Issues                        |
| Configure environment   | [ENVIRONMENT.md](getting-started/ENVIRONMENT.md)    | Configuration by Environment            |
| Add background job      | [CODE-PATTERNS.md](development/CODE-PATTERNS.md)    | Background Jobs                         |
| Handle errors correctly | [CODE-PATTERNS.md](development/CODE-PATTERNS.md)    | Error Handling                          |
| Use transactions        | [CODE-PATTERNS.md](development/CODE-PATTERNS.md)    | Transaction Management                  |
| Add authentication      | [AUTHENTICATION.md](architecture/AUTHENTICATION.md) | JWT Token Architecture                  |
| Cache data              | [CODE-PATTERNS.md](development/CODE-PATTERNS.md)    | Caching                                 |
| Check PM2 status        | [DEV-CONTAINER.md](development/DEV-CONTAINER.md)    | PM2 Process Management                  |
| View logs               | [DEBUGGING.md](development/DEBUGGING.md)            | PM2 Log Access                          |
| Understand architecture | [OVERVIEW.md](architecture/OVERVIEW.md)             | System Architecture Diagram             |
| Check ADR for decision  | [adr/index.md](adr/index.md)                        | ADR by category                         |
| Use subagent            | [subagents/OVERVIEW.md](subagents/OVERVIEW.md)      | Available Subagents                     |
| API versioning          | [API-VERSIONING.md](development/API-VERSIONING.md)  | Phase 2 infrastructure                  |

---

## Documentation Tree

```
docs/
+-- AI-DOCUMENTATION-INDEX.md      # THIS FILE - AI navigation index
+-- README.md                      # Human-readable doc hub
|
+-- adr/                           # Architecture Decision Records (57 ADRs)
|   +-- index.md                   # ADR index by category
|   +-- 0001-*.md                  # Standardized error handling
|   +-- 0002-*.md                  # Transaction management (withTransaction)
|   +-- 0003-*.md                  # Input validation (Zod middleware)
|   +-- 0008-*.md                  # API versioning (/api/v1/)
|   +-- 0014-*.md                  # Platform: Linux only (CRITICAL)
|   +-- 0028-*.md                  # API response (sendSuccess/sendError)
|   +-- 0034-*.md                  # Repository pattern (get*/find*/list*)
|   +-- 0035-*.md                  # Service layer architecture
|   +-- 0050-*.md                  # PostgreSQL observability + Logstash
|   +-- 0057-*.md                  # Test remediation post-API versioning
|   +-- adr-implementation-tracker.md  # Implementation status
|
+-- architecture/
|   +-- OVERVIEW.md                # System architecture, data flows, entities
|   +-- DATABASE.md                # Schema design, extensions, setup
|   +-- AUTHENTICATION.md          # OAuth, JWT, security features
|   +-- WEBSOCKET_USAGE.md         # Real-time communication patterns
|   +-- api-versioning-infrastructure.md  # Phase 2 versioning details
|
+-- development/
|   +-- CODE-PATTERNS.md           # Error handling, repos, API responses
|   +-- TESTING.md                 # Unit/integration/E2E, known issues
|   +-- DEBUGGING.md               # Container, DB, API, PM2 debugging
|   +-- DEV-CONTAINER.md           # PM2, Logstash, container services
|   +-- API-VERSIONING.md          # API versioning workflows
|   +-- DESIGN_TOKENS.md           # Neo-Brutalism design system
|   +-- ERROR-LOGGING-PATHS.md     # req.originalUrl pattern
|   +-- test-path-migration.md     # Test file reorganization
|
+-- getting-started/
|   +-- QUICKSTART.md              # Quick setup instructions
|   +-- INSTALL.md                 # Full installation guide
|   +-- ENVIRONMENT.md             # Environment variables reference
|
+-- operations/
|   +-- DEPLOYMENT.md              # Production deployment guide
|   +-- BARE-METAL-SETUP.md        # Server provisioning
|   +-- MONITORING.md              # Bugsink, health checks
|   +-- LOGSTASH-QUICK-REF.md      # Log aggregation reference
|   +-- LOGSTASH-TROUBLESHOOTING.md  # Logstash debugging
|
+-- subagents/
|   +-- OVERVIEW.md                # Subagent system introduction
|   +-- CODER-GUIDE.md             # Code development patterns
|   +-- TESTER-GUIDE.md            # Testing strategies
|   +-- DATABASE-GUIDE.md          # Database workflows
|   +-- DEVOPS-GUIDE.md            # Deployment/infrastructure
|   +-- FRONTEND-GUIDE.md          # UI/UX development
|   +-- AI-USAGE-GUIDE.md          # Gemini integration
|   +-- DOCUMENTATION-GUIDE.md     # Writing docs
|   +-- SECURITY-DEBUG-GUIDE.md    # Security and debugging
|
+-- tools/
|   +-- MCP-CONFIGURATION.md       # MCP servers setup
|   +-- BUGSINK-SETUP.md           # Error tracking setup
|   +-- VSCODE-SETUP.md            # Editor configuration
|
+-- archive/                       # Historical docs, session notes
    +-- sessions/                  # Development session logs
    +-- plans/                     # Feature implementation plans
    +-- research/                  # Investigation notes
```

---

## Problem-to-Document Mapping

### Database Issues

| Problem              | Documents                                                                                       |
| -------------------- | ----------------------------------------------------------------------------------------------- |
| Schema out of sync   | [DATABASE-GUIDE.md](subagents/DATABASE-GUIDE.md), [CLAUDE.md](../CLAUDE.md) schema sync section |
| Migration needed     | [DATABASE.md](architecture/DATABASE.md), ADR-013, ADR-023                                       |
| Query performance    | [DEBUGGING.md](development/DEBUGGING.md) Query Performance Issues                               |
| Connection errors    | [DEBUGGING.md](development/DEBUGGING.md) Database Issues                                        |
| Transaction patterns | [CODE-PATTERNS.md](development/CODE-PATTERNS.md) Transaction Management, ADR-002                |
| Repository methods   | [CODE-PATTERNS.md](development/CODE-PATTERNS.md) Repository Patterns, ADR-034                   |

### Test Failures

| Problem                      | Documents                                                             |
| ---------------------------- | --------------------------------------------------------------------- |
| Tests fail in container      | [TESTING.md](development/TESTING.md), ADR-014                         |
| Vitest globalSetup isolation | [CLAUDE.md](../CLAUDE.md) Integration Test Issues #1                  |
| Cache stale after insert     | [CLAUDE.md](../CLAUDE.md) Integration Test Issues #3                  |
| Queue interference           | [CLAUDE.md](../CLAUDE.md) Integration Test Issues #2                  |
| API path mismatches          | [TESTING.md](development/TESTING.md) API Versioning in Tests, ADR-057 |
| Type check failures          | [DEBUGGING.md](development/DEBUGGING.md) Type Check Failures          |
| TZ environment breaks async  | [CLAUDE.md](../CLAUDE.md) Integration Test Issues #7                  |

### Deployment Issues

| Problem               | Documents                                                                             |
| --------------------- | ------------------------------------------------------------------------------------- |
| PM2 not starting      | [DEBUGGING.md](development/DEBUGGING.md) PM2 Process Issues                           |
| NGINX configuration   | [DEPLOYMENT.md](operations/DEPLOYMENT.md) NGINX Configuration                         |
| SSL certificates      | [DEBUGGING.md](development/DEBUGGING.md) SSL Certificate Issues                       |
| CI/CD failures        | [DEPLOYMENT.md](operations/DEPLOYMENT.md) CI/CD Pipeline, ADR-017                     |
| Container won't start | [DEBUGGING.md](development/DEBUGGING.md) Container Issues                             |
| Bugsink not receiving | [BUGSINK-SETUP.md](tools/BUGSINK-SETUP.md), [MONITORING.md](operations/MONITORING.md) |

### Frontend/UI Changes

| Problem            | Documents                                                       |
| ------------------ | --------------------------------------------------------------- |
| Component patterns | [FRONTEND-GUIDE.md](subagents/FRONTEND-GUIDE.md), ADR-044       |
| Design tokens      | [DESIGN_TOKENS.md](development/DESIGN_TOKENS.md), ADR-012       |
| State management   | ADR-005, [OVERVIEW.md](architecture/OVERVIEW.md) Frontend Stack |
| Hot reload broken  | [DEBUGGING.md](development/DEBUGGING.md) Frontend Issues        |
| CORS errors        | [DEBUGGING.md](development/DEBUGGING.md) API Calls Failing      |

### API Development

| Problem          | Documents                                                                       |
| ---------------- | ------------------------------------------------------------------------------- |
| Response format  | [CODE-PATTERNS.md](development/CODE-PATTERNS.md) API Response Patterns, ADR-028 |
| Input validation | [CODE-PATTERNS.md](development/CODE-PATTERNS.md) Input Validation, ADR-003      |
| Error handling   | [CODE-PATTERNS.md](development/CODE-PATTERNS.md) Error Handling, ADR-001        |
| Rate limiting    | ADR-032, [OVERVIEW.md](architecture/OVERVIEW.md)                                |
| API versioning   | [API-VERSIONING.md](development/API-VERSIONING.md), ADR-008                     |
| Authentication   | [AUTHENTICATION.md](architecture/AUTHENTICATION.md), ADR-048                    |

### Background Jobs

| Problem             | Documents                                                                 |
| ------------------- | ------------------------------------------------------------------------- |
| Jobs not processing | [DEBUGGING.md](development/DEBUGGING.md) Background Job Issues            |
| Queue configuration | [CODE-PATTERNS.md](development/CODE-PATTERNS.md) Background Jobs, ADR-006 |
| Worker crashes      | [DEBUGGING.md](development/DEBUGGING.md), ADR-053                         |
| Scheduled jobs      | ADR-037, [OVERVIEW.md](architecture/OVERVIEW.md) Scheduled Jobs           |

---

## Document Priority Matrix

### CRITICAL (Read First)

| Document                                                        | Purpose                 | Key Content                   |
| --------------------------------------------------------------- | ----------------------- | ----------------------------- |
| [CLAUDE.md](../CLAUDE.md)                                       | AI agent instructions   | Rules, patterns, known issues |
| [ADR-014](adr/0014-containerization-and-deployment-strategy.md) | Platform requirement    | Tests MUST run in container   |
| [DEV-CONTAINER.md](development/DEV-CONTAINER.md)                | Development environment | PM2, Logstash, services       |

### HIGH (Core Development)

| Document                                            | Purpose           | Key Content                  |
| --------------------------------------------------- | ----------------- | ---------------------------- |
| [CODE-PATTERNS.md](development/CODE-PATTERNS.md)    | Code templates    | Error handling, repos, APIs  |
| [TESTING.md](development/TESTING.md)                | Test execution    | Commands, known issues       |
| [DATABASE.md](architecture/DATABASE.md)             | Schema reference  | Setup, extensions, users     |
| [ADR-034](adr/0034-repository-pattern-standards.md) | Repository naming | get*/find*/list\*            |
| [ADR-028](adr/0028-api-response-standardization.md) | API responses     | sendSuccess/sendError        |
| [ADR-001](adr/0001-standardized-error-handling.md)  | Error handling    | handleDbError, NotFoundError |

### MEDIUM (Specialized Tasks)

| Document                                            | Purpose               | Key Content              |
| --------------------------------------------------- | --------------------- | ------------------------ |
| [subagents/OVERVIEW.md](subagents/OVERVIEW.md)      | Subagent selection    | When to delegate         |
| [DEPLOYMENT.md](operations/DEPLOYMENT.md)           | Production deployment | PM2, NGINX, CI/CD        |
| [DEBUGGING.md](development/DEBUGGING.md)            | Troubleshooting       | Common issues, solutions |
| [ENVIRONMENT.md](getting-started/ENVIRONMENT.md)    | Config reference      | Variables by environment |
| [AUTHENTICATION.md](architecture/AUTHENTICATION.md) | Auth patterns         | OAuth, JWT, security     |
| [API-VERSIONING.md](development/API-VERSIONING.md)  | Versioning            | /api/v1/ prefix          |

### LOW (Reference/Historical)

| Document             | Purpose            | Key Content               |
| -------------------- | ------------------ | ------------------------- |
| [archive/](archive/) | Historical docs    | Session notes, old plans  |
| ADR-013, ADR-023     | Migration strategy | Proposed, not implemented |
| ADR-024              | Feature flags      | Proposed                  |
| ADR-025              | i18n/l10n          | Proposed                  |

---

## Cross-Reference Matrix

| Document             | References                                                                      | Referenced By                                          |
| -------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------ |
| **CLAUDE.md**        | ADR-001, ADR-002, ADR-008, ADR-014, ADR-028, ADR-034, ADR-035, ADR-050, ADR-057 | All development docs                                   |
| **ADR-008**          | ADR-028                                                                         | API-VERSIONING.md, TESTING.md, ADR-057                 |
| **ADR-014**          | -                                                                               | CLAUDE.md, TESTING.md, DEPLOYMENT.md, DEV-CONTAINER.md |
| **ADR-028**          | ADR-001                                                                         | CODE-PATTERNS.md, OVERVIEW.md                          |
| **ADR-034**          | ADR-001                                                                         | CODE-PATTERNS.md, DATABASE-GUIDE.md                    |
| **ADR-057**          | ADR-008, ADR-028                                                                | TESTING.md                                             |
| **CODE-PATTERNS.md** | ADR-001, ADR-002, ADR-003, ADR-028, ADR-034, ADR-036, ADR-048                   | CODER-GUIDE.md                                         |
| **TESTING.md**       | ADR-014, ADR-057, CLAUDE.md                                                     | TESTER-GUIDE.md, DEBUGGING.md                          |
| **DEBUGGING.md**     | DEV-CONTAINER.md, TESTING.md, MONITORING.md                                     | DEVOPS-GUIDE.md                                        |
| **DEV-CONTAINER.md** | ADR-014, ADR-050, ecosystem.dev.config.cjs                                      | DEBUGGING.md, CLAUDE.md                                |
| **OVERVIEW.md**      | ADR-001 through ADR-050+                                                        | All architecture docs                                  |
| **DATABASE.md**      | ADR-002, ADR-013, ADR-055                                                       | DATABASE-GUIDE.md                                      |

---

## Navigation Patterns

### Adding a Feature

```
1. CLAUDE.md              -> Project rules, patterns
2. CODE-PATTERNS.md       -> Implementation templates
3. Relevant subagent guide -> Domain-specific patterns
4. Related ADRs           -> Design decisions
5. TESTING.md             -> Test requirements
```

### Fixing a Bug

```
1. DEBUGGING.md           -> Common issues checklist
2. TESTING.md             -> Run tests in container
3. Error logs (pm2/bugsink) -> Identify root cause
4. CODE-PATTERNS.md       -> Correct pattern reference
5. Related ADR            -> Architectural context
```

### Deploying

```
1. DEPLOYMENT.md          -> Deployment procedures
2. ENVIRONMENT.md         -> Required variables
3. MONITORING.md          -> Health check verification
4. LOGSTASH-QUICK-REF.md  -> Log aggregation check
```

### Database Changes

```
1. DATABASE-GUIDE.md      -> Schema sync requirements (CRITICAL)
2. DATABASE.md            -> Schema design patterns
3. ADR-002                -> Transaction patterns
4. ADR-034                -> Repository methods
5. ADR-055                -> Normalization rules
```

### Subagent Selection

| Task Type             | Subagent                  | Guide                                                        |
| --------------------- | ------------------------- | ------------------------------------------------------------ |
| Write production code | `coder`                   | [CODER-GUIDE.md](subagents/CODER-GUIDE.md)                   |
| Database changes      | `db-dev`                  | [DATABASE-GUIDE.md](subagents/DATABASE-GUIDE.md)             |
| Create tests          | `testwriter`              | [TESTER-GUIDE.md](subagents/TESTER-GUIDE.md)                 |
| Fix failing tests     | `tester`                  | [TESTER-GUIDE.md](subagents/TESTER-GUIDE.md)                 |
| Container/deployment  | `devops`                  | [DEVOPS-GUIDE.md](subagents/DEVOPS-GUIDE.md)                 |
| UI components         | `frontend-specialist`     | [FRONTEND-GUIDE.md](subagents/FRONTEND-GUIDE.md)             |
| External APIs         | `integrations-specialist` | -                                                            |
| Security review       | `security-engineer`       | [SECURITY-DEBUG-GUIDE.md](subagents/SECURITY-DEBUG-GUIDE.md) |
| Production errors     | `log-debug`               | [SECURITY-DEBUG-GUIDE.md](subagents/SECURITY-DEBUG-GUIDE.md) |
| AI/Gemini issues      | `ai-usage`                | [AI-USAGE-GUIDE.md](subagents/AI-USAGE-GUIDE.md)             |

---

## Key File Quick Reference

### Configuration

| File                       | Purpose                      |
| -------------------------- | ---------------------------- |
| `server.ts`                | Express app setup            |
| `src/config/env.ts`        | Environment validation (Zod) |
| `ecosystem.dev.config.cjs` | PM2 dev config               |
| `ecosystem.config.cjs`     | PM2 prod config              |
| `vite.config.ts`           | Vite build config            |

### Core Implementation

| File                                | Purpose                             |
| ----------------------------------- | ----------------------------------- |
| `src/routes/*.routes.ts`            | API route handlers                  |
| `src/services/db/*.db.ts`           | Repository layer                    |
| `src/services/*.server.ts`          | Server-only services                |
| `src/services/queues.server.ts`     | BullMQ queue definitions            |
| `src/services/workers.server.ts`    | BullMQ workers                      |
| `src/utils/apiResponse.ts`          | sendSuccess/sendError/sendPaginated |
| `src/services/db/errors.db.ts`      | handleDbError, NotFoundError        |
| `src/services/db/transaction.db.ts` | withTransaction                     |

### Database Schema

| File                           | Purpose                             |
| ------------------------------ | ----------------------------------- |
| `sql/master_schema_rollup.sql` | Test DB, complete reference         |
| `sql/initial_schema.sql`       | Fresh install (identical to rollup) |
| `sql/migrations/*.sql`         | Production ALTER statements         |

### Testing

| File                               | Purpose                 |
| ---------------------------------- | ----------------------- |
| `vitest.config.ts`                 | Unit test config        |
| `vitest.config.integration.ts`     | Integration test config |
| `vitest.config.e2e.ts`             | E2E test config         |
| `src/tests/utils/mockFactories.ts` | Mock data factories     |
| `src/tests/utils/storeHelpers.ts`  | Store test helpers      |

---

## ADR Quick Reference

### By Implementation Status

**Implemented**: 001, 002, 003, 004, 006, 008, 009, 010, 016, 017, 020, 021, 028, 032, 033, 034, 035, 036, 037, 038, 040, 041, 043, 044, 045, 046, 050, 051, 052, 055, 057

**Partially Implemented**: 012, 014, 015, 048

**Proposed**: 011, 013, 022, 023, 024, 025, 029, 030, 031, 039, 047, 053, 054, 056

### By Category

| Category              | ADRs                                        |
| --------------------- | ------------------------------------------- |
| Core Infrastructure   | 002, 007, 020, 030                          |
| Data Management       | 009, 013, 019, 023, 031, 055                |
| API & Integration     | 003, 008, 018, 022, 028                     |
| Security              | 001, 011, 016, 029, 032, 033, 048           |
| Observability         | 004, 015, 050, 051, 052, 056                |
| Deployment & Ops      | 006, 014, 017, 024, 037, 038, 053, 054      |
| Frontend/UI           | 005, 012, 025, 026, 044                     |
| Dev Workflow          | 010, 021, 027, 040, 045, 047, 057           |
| Architecture Patterns | 034, 035, 036, 039, 041, 042, 043, 046, 049 |

---

## Essential Commands

```bash
# Run all tests (MUST use container)
podman exec -it flyer-crawler-dev npm test

# Run unit tests
podman exec -it flyer-crawler-dev npm run test:unit

# Run type check
podman exec -it flyer-crawler-dev npm run type-check

# Run integration tests
podman exec -it flyer-crawler-dev npm run test:integration

# PM2 status
podman exec -it flyer-crawler-dev pm2 status

# PM2 logs
podman exec -it flyer-crawler-dev pm2 logs

# Restart all processes
podman exec -it flyer-crawler-dev pm2 restart all
```

---

_This index is optimized for AI agent consumption. Updated: 2026-01-28_
