[Index de la documentation](https://prescriptio.fr/docs/llms.txt)

# Playbooks

Les playbooks Prescriptio sont des enchaînements d'appels prêts à coller dans votre agent IA, qui produisent un livrable : une veille datée, un dossier de réponse structuré, un classement de concurrents.

Un playbook est un enchaînement d'appels qui produit un livrable. Copiez la demande, ou ouvrez-la directement dans Claude ou ChatGPT : votre agent appelle les outils dans l'ordre et rend le livrable. Les valeurs entre chevrons, comme `<9 chiffres>`, sont à remplacer par les vôtres.

> **Note :** Les playbooks supposent le connecteur branché, à l'adresse https://prescriptio.fr/api/mcp : [Démarrer avec votre agent IA](https://prescriptio.fr/docs/assistants). Pour une demande d'un ou deux appels, voir les [prompts par métier](https://prescriptio.fr/docs/prompts).

## Veille et signaux amont

Savoir ce qui sort chaque jour, poser une surveillance permanente, voir un projet arriver avant l’avis de marché.

### Produire le récapitulatif de veille du jour, thème par thème

**Ce qu'il rend** : un tableau daté groupé par thème : objet, acheteur, date limite, jours avant clôture, et la mention du dossier consultable quand `fields.dce_consultable` vaut true.

**Pour qui** : entreprises de travaux, bureaux d’études, économistes de la construction.

**Prompt prêt à coller : La demande à coller**

```text
Faites ma veille marchés publics du jour sur le département 69.
1. Appelez marches_rechercher avec publie_depuis_jours:1, sort:"recent", localisation:{"dept":"69"}, limit:50.
2. Puis un appel séparé par thème, un seul sujet par requête : « étanchéité », puis « bardage », puis « désamiantage », chacun avec publie_depuis_jours:1, type:"ouvert", sort:"recent" et la même localisation.
3. Terminez par marches_rechercher avec type:"ouvert", cloture_dans_jours:7, sort:"deadline" et la même localisation.
Rendez un tableau daté groupé par thème : objet, acheteur, date limite, jours avant clôture, et la mention « dossier consultable » quand fields.dce_consultable vaut true. N’ajoutez aucune ligne qui ne vienne pas des résultats.
```

Outils : `marches_rechercher`.

### L'enchaînement, appel par appel

1. `marches_rechercher` avec `publie_depuis_jours:1`, `sort: recent`, `dept 69` et `limit:50` remonte tout ce qui a été publié depuis hier sur le département.
2. Un appel distinct par corps d’état surveillé, toujours borné à la veille. Sans cette borne, l’appel remonterait tout le stock ouvert du département et mélangerait les avis d’hier et ceux d’il y a six mois.
3. Un dernier appel avec `type: ouvert` et `cloture_dans_jours:7` isole ce qui ferme dans la semaine.

**Le piège** : deux sujets dans une même requête. La recherche exige TOUS les mots : `query: étanchéité bardage` ne renvoie presque rien. Un sujet par appel, puis fusion des listes. Même règle en géographie : une seule granularité, `region` OU `dept` OU `commune`, et jamais `dept: all`.

### Mettre en place une surveillance permanente et un portefeuille d’entités suivies

**Pour qui** : toute organisation qui suit des comptes, des acheteurs récurrents ou des communes.

**Prompt prêt à coller : La demande à coller**

```text
Mettez en place ma surveillance permanente.
1. Listez mes alertes avec evenements_alertes action:"list".
2. Créez celles qui manquent, une par thème : evenements_alertes action:"add", name:"Étanchéité 69", query:"étanchéité", sources:["marche","attribution"], departement:"69".
3. Pour chaque entreprise que je surveille, retrouvez son SIREN avec annuaire_entreprises, puis appelez base_suivis action:"add", type:"entreprise", siren:"<9 chiffres>", et qualifiez-la aussitôt avec base_suivis action:"qualifier", statut:"concurrent".
Récapitulez à la fin ce que chaque alerte surveille et ce que chaque suivi couvre. Si une alerte revient avec created:false, signalez-le au lieu de la recréer sous un autre nom. Si un appel échoue en disant qu’une alerte du même nom porte d’autres critères, ne contournez pas : rapportez-le-moi avec son identifiant.
```

Outils : `evenements_alertes`, `base_suivis`, `annuaire_entreprises`.

### L'enchaînement, appel par appel

1. `action: list` inventorie ce qui est déjà en place et rend l’identifiant de chaque alerte.
2. `action: add` crée les manquantes : `name` obligatoire, plus `query`, `sources`, `departement`. Idempotent sur le nom : un rejeu à l’identique renvoie l’existante avec `created:false`.
3. Pour surveiller une entité plutôt qu’une requête, `base_suivis action: add` avec `type` parmi entreprise, acheteur et projet, et l’identifiant correspondant. Une fois l’entité dans la base, `action: qualifier` pose son statut, `etiqueter` une étiquette et `noter` une note que toute l’équipe voit.

**Le piège** : ces outils écrivent dans votre espace : il faut une organisation rattachée et la portée d’écriture acceptée à la connexion ; l’offre, elle, n’entre plus en ligne de compte. Onze sources surveillables : marche, dce, attribution, permis, reseaux_sociaux, mairie, bodacc, entreprise, contact, dvf, site ; on retire celles qu’on ne veut pas. Le montant minimum ne filtre que les attributions. Le robot passe au plus toutes les trois heures. Aucune mise à jour d’alerte n’existe : on supprime, on recrée. Et l’outil gère la définition des alertes, jamais leurs déclenchements.

### Repérer un projet communal avant la publication de l’avis

**Pour qui** : fabricants et industriels du bâti, promoteurs, entreprises de travaux qui prospectent par territoire.

**Prompt prêt à coller : La demande à coller**

```text
Cherchez les projets de réhabilitation de groupe scolaire délibérés dans le département 38.
1. Appelez mairies_deliberations avec query:"réhabilitation groupe scolaire" et localisation:{"dept":"38"}.
2. Pour les trois communes les plus pertinentes, lisez le procès-verbal avec mairies_deliberations en passant son pv_id, et demandez les pages suivantes tant que pages_total n’est pas atteint. Si un résultat n’a pas de pv_id, signalez-le au lieu d’inventer un identifiant.
3. Vérifiez ensuite avec marches_rechercher, même sujet en query et localisation sur la commune, si un avis a déjà été publié.
Rendez pour chaque commune : la décision votée, la date de séance, le montant s’il est cité, et le statut « avis publié » ou « aucun avis à ce jour ». Citez le pv_id de chaque source et ne reformulez pas ce que le texte ne dit pas.
```

Outils : `mairies_deliberations`, `mairies_pv_lien_obtenir`, `marches_rechercher`.

### L'enchaînement, appel par appel

1. Une `query` et une localisation cherchent par le sens dans les délibérations et rendent les communes concernées avec le `pv_id` de chaque procès-verbal. Seul chemin vers ce `pv_id`, ouvert à tous les comptes.
2. Le `pv_id` restitue le texte intégral, paginé par tranches d’environ 8 000 caractères.
3. Le téléchargement rend un lien valable une heure vers la copie hébergée, sinon le lien public d’origine, sur le site de la mairie, qui peut avoir changé depuis ; sans aucune source connue, une erreur explicite.
4. Sur le même sujet, avec la commune en localisation, vérifiez si un avis a déjà été publié.

**Le piège** : une délibération atteste d’une décision, pas d’un marché : ne concluez pas qu’une consultation existe sans l’étape 4. Côté quotas, lire puis télécharger le même PV coûte une seule unité dans la journée. Le `pv_id` se recopie tel quel, il ne se devine jamais.

## Qualification et réponse à un appel d’offres

De l’avis publié au dossier prêt à déposer. Le dépôt se fait sur la plateforme de l’acheteur : le connecteur prépare, documente et archive, il ne remet rien à votre place.

### Passer de l’avis ouvert au texte de la pièce technique

**Pour qui** : entreprises de travaux, bureaux d’études, économistes de la construction.

**Prompt prêt à coller : La demande à coller**

```text
Trouvez les appels d’offres de désamiantage ouverts dans le département 33 dont le dossier est consultable, et analysez le plus urgent.
1. marches_rechercher avec query:"désamiantage", type:"ouvert", avec_dce:true, sort:"deadline", localisation:{"dept":"33"}.
2. Sur le résultat dont l’échéance est la plus proche, appelez marches_dce avec son marche_id et type:"rc".
3. Localisez les exigences avec marches_dce, le même marche_id et query:"amiante" : notez pour chaque résultat le doc_type ET le filename.
4. Lisez la pièce avec marches_dce en gardant marche_id et filename, en passant la valeur doc_type de l’étape 3 dans le paramètre type, puis page:1, 2… jusqu’à pages_total. Ne repassez pas query pour cet appel de lecture.
Rendez : objet, acheteur, date limite, procédure, pièces à remettre, qualifications exigées, visite obligatoire ou non. N’écrivez que ce qui figure dans le texte lu et signalez explicitement ce qui manque.
```

Outils : `marches_rechercher`, `marches_dce`, `marches_dce_lien_obtenir`.

### L'enchaînement, appel par appel

1. `avec_dce:true` ne remonte que les avis dont le dossier est consultable dans Prescriptio ; vérifiez `fields.dce_consultable` sur chaque résultat.
2. `marche_id` + `type: rc` ouvre le règlement. Sans `filename`, un multi-lots rend la table des matières, une ligne par pièce avec ses pages estimées.
3. `marche_id` + `query` dit dans quelles pièces le terme apparaît, avec un extrait de 320 caractères et le `doc_type` de chacune. Ne consomme aucune unité de dossier.
4. Passez `type` avec la valeur de `doc_type`, puis `filename` avec le nom rendu à l’étape 3, sans `query` : vous obtenez le texte paginé. `doc_type` est un champ de résultat, pas un paramètre d’entrée.

**Le piège** : ne figez pas `type: cctp` à l’étape 4 : si le passage a été trouvé dans le règlement ou le CCAP, forcer un autre type fait échouer la lecture. « Dossier consultable » signifie lisible ici, jamais un renvoi vers la plateforme de l’acheteur. Et tous les dossiers ne contiennent pas les cinq types de pièces.

### Ouvrir le dossier de réponse et le charger de ses livrables

**Pour qui** : entreprises de travaux et bureaux d’études qui répondent aux appels d’offres.

**Prompt prêt à coller : La demande à coller**

```text
Ouvrez le dossier de réponse pour le marché <identifiant ou référence> et préparez-le.
1. marches_dossier_suivre avec marche_id:"<uuid>" (ou annonce_id:"<référence>") ; notez le champ id du dossier renvoyé, c’est le draft_id des étapes suivantes.
2. marches_dossiers avec ce draft_id : relevez pieces_candidature, pieces_offre, qualifications_exigees et visite_obligatoire. Si ce contexte est absent, dites-le et lisez d’abord le règlement avec marches_dce, type:"rc".
3. Créez un livrable par pièce exigée : marches_dossier_livrables action:"add", draft_id, title, section (texte libre, par exemple « Administratif », « Réponse technique » ou « Réponse commerciale »), format, deadline_at en ISO 8601, status:"pending".
4. Si une visite est obligatoire, ajoutez marches_dossier_planning action:"add", kind:"meeting", draft_id, summary:"Visite de site", start_at et end_at en ISO 8601. Ajoutez aussi la remise avec kind:"task", title, due_date et task_type:"todo".
Terminez par la liste des livrables créés et leur échéance.
```

Outils : `marches_dossier_suivre`, `marches_dossiers`, `marches_dossier_livrables`, `marches_dossier_planning`.

### L'enchaînement, appel par appel

1. `marche_id` ou `annonce_id` crée le dossier au statut « À qualifier ». Son champ `id` devient le `draft_id` des étapes suivantes. Même écriture que le bouton de suivi du portefeuille.
2. La fiche rend, quand l’extraction du règlement existe : `pieces_candidature`, `pieces_offre`, `qualifications_exigees`, `visite_obligatoire`.
3. Une ligne par pièce à remettre : `title` obligatoire, plus section, leader, format, `scoring_pct` (0.4 pour 40 %), `deadline_at` en ISO 8601.
4. Les jalons : `kind: task` (title obligatoire) ou `kind: meeting` (summary, start_at, end_at obligatoires).

**Le piège** : sur une tâche, `task_type` n’accepte pas la valeur « task » : seulement todo, call, email, meeting, follow_up. Une réunion créée ici est une ligne du dossier, elle ne crée aucun événement dans un agenda externe. Et le contexte du règlement peut être absent : lisez alors le RC avec `marches_dce, type: rc` avant de créer les livrables.

### Rédiger une section de mémoire adossée à vos propres références

**Pour qui** : entreprises de travaux, bureaux d’études, responsables des offres.

**Prompt prêt à coller : La demande à coller**

```text
Rédigez la section méthodologie du mémoire du dossier <draft_id>.
1. marches_bibliotheque avec query:"démarche chantier en site occupé" : relevez les extraits, leur filename et leur page.
2. marches_bibliotheque avec type:"reference_client" pour l’inventaire des références mobilisables (50 documents les plus récents).
3. marches_dossier_memoire action:"read" avec le draft_id, pour voir ce qui existe déjà et ne pas l’écraser à l’aveugle.
4. marches_dossier_memoire action:"write" avec draft_id, section_key:"methodologie", label:"Méthodologie d’intervention" et content_html rédigé à partir des seuls extraits remontés.
5. marches_dossier_documents action:"library" puis action:"attach" avec draft_id et knowledge_doc_id, pour rattacher les pièces citées.
N’inventez aucune référence ni aucun chantier : si la bibliothèque ne remonte rien sur un point, signalez le manque par une mention explicite « à compléter » dans le texte.
```

Outils : `marches_bibliotheque`, `marches_dossier_memoire`, `marches_dossier_documents`.

### L'enchaînement, appel par appel

1. Une `query` cherche par le sens dans les documents de votre organisation : jusqu’à huit extraits, chacun avec son filename, son doc_type, sa page et son score de proximité.
2. Sans query, l’inventaire des 50 documents les plus récents, filtrable par type : all, memoire_technique, presentation_entreprise, reference_client, cv, rse, piece_administrative, contractuel, commercial.
3. `action: read` affiche les sections déjà écrites et leur date de génération.
4. `action: write` crée ou remplace une section identifiée par `section_key`, avec un label lisible et `content_html`.
5. `action: library` liste la bibliothèque, puis `attach` rattache les pièces retenues par leur `knowledge_doc_id`.

**Le piège** : les `piece_administrative` sont conservées mais pas fouillées : présentes à l’inventaire, jamais dans les extraits. L’écriture d’une section remplace intégralement la précédente. Lire avant d’écrire. Et le connecteur ne dépose aucun fichier : la bibliothèque s’alimente depuis l’application.

### Clôturer un dossier et enregistrer l’attribution réelle

**Pour qui** : direction des offres, contrôle de gestion, entreprises de travaux et bureaux d’études.

**Prompt prêt à coller : La demande à coller**

```text
Clôturez mes dossiers remis.
1. marches_dossiers avec status:"submitted" : listez les dossiers en attente d’issue.
2. Pour chacun, cherchez le contrat notifié avec marches_attributions, type:"liste", query sur l’objet et localisation sur le département de l’acheteur. La recherche porte sur l’objet du contrat, jamais sur le nom du titulaire.
3. Quand le contrat est retrouvé, appelez marches_dossier_suivi_modifier avec le draft_id, status:"lost" ou "won", winner_name, winner_price, mdb_rank, et our_price ou rejection_motifs si je vous les donne.
Ne renseignez un montant que s’il provient d’une attribution retrouvée : un montant estimé d’avis ouvert n’est pas un montant notifié. Listez à la fin les dossiers laissés inchangés faute d’attribution publiée.
```

Outils : `marches_dossiers`, `marches_attributions`, `marches_dossier_suivi_modifier`.

### L'enchaînement, appel par appel

1. `status: submitted` liste les dossiers remis dont l’issue n’est pas encore saisie ; `search` filtre sur l’acheteur, l’objet ou le titre.
2. Une `query` sur l’objet et une localisation retrouvent le contrat notifié : titulaire, SIRET, montant réel, acheteur, date de notification.
3. Mise à jour du dossier : `status`, `our_price`, `winner_name`, `winner_price`, `mdb_rank` (1 = mieux-disant), `rejection_motifs`.

**Le piège** : le montant estimé d’un avis ouvert est rarement publié et n’est jamais un montant notifié. Seules les attributions portent des montants réels, et elles n’acceptent ni filtre ni tri sur le montant, ni recherche par titulaire. Autre limite : un dossier ne se supprime pas, un renoncement se marque par `no_go` ou `abandoned`.

## Enquête concurrentielle et prospection

Où votre produit est prescrit, qui gagne quoi sur un territoire, où la construction se concentre.

### Retrouver où un produit est prescrit dans les pièces techniques

**Pour qui** : fabricants et industriels du bâti, responsables de la prescription.

**Prompt prêt à coller : La demande à coller**

```text
Trouvez où le béton bas carbone est prescrit dans les dossiers de consultation.
1. marches_dce avec query:"béton bas carbone" seule, pour identifier les dossiers concernés.
2. Sur les trois plus pertinents, appelez marches_dce avec le marche_id et UN SEUL terme à la fois : d’abord query:"béton", puis query:"carbone". Notez le doc_type et le filename de chaque pièce trouvée. Si les deux reviennent vides, demandez la table des matières avec marches_dce, le marche_id et type:"cctp".
3. Lisez le passage avec marches_dce en gardant marche_id et filename, en passant la valeur doc_type de l’étape 2 dans le paramètre type, et sans query. Demandez les pages suivantes de cette pièce si nécessaire.
4. Séparément, relancez une veille avec marches_rechercher, query:"béton bas carbone", type:"ouvert" et avec_dce:true, pour voir les avis ouverts du moment sur ce thème. Précisez que cette liste est indépendante et ne recoupe pas forcément les dossiers de l’étape 1.
Rendez un tableau : acheteur, objet, pièce, citation exacte du passage, date limite.
```

Outils : `marches_dce`, `marches_rechercher`.

### L'enchaînement, appel par appel

1. Une `query` seule, sans `marche_id`, cherche par le sens dans l’ensemble des dossiers. Ouvert à tous les comptes.
2. Sur un dossier retenu, `marche_id` + query dit dans quelles pièces le terme figure, avec un extrait et le doc_type, sans consommer d’unité de dossier.
3. Reprenez la valeur de `doc_type` dans le paramètre `type`, et le `filename` de l’étape 2. Sans `query`, l’appel restitue le texte de cette pièce, paginé ; avec `query`, il resterait une recherche d’extraits.

**Le piège** : les deux modes ne se comportent pas pareil. Sans `marche_id`, la recherche porte sur le sens : une expression entière fonctionne. Avec `marche_id`, elle exige TOUS les mots, donc reprendre l’expression complète revient souvent vide : un seul terme à la fois, puis la table des matières en repli. Le filename se recopie, il ne se devine pas.

### Classer les entreprises qui gagnent un type de marché, puis les qualifier

**Pour qui** : fabricants, directions commerciales, entreprises de travaux, maîtrise d’ouvrage.

**Prompt prêt à coller : La demande à coller**

```text
Dressez le paysage concurrentiel de la voirie dans le département 69.
1. marches_attributions avec query:"voirie", type:"top_titulaires", localisation:{"dept":"69"}.
2. marches_attributions avec query:"voirie", type:"liste" et la même localisation, pour le détail des contrats récents.
3. Pour les cinq premières entreprises, appelez annuaire_entreprises avec le SIRET du classement, relevez le champ siren de la fiche, puis appelez annuaire_dirigeants avec ce siren, puis annuaire_annonces_legales avec ce même siren.
Rendez un tableau : rang, entreprise, SIREN, montant cumulé, nombre de contrats, effectif, évolution du chiffre d’affaires, dirigeant principal, et toute annonce légale notable. Signalez explicitement les entreprises pour lesquelles une donnée manque, plutôt que de l’estimer.
```

Outils : `marches_attributions`, `annuaire_entreprises`, `annuaire_dirigeants`, `annuaire_annonces_legales`.

### L'enchaînement, appel par appel

1. `type: top_titulaires` rend le classement des entreprises par nombre de contrats remportés sur le sujet. Le montant cumulé est rendu à côté, il ne décide pas du rang : la source publie sous un même nom un lot de chantier, une opération entière et un accord-cadre pluriannuel.
2. `type: liste` détaille les contrats récents un par un.
3. Le classement ne rend qu’un SIRET. Passez-le à la fiche entreprise, qui rend le NAF, l’effectif, le capital, le RGE, l’évolution du CA, et surtout le champ `siren`.
4. Ce `siren` liste les mandataires et leur fonction, puis remonte créations, cessions, dépôts de comptes et procédures collectives.

**Le piège** : dirigeants et BODACC n’acceptent qu’un SIREN de 9 chiffres : leur passer le SIRET du classement fait échouer la chaîne. Le `siren` désigne l’entreprise, le `siret` un établissement. Ni attributions ni BODACC n’acceptent de commune : région ou département seulement. Aucun de ces outils ne renvoie de coordonnée.

### Cartographier la pression de construction d’un territoire

**Pour qui** : fabricants, promoteurs, entreprises de travaux qui étudient une implantation.

**Prompt prêt à coller : La demande à coller**

```text
Cartographiez la dynamique de construction du département 31.
1. carto_permis_rechercher avec localisation:{"dept":"31"}, type_permis:"PC", etat:"autorise", limit:50.
2. carto_transactions avec localisation:{"commune":"Toulouse"}, annee:2025 et type_local:"appartement".
3. carto_chantiers_rechercher avec localisation:{"dept":"31"} et type:"grue".
Rendez trois blocs : les opérations autorisées les plus importantes en logements créés, le volume et le niveau des ventes, puis les chantiers détectés avec leur permis rattaché. Ne déduisez pas de prix au mètre carré sans préciser que la valeur foncière porte sur la mutation entière, dépendances comprises. Signalez les permis dont la surface de plancher est absente au lieu de la reconstituer. Si carto_chantiers_rechercher ne renvoie aucune détection, dites-le explicitement : la détection satellite ne couvre qu’un échantillon de territoires. Ne comblez jamais ce bloc avec les permis de l’étape 1.
```

Outils : `carto_permis_rechercher`, `carto_transactions`, `carto_chantiers_rechercher`.

### L'enchaînement, appel par appel

1. Les autorisations Sitadel : numéro, adresse, destination, `logements_crees`, surface de plancher, date. `type_permis` parmi PC, DP, PA, PD ; `etat` parmi autorise, commence, termine, annule.
2. Les ventes enregistrées, une ligne par mutation dédoublonnée : valeur foncière, nombre de biens, surface bâtie, et sur parcelle unique avec une vente précédente fiable, la plus-value.
3. Les objets détectés sur imagerie satellite croisés à un permis officiel : `type` parmi chantier, grue, engin. Couverture partielle : un département entier peut ne rien renvoyer.

**Le piège** : le DVF n’accepte aucune liste nationale ; les permis en acceptent une à condition de fournir des mots-clés. Nommer Paris, Lyon ou Marseille inclut tous les arrondissements : passez le code postal pour n’en garder qu’un. La surface de plancher est souvent absente : fiez-vous à `logements_crees`. La valeur foncière porte sur la mutation entière, dépendances comprises.

## Pour aller plus loin

- [Les skills](https://prescriptio.fr/skills) : Les parcours que votre agent charge seul, sans rien coller.
- [Prompts par métier](https://prescriptio.fr/docs/prompts) : Des demandes courtes, avec les mots de votre métier.
- [Catalogue des outils](https://prescriptio.fr/docs/api) : Les paramètres de chaque outil cité ici.
- [Le connecteur MCP](https://prescriptio.fr/mcp) : L'adresse, les autorisations et les quotas.
