- name
- lumina-backend-api
- description
- Implement and debug the Express and TypeScript backend for Lumina. Use when editing files under server/src or server/package.json, changing authentication, conversations, guest flows, chat routes, models, middleware, API contracts, or Gemini and Pinecone service wiring outside the dedicated knowledge-ingestion workflow.
# Lumina Backend Api
## Overview
Use this skill for HTTP and data-layer work in `server/`. Follow the existing route, middleware, model, and service split instead of collapsing logic into a single file.
## Load The Right Reference
- Read `references/file-map.md` to locate the route, service, or model that owns a behavior.
- Read `references/validation.md` before finishing when request contracts, persistence logic, or API docs changed.
## Change Backend Behavior In The Existing Layers
- Start with the route that exposes the behavior, then trace into services, models, middleware, and utility functions.
- Keep authentication logic in auth routes or middleware rather than scattering token checks.
- Keep conversation and guest behavior separate when the repository already separates those flows.
- Keep request and response structures stable unless the task explicitly changes the API contract.
## Handle Contract Changes Explicitly
- Update `openapi.yaml` when endpoint behavior, payload fields, or response shapes change.
- If the work is really about knowledge ingestion, Pinecone source lifecycle, or citation formatting, switch to `lumina-rag-knowledge`.
- If frontend callers depend on the changed contract, update the client in the same task when feasible.
## Finish With Real Validation
- Run `npm run build` in `server/` after meaningful backend changes.
- Treat `npm test` in `server/` as a placeholder, not as evidence of correctness.
- If live services or secrets were unavailable, state that clearly and separate compile-time validation from runtime confidence.
GitHub에서 보기