Générateur d'Accord-Cadre
Un modèle maître, un petit cahier des charges par contrepartie, une étape de génération de brouillon. Le générateur marque toujours la sortie comme BROUILLON, y compris les documents générés depuis un modèle complété. Une conversion réussie prouve la génération d'un artéfact, pas l'exhaustivité juridique, le pouvoir d'engager contractuellement, ni l'aptitude à envoyer ou signer. Un accord exécuté peut autoriser l'ajout d'opportunités désignées par notification ; cette autorisation doit être établie avant d'utiliser le flux de travail Annexe A.
Quand l'utiliser
- Vous émettez un accord-cadre (NDA, commission d'apporteur ou de sourcing, non-contournement, prestations de services) à de nombreuses contreparties avec les mêmes conditions et quelques champs propres à chaque partie.
- Les transactions s'ajoutent au fil du temps et la rédaction de chaque avenant constitue le goulot d'étranglement.
- Les documents doivent être reproductibles à partir d'une source suivie, comparables et exempts de modifications manuelles.
- Les champs de signature sont placés par automatisation et nécessitent une mise en page stable.
Fonctionnement
Modèle
Un modèle markdown unique avec des champs {{PLACEHOLDER}}. Chaque valeur propre à la contrepartie
est un espace réservé ; tout le reste est un texte fixe. Un squelette se trouve dans
references/master-template.example.md.
Remplacez ses phrases génériques par vos clauses approuvées par le conseil juridique.
Espaces réservés que le script de référence remplit :
| Espace réservé | Source |
|---|---|
{{DATE}} | spec.date, par défaut aujourd'hui |
{{CP_SHORT}} | spec.short |
{{CP_LEGAL}}, {{CP_JURIS}}, {{CP_ADDR}} | champs du spec, ou une ligne vide lorsque la contrepartie les complète à la signature |
{{ROLE_CLAUSE}}, {{FEE_TITLE}}, {{FEE_CLAUSE}} | sélectionnés par spec.role dans le tableau des rôles |
{{SCHEDULE_ROWS}} | spec.schedule, ou une ligne "aucune entrée à la signature" |
{{SUPPLEMENT_CLAUSE}} | spec.supplement, rendu avec un séparateur final ou vide |
{{CP_SIGBLOCK}}, {{CP_SIGNER}}, {{CP_TITLE}}, {{CP_EMAIL}} | champs du bloc de signature, vides lorsqu'inconnus |
Cahier des charges
Un fichier JSON par contrepartie :
{
"file": "AcmeSupplier",
"short": "Acme",
"role": "supplier",
"legal": "Acme Compute Ltd",
"juris": "England and Wales company",
"addr": "1 Example Street, London",
"signer": "A. Person",
"title": "Director",
"email": "[email protected]",
"schedule": [["1", "2026-09-01", "Lot A (16 nodes)", "introducer", "12 months", "standard"]],
"supplement": "the Data Processing Addendum dated 2026-09-01"
}
Seuls file, short et role sont requis pour un brouillon. Les champs de signature manquants
s'affichent sous forme de lignes vides pour révision et complétion. Voir
references/spec.example.json.
file doit être un nom de fichier portable non vide, tel que AcmeSupplier ou Acme Supplier,
sans composants de répertoire. Le constructeur rejette tout séparateur de chemin, syntaxe de lecteur/UNC,
caractères de contrôle, ponctuation réservée à Windows ou noms de périphériques, et les points
ou espaces finaux. Les noms invalides sont rejetés sans être nettoyés ou renommés,
avant la création de la sortie ou l'appel à pandoc.
Omettez schedule ou utilisez [] pour l'espace réservé "aucune entrée à la signature".
Un schedule fourni doit sinon être un tableau dense de tableaux de six cellules, dans cet ordre :
numéro, date, contrepartie ou lot protégé, rôle, conditions, frais. Chaque cellule doit être
une chaîne Unicode valide ou un nombre fini ; les chaînes vides sont autorisées pour les blancs intentionnels.
Les nulls, booléens, objets, tableaux de cellules imbriqués, cellules manquantes et nombres non finis
sont rejetés avec l'indice de ligne/cellule avant toute écriture d'artéfact ou activité pandoc.
Les paires de substitution UTF-16 non appariées sont également rejetées plutôt que remplacées lors de la
sortie UTF-8 ; les caractères supplémentaires valides, tels que les emoji, restent pris en charge.
Les cellules sont en texte brut, pas en Markdown ou HTML. Le constructeur encode les caractères syntaxiques de sorte que les barres verticales littérales, les barres obliques inverses, les accents graves et le balisage restent dans leurs champs d'origine. Chaque CRLF, CR ou LF nu devient un espace ; le texte autour des sauts de ligne est conservé. Les autres espaces et la ponctuation littérale sont préservés dans les cellules rendues. Le spec source n'est pas modifié. Un schedule valide ordinaire conserve ses six colonnes ; une entrée malformée n'est jamais remplacée silencieusement par un schedule vide.
Tableau des rôles
spec.role sélectionne trois chaînes : la clause d'accord permanent, le titre de la section des frais,
et l'ouverture de la clause de frais.
| Rôle | Qui paie | Forme de la clause |
|---|---|---|
| buyer | La contrepartie paie sur les transactions avec les parties présentées | La contrepartie nous nomme sur une base non exclusive pour rechercher et présenter |
| supplier | La contrepartie paie sur les transactions avec les parties présentées ; lorsque nous achetons en tant que principal, nous contractons aux conditions du schedule | La contrepartie offre sa capacité à nous et aux acheteurs que nous présentons |
| mutual | Celui qui conclut avec la présentation de l'autre paie | Chaque partie peut présenter ; la partie qui conclut paie |
Les rôles inconnus sont rejetés lors de la construction.
Construction
Utilisez uniquement des modèles et spécifications révisés par l'opérateur. Les substitutions de modèle ordinaires en dehors de l'Annexe A sont capables de balisage, pas un assainisseur pour documents non fiables. Pandoc peut lire des ressources locales ou distantes référencées ; ce générateur ne met pas en sandbox l'accès au système de fichiers ou au réseau du convertisseur. Vérifiez ces références et exécutez la conversion dans votre propre environnement restreint approprié. Les tests ciblés utilisent un convertisseur synthétique et ne certifient pas la mise en page DOCX réelle ni l'isolation.
node skills/master-agreement-generator/scripts/build-agreement.js \
skills/master-agreement-generator/references/master-template.example.md \
specs/AcmeSupplier.json \
out/
Le script remplit les espaces réservés, rend le tableau du schedule et écrit
out/<file> MASTER.md avec un avis obligatoire de BROUILLON. Par défaut (ou avec
--require-docx) il nécessite que pandoc soit installé pour produire un artéfact .docx régulier non vide.
Un pandoc manquant, une conversion échouée ou une sortie manquante/vide renvoie le code de sortie 1.
Chaque sonde ou conversion pandoc est limitée à dix secondes.
Les indicateurs inconnus, en double ou contradictoires renvoient le code de sortie 2.
Utilisez --markdown-only explicitement pour un brouillon Markdown réussi. Ce mode
ne sonde ni n'invoque jamais pandoc, renvoie docxSkipped: true depuis la bibliothèque,
et ne fournit aucun DOCX pour un flux de travail de signature électronique. Les appelants de la bibliothèque
doivent passer { markdownOnly: true } ; { pandoc: false } seul échoue désormais à l'exigence DOCX.
Le résultat signale toujours documentStatus: 'draft'. Le DOCX généré existant est
supprimé lors de la reconstruction de son Markdown, et une conversion échouée ne laisse aucun DOCX partiel,
ainsi un artéfact antérieur ne peut pas se faire passer pour la sortie actuelle. Conservez les
deux fichiers générés hors du contrôle de version ; le modèle et les spécifications sont la source.
Il n'y a pas de mode de copie d'exécution. L'exemple contient délibérément des directives de rédaction
entre crochets non résolues ; le remplissage des jetons {{PLACEHOLDER}} ne complète pas ces
dispositions juridiques. Avant de préparer un document d'exécution, obtenez un examen séparé
des clauses complétées, des détails de la partie, du signataire autorisé, des conditions commerciales
et de la version exacte du document. Conservez le brouillon et la copie d'exécution révisée
comme enregistrements distincts. Même une conversion DOCX réussie n'autorise pas un
téléchargement, un envoi ou une signature. Voir le flux de travail d'approbation de placement de champ de signature électronique.
Les deux destinations de sortie doivent être des enfants directs du répertoire de sortie résolu. Un lien symbolique existant à l'une ou l'autre destination, y compris un lien cassé, est rejeté avant que l'un ou l'autre artéfact ne soit écrit, même lorsque la conversion DOCX est désactivée. Les fichiers normaux ordinaires peuvent être reconstruits. Utilisez un répertoire de sortie que vous contrôlez ; ces vérifications ne fournissent pas d'isolation contre les modifications simultanées hostiles du système de fichiers. Les chemins d'artéfact retournés sont absolus.
Géométrie de la page de signature
Le modèle termine le corps par un saut de page OpenXML afin que le bloc de signature soit placé sur une nouvelle page dans un rendu DOCX compatible :
```{=openxml}
<w:p><w:r><w:br w:type="page"/></w:r></w:p>
```
La structure de la page de signature (notre bloc, puis le bloc de la contrepartie, chacun avec Par, Nom, Titre, Email, Date) est cohérente, mais la pagination peut changer avec le texte, les polices, le rendu ou le format. Inspectez le document réel révisé et sa géométrie de page avant de placer les champs ; voir la compétence placement-champ-signature-électronique.
Flux de travail d'ajout à l'Annexe A
Utilisez l'autorité réelle et les exigences de notification de l'accord exécuté :
- Examinez l'économie de l'opportunité et la stratégie de négociation dans un canal interne de négociation/approbation. Obtenez l'approbation de l'engagement avant d'envoyer du contenu contractuel. Un canal partagé avec la contrepartie n'est pas un canal interne.
- Confirmez que l'entrée proposée, le rôle, les conditions, les frais et la date d'effet relèvent de l'autorité expresse de notification de l'Annexe A de l'accord. Les modifications des conditions permanentes, ou les variations en dehors de cette autorité, nécessitent la procédure de modification applicable ; une notification ne peut pas créer sa propre exception.
- Rédigez une notification datée, approuvée et spécifique à la contrepartie, pour le destinataire et le canal de notification autorisés par l'accord exécuté. Incluez un contenu commercial utile : la contrepartie ou le lot protégé, le rôle autorisé, les conditions commerciales et les frais applicables. Excluez les marges internes, la stratégie de négociation, les aspects économiques des autres parties, les traces système, les erreurs brutes et les avis de classement internes.
- Déposez la notification exacte pour approbation par l'opérateur avant de l'envoyer ; voir boucle-approbation-opérateur. Gardez le silence dans le canal de la contrepartie tant que l'approbation ou l'autorité de participation est absente. L'approbation est distincte de la preuve qu'un expéditeur autorisé a effectivement délivré la notification.
- Enregistrez la preuve de livraison autorisée, la date d'effet et toute objection conformément aux exigences réelles de l'accord exécuté. Les exemples de périodes ne sont pas des valeurs par défaut. Conservez le document exécuté immuable ; mettez à jour l'enregistrement du schedule suivi et reconstruisez une vue consolidée de brouillon pour examen interne, avec une référence à la version exécutée et à la notification approuvée. Cette reconstruction ne remplace pas l'accord signé ni ne prouve d'effet juridique.
Exemples
Texte de notification
Brouillon illustratif uniquement : n'utilisez ces conditions et dates que lorsque l'accord exécuté les autorise et que l'opérateur approuve cette notification exacte au destinataire.
Notification de l'Annexe A, 2026-09-02
Accord : Accord-Cadre daté du 2026-08-14 entre Nous et Acme
Entrée 2 : Lot B, 8 nœuds, région UE-Ouest
Rôle : introducer
Conditions : Durée de 6 mois, début au plus tard le 2026-10-01
Frais : standard
Cette entrée prend effet aujourd'hui, sauf si vous vous y opposez dans un délai de dix jours ouvrables
avec une preuve écrite datée d'une relation antérieure avec la contrepartie.
Ajout de l'entrée au spec
"schedule": [
["1", "2026-08-20", "Lot A (16 nodes)", "introducer", "12 months", "standard"],
["2", "2026-09-02", "Lot B (8 nodes, EU-West)", "introducer", "6 months", "standard"]
]
Reconstruisez, comparez le Markdown du brouillon et joignez le brouillon consolidé au dossier interne avec le document exécuté inchangé et la preuve de notification.
La contrepartie remplit ses propres détails à la signature
Pour la rédaction, omettez legal, juris, addr, signer, title, email du
spec afin d'afficher des lignes vides. Un flux de travail d'exécution examiné séparément doit décider
quels détails peuvent être complétés par la contrepartie et vérifier les champs réels ;
le générateur ne crée ni n'approuve une enveloppe de signature électronique.