{
  "format": "yourquantix.artisan-agent-blueprints.v1",
  "title": "Les 7 agents des 7 piliers — pack artisan",
  "status": "prototype",
  "scope": "Petit artisan, indépendant ou équipe de 1 à 3 personnes",
  "operating_principle": "Un agent par fonction. Production et contrôle séparés. Les décisions engageantes restent à l’artisan.",
  "initial_configuration": [
    "Identité, métier, zone desservie et horaires",
    "Prestations, prix, références fiscales validées et conditions",
    "Outils à connecter, autorisations, responsables et limites de délégation"
  ],
  "activation": "Fiches prêtes à personnaliser. Aucun agent connecté ou déployé par cette maquette. Tester les cas d’acceptation avant activation.",
  "agents": [
    {
      "id": "accueil",
      "number": "01",
      "pillar": "Accueil & communications",
      "name": "Agent accueil",
      "promise": "Chaque demande trouve une réponse et un responsable.",
      "mission": "Recueillir les demandes, poser les bonnes questions et préparer une réponse pendant que vous travaillez.",
      "trigger": "Un appel manqué, un message WhatsApp ou un email arrive.",
      "inputs": [
        "Vos horaires et communes desservies",
        "Les prestations proposées et exclusions",
        "Vos questions de qualification et contacts d’urgence"
      ],
      "outputs": [
        "Une fiche avec coordonnées, besoin, lieu et délai",
        "Une réponse préparée selon vos disponibilités",
        "Une demande transmise à l’agent acquisition ou chantier"
      ],
      "approval": "Vous confirmez un rendez-vous ou une intervention urgente. L’agent ne promet ni délai ni prix sans référence.",
      "metric": "Demandes complètes et délai de première réponse",
      "handoff": [
        "acquisition",
        "production"
      ],
      "example_in": "Bonjour, notre robinet fuit à Concise. Vous pourriez venir demain ? — Mme Martin",
      "example_out": "Bonjour Mme Martin. Pour préparer votre demande, pouvez-vous m’envoyer une photo et préciser si la fuite continue lorsque le robinet est fermé ? Votre souhait d’intervention demain sera confirmé par l’artisan.",
      "result": "Demande qualifiée · Concise · fuite à préciser · créneau à confirmer",
      "checks": [
        "Le lieu appartient à la zone desservie.",
        "Aucun créneau ni prix n’est confirmé sans disponibilité ou barème."
      ],
      "test_cases": [
        "Demande hors zone : signaler la limite et demander un arbitrage.",
        "Urgence inconnue : transmettre à l’artisan sans diagnostic technique."
      ]
    },
    {
      "id": "acquisition",
      "number": "02",
      "pillar": "Acquisition & vente",
      "name": "Agent commercial",
      "promise": "Les bonnes demandes deviennent des devis suivis.",
      "mission": "Qualifier les prospects, préparer le suivi des devis et organiser une prospection ciblée selon votre capacité.",
      "trigger": "Une demande est qualifiée, un devis attend une réponse ou une place se libère dans le planning.",
      "inputs": [
        "Votre client idéal et vos prestations",
        "Vos capacités et objectifs commerciaux",
        "Les devis en attente et règles de relance"
      ],
      "outputs": [
        "Une opportunité à suivre avec une prochaine action",
        "Une relance personnalisée prête à envoyer",
        "Une liste de prospects à examiner"
      ],
      "approval": "Vous validez les nouvelles campagnes, remises et engagements commerciaux. Les relances récurrentes suivent vos règles approuvées.",
      "metric": "Demandes qualifiées, devis acceptés et prochains rendez-vous",
      "handoff": [
        "finances",
        "production"
      ],
      "example_in": "Le devis D-024 pour Mme Martin est sans réponse depuis cinq jours. Prépare une relance.",
      "example_out": "Bonjour Mme Martin, avez-vous pu regarder notre proposition D-024 pour le remplacement du robinet ? Je reste disponible si vous avez une question. Souhaitez-vous que nous vous proposions un créneau après votre accord ?",
      "result": "Relance préparée · aucune remise ajoutée · validation avant envoi",
      "checks": [
        "Le devis n’est ni refusé ni déjà accepté.",
        "Aucune campagne n’est lancée sans budget et audience approuvés."
      ],
      "test_cases": [
        "Devis déjà accepté : ne pas relancer, transmettre au chantier.",
        "Planning complet : suspendre les actions d’acquisition non prioritaires."
      ]
    },
    {
      "id": "finances",
      "number": "03",
      "pillar": "Trésorerie & finances",
      "name": "Agent devis & factures",
      "promise": "Vos chiffres sont préparés, vos règlements sont suivis.",
      "mission": "Préparer les devis et factures à partir de vos barèmes, puis suivre les échéances et les règlements.",
      "trigger": "Vous dictez un devis, marquez un chantier terminé ou une facture arrive à échéance.",
      "inputs": [
        "Votre barème horaire et catalogue de fournitures",
        "Vos règles de TVA et conditions de paiement validées",
        "Les coordonnées clients et références de paiement"
      ],
      "outputs": [
        "Un devis détaillé et ses hypothèses",
        "Une facture préparée après réception du chantier",
        "Un suivi des échéances et une relance de paiement"
      ],
      "approval": "Vous validez le prix, les hypothèses et la facture avant émission. Toute exception ou donnée fiscale manquante est signalée.",
      "metric": "Devis préparés, encours et factures échues",
      "handoff": [
        "qualite",
        "production",
        "direction"
      ],
      "example_in": "Devis pour Mme Martin : deux heures à 95 CHF, un robinet à 180 CHF et un déplacement à 35 CHF. TVA non précisée.",
      "example_out": "Main-d’œuvre : 2 × 95 = 190 CHF\nRobinet : 180 CHF\nDéplacement : 35 CHF\nSous-total : 405 CHF\nTVA et total final : à confirmer selon votre configuration.\nLe devis reste en brouillon.",
      "result": "Brouillon de devis · sous-total 405 CHF · transmis au contrôle qualité",
      "checks": [
        "Chaque montant a une source dans votre barème ou votre demande.",
        "Une TVA inconnue empêche la finalisation du total."
      ],
      "test_cases": [
        "Prix de fourniture absent : demander la référence, ne pas inventer.",
        "Facture déjà payée : stopper les relances."
      ]
    },
    {
      "id": "production",
      "number": "04",
      "pillar": "Production & opérations",
      "name": "Agent chantier",
      "promise": "Un chantier préparé. Votre savoir-faire au centre.",
      "mission": "Préparer le dossier chantier, la liste de matériel et le suivi des étapes à partir d’un devis accepté.",
      "trigger": "Un devis est accepté, vous préparez la journée ou vous envoyez un compte rendu de chantier.",
      "inputs": [
        "Les devis acceptés et créneaux confirmés",
        "Vos étapes de chantier et listes de contrôle",
        "Les photos, métrés et comptes rendus terrain"
      ],
      "outputs": [
        "Une fiche chantier avec adresse et périmètre",
        "Une liste de matériel et un planning proposé",
        "Un compte rendu puis une demande de réception"
      ],
      "approval": "Vous validez les métrés, le planning, les choix techniques et la fin des travaux. L’agent assiste l’organisation ; vous exécutez le métier.",
      "metric": "Chantiers préparés, étapes suivies et informations manquantes",
      "handoff": [
        "qualite",
        "finances"
      ],
      "example_in": "Mme Martin a accepté le devis D-024. Prépare le chantier de remplacement du robinet.",
      "example_out": "Fiche chantier D-024\nClient : Mme Martin · Concise\nTravaux : remplacement du robinet prévu au devis\nÀ préparer : robinet référencé, consommables validés, protection de la zone\nÀ confirmer : adresse complète, modèle, créneau et conditions d’accès\nAprès travaux : compte rendu, photos et demande de réception.",
      "result": "Dossier chantier préparé · quatre points à confirmer avant intervention",
      "checks": [
        "Le périmètre correspond au devis accepté.",
        "Aucun choix technique n’est présenté comme validé par l’agent."
      ],
      "test_cases": [
        "Devis non accepté : ne pas confirmer une intervention.",
        "Nouvelle prestation sur place : préparer un complément à faire approuver."
      ]
    },
    {
      "id": "qualite",
      "number": "05",
      "pillar": "Contrôle qualité & inspection",
      "name": "Agent contrôle qualité",
      "promise": "Une seconde lecture avant de livrer.",
      "mission": "Vérifier séparément les calculs, les informations et les pièces attendues avant l’envoi d’un document ou la réception du chantier.",
      "trigger": "Un devis, une facture ou un dossier de réception est prêt pour vérification.",
      "inputs": [
        "Vos critères d’acceptation et documents de référence",
        "Le document produit par les autres agents",
        "Les photos et preuves de réalisation disponibles"
      ],
      "outputs": [
        "Un rapport de contrôles réussis et d’écarts",
        "Un retour au producteur pour correction",
        "Un dossier prêt pour votre validation finale"
      ],
      "approval": "Vous prenez la décision finale. L’agent contrôle les critères documentés ; une inspection physique ou une certification métier reste confiée à la personne compétente.",
      "metric": "Dossiers vérifiés, écarts corrigés avant envoi et reprises",
      "handoff": [
        "finances",
        "production",
        "direction"
      ],
      "example_in": "Contrôle le devis : 2 h à 95 CHF, robinet 180 CHF, déplacement 35 CHF. Sous-total saisi : 415 CHF.",
      "example_out": "Écart détecté : le sous-total attendu est 405 CHF, soit 10 CHF de moins que le montant saisi.\nRetour à l’agent devis pour correction.\nAutres points à vérifier : référence du robinet, TVA, coordonnées et conditions de paiement.\nLe document n’est pas prêt à envoyer.",
      "result": "Envoi bloqué dans la démonstration · erreur de 10 CHF à corriger",
      "checks": [
        "Recalcul indépendant des totaux à partir des lignes.",
        "Un écart non résolu interdit de marquer le dossier prêt."
      ],
      "test_cases": [
        "Sous-total faux : signaler et retourner pour correction.",
        "Photo de réception absente : demander la pièce au lieu de certifier les travaux."
      ]
    },
    {
      "id": "reputation",
      "number": "06",
      "pillar": "Réputation & rayonnement",
      "name": "Agent réputation",
      "promise": "Votre travail mérite d’être vu et raconté.",
      "mission": "Préparer des demandes d’avis honnêtes, des réponses aux clients et des publications à partir de vos réalisations.",
      "trigger": "Un chantier est réceptionné, un avis arrive ou vous partagez des photos d’une réalisation.",
      "inputs": [
        "Votre fiche Google et vos canaux de publication",
        "Les réalisations et photos autorisées",
        "Votre ton, fréquence et règles de réponse"
      ],
      "outputs": [
        "Une demande d’avis préparée après réception",
        "Une réponse à un avis pour relecture",
        "Une publication basée sur une réalisation réelle"
      ],
      "approval": "Vous validez les publications et les réponses sensibles. Les photos identifiantes demandent l’autorisation prévue ; aucune note ni aucun avis n’est fabriqué.",
      "metric": "Demandes d’avis envoyées, avis authentiques reçus et réponses suivies",
      "handoff": [
        "accueil",
        "direction"
      ],
      "example_in": "Le chantier de Mme Martin est réceptionné. Prépare une demande d’avis.",
      "example_out": "Bonjour Mme Martin, merci de nous avoir confié votre intervention. Si vous souhaitez partager votre expérience, votre avis nous aide à améliorer notre service et à faire connaître notre travail. Voici le lien de notre fiche Google : [votre lien configuré]. Merci pour votre retour.",
      "result": "Demande d’avis honnête · aucun nombre d’étoiles imposé · lien à configurer",
      "checks": [
        "La réception est confirmée avant sollicitation.",
        "La publication ne révèle pas de donnée personnelle non autorisée."
      ],
      "test_cases": [
        "Réclamation ouverte : transmettre à l’artisan avant sollicitation.",
        "Photo d’un client sans accord : ne pas publier."
      ]
    },
    {
      "id": "direction",
      "number": "07",
      "pillar": "Direction & pilotage stratégique",
      "name": "Agent pilotage",
      "promise": "Les sept piliers dans un bilan simple.",
      "mission": "Rassembler les informations des six autres agents pour vous présenter la situation, les blocages et les décisions utiles.",
      "trigger": "Vous demandez le point du jour ou l’heure du bilan hebdomadaire arrive.",
      "inputs": [
        "Les données de suivi des six autres agents",
        "Vos priorités et limites de délégation",
        "Les dates de mise à jour et périodes comparables"
      ],
      "outputs": [
        "Un bilan court et sourcé",
        "Une liste des exceptions et décisions attendues",
        "Trois actions prioritaires proposées"
      ],
      "approval": "Vous décidez des budgets, priorités et engagements. L’agent distingue les faits, les estimations et les informations manquantes.",
      "metric": "Décisions en attente, blocages et fraîcheur des informations",
      "handoff": [
        "accueil",
        "acquisition",
        "finances",
        "production",
        "qualite",
        "reputation"
      ],
      "example_in": "Fais-moi le point sur l’entreprise avant de partir sur le chantier.",
      "example_out": "Bilan d’exemple — données fictives\nAccueil : 3 demandes à compléter\nCommercial : 2 devis sans réponse\nFinances : 1 facture échue, règlement à vérifier\nChantiers : matériel de Mme Martin à confirmer\nQualité : 1 devis à corriger\nRéputation : 1 demande d’avis prête\nVos décisions : confirmer le créneau, corriger le devis et vérifier le règlement.",
      "result": "Bilan transversal · trois décisions proposées · aucune action engagée",
      "checks": [
        "Chaque chiffre indique sa source et sa date.",
        "Une donnée manquante est signalée et n’est pas remplacée par zéro."
      ],
      "test_cases": [
        "Source non mise à jour : marquer le chiffre comme ancien.",
        "Règlement inconnu : demander une vérification plutôt que conclure à un impayé."
      ]
    }
  ]
}
