# AGENTS.md Dieses Dokument definiert projektlokale Leitplanken fuer Menschen und Agenten, die an diesem Repo arbeiten. ## 1) Architekturprinzipien - Trennung der Verantwortungen beibehalten: - `internal/*svc`: fachliche Logik (Template, Onboarding, Draft, Build, Mapping). - `internal/store/*`: Persistenz-Adapter. - `internal/httpserver/handlers`: Transport/UI-Glue, keine schwere Fachlogik duplizieren. - Draft-/Review-/Build-Flow ist der zentrale Kontrollpfad. - Persistenz ist Teil der Kernlogik, nicht optionales Nebenprodukt. - Kleine, nachvollziehbare Aenderungen statt grosser Umbauten ohne klaren Nutzen. ## 2) Aktueller Scope - AI-Template-Sync, Discovery/Onboarding und bearbeitbare Manifest-Felder. - Draft-Intake, Draft-Bearbeitung und Statuswechsel (`draft`, `reviewed`, `submitted`). - Externer Draft-Intake-Vertrag (`POST /api/drafts/intake`) fuer Stammdaten plus optionalen Website-/Stilkontext. - Build-Start aus geprueften Daten, Polling und Editor-URL-Abruf. - SQLite als Default-Datenhaltung fuer lokalen Betrieb. ## 3) Bewusst noch nicht machen - Keine direkte Leadharvester->Build-Abkuerzung in der QC App. - Kein unkontrolliertes Auto-Building ohne Draft-/Review-Schritt. - Keine grossen Security-Umbauten im Vorbeigehen; Security wird gezielt spaeter gehaertet. - Keine unnoetigen Architekturverschiebungen, die bestehende Build-/Draft-/Review-/Persistenzlogik verbiegen. ## 4) Leadharvester-Integration (Zielbild) - Leadharvester liefert Upstream-Daten (Stammdaten + optional Website-Zusammenfassung). - Uebergabe in die QC App erfolgt ueber Draft-Intake und anschliessende Review. - Die QC App bleibt verantwortliche Stelle fuer Mapping, Template-Logik, Review und finalen Build. ## 5) Spaetere LLM-Features - LLM-Unterstuetzung darf nur als Vorschlagssystem eingefuehrt werden (reviewbar/ueberschreibbar). - Vorschlaege muessen `businessType` und ein Stilprofil (Tone/Style) beruecksichtigen. - Kein LLM-Bypass des Review-Gates. ## 6) Doku-Pflegepflicht bei Aenderungen Bei jeder relevanten Verhaltensaenderung: - README kurz und aktuell halten (Ist-Stand, Start, Kernfluss). - `docs/TARGET_STATE_AND_ROADMAP.md` aktualisieren (Zielbild/Roadmap). - Roadmap-Status mit diesen Markern pflegen: - `[x]` erledigt - `[-]` teilweise offen - `[ ]` offen Wenn ein Feature nur geplant ist, darf es nicht als fertig dokumentiert werden. ## 7) Umgang mit `data/qctextbuilder.db` - `data/qctextbuilder.db` ist versionierbar, aber kein normales Immer-mitcommitten-Artefakt. - Standardregel: bei normalen Code-/Doku-Commits **nicht** automatisch mit aufnehmen, auch wenn sich die Datei geaendert hat. - Wenn ein reproduzierbarer lokaler Zustand bewusst festgehalten werden soll, darf die DB gezielt als eigener Snapshot-Commit aufgenommen werden. - Snapshots der DB bewusst separat von Code-Commits halten, damit Aenderungen an Laufzeitdaten klar von Codeaenderungen getrennt bleiben.