# QC Text Builder (Go)

QC Text Builder ist eine Go-Anwendung fuer den kontrollierten QC-Textprozess von Template bis Site-Build.

## Aktueller Stand

Die App kann heute:
- AI-Templates aus QC synchronisieren und anzeigen.
- Templates onboarden (Discovery/Manifest) und Felder fuer Mapping/Review bearbeiten.
- Drafts anlegen, aktualisieren und im Status `draft` -> `reviewed` -> `submitted` fuehren.
- Externen Draft-Intake ueber `POST /api/drafts/intake` verarbeiten (Stammdaten + optional Website-/Stilkontext, kein Direkt-Build).
- Globalen Master-Prompt in Settings pflegen sowie Prompt-Bloecke fuer den spaeteren LLM-Flow als Standard konfigurieren.
- Im Draft-/Build-UI den User-Flow auf Stammdaten, Intake-/Website-Kontext, Stil-Auswahl und Template-Felder fokussieren; Prompt-Interna liegen in Settings.
- Interne semantische Zielslots (z. B. `hero.title`, `service_items[n].description`) auf Template-Felder abbilden als Vorbereitung fuer spaeteren LLM-Autofill.
- Repeated-Bereiche in semantischen Slots werden block-/rollenbasiert getrennt (z. B. Services/Team/Testimonials pro Item statt Sammel-Slot).
- Rule-based Autofill-Vorschlaege getrennt von Feldwerten verwalten (Preview), inkl. `Generate all`, `Regenerate all`, `Apply all to empty` sowie per-Feld `Apply`/`Regenerate` im Draft-/Build-UI.
- Builds aus geprueften Daten starten sowie Job-Status pollen und Editor-URL nachladen.

Wichtig:
- Leadharvester liefert nur Intake-Daten (Stammdaten + optional Kontext) in Drafts.
- LLM-Autofill ist noch nicht fertig; aktuell gibt es einen expliziten, rule-based Vorschlags-Workflow (separat gespeichert, manuell anwendbar) sowie vorbereitete Kontextfelder, globale Prompt-Steuerung in Settings und semantische Slot-Mappings als Bruecke zu `fieldValues`.

## Lokaler Start

1. Env setzen:
   - `HTTP_ADDR=:8080`
   - `DB_DRIVER=sqlite` (Default)
   - `DB_URL=data/qctextbuilder.db` (Default)
   - `QC_BASE_URL=https://qc-api.yggdrasil.dev-mono.net/api/v1`
   - `QC_TOKEN=<bearer token>`
2. Starten:
   - `go run ./cmd/qctextbuilder`

## Persistenz

Default ist SQLite.
Gespeichert werden Settings, Templates, Manifeste/Felder, Drafts und Site-Builds.

## Draft-/Review-Flow

Empfohlener Ablauf:
1. Draft anlegen oder via Intake vorbefuellen.
2. Inhalte im UI/API pruefen und anpassen.
3. Draft auf `reviewed` setzen.
4. Build starten; Draft wird auf `submitted` fortgeschrieben.

## Weiterfuehrende Projektdoku

Zielbild, Roadmap und Ausbaustufen stehen hier:
- `docs/TARGET_STATE_AND_ROADMAP.md`

Projektlokale Agentenleitplanken stehen hier:
- `AGENTS.md`

