CommunityRédaction et éditiongithub.com

Refus de propositions freelance

Rédigez ou vérifiez une proposition freelance, une enchère ou une première réponse client sur n'importe quelle plateforme (Upwork, Fiverr briefs et offres personnalisées, Freelancer.com, PeoplePerHour, Contra, Guru) pour qu'elle sonne humain, reste sur la plateforme et ne revendique que ce que le freelance peut justifier. Exécute un linter Node pour les phrases IA, les tirets cadratins, les espaces réservés, les e-mails et numéros de téléphone, le nombre de mots, la question de clôture et les affirmations absentes du fichier de faits de l'utilisateur. À utiliser lorsque l'utilisateur demande une enchère ou une proposition, demande de la raccourcir ou de la vérifier, ou demande « cela sonne-t-il comme de l'IA ».

Qu'est-ce que Refus de propositions freelance ?

Cette compétence est conçue pour les freelances et les pigistes qui postulent à des missions sur des plateformes comme Upwork, Fiverr, Freelancer.com, PeoplePerHour, Contra ou Guru. Elle aide à rédiger ou à vérifier des propositions personnalisées et concises qui ne ressemblent pas à du contenu généré par une IA, respectent les règles de la plateforme (en gardant la conversation interne, sans liens ni coordonnées) et ne prétendent que ce qui est vérifiable dans un fichier de faits personnel. Son utilité centrale est d'éviter les rejets liés à des propositions trop génériques ou suspectes, et de garantir que chaque affirmation est étayée par l'expérience réelle du freelance. La compétence s'appuie sur un linter Node.js (scripts/lint-cover.mjs) qui vérifie automatiquement la présence de phrases toutes faites, d'espaces réservés (comme `[Votre Nom]`), de liens de contact, de numéros de téléphone, d'e-mails, et d'un nombre de mots trop élevé. L'utilisateur fournit un fichier de faits (`facts.md`) contenant ses compétences, réalisations et projets, ainsi que la description de l'offre client (`job.md`). Le résultat est une proposition au format texte brut, structurée en phrases simples (pas de listes ni de titres), qui inclut une accroche personnalisée, une preuve concrète, un plan d'action, une question pertinente et le prénom du freelance. Le linter peut fonctionner en mode `--facts` pour vérifier les affirmations ou en mode `--message` pour un premier message (sans gamme de mots). Il est compatible avec Claude Code, Cursor, et autres agents disposant d'un dossier de compétences, et s'installe via un répertoire dédié (par exemple `.claude/skills/freelance-proposal-lint`).

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

Installed? Explore more Rédaction et édition skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Lint de proposition freelance

Objectif : une enchère courte que le client lit jusqu'au bout et à laquelle il répond, sur n'importe quelle plateforme où le travail est posté, avec chaque affirmation étayée par le propre fichier de faits de l'utilisateur.

Le linter se trouve dans scripts/lint-cover.mjs dans le dossier de cette compétence (Node 20+, aucune dépendance, aucun réseau). C'est le même fichier que dans la compétence cover-letter-lint de ce dépôt, livré ici pour que cette compétence s'installe de manière autonome. Appelez-le avec son chemin complet, node ${CLAUDE_SKILL_DIR}/scripts/lint-cover.mjs dans Claude Code, ou le dossier de la compétence dans d'autres agents, par exemple node .claude/skills/freelance-proposal-lint/scripts/lint-cover.mjs.

1. Faits d'abord

Cherchez facts.md, me/facts.md ou un fichier .cover-lint.json avec un chemin "facts". Les affirmations viennent uniquement de là. S'il n'y en a pas : proposez de remplir templates/facts.md depuis le dossier de cette compétence avec l'utilisateur (compétences, rôles, parcours exactement comme son profil les montre, liens de preuve, phrases à ne jamais utiliser). N'inventez rien. Si l'utilisateur refuse, effectuez le lint sans --facts et dites-lui que les affirmations n'ont pas été vérifiées.

2. Adaptez le format au site

Demandez quelle plateforme si l'utilisateur ne l'a pas dit. Ensuite :

  • Upwork : une lettre de motivation de 50 à 90 mots plus les questions de filtrage. Répondez à chaque question de filtrage directement, dans l'ordre où elles sont posées.
  • Freelancer.com, PeoplePerHour, Guru : les enchères sont comparées côte à côte avec un prix et un délai de livraison. Mettez l'approche concrète dans la première ligne, et assurez-vous que le prix et les jours dans le texte correspondent aux chiffres que l'utilisateur saisit dans le formulaire d'enchère.
  • Fiverr brief ou offre personnalisée : l'acheteur a choisi une catégorie, donc commencez par son livrable exact, puis ce que l'offre inclut et combien de révisions.
  • Contra ou une demande directe : traitez-la comme un premier message ; effectuez le lint avec --mode message.

Miroir du client : trois lignes décontractées obtiennent trois lignes décontractées en retour, une autre langue obtient cette langue.

3. Écrivez

Phrases simples, pas de puces ni de titres :

  1. Une salutation dans le style du client, puis un détail concret de SON annonce et ce qui en est probablement la cause ou comment vous l'aborderiez. Ne reformulez jamais l'annonce.
  2. Une ligne de preuve issue du fichier de faits qui correspond vraiment. Un projet personnel est appelé un projet personnel. Pas de correspondance honnête : laissez la preuve de côté.
  3. Le plan en une ou deux phrases, avec les heures et un prix si l'utilisateur a donné un tarif.
  4. Une question, celle dont la réponse modifie le périmètre ou le prix.
  5. Le prénom de l'utilisateur sur sa propre ligne.

4. Lint et correction

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

- lit depuis stdin, --mode message supprime la plage de mots pour les réponses, --json donne une sortie machine. Corrigez chaque erreur et relancez jusqu'à ce qu'il se termine avec le code 0. Corrigez aussi les avertissements, sauf s'il y a une raison, et dites la raison.

Ce qui fait échouer une enchère (erreurs) : phrases modèles ("I hope this finds you well", "seamless", "I'm excited to"), contrastes "not just X, but Y", tirets cadratins, espaces réservés comme [Your Name], e-mails, numéros de téléphone ou "message me on WhatsApp" (la plupart des plateformes interdisent de déplacer le contact hors du site avant un contrat), liens et "N years" que le fichier de faits ne soutient pas, phrases sous "Never say", et plus de 90 mots en mode couverture. Les avertissements couvrent les noms techniques qui ne sont ni dans les faits ni dans l'annonce, une question manquante ou une deuxième question, les listes, "Dear Sir", "!!", les emoji et les phrases très longues. Les ajustements par projet se font dans .cover-lint.json : {"facts": "facts.md", "maxWords": 90, "minWords": 50, "extraPhrases": [], "allowPhrases": [], "disable": []}.

Ne modifiez jamais le fichier de faits pour faire passer une affirmation sans que l'utilisateur ne dise qu'elle est vraie.

5. Remettez-le

Montrez l'enchère, le prix et le délai de livraison qu'elle indique, et la dernière ligne du linter. Ensuite, relisez-la une fois de plus par rapport au fichier de faits vous-même : le linter vérifie les liens, les années et les noms techniques, pas chaque phrase. L'utilisateur l'envoie ; ne soumettez jamais rien à sa place.

Individual skills in this repo

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

Skills associés