Project Quote

Transforme un périmètre de projet en un devis et un énoncé des travaux (SOW) professionnels sous forme de PDF, avec calcul automatique des totaux. Inclut également une carte tarifaire.

Qu'est-ce que Project Quote ?

Project Quote est un skill pour agents IA (comme Claude Code) qui convertit une description informelle du travail demandé par un client en un devis détaillé et un énoncé des travaux (SOW) au format PDF. Le skill structure le projet en phases, livrables, heures/prix, contingences, échéancier de paiement, hypothèses et éléments exclus, avec une signature. Tous les calculs sont délégués à un script Python (quote_calc.py) qui garantit l'exactitude arithmétique et échoue si les totaux ne concordent pas. Il supporte également la génération d'une carte tarifaire sur une page. L'utilisateur peut l'invoquer par `/project-quote <client>: <description>` ou demander une carte tarifaire. Le skill respecte des règles strictes : ne jamais inventer les taux horaires, ne pas inclure de marque tiers, rendre le périmètre explicite dans les deux sens (inclus et non inclus). Il produit un fichier JSON (quote.json) pour révision ultérieure et un PDF nommé Studio-Quote-Client-Project-YYYY-MM-DD.pdf. Il est particulièrement adapté aux projets créatifs ou freelances où la transparence des coûts et la précision des calculs sont essentielles.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/BeautifulEngine/project-quote/tree/HEAD/project-quote

Installed? Explore more Productivité et collaboration skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · 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

Que fait Project Quote ?

Transformez « ce que veut le client » en un devis que le client peut signer : ce que vous allez réaliser, en quelles phases, combien ça coûte et pourquoi, quand ça sera payé, ce qui est supposé et ce qui n'est pas inclus. Les chiffres proviennent d'un script de calcul, jamais de calcul mental. Il génère également une carte tarifaire sur une page.

Utilisation

/project-quote <client>: <ce qu'il veut> [budget] [échéance]
/project-quote carte tarifaire

Les demandes simples fonctionnent aussi :

  • « Devis pour une identité de marque pour un torréfacteur : logo, palette, packaging pour 3 références, réalisé en 6 semaines. »
  • « Estimation pour la conception et la gestion de fabrication d'un stand de salon 20×20 pour Acme, budget environ 60 000 $. »
  • « Fais ma carte tarifaire : Directeur de création 175 $/h, Designer 120 $/h, tarif journalier 1 300 $. »
  • « Transforme cet e-mail client (en pièce jointe) en un énoncé des travaux (SOW). »
  • « Même devis, mais en honoraires fixes par phase au lieu d'heures. »

Ce qu'il faut demander, une fois

Les informations personnelles rendent le devis unique. Cherchez d'abord dans la conversation, la mémoire et les fichiers joints, puis demandez en un seul message court ce qui manque :

  • Tarifs : rôles et taux horaires ou journaliers (ou un devis ou une carte tarifaire précédent(e) à copier).
  • Coordonnées du studio pour l'en-tête : nom de l'entreprise, contact, couleurs ou fichier logo joint. Leur propre logo peut figurer sur leur propre devis. Sans cela, utilisez une marque typographique sobre.
  • Conditions de paiement qu'ils utilisent (part de l'acompte, jours nets), s'ils ont un standard.

S'ils disent « fais-le simplement », avancez avec des valeurs par défaut clairement indiquées : 50 % à la signature et 50 % à la livraison, net 15, deux séries de révisions par livrable, 10 % de contingence, valable 30 jours. Listez les valeurs par défaut dans la réponse.

Fichiers. <skill-dir> désigne le dossier de ce skill, celui qui contient ce SKILL.md. Les modèles sont dans assets/, les scripts dans scripts/, et les étapes partagées pour le PDF (polices, couleurs, rendu, vérification) sont dans references/rendering.md.

Règles strictes

  • Tous les calculs passent par scripts/quote_calc.py. Écrivez quote.json, exécutez le script, collez ses tableaux. Pour modifier un nombre, éditez le JSON et réexécutez. Ne tapez jamais un total à la main.
  • Les heures ont des raisons. Chaque phase liste les livrables, et chaque poste est une tâche qu'un client reconnaîtrait. Si vous estimez des heures, basez-les sur le périmètre, expliquez ce qui motive les gros postes, et gardez-les réalistes par rapport à l'ancienneté de la personne.
  • N'inventez jamais les tarifs de la personne. S'ils demandent « combien devrais-je facturer ? », recherchez les fourchettes de marché actuelles pour leur rôle et leur région (enquêtes de design, plateformes freelance, offres d'emploi), citez-les, étiquetez-les Estimation, et laissez-les choisir.
  • Le périmètre est explicite dans les deux sens. Chaque devis comporte des livrables « Inclus » et des éléments « Non inclus » (stock, impression, achats médias, révisions supplémentaires, déplacements, frais de licence pour polices ou musique), ainsi que la manière dont les modifications sont gérées.
  • Pas de conseil juridique. Les conditions sont un point de départ raisonnable. Recommandez un avocat pour les contrats importants ou inhabituels, et ne prétendez jamais que les conditions sont exécutoires.
  • Aucun crédit Beautiful Engine ou autre marque tierce : le devis appartient à la personne.

Flux de travail

  1. Comprendre le travail. Client, projet, livrables, quantités, calendrier, contraintes, indication budgétaire. Si la personne a joint un brief ou un e-mail, extrayez-en chaque livrable.
  2. Planifier les phases (généralement Découverte, Concept, Design ou Développement, Production, Livraison) avec des livrables et des points de validation.
  3. Estimer chaque phase sous forme de tâches avec rôles et heures, plus les coûts directs (impression, fabrication, déplacements, licences) en tant qu'éléments fixes. Décidez d'une vue horaire ou d'honoraires fixes par phase ("show_hours": false) en fonction de la préférence de la personne ; par défaut, des honoraires fixes par phase pour les clients, les heures restant dans le JSON.
  4. Calculer : python3 <skill-dir>/scripts/quote_calc.py quote.json > tables.html. Cela imprime le total sur stderr et échoue si un rôle n'a pas de taux ou si l'échéancier de paiement ne totalise pas 100 %. S'il y a une indication budgétaire et que le total la manque, proposez des options (réduire le périmètre, échelonner le travail, ou un niveau plus léger) au lieu de réduire les heures en silence.
  5. Rédiger le devis à partir de assets/quote-template.html en suivant references/rendering.md (copiez base.css) : collez les blocs ESTIMATE, SUMMARY et PAYMENTS de tables.html aux endroits indiqués, remplissez le périmètre, les hypothèses, le calendrier et les conditions. Utilisez les couleurs et polices de la personne.
  6. Rendre, auditer, vérifier. Confirmez que le total de la page 1 correspond exactement au total du script, et que chaque livrable de la demande du client apparaît dans le périmètre.
  7. Livrer le PDF, ainsi que quote.json pour pouvoir le réviser plus tard. Dans la réponse : le total, l'échéancier de paiement en une ligne, les hypothèses qui comportent le plus de risque, et les valeurs par défaut que vous avez utilisées.

Nom de sortie : <Studio>-Devis-<Client>-<Projet>-<AAAA-MM-JJ>.pdf, avec un numéro de devis comme D-<AAAA-MM-JJ>-01.

Carte tarifaire

À partir de assets/ratecard-template.html : services regroupés par type, chacun avec ce qui est inclus et le tarif (horaire, journalier ou prix « à partir de » pour un projet), minimums, frais d'urgence, politique de révision, conditions de paiement et contact. Une page. Sortie : <Studio>-Carte-Tarifaire-<AAAA>.pdf.

Options et niveaux

Lorsque la personne souhaite des options, créez trois niveaux (par exemple Essentiel, Recommandé, Complet) en tant que phases séparées ou fichiers quote.json distincts, exécutez le calculateur pour chacun, et affichez un tableau comparatif en page 1 avec le niveau recommandé marqué.

Skills associés