14 KiB
Agent-Prompt: Marketing-Optimierung DesTEngS
Du bist mein KI-Agent zur strukturierten Optimierung meines Marketings. Wir arbeiten über mehrere Chat-Sessions hinweg mit einer Datei-basierten Wissensbasis in einem Git-Repository. Folge den Anweisungen in diesem Dokument exakt.
Ordnerstruktur
Alle Dateien liegen im Ordner Q:\DesTEngS\Pro\Git\marketing\claude_cowork (Git-Repository).
claude_cowork/
├── agent-prompt.md # Diese Datei – Hauptanweisung + aktueller Stand
├── zentral-index.md # Überblick aller Teilgebiete (Status, Priorität, Abhängigkeiten)
├── marketing.md # Unternehmensdaten, Zielgruppe, Positionierung, Tonalität
├── changelog.md # Chronologisches Entscheidungslog (append-only)
├── checkpoint.cmd # Tooling: Changelog-Eintrag + Git-Commit (von Thomas ausgeführt)
├── checkpoint.ps1 # Tooling: PowerShell-Logik hinter checkpoint.cmd
├── .checkpoint-pending.txt # Temporäre Übergabedatei vom Agent an checkpoint.cmd
├── teilgebiete/ # Pro Teilgebiet eine Detail-Datei (NN-<name>.md)
└── artefakte/ # Pro Teilgebiet ein Unterordner mit fertigen Materialien
Session-Start: Lesereihenfolge
Lies zu Beginn jeder neuen Session in dieser Reihenfolge:
agent-prompt.md(diese Datei) – Prozessanweisungen und aktueller Standzentral-index.md– welche Teilgebiete existieren und deren Statusmarketing.md– Wissensbasis über das Unternehmenchangelog.md– letzte Einträge, um den Kontext der letzten Sessions zu verstehen- Die für die aktuelle Aufgabe relevante Teilgebiet-Datei (falls anwendbar)
Bestätige Thomas kurz, was du gelesen hast und welche Aufgabe laut "Aktueller Stand" ansteht, bevor du loslegst. Ermittle außerdem aus dem letzten Eintrag in changelog.md die neue Session-Nummer (z.B. nach S03 → S04) und verwende sie durchgängig in dieser Session.
Prozessregeln
R1 — Append-only Changelog. Neue Einträge in changelog.md werden ausschließlich über den Checkpoint-Workflow (siehe unten) angehängt. Bestehende Einträge werden niemals verändert oder gelöscht. Jeder Eintrag enthält Timestamp und Session-Nummer (S01, S02, …).
R2 — Status/Priorität/Abhängigkeiten nur mit OK. Änderungen an Status, Priorität oder Abhängigkeiten eines Teilgebiets im zentral-index.md sind ausschließlich nach explizitem OK von Thomas erlaubt. Du triffst diese Entscheidungen nie eigenständig. Du darfst Änderungen vorschlagen.
R3 — Session-Nummerierung. Beim Session-Start ermittelst du aus der letzten Zeile von changelog.md die nächste Session-Nummer und verwendest sie für alle Checkpoints dieser Session.
R4 — Fragen vor Taten. Bei Unklarheiten fragst du Thomas, bevor du Annahmen triffst. Inhaltliche Marketing-Entscheidungen (Zielgruppe, Kanäle, Positionierung etc.) werden immer mit Thomas abgestimmt.
R5 — Artefakte getrennt halten. Fertige Materialien (Texte, Pläne, Vorlagen) werden in artefakte/NN-<teilgebiet>/ abgelegt, nicht in der Teilgebiet-Datei selbst. Die Teilgebiet-Datei referenziert die Artefakte.
R6 — Dateinamen. Teilgebiet-Dateien folgen dem Schema NN-<kurzname>.md (z.B. 01-positionierung.md). Die Nummer NN entspricht dem Eintrag im Zentral-Index.
R7 — Kein direkter Git-Commit und kein direkter Changelog-Edit. Du editierst changelog.md nicht direkt und führst auch keinen git commit aus. Beides geschieht ausschließlich über den Checkpoint-Workflow.
Checkpoint-Workflow
Ein Checkpoint fasst einen abgeschlossenen Arbeitsschritt zusammen und besteht aus zwei gekoppelten Aktionen: einem Eintrag in changelog.md und einem Git-Commit. Checkpoints können mehrfach pro Session erfolgen – jedes Mal, wenn ein logischer Zwischenstand erreicht ist (z.B. ein Teilgebiet-Abschnitt fertig, ein Artefakt erstellt). Sie sollen aber auch immer am Session-Ende erfolgen, um den Stand zu sichern.
Ablauf:
- Der Agent hat inhaltliche Änderungen an
marketing.md,zentral-index.md, Teilgebiet-Dateien oder Artefakten vorgenommen. - Vor dem letzten Checkpoint einer Session zusätzlich: Aktualisiere den Abschnitt "Aktueller Stand / Nächste Aufgabe" am Ende dieser
agent-prompt.md-Datei, sodass die nächste Session nahtlos starten kann. - Der Agent schreibt die Datei
.checkpoint-pending.txtim Repo-Root mit exakt diesem Format:Zeile 1: Session-Nummer (z.B.S<NN> <kompakte Zusammenfassung in einer oder mehreren Zeilen>S02). Zeile 2 und folgende: Zusammenfassung. Mehrere Zeilen werden voncheckpoint.ps1zu einem Satz zusammengeführt (Leerzeichen getrennt). Keine Pipes (|) in der Zusammenfassung, sie kollidieren mit dem Changelog-Format. - Der Agent teilt Thomas mit: "Bitte
checkpoint.cmdausführen." - Thomas doppelklickt
checkpoint.cmd. Das Skript:- liest
.checkpoint-pending.txt - hängt die Zeile
YYYY-MM-DD HH:MM | S<NN> | <summary>anchangelog.mdan (Timestamp vom lokalen PC) - führt
git add -A && git commit -m "S<NN>: <summary>"aus - löscht
.checkpoint-pending.txt
- liest
- Thomas bestätigt im Chat, dass der Checkpoint gelaufen ist. Erst danach arbeitet der Agent weiter.
Fehlerfall: Scheitert checkpoint.cmd (z.B. git commit fehlgeschlagen), bleibt .checkpoint-pending.txt liegen. Thomas gibt das Problem an den Agenten zurück, der Diagnose und Korrektur vorschlägt.
Erste Aufgaben (nur beim allerersten Start relevant)
Falls marketing.md noch leere Platzhalter enthält und zentral-index.md noch keine Teilgebiete listet:
marketing.mdinteraktiv befüllen. Stelle Thomas gezielte Fragen zu: Unternehmensdaten, Angebot, Zielgruppe(n), aktueller Positionierung, gewünschter Tonalität, vorhandenen Marketing-Aktivitäten, Zielen. Arbeite Abschnitt für Abschnitt, nicht alles auf einmal.- Teilgebiete gemeinsam definieren. Schlage auf Basis von
marketing.mdeine Liste von Teilgebieten vor (z.B. Positionierung, Zielgruppenanalyse, Website, Content-Strategie, Social Media, Newsletter, SEO, Messen, …). Stimme Priorität und Abhängigkeiten mit Thomas ab und trage sie nach seiner Freigabe inzentral-index.mdein. - Erste Teilgebiet-Datei anlegen für das priorisierte Thema und Einstieg in die Bearbeitung.
Setze zwischen sinnvollen Zwischenständen Checkpoints (z.B. nach "Marketing.md Abschnitte 1-3 befüllt", nach "Teilgebiete-Liste festgelegt").
Aktueller Stand / Nächste Aufgabe
Letzte Session: S09 (2026-04-27)
Was wurde in S09 gemacht:
S09 — Iteration „Links" in cv.md: alle nackten URLs auf explizite Markdown-Link-Syntax migriert, damit Pandoc echte Hyperlink-Elemente in DOCX (<w:hyperlink>) und PDF (\href) emittiert. E-Mail als Pandoc-Autolink-Form <email>, Telefon als [+49 ...](tel:+49...)-Link, Web-Links als [[text]](url) mit sichtbaren äußeren eckigen Klammern. Display-Texte „Link zum Profil" für LinkedIn/Freelance.de, „destengs.de" für Website (.com → .de), „Dissertation" für Promotion, „Link zum Zertifikat (funktioniert nur im Browser)" für TÜV. TÜV-Link diagnostiziert: certif-id.com hinter Cloudflare-Bot-Schutz, Word-urlmon-Pre-Flight-Anfrage scheitert mit 403, Direkt-Klick aus Word funktioniert nicht trotz funktionierender URL im Browser. Optionen A (destengs.de-Redirect), B (LinkedIn-Safety-Redirect), C (kein Link) abgewogen, D gewählt: direkter Link mit erklärendem Display-Text. Detaillierte Doku siehe teilgebiete/01-lebenslauf.md Block „Iteration Links (S09)".
S09 — Iteration C: Foto-Einbindung via Grid Table.
- Header-Layout als 2-Spalten-Grid-Table in cv.md (Name+Kontaktdaten links, Foto rechts), Spalten-Verhältnis 65:35 (LEFT_W=112, RIGHT_W=60 Striche).
- Pandoc 3.x ist beim Pipe-Alignment in Grid Tables strikt (Pandoc 2.9 ist toleranter und damit irreführend für Sandbox-Tests). Grid Table programmatisch in Python aufbauen mit
ljust(LEFT_W)und Pipe-Position-Eindeutigkeitscheck. - DOCX-Header-Spacing per neuer 4. Modifikation in
build/post-process-docx.py(process_header_table): H1-spacing-before = 0, Foto-Paragraph-spacing-before = 5 pt + jc=right. - Foto-Größe 4,06 × 4,06 cm, beide Dimensionen explizit im Markdown — verhindert Pandoc-Default
keepaspectratio,height=\textheight, der die Image-Layout-Box auf 24 cm Höhe streckt und das Tabellen-Layout zerschießt. - PDF-Layout via Pandoc-Lua-Filter
build/header-image-wrap.lua: wrappt das Header-Foto im LaTeX-Output mit\hfill\raisebox{-\height}[0pt][0pt]{...}.\hfillschiebt rechtsbündig in der\raggedright-p-Spalte,\raiseboxsetzt Bild-Top auf Cell-Top und reportet null Höhe an die Tabellen-Zeile. Filter prüftFORMAT="latex"und Image-Pfad enthält „foto"; DOCX bleibt unberührt. - Lua-Filter-Erste-Version (Image durch RawInline ersetzt) hat Pandocs Image-Resource-Resolution gebrochen →
File 'foto.jpg' not found. Fix: Filter gibt Lua-Liste zurück, in der das Original-img-Element zwischen RawInline-Wrappern erhalten bleibt. - Template-Hotfixes für PDF:
\renewcommand{\nolinkurl}[1]{#1}(verhindert\@xverbatim-Bruch inlongtable-Minipage durch URL-Display-Text-Verbatim),\titlespacing*{\section}{0pt}{0pt}{0.5em}(H1-Top-Alignment). build/build.ps1:--lua-filter=$luaFilterzu PDF- und DOCX-Pandoc-Calls hinzugefügt;Read-Host-Wait-on-Error entfernt (blockiert AI-Agents/CI), durchStart-Sleep -Seconds 3am Ende bei Fehler ersetzt.
Vier weitere Edit-Tool-Truncation-Vorfälle in S09 (cv.md, template.tex zweimal, build.ps1). Lehre verschärft: Edit-Tool für jede nicht-triviale Modifikation auf NTFS-Mount-Dateien meiden, generell Python-aus-git-HEAD- oder Python-aus-Disk-Pattern bevorzugen.
Nächste Aufgabe (S10) in dieser Reihenfolge (von Thomas vorgegeben):
- DOCX: Blau ist nicht DesTEngS-Blau. Heading-Farben prüfen — Soll:
#0B5394.build/build-reference-docx.pyFunktionset_heading_colorssetzt zwar<w:color w:val="0B5394"/>, aber Word rendert ggf. trotzdem den Theme-Aptos-Blau, weil das Heading-Style einenthemeColor-Verweis behält oder weil das Theme dominiert. Prüfen, ob dasthemeColor-Attribut wirklich entfernt ist und ob die Farbe direkt am Run statt am Stil gesetzt werden muss. - Doublecheck der neu generierten Texte in cv.md. Mindestens „elektrischer Gehäuse" ist sinnverkehrt (vermutlich aus V9/V10-KI-Iterationen). cv.md komplett auf Sinn- und Sprachfehler durchgehen, vermutlich Konkordanz-/Stil-Fehler an mehreren Stellen.
- Buzzword-Kompetenzen-Brainstorm. Kenntnisse-Abschnitt erweitern. Mindestens „Umgang mit quantisierten LLMs" ergänzen. Weitere KI-Begriffe für Agentur-Keyword-Matching identifizieren (Quantization, GGUF, GPTQ, AWQ, Inference-Optimierung, vLLM, llama.cpp, Ollama-Deployment etc.).
- PDF: Abstände H1 / H2 „Kontaktdaten" / Kontaktdaten-Bullet-Liste stimmen nicht (Folge der C4c-Spacing-Änderung). Plus: hellgraue Trennlinien (rulegray =
#BFBFBF) sind inakzeptabel — Farbe oder Linienführung überdenken (Trennlinien stehen nach H1 und H2 im titlesec-Format-Block).
Hinweise für die nächste Session:
- Pandoc 3.x ist beim Grid-Table-Pipe-Alignment strikt (S09-Lehre). Grid Tables programmatisch bauen mit
ljust()-Padding und Pipe-Position-Verifikation, nicht von Hand. Sandbox-Pandoc 2.9 ist toleranter und kann beim Testen den Eindruck erwecken, dass etwas funktioniert, was bei Thomas (Pandoc 3.x) nicht funktioniert. - Pandoc 3.x emittiert in p-Spalten mit nur einem Image-Element keine
\begin{minipage}-Wrapper (S09-Lehre). Das Image landet direkt in derp{calc...}-Spalte und unterliegt der\parbox[t]-Baseline-Logik (Image-Bottom = Baseline = Cell-Top, Image ragt nach oben heraus). Lösung: Lua-Filter mit\raisebox{-\height}[0pt][0pt]{...}. - Pandoc emittiert für href mit URL-Display-Text
\nolinkurl{}(Verbatim-Mode, S09-Lehre). Inlongtable-Minipage bricht das mit! Paragraph ended before \@xverbatim was complete.ab. Fix mit\renewcommand{\nolinkurl}[1]{#1}ist drin. - Pandoc-3.x-
keepaspectratio,height=\textheight-Default ist tückisch (S09-Lehre). Layout-Box wird auf textheight gestreckt selbst wenn das Bild visuell klein ist — beide Dimensionen explizit setzen, wenn das Bild in einer Tabelle ist. - Lua-Filter müssen das
img-Element im AST belassen, sonst kein Resource-Path-Resolution (S09-Lehre). Lua-Liste-Return mit{RawInline, img, RawInline}statt einzelnes RawInline mit gebackenem Pfad. - Edit-Tool-Truncation auf NTFS-Mount-Dateien ist nach S07/S08/S09 ein systematisches Problem — durchgehend Python-aus-git-HEAD- oder Python-aus-Disk-Pattern verwenden (atomar via
os.replace). Sandbox kann zudem stale-reads liefern (z.B. DOCX als „not a zip file"), bei Verdacht git-Version verifizieren oder Build neu erzeugen. build.ps1ist jetzt nicht-blockierend (S09-Lehre). AI-Agents und CI-Systeme können das Skript aufrufen ohne Read-Host-Hänger. Bei Fehler 3 s Pause am Ende plus 3 s pro fehlgeschlagenem Schritt.- Sandbox-Index-Lock-Issue: Sandbox kann nichts an
.git/schreiben (NTFS-Permission-Issue), Index-Lock-Reste muss Thomas auf PowerShell beseitigen. Bei dauerhaftem Lock-File-Vorhandensein zeigtgit statuseine Warning, aber lesende git-Operations (show, log) funktionieren weiter. - DOCX-Pipeline ist 3-stufig mit vier Post-Processing-Modifikationen: (1)
build/build-reference-docx.pybaut diereference.docx(manuell aufrufen), (2)build/build.ps1baut PDF und DOCX, (3)build/post-process-docx.pymacht: 3-3-Listen-Bullet-Regel, H2-Trennlinien, Bullet-Einzüge innumbering.xml, Header-Tabellen-H1-Spacing-und-Foto-Spacing. - Kein Hyphenation-Feintuning (Iteration D) in S09. Steht in S10-Liste hinter den vier Korrektur-Punkten.
Offene Punkte (unverändert seit S04): Zuschnitt und Festpreise der KI-Produkte (marketing.md Abschnitt 2), KMU-Direkthonorarsatz festlegen (marketing.md Abschnitt 2), Vergütungsmodell-Wahl bei erstem konkreten Fall (Notiz in marketing.md Abschnitt 2).