Lektion • 22. Oktober 2025
Prompt Rewriting - Single Tags
Lektion • 22. Oktober 2025
Prompt Rewriting - Single Tags

TLDR Dein Prompt hat einen Tag (z.B. `:risk`). Hook erkennt ihn, lädt die relevanten Guidelines, rewrites deinen Prompt mit perfektem Context. Claude antwortet wie ein Expert in diesem Bereich.
Das Kontext-Problem
Szenario: Du fragst Claude nach einem Payment-System.
Jedes Mal musst du wieder erklären:
- "Bedenke Compliance!"
- "Was ist mit Fraud Detection?"
- "Sicherheit zuerst!"
Das ist mental exhausting.
Mit Tags: Du schreibst :compliance und fertig. Hook macht den Rest.
Phase 1: Wie Single-Tag Rewriting funktioniert
Einfach wie es klingt:
- User tippt:
Sichere Payment-API :compliance - Hook findet Tag:
compliance - Hook lädt Compliance-Guidelines
- Hook rewrites Prompt
- Claude kriegt:
Sichere Payment-API. Bedenke: [Full Compliance Context]
Claude antwortet mit Compliance-Expertise. Automatisch.
Phase 2: Tag-System definieren
Welche Tags brauchst du?
.claude/tags.json:
{ "compliance": { "label": "Regulatory Compliance", "context": "./docs/compliance-rules.md" }, "security": { "label": "Security Best Practices", "context": "./docs/security-guidelines.md" }, "api": { "label": "API Design Patterns", "context": "./docs/api-patterns.md" } }
Einfach. Klar. Wartbar.
Phase 3: Das Rewriting-Hook-Script
.claude/hooks/prompt-rewriter.ts:
import { readFileSync } from "fs";
const tags = JSON.parse( readFileSync(".claude/tags.json", "utf-8") );
function findTag(prompt: string): string | null { const match = prompt.match(/:(\w+)/); return match ? match[1] : null; }
function getContext(tag: string): string { if (!tags[tag]) return ""; const contextFile = tags[tag].context; return readFileSync(contextFile, "utf-8"); }
function rewritePrompt(input: any): any { const tag = findTag(input.prompt); ` if (!tag) { return input; // Kein Tag, nichts zu rewriten } const cleanPrompt = input.prompt.replace(/:(\w+)/, "").trim(); const context = getContext(tag); const enhanced = cleanPrompt + "\n\nContext:\n" + context; return { ...input, prompt: enhanced, applied_tag: tag }; }
export default rewritePrompt;
Was macht das?
- Findet einen Tag
- Lädt die Context-Datei
- Hängt sie an den Prompt
- Claude kriegt alles zusammen
Phase 4: Context-Files erstellen
Jedes Tag braucht eine Guideline-Datei.
./docs/compliance-rules.md:
# Compliance Guidelines
## KYC Requirements - Verify customer identity - Document source of funds - Regular risk reassessment
## AML/CFT - Monitor for suspicious patterns - Report threshold breaches - Keep audit trails
## Data Protection - GDPR compliant processing - Minimal data retention - Encryption at rest and in transit
Phase 5: Registrieren und Testen
Im Terminal:
claude
Dann:
/add-hook prompt-rewriter
- Event:
pre-prompt-submit - Script:
.claude/hooks/prompt-rewriter.ts
Jetzt schreib:
Design a user onboarding flow :compliance
Was passiert:
- Hook interceptet
- Findet Tag:
compliance - Lädt Compliance-Guidelines
- Rewrites Prompt mit Context
- Claude antwortet mit Compliance-Fokus
Du brauchst das alles nicht zu erklären. Der Hook macht's.
Phase 6: Was wenn kein Tag?
Prompt ohne Tag? Hook macht nix:
Design a user onboarding flow
Hook: "Kein Tag gefunden. Weitergabe an Claude wie üblich."
Claude antwortet normal. Kein Problem.
Phase 7: Logging der Rewrites
.claude/hooks/prompt-rewriter-with-log.ts:
import { appendFileSync } from "fs";
function logRewrite(original: string, tag: string, rewritten: string) { const entry = { timestamp: new Date().toISOString(), original_prompt: original, detected_tag: tag, rewritten_length: rewritten.length }; appendFileSync( ".claude/rewrite-log.jsonl", JSON.stringify(entry) + "\n" ); }
Jetzt kannst du debuggen:
tail .claude/rewrite-log.jsonl
Und sehen, was passiert ist.
Phase 8: Error Handling
Was wenn die Context-Datei nicht existiert?
function getContext(tag: string): string { try { if (!tags[tag]) { console.log("Tag not found:", tag); return ""; } const contextFile = tags[tag].context; return readFileSync(contextFile, "utf-8"); } catch (error) { console.error("Failed to load context:", error.message); return ""; } }
Jetzt:
- Tag existiert nicht? → Kein Context, weitermachen
- Datei nicht gefunden? → Log Error, weitermachen
Keine Crashes. Nur robustes Design.
Phase 9: Real-World Beispiel
Dein System hat diese Context-Dateien:
docs/api-patterns.md→ API Designdocs/security-guidelines.md→ Securitydocs/performance-tips.md→ Performance
Tags:
:api→ Lädtapi-patterns.md:security→ Lädtsecurity-guidelines.md:perf→ Lädtperformance-tips.md
Jetzt kannst du:
Build a caching layer :perf
Claude kriegt automatisch Performance-Tipps.
Implement user authentication :security
Claude kriegt Security-Guidelines.
Nie wieder "vergessen" einem Prompt Context zu geben.
Phase 10: Best Practices
1. Ein Tag pro Prompt
Single-Tag ist simpel und fokussiert.
Design an API :api ✅
Design an API :api :security :compliance → Nächste Lektion
2. Halte Context kurz
Nicht 100 Zeilen. 10-20 Zeilen mit Kernpunkten.
3. Teste den Hook
Schreib einen Prompt mit Tag. Prüfe, ob Claude die Context nutzt.
4. Versioniere Tags
Tags-Definitionen sollten ins Repo:
git add .claude/tags.json docs/
Dein Action Plan für heute
- ✅ Erstelle
.claude/tags.jsonmit 1 Tag - ✅ Erstelle eine Context-Datei dafür
- ✅ Schreib den Rewriter-Hook
- ✅ Registriere den Hook
- ✅ Teste:
Your prompt :yourtag - ✅ Beobachte, wie Claude antwortet
Wenn Claude automatisch die Context hat, funktioniert's.
Die größte Erkenntnis
Single-Tag Rewriting ist der Einstieg in Kontext-Ingenieurwesen.
Statt jedes Mal Context zu erklären, schreibst du ihn einmal in eine Guideline.
Der Hook macht den Rest für immer.
Das ist nicht Automation. Das ist Leverage.
Nächste Woche: Mehrere Tags kombinieren – Wenn :compliance :api :security zusammenkommen.
Habt einen tollen Tag. Ciao.
Lektionsdetails
- Veröffentlicht
- 22. Oktober 2025
- Lesezeit
- ca. 5 Min.