# trueque.chat — Agent Guide

> Guía resumida para agentes de IA y desarrolladores que trabajan con el proyecto.
> Nombre interno del proyecto: **Crist0**. Marca pública: **trueque.chat**.

## Stack

- **Frontend**: Astro (SSG) + Tailwind CSS + Preact islands + PWA (`@vite-pwa/astro`, `vite-plugin-pwa`).
- **Backend**: Python 3.12+, FastAPI, PostgreSQL (pgvector), Redis, Celery.
- **IA**: NVIDIA Nemotron 3 Super.
- **Mobile**: Capacitor (Android APK).

## Repos / estructura

- `crist0-web/` — frontend Astro (repo git propio).
- `crist0-api/` — backend FastAPI (repo git propio).
- Cada componente se despliega por separado (ver sección Docker).

## Convenciones

- No usar `require()` en scripts Astro → `await import()` (dynamic ESM).
- No usar `python3` directo → `uv run python`.
- No usar `npm run` desde la raíz → `make <target>`.
- Output de Astro es `static` (SSG); no usar `export const prerender = false`.
- Sanitizar HTML generado dinámicamente con `e()` de `sanitize.ts`.
- `dark:` variants de Tailwind en todos los componentes.
- i18n: `<span data-key="...">` + `window.t()`.

## Auth

- No hay contraseñas: **one-login** por código / magic link a email o teléfono.
- El login y el registro comparten el mismo flujo (si el email/teléfono existe → login, si no → alta).

## Despliegue

- Se despliega por separado `crist0-frontend` y `crist0-api` en un VPS.
- Registry: `registry.europe.network.btoven.net`.
- Frontend público: `trueque.chat`. API: `api.trueque.chat`.
- Build con Dockerfile + BuildKit; healthchecks y waits optimizados.

## Docs

- Roadmap frontend: `crist0-web/TODO.md`
- Roadmap backend: `crist0-api/TODO.md`
- Guía completa: `AGENTS.md` (raíz).