CommunitySchreiben & Editierengithub.com

atokim4/freeproposal-check

Erstelle oder prüfe ein freiberufliches Angebot, ein Gebot oder eine erste Antwort an einen Kunden auf jeder Plattform (Upwork, Fiverr, Freelancer.com, PeoplePerHour, Contra, Guru), damit es menschlich klingt, den Kontakt auf der Plattform hält und nur Behauptungen aufstellt, die der Freiberufler belegen kann.

Was ist freeproposal-check?

Dieses Skill hilft dabei, Angebote und Vorschläge für freiberufliche Marktplätze zu schreiben oder zu prüfen, sodass sie persönlich und vertrauenswürdig wirken, anstatt wie von einer KI generiert. Es enthält einen Node-basierten Linter (`scripts/lint-cover.mjs`), der automatisch KI-typische Phrasen, Em-Dashes, Platzhalter, E-Mail-Adressen, Telefonnummern, die Wortanzahl, die abschließende Frage und Behauptungen, die nicht in der Fakten-Datei des Nutzers stehen, erkennt und beanstandet. Das Skill unterstützt verschiedene Plattformen wie Upwork, Fiverr, Freelancer.com, PeoplePerHour, Contra und Guru und passt die Formatierung der Angebote an die jeweilige Plattform an. Es nutzt eine `facts.md`- oder `.cover-lint.json`-Datei, um sicherzustellen, dass alle Behauptungen durch echte Projekte, Fähigkeiten oder Referenzen des Nutzers belegt sind. Für Claude Code wird der Linter mit dem vollständigen Pfad `node ${CLAUDE_SKILL_DIR}/scripts/lint-cover.mjs` aufgerufen; für andere Agenten wird der entsprechende Skill-Ordner verwendet, z. B. `node .claude/skills/freelance-proposal-lint/scripts/lint-cover.mjs`. Nach der Korrektur aller Fehler und Warnungen wird das Angebot dem Nutzer zur manuellen Übermittlung übergeben – das Skill sendet nie etwas im Namen des Nutzers ab.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/atokim4/cover-letter-lint/tree/HEAD/skills/freelance-proposal-lint

Installed? Explore more Schreiben & Editieren skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Freelance-Angebots-Prüfung (Proposal Lint)

Ziel: Ein kurzes Angebot, das der Kunde bis zum Ende liest und beantwortet – egal auf welchem Marktplatz die Stelle ausgeschrieben ist – und bei dem jede Behauptung durch die persönliche Fakten-Datei des Nutzers gestützt wird.

Der Linter ist scripts/lint-cover.mjs im Ordner dieses Skills (Node 20+, keine Abhängigkeiten, kein Netzwerkzugriff). Es ist dieselbe Datei wie im cover-letter-lint-Skill dieses Repos, wird aber hier mitgeliefert, damit das Skill eigenständig installierbar ist. Rufe es mit seinem vollständigen Pfad auf: node ${CLAUDE_SKILL_DIR}/scripts/lint-cover.mjs in Claude Code, oder mit dem entsprechenden Skill-Ordner in anderen Agenten, z. B. node .claude/skills/freelance-proposal-lint/scripts/lint-cover.mjs.

1. Zuerst die Fakten

Suche nach facts.md, me/facts.md oder einer .cover-lint.json mit einem "facts"-Pfad. Behauptungen dürfen nur von dort stammen. Nichts gefunden: Biete an, gemeinsam mit dem Nutzer templates/facts.md aus dem Skill-Ordner auszufüllen (Fähigkeiten, Rollen, Erfolge genau wie im Profil, Beleg-Links, nie zu verwendende Phrasen). Erfinde nichts davon. Lehnt der Nutzer ab, führe den Linter ohne --facts aus und teile ihm mit, dass Behauptungen nicht geprüft wurden.

2. Format an die Plattform anpassen

