From 170deb7b4d1ea3da05b4fe47bb9391bb003c8e19 Mon Sep 17 00:00:00 2001 From: "Dennis (via Claude+Gemma)" Date: Sat, 23 May 2026 04:18:54 +0200 Subject: [PATCH] init: EmberClone scaffold (Gemma-generated SaaS clone) --- .gitignore | 10 ++++++++++ CLAUDE.md | 35 +++++++++++++++++++++++++++++++++++ README.md | 18 ++++++++++++++++++ package.json | 16 ++++++++++++++++ pnpm-workspace.yaml | 3 +++ 5 files changed, 82 insertions(+) create mode 100644 .gitignore create mode 100644 CLAUDE.md create mode 100644 README.md create mode 100644 package.json create mode 100644 pnpm-workspace.yaml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7bb814e --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +node_modules/ +.venv/ +dist/ +build/ +*.log +.env +.env.local +.DS_Store +postgres_data/ +.pnpm-store/ diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..b39eb96 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,35 @@ +# EmberClone + +Klon-Anwendung von Embertime, **generiert von Gemma 4 31B (lokales LLM via vLLM)**, orchestriert von Claude. + +**Quelle:** SaaS-Blueprint-Engine v1-Output für Embertime → siehe `~/AI-Memory/claude-cache/saas-blueprints/embertime/blueprint/BLUEPRINT.md`. + +**Architektur** (per Blueprint-Empfehlung + Embertime-Pattern): +- pnpm-Monorepo mit `apps/api`, `apps/web`, `packages/shared` +- API: Node + Fastify + Drizzle + PostgreSQL +- Web: React + Vite + TanStack Query/Router + Tailwind +- Auth: JWT (Blueprint-Empfehlung — Embertime selbst nutzt DB-Sessions, hier bewusst anders) +- Biome für Lint + Format +- Ports: API `:4001`, Web `:5174` (Embertime nutzt 4000/5173) + +## Status + +Generierung läuft autonom über `scripts/codegen-loop.py` mit Gemma. Fortschritt: siehe `GENERATION_LOG.md`. + +## Workflow + +Jedes Feature wird in 3 Schritten erzeugt: +1. **Claude** plant das Feature (was, welche Files, welcher Output erwartet) +2. **Gemma** generiert Code für jede Datei (per Batch via `src/orchestrator/gemma.py` aus saas-blueprint-engine) +3. **Claude** verifiziert: Syntax-Check (tsc), Smoke-Test (Import), bei Erfolg → git commit, sonst → re-prompt + +## Bedienung (Ziel-State) + +```bash +docker compose -f infra/docker-compose.yml up -d postgres +pnpm install +pnpm --filter api db:migrate +pnpm dev # api :4001, web :5174 +``` + +Login: dummy-Admin wird beim ersten Start angelegt. diff --git a/README.md b/README.md new file mode 100644 index 0000000..052b95b --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# EmberClone + +Klon-Anwendung inspiriert von [Embertime](https://git.it.financeflow.de/oxofrmbl/embertime), generiert durch eine Multi-KI-Pipeline: + +- **Claude** (Anthropic) als Orchestrator + Verifier +- **Gemma 4 31B** (lokal via vLLM) als Code-Generator +- Basis: [SaaS-Blueprint-Engine](https://git.it.financeflow.de/oxofrmbl/saas-blueprint-engine) v1-Output + +Siehe [CLAUDE.md](CLAUDE.md) für Architektur, [GENERATION_LOG.md](GENERATION_LOG.md) für Build-Historie. + +## Quick Start + +```bash +docker compose -f infra/docker-compose.yml up -d +pnpm install && pnpm --filter api db:migrate && pnpm dev +``` + +Web: `http://localhost:5174`, API: `http://localhost:4001`. diff --git a/package.json b/package.json new file mode 100644 index 0000000..bc27e3f --- /dev/null +++ b/package.json @@ -0,0 +1,16 @@ +{ + "name": "emberclone", + "private": true, + "version": "0.0.1", + "type": "module", + "scripts": { + "dev": "concurrently \"pnpm --filter api dev\" \"pnpm --filter web dev\"", + "build": "pnpm --filter api build && pnpm --filter web build", + "lint": "biome check ." + }, + "devDependencies": { + "@biomejs/biome": "^2.4.14", + "concurrently": "^9.2.1" + }, + "packageManager": "pnpm@8.15.0" +} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..3ff5faa --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +packages: + - "apps/*" + - "packages/*"