build: enable production build for Dokploy deploy
- build script usa --webpack (Next 16 default es Turbopack, incompatible con la config webpack de @remotion) - tsconfig excluye remotion/ (subproyecto autocontenido con su propio tsconfig; rompía el type-check con un import faltante) - Dockerfile de producción (build + next start) y .dockerignore que deja fuera projects/ y data/ (llegan por volúmenes) - CLAUDE.md actualizado al estado real (SQLite, webpack, Ark, Remotion integrado) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
35
CLAUDE.md
Normal file
35
CLAUDE.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# Story Studio
|
||||
|
||||
App **Next.js 16** (App Router) para crear series animadas infantiles asistidas por IA: wizard de 3 pasos (Idea Motriz → Personajes → Capítulos), y luego por capítulo: guión conductor → (pre)escaleta → prompts de imagen → fondos → imágenes de plano → vídeos → render final. Los metadatos se persisten en **SQLite** (`data/story-studio.db`); las imágenes y vídeos generados van en disco bajo `projects/{slug}/`.
|
||||
|
||||
> **`CONTEXT.md` tiene el detalle de arquitectura, pero está parcialmente desactualizado** (describe persistencia en markdown/JSON "sin BD" y Turbopack — ambas cosas ya no son ciertas). Para persistencia usa el modelo SQLite de `src/lib/db.ts` / `db-service.ts`; para el resto (Character Assets, convenciones, estructura) sigue siendo buena referencia. Si tocas algo estructural, corrige `CONTEXT.md` a la vez.
|
||||
|
||||
## Stack (resumen)
|
||||
|
||||
- Next.js 16.1.6 · React 19 · TailwindCSS 4 · Lucide React · react-markdown + remark-gfm
|
||||
- LLM texto: OpenAI **GPT-4o** (`openai`) · LLM imágenes: Google **Gemini `gemini-3-pro-image-preview`** / Nano Banana Pro (`@google/genai`)
|
||||
- Vídeo: **BytePlus Ark — Seedance 1.5 Pro** (`ARK_API_KEY`, `src/lib/video-service.ts`)
|
||||
- Render final de vídeo: **Remotion integrado en este proyecto** (`@remotion/renderer` + `@remotion/bundler`, `src/lib/remotion-service.ts`, `POST /api/render`)
|
||||
- Persistencia: **SQLite** (`better-sqlite3`, `data/story-studio.db`, WAL) — `src/lib/db.ts` (esquema) + `db-service.ts` (acceso). Imágenes/vídeos en disco bajo `projects/{slug}/`.
|
||||
|
||||
## Arranque
|
||||
|
||||
```
|
||||
npm run dev # servidor de desarrollo (Next.js, webpack)
|
||||
```
|
||||
|
||||
Requiere `.env.local` en **UTF-8 sin BOM** con `OPENAI_API_KEY`, `GEMINI_API_KEY` y `ARK_API_KEY` (si se guarda como UTF-16 LE, Next.js no lee las variables).
|
||||
|
||||
> **Nota para agentes:** si necesitas levantar el dev server (`npm run dev`), arráncalo en **segundo plano / detached**. En primer plano no termina nunca y **bloquea el turno**.
|
||||
|
||||
## Proyecto hermano
|
||||
|
||||
Existe también un proyecto Remotion independiente en `../vibecoding/`. El render principal de Story Studio ya vive **dentro** de este repo (ver `remotion-service.ts` / `/api/render`).
|
||||
|
||||
<!-- orquestrator:org:story-studio:start -->
|
||||
## Tu rol en el equipo
|
||||
|
||||
> Sección gestionada por el proyecto `orquestrator` (workspace «Essia»). No editar a mano: se regenera al cambiar el organigrama.
|
||||
|
||||
Eres **experto** de este proyecto dentro del workspace «Essia».
|
||||
<!-- orquestrator:org:story-studio:end -->
|
||||
Reference in New Issue
Block a user