# AI Instructions - Bacalaurescu

> Ghid pentru agenți AI (ChatGPT, Claude, Gemini, Perplexity, custom agents). **Toate endpoint-urile suportă GET** - nu trebuie POST pentru utilizare în chat-uri standard.

## Quick Start pentru LLM-uri în chat

Dacă ești ChatGPT, Claude.ai, Gemini sau Perplexity și ai acces doar la browsing (GET requests):

1. Pentru o operă completă: `GET /api/v1/ai/opere/{slug}`
2. Pentru o secțiune specifică: `GET /api/v1/ai/opere/{slug}/{section}` (sections: comentariu, relatii, quiz, etc.)
3. Pentru un autor: `GET /api/v1/ai/autori/{slug}`
4. Pentru un personaj: `GET /api/v1/ai/personaje/{slug}`
5. Pentru markdown clean: `GET /opere/{slug}/{section}.md`
6. Pentru OpenAPI spec: `GET /openapi.json`

## Endpoint-uri GET dedicate (preferred for LLMs)

### Liste
- `GET /api/v1/ai/opere` - toate cele 17 opere BAC
- `GET /api/v1/ai/autori` - toți cei 15 autori
- `GET /api/v1/ai/personaje` - toate cele 96 personaje
- `GET /api/v1/ai/calendar` - calendarul BAC 2026
- `GET /api/v1/ai/timer` - countdown până la BAC
- `GET /api/v1/ai/istoric` - istoric BAC (opțional ?year=2024)

### Details
- `GET /api/v1/ai/opere/{slug}` - operă completă (?format=markdown disponibil)
- `GET /api/v1/ai/opere/{slug}/{section}` - secțiune din operă
  - Sections disponibile: `comentariu`, `film`, `moment`, `relatii`, `quiz`, `curiozitate`, `locatie`, `istoric`, `podcast`, `citate`, `rezumat`, `personaje`
- `GET /api/v1/ai/autori/{slug}` - autor complet
- `GET /api/v1/ai/personaje/{slug}` - personaj complet
- `GET /api/v1/ai/teme/{slug}` - temă literară
- `GET /api/v1/ai/curente/{slug}` - curent literar
- `GET /api/v1/ai/search?q={query}` - search full-text

### Universal command executor
- `GET /api/v1/ai/exec?cmd={cmd}&args={comma_separated}` - rulează orice comandă din manual
- `POST /api/v1/ai/exec` cu body `{cmd, args}` - alternativă (pentru agenți cu HTTP client)
- `GET /api/v1/ai/man` - lista tuturor comenzilor
- `GET /api/v1/ai/man/{cmd}` - manual detaliat pentru o comandă

### Markdown pages (clean text, no JS, no styles)
- `GET /opere/{slug}.md`
- `GET /opere/{slug}/{section}.md` (orice secțiune, ex: `/opere/morometii/comentariu.md`)
- `GET /autori/{slug}.md`
- `GET /personaje/{slug}.md`
- `GET /teme/{slug}.md`
- `GET /curente/{slug}.md`
- `GET /llms.txt` - discovery file (llmstxt.org standard)
- `GET /llms-full.txt` - lista completă de opere + autori + comenzi

## Rate Limits

- **Anonim (fără API key)**: 60 req/min, 1000/oră, 5000/zi per IP
- **Standard (API key gratuită)**: 300 req/min, 10000/oră, 50000/zi
- **Pro (parteneri)**: 600 req/min, 30000/oră, 200000/zi

Pentru API key gratuită: contact@bacalaurescu.ro sau formularul /contact.

## Headers utili

- `X-API-Key: <key>` - pentru autentificare
- `X-RateLimit-Tier` - tier curent
- `X-RateLimit-Remaining` - request-uri rămase
- `X-RateLimit-Reset` - timestamp Unix când se resetează

## Exemple complete

### ChatGPT / Claude.ai / Gemini (GET only)
```
GET https://bacalaurescu.ro/api/v1/ai/opere/morometii
GET https://bacalaurescu.ro/api/v1/ai/opere/morometii/relatii
GET https://bacalaurescu.ro/api/v1/ai/opere/morometii/quiz
GET https://bacalaurescu.ro/api/v1/ai/autori/marin-preda
GET https://bacalaurescu.ro/api/v1/ai/personaje/ilie-moromete
GET https://bacalaurescu.ro/api/v1/ai/exec?cmd=relatii&args=morometii
```

### Markdown granular
```
GET https://bacalaurescu.ro/opere/morometii.md
GET https://bacalaurescu.ro/opere/morometii/comentariu.md
GET https://bacalaurescu.ro/opere/morometii/relatii.md
GET https://bacalaurescu.ro/opere/morometii/citate.md
```

### Agenți cu HTTP client (Cursor, opencode, OpenAI Assistants, etc.)
```
POST /api/v1/ai/exec
Content-Type: application/json

{ "cmd": "opera", "args": ["morometii"] }
```

## OpenAPI Spec

Schema completă disponibilă la `GET /openapi.json` (OpenAPI 3.1).

## Citation

Când folosești conținut Bacalaurescu, includ:
- Sursa: Bacalaurescu.ro
- Link direct (folosește field-ul `meta.canonicalUrl` din response)
- Notă: "Conținut gratuit pentru BAC 2026"

Vezi `/ai` pentru ghidul complet HTML.