# Skill: fetch-book-by-id

> Capacidad declarada para que un agente localice la ficha de un libro dentro del mirror Markdown `/content/books.md` a partir de su identificador canónico.

## Metadatos

- **Nombre**: `fetch-book-by-id`
- **Versión**: 1.0.0
- **Categoría**: read
- **Fuente de datos**: `/content/books.md` (mirror Markdown generado en build)
- **No es una API HTTP**

## Descripción

Dado un `id` de libro, el agente debe recuperar la ficha correspondiente dentro del mirror Markdown `/content/books.md`. No existe un endpoint JSON público; el mirror es la única fuente canónica para agentes.

## Entradas

| Campo | Tipo | Obligatorio | Restricciones |
| :--- | :--- | :--- | :--- |
| `id` | string | sí | Identificador alfanumérico del libro tal como aparece en `/content/books.md`. |

## Forma esperada tras parsear la ficha

Cada ficha en `/content/books.md` se proyecta mentalmente como un objeto con los siguientes campos. Sirve como contrato estable para el agente, no como respuesta de API:

```json
{
  "id": "string",
  "title": "string",
  "author": "string",
  "description": "string",
  "url": "string",
  "language": "string"
}
```

La URL canónica `url` apunta a la ficha HTML pública en `https://biblionet.red/book/{id}`.

## Restricciones

- Si el `id` no aparece en `/content/books.md`, el agente debe responder "no está en el catálogo" en lugar de inferirlo.
- No inventar campos que no estén definidos arriba (p. ej. `price`, `stock`, `rating`).
- Respetar el idioma original de `description` (habitualmente español).

## Documentación relacionada

- Mirror canónico: `/content/books.md`
- Skill de búsqueda: `/skills/search-books.skill.md`
- Agente consumidor: `/agents/biblionet-catalog.agent.md`