Frage nach dem Marktplatz, falls der Nutzer ihn nicht genannt hat. Dann:

  • Upwork: Ein Anschreiben mit 50-90 Wörtern plus etwaige Screening-Fragen. Beantworte jede Screening-Frage direkt in der gestellten Reihenfolge.
  • Freelancer.com, PeoplePerHour, Guru: Angebote werden nebeneinander mit Preis und Lieferzeit verglichen. Setze den konkreten Ansatz in die erste Zeile und stelle sicher, dass die Preise und Tage im Text mit den Zahlen übereinstimmen, die der Nutzer im Angebotsformular einträgt.
  • Fiverr Brief oder kundenspezifisches Angebot: Der Käufer hat eine Kategorie gewählt. Beginne daher mit dem genauen von ihm gewünschten Liefergegenstand, dann dem Angebotsinhalt und der Anzahl der Überarbeitungen.
  • Contra oder eine direkte Anfrage: Behandle es als erste Nachricht; prüfe mit --mode message.

Spiegle den Kunden wider: Drei lockere Zeilen bekommen drei lockere Zeilen zurück, eine andere Sprache erhält dieselbe Sprache.

3. Schreiben

Klare Sätze, keine Aufzählungen oder Überschriften:

  1. Eine Begrüßung im Stil des Kunden, dann ein konkretes Detail AUS DESSEN BEITRAG und was es wahrscheinlich verursacht oder wie du es angehen würdest. Wiederhole den Beitrag nicht.
  2. Ein Belegsatz aus der Fakten-Datei, der wirklich passt. Ein persönliches Projekt wird als persönliches Projekt bezeichnet. Keine ehrliche Übereinstimmung: Lass den Beleg weg.
  3. Der Plan in ein oder zwei Sätzen, mit Stunden und einem Preis, falls der Nutzer einen Stundensatz genannt hat.
  4. Eine Frage – diejenige, deren Antwort den Umfang oder den Preis ändert.
  5. Der Vorname des Nutzers in einer eigenen Zeile.

4. Prüfen und korrigieren

node ${CLAUDE_SKILL_DIR}/scripts/lint-cover.mjs --facts facts.md --job job.md bid.md

- liest von der Standardeingabe, --mode message entfernt den Wortbereich für Antworten, --json liefert maschinenlesbare Ausgabe. Behebe jeden Fehler und führe den Linter erneut aus, bis er mit Exit-Code 0 beendet wird. Behebe auch Warnungen, es sei denn, es gibt einen Grund dagegen – und nenne den Grund.

Was ein Angebot scheitern lässt (Fehler): Vorlagenphrasen ("Ich hoffe, diese Nachricht erreicht Sie gut", "nahtlos", "Ich freue mich sehr"), "nicht nur X, sondern Y"-Gegensätze, Em-Dashes, Platzhalter wie [Ihr Name], E-Mails, Telefonnummern oder "schreiben Sie mir auf WhatsApp" (die meisten Marktplätze verbieten es, den Kontakt vor Vertragsabschluss von der Plattform zu verlagern), Links sowie "N Jahre", die die Fakten-Datei nicht belegt, Phrasen unter "Niemals sagen" und mehr als 90 Wörter im Anschreiben-Modus. Warnungen betreffen Technologienamen, die weder in den Fakten noch im Beitrag vorkommen, eine fehlende oder zweite Frage, Aufzählungen, "Sehr geehrte Damen und Herren", "!!", Emojis und sehr lange Sätze. Projektspezifische Anpassungen erfolgen in .cover-lint.json: {"facts": "facts.md", "maxWords": 90, "minWords": 50, "extraPhrases": [], "allowPhrases": [], "disable": []}.

Ändere niemals die Fakten-Datei, um eine Behauptung durchgehen zu lassen, ohne dass der Nutzer bestätigt, dass sie wahr ist.

5. Übergeben

Zeige das Angebot, den darin genannten Preis und die Lieferzeit sowie die letzte Zeile des Linter-Ergebnisses. Lies es dann selbst noch einmal gegen die Fakten-Datei: Der Linter prüft Links, Jahre und Technologienamen, nicht jeden Satz. Der Nutzer sendet es ab; sende niemals etwas in seinem Namen.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Verwandte Skills