Cover Letter Lint
Ziel: Ein Anschreiben von 50–90 Wörtern, das ein vielbeschäftigter Kunde bis zum Ende liest und beantwortet, wobei jede Behauptung durch die eigene Fakten-Datei des Nutzers gestützt wird.
Der Linter ist scripts/lint-cover.mjs in diesem Fähigkeiten-Ordner (Node 20+, keine Abhängigkeiten). Rufen Sie ihn mit dem vollständigen Pfad auf: node ${CLAUDE_SKILL_DIR}/scripts/lint-cover.mjs in Claude Code (auch für eine Plugin-Installation). Andere Agenten füllen diese Variable nicht, also verwenden Sie den Ordner, z. B. node .claude/skills/cover-letter-lint/scripts/lint-cover.mjs für eine Projektinstallation oder node ~/.claude/skills/cover-letter-lint/scripts/lint-cover.mjs für eine globale.
1. Die Fakten-Datei finden
Suchen Sie nach facts.md, me/facts.md oder einer .cover-lint.json mit einem "facts"-Pfad im aktuellen Projekt.
- Gefunden: Lesen Sie sie. Behauptungen kommen nur von dort.
- Nicht gefunden: Bieten Sie an,
facts.mdaustemplates/facts.mdin diesem Fähigkeiten-Ordner zu erstellen, und füllen Sie sie mit dem Nutzer aus (Fähigkeiten, Rollen, Erfolgsbilanz, Beleglinks, Dinge, die nie gesagt werden sollen). Erfinden Sie nichts davon. Wenn der Nutzer ablehnt, linten Sie ohne--factsund teilen Sie mit, dass Behauptungen nicht geprüft wurden.
2. Schreiben (überspringen, wenn der Nutzer einen eigenen Entwurf mitgebracht hat)
Speichern Sie den Auftragspost in einer Datei, wenn der Nutzer einen eingefügt hat (z. B. job.md). Schreiben Sie dann als einfache Sätze ohne Aufzählungspunkte oder Überschriften:
- Eine Begrüßung im Stil des Kunden, dann ein konkretes Detail SEINES Beitrags (der Fehler, der Stack, die Frist) und was es wahrscheinlich verursacht oder wie Sie es angehen würden. Wiederholen Sie niemals den Beitrag.
- Eine Belegzeile aus der Fakten-Datei, die wirklich passt (ein ähnlicher Auftrag, eine Rolle, ein Demolink). Ein persönliches Projekt wird als persönliches Projekt bezeichnet. Kein ehrlicher Treffer: Lassen Sie den Beleg weg.
- Den Plan in ein oder zwei Sätzen, mit Stunden und einem Preis, wenn der Nutzer Ihnen Tarife genannt hat.
- Eine Frage, diejenige, deren Antwort den Umfang oder den Preis ändert.
- Den Vornamen des Nutzers in einer eigenen Zeile.
Spiegeln Sie den Beitrag wider: Drei lockere Zeilen bekommen drei lockere Zeilen zurück, eine andere Sprache bekommt diese Sprache.
3. Linten und korrigieren
node ${CLAUDE_SKILL_DIR}/scripts/lint-cover.mjs --facts facts.md --job job.md proposal.md
(- liest von stdin; --mode message für Kundenantworten, die keinen Wortbereich haben; --json für Maschinenausgabe.)
Korrigieren Sie jeden Fehler und führen Sie es erneut aus, bis es mit Exit-Code 0 beendet wird. Warnungen: Beheben Sie sie, es sei denn, es gibt einen Grund, und nennen Sie den Grund. Bei unlisted-skill entfernen Sie entweder die Behauptung oder fragen Sie den Nutzer, ob die Fähigkeit zur Fakten-Datei hinzugefügt werden soll. Bearbeiten Sie niemals die Fakten-Datei, um eine Behauptung bestehen zu lassen, ohne dass der Nutzer sagt, dass sie wahr ist.
| Regel | Stufe | Was sie erfasst |
|---|---|---|
| ai-phrase | Fehler | ~75 Vorlagenphrasen: "Ich hoffe, es geht Ihnen gut", "nahtlos", "Ich freue mich darauf", "Der Schlüssel ist"… |
| not-x-but-y | Fehler | Kontraste im Stil "Das ist nicht nur X, sondern Y" |
| dash | Fehler | Gedankenstriche und Bindestriche, die als solche verwendet werden |
| placeholder | Fehler | [Ihr Name], {{name}}, <client>, TODO, lorem ipsum |
| off-platform | Fehler | E-Mails, Telefonnummern, "Schreiben Sie mir auf WhatsApp", Zahlungen außerhalb des Marktplatzes |
| unbacked-claim | Fehler | Links und "N Jahre", die nicht in der Fakten-Datei stehen |
| never-say | Fehler | Sätze, die unter "Nie sagen" in der Fakten-Datei aufgeführt sind |
| word-count | Fehler / Warnung | über 90 Wörter (Fehler), unter 50 (Warnung) im Anschreiben-Modus |
| unlisted-skill | Warnung | Ein Framework oder Dienst, den der Brief nennt, der weder in der Fakten-Datei noch im Auftragspost steht |
| question | Warnung | Keine Frage oder mehr als eine |
| list, greeting, exclamation, emoji, long-sentence, i-start | Warnung | Listen, "Sehr geehrter Herr", "!!", Emoji, Sätze mit 35+ Wörtern, zu viele Sätze, die mit "Ich" beginnen |
Projektbezogene Anpassungen erfolgen in .cover-lint.json (alle Schlüssel optional):
{"facts": "facts.md", "maxWords": 90, "minWords": 50, "extraPhrases": [], "allowPhrases": [], "disable": []}.
4. Übergeben
Zeigen Sie den Brief und die letzte Zeile des Linters. Nennen Sie den Preis und die Frage, die Sie gewählt haben, damit der Nutzer sie ändern kann. Lesen Sie ihn dann selbst noch einmal gegen die Fakten-Datei: Der Linter prüft Links, Jahre und Technologienamen, nicht jeden Satz. Der Nutzer sendet ihn ab; reichen Sie niemals etwas für ihn ein.