Communitygithub.com

Générateur de Contrat-Cadre

Génère des projets de révision de contrats-cadres de contrepartie à partir d'un modèle unique et d'une spécification JSON, avec des clauses sélectionnées selon le rôle et un workflow de l'Annexe A limité au contrat signé.

Qu'est-ce que Générateur de Contrat-Cadre ?

Ce skill génère des projets de contrats-cadres (NDA, honoraires, non-contournement, prestations de services) en combinant un modèle Markdown unique avec une spécification JSON par contrepartie. Il remplace automatiquement les placeholders comme `{{CP_LEGAL}}`, `{{ROLE_CLAUSE}}` ou `{{SCHEDULE_ROWS}}` en fonction du rôle (acheteur, fournisseur, mutuel) et du calendrier fourni. Le générateur produit un fichier Markdown et, par défaut, un DOCX via Pandoc, tout en marquant systématiquement le résultat comme « DRAFT ». Il est idéal pour les équipes juridiques ou commerciales qui gèrent de nombreuses contreparties avec des termes standardisés et qui ont besoin de documents reproductibles, différenciables et exempts de modifications manuelles. Le skill inclut également un workflow pour ajouter des entrées à l'Annexe A après signature, en respectant l'autorité contractuelle et en maintenant une piste d'audit claire.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/ECC/tree/main/skills/master-agreement-generator

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 Générateur de Contrat-Cadre ?

Un modèle maître, une petite spécification par contrepartie, une étape de construction du projet. Le générateur étiquette toujours la sortie DRAFT, y compris les documents générés à partir d'un modèle complété. Une conversion réussie prouve la génération de l'artefact, pas l'exhaustivité juridique, l'autorité de contracter, ni la préparation à l'envoi ou à la signature. Un contrat signé peut autoriser l'ajout d'opportunités désignées par notification ; cette autorité doit être établie avant d'utiliser le workflow de l'Annexe A.

Quand l'utiliser

  • Vous émettez un contrat-cadre (NDA, accord d'honoraires de recommandation ou de sourcing, accord de non-contournement, contrat-cadre de services) à de nombreuses contreparties avec les mêmes conditions et quelques champs spécifiques à la partie.
  • Les transactions sont ajoutées au fil du temps et la renégociation de chacune d'elles est un goulot d'étranglement.
  • Les documents doivent être reproductibles à partir d'une source suivie, différenciables et exempts de modifications manuelles.
  • Les champs de signature sont placés par automatisation et nécessitent une mise en page stable.

Comment ça fonctionne

Modèle

Un modèle Markdown unique avec des champs {{PLACEHOLDER}}. Chaque valeur spécifique à une partie est un espace réservé ; tout le reste est un texte fixe. Un squelette se trouve dans références/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 de la spécification, ou une ligne vide lorsque la contrepartie les remplit à la signature
{{ROLE_CLAUSE}}, {{FEE_TITLE}}, {{FEE_CLAUSE}}sélectionnés par spec.role dans la table des rôles
{{SCHEDULE_ROWS}}spec.schedule, ou une ligne « aucune entrée à la signature »
{{SUPPLEMENT_CLAUSE}}spec.supplement, rendu avec un séparateur de fin ou vide
{{CP_SIGBLOCK}}, {{CP_SIGNER}}, {{CP_TITLE}}, {{CP_EMAIL}}champs du bloc de signature, vides lorsqu'ils sont inconnus

Spécification

Un fichier JSON par contrepartie :

{
  "file": "AcmeSupplier",
  "short": "Acme",
  "role": "supplier",
  "legal": "Acme Compute Ltd",
  "juris": "société d'Angleterre et du Pays de Galles",
  "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": "l'avenant sur le traitement des données daté du 2026-09-01"
}

Seuls file, short et role sont requis pour un projet. Les champs de signature manquants sont rendus sous forme de lignes vides pour révision et complétion. Voir références/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 ou syntaxe de lecteur/UNC, les caractères de contrôle, la ponctuation réservée à Windows ou les noms de périphériques, ainsi que les points ou espaces finaux. Les noms invalides sont rejetés sans assainissement ni renommage, 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 calendrier fourni doit sinon être un tableau dense de tableaux de six cellules, dans cet ordre : numéro, date, contrepartie protégée ou lot, rôle, conditions, honoraires. 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 valeurs nulles, booléennes, les objets, les tableaux de cellules imbriqués, les cellules manquantes et les nombres non finis sont rejetés avec un index de ligne/cellule avant toute écriture d'artefact ou activité pandoc. Les substituts UTF-16 non appariés sont également rejetés plutôt que remplacés 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 de syntaxe de sorte que les barres verticales littérales, les barres obliques inverses, les guillemets inversés 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 blancs et la ponctuation littérale sont préservés dans les cellules rendues. La spécification source n'est pas modifiée. Un calendrier valide ordinaire conserve ses six colonnes ; une entrée malformée n'est jamais remplacée silencieusement par un calendrier vide.

Table des rôles

spec.role sélectionne trois chaînes : la clause de l'arrangement permanent, le titre de la section des honoraires et l'ouverture de la clause des honoraires.

RôleQui paieForme de la clause
acheteurLa contrepartie paie sur les transactions avec les parties présentéesLa contrepartie nous nomme sur une base non exclusive pour sourcer et présenter
fournisseurLa contrepartie paie sur les transactions avec les parties présentées ; lorsque nous achetons en tant que principal, nous contractons selon les conditions du calendrierLa contrepartie offre sa capacité à nous et aux acheteurs que nous présentons
mutuelCelui qui conclut avec la présentation de l'autre paieChaque partie peut présenter ; la partie qui conclut paie

Les rôles inconnus sont rejetés au moment de la construction.

Construction

Utilisez uniquement les modèles et spécifications examinés par l'opérateur. Les substitutions ordinaires de modèle 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 limite pas l'accès au système de fichiers ou au réseau du convertisseur. Examinez ces références et exécutez la conversion dans votre propre environnement restreint de manière appropriée. Les tests ciblés utilisent un convertisseur synthétique et ne certifient pas une mise en page DOCX réelle ou un isolement.

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 calendrier et écrit out/<fichier> MASTER.md avec un avis obligatoire DRAFT. Par défaut (ou avec --require-docx), il nécessite que pandoc soit installé pour produire un artefact .docx régulier non vide. L'absence de pandoc, une conversion échouée ou une sortie manquante/vide renvoie le code de sortie 1. Chaque sondage ou conversion pandoc est limité à dix secondes. Les indicateurs inconnus, en double ou contradictoires renvoient le code de sortie 2.

Utilisez --markdown-only explicitement pour un projet Markdown réussi. Ce mode ne sonde ni n'invoque jamais pandoc, renvoie docxSkipped: true depuis la bibliothèque, et ne fournit pas de DOCX pour un workflow 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, donc un artefact 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'existe 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 ; remplir les 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 projet et la copie d'exécution révisée comme des enregistrements distincts. Même une conversion DOCX réussie n'autorise pas un téléchargement, un envoi ou une signature. Voir le workflow d'approbation de placement des champs 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 artefact soit écrit, même lorsque la conversion DOCX est désactivée. Les fichiers réguliers ordinaires peuvent être reconstruits. Utilisez un répertoire de sortie que vous contrôlez ; ces vérifications ne fournissent pas d'isolement contre les modifications simultanées hostiles du système de fichiers. Les chemins d'artefacts renvoyé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 commence 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 By, Name, Title, Email, Date) est cohérente, mais la pagination peut changer avec le texte, les polices, le moteur de rendu ou le format. Inspectez le document révisé réel et sa géométrie de page avant de placer les champs ; voir le skill de placement des champs de signature électronique.

Workflow d'ajout à l'Annexe A

Utilisez l'autorité réelle et les exigences de notification du contrat signé :

  1. Examinez l'économie de l'opportunité et la stratégie de négociation dans un canal interne de négociation/approbation. Obtenez l'approbation d'engagement avant d'envoyer un contenu contractuel. Un canal partagé avec la contrepartie n'est pas un canal interne.
  2. Confirmez que l'entrée proposée, le rôle, les conditions, les honoraires et la date d'effet relèvent de l'autorité expresse de notification de l'Annexe A du contrat. Les modifications des conditions permanentes, ou les variations en dehors de cette autorité, nécessitent la procédure d'amendement applicable ; une notification ne peut pas créer sa propre exception.
  3. Rédigez une notification approuvée, spécifique à la contrepartie et datée pour le destinataire et le canal de notification autorisé par le contrat signé. Incluez un contenu commercial utile : la contrepartie ou le lot protégé, le rôle autorisé, les conditions commerciales et les honoraires applicables. Excluez les marges internes, la stratégie de négociation, l'économie des autres parties, les traces système, les erreurs brutes et les avis de classement internes.
  4. Déposez la notification exacte pour approbation par l'opérateur avant l'envoi ; voir la boucle d'approbation de l'opérateur. Maintenez 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.
  5. Enregistrez la preuve de livraison autorisée, la date d'effet et toute objection conformément aux exigences réelles du contrat signé. Les délais d'exemple ne sont pas des valeurs par défaut. Conservez le document signé immuable ; mettez à jour l'enregistrement du calendrier suivi et reconstruisez une vue consolidée de projet pour examen interne, avec une référence à la version signée et à la notification approuvée. Cette reconstruction ne remplace pas le contrat signé ni ne prouve l'effet juridique.

Exemples

Texte de notification

Projet illustratif uniquement : n'utilisez ces conditions et dates que lorsque le contrat signé les autorise et que l'opérateur approuve cette notification exacte au destinataire.

Notification de l'Annexe A, 2026-09-02
Contrat : Contrat-Cadre daté du 2026-08-14 entre Nous et Acme
Entrée 2 : Lot B, 8 nœuds, région UE-Ouest
Rôle : présentateur
Conditions : durée de 6 mois, début au plus tard le 2026-10-01
Honoraires : standard
Cette entrée prend effet aujourd'hui sauf si vous vous y opposez dans les dix jours ouvrables
avec une preuve écrite datée d'une relation antérieure avec la contrepartie.

Ajout de l'entrée à la spécification

"schedule": [
  ["1", "2026-08-20", "Lot A (16 nodes)", "presentateur", "12 months", "standard"],
  ["2", "2026-09-02", "Lot B (8 nodes, UE-Ouest)", "presentateur", "6 months", "standard"]
]

Reconstruisez, différenciez le projet Markdown et joignez le projet consolidé à l'enregistrement interne avec le document signé inchangé et la preuve de notification.

La contrepartie remplit ses propres détails à la signature

Pour le projet, omettez legal, juris, addr, signer, title, email de la spécification pour rendre des lignes vides. Un workflow d'exécution séparément examiné 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.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

affaan-m/ECC

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

affaan-m/fal-ai-media

Unified media generation via fal.ai MCP — image, video, and audio. Covers text-to-image (Nano Banana), text/image-to-video (Seedance, Kling, Veo 3), text-to-speech (CSM-1B), and video-to-audio (ThinkSound). Use when the user wants to generate images, videos, or audio with AI.

affaan-m/manim-video

日本語翻訳:このファイルは manim-video 用の日本語翻訳が必要です

affaan-m/remotion-video-creation

Remotion のベストプラクティス - React で動画を作成する。3D、アニメーション、音声、字幕、チャート、トランジションなどをカバーするドメイン固有の29のルール。

affaan-m/video-editing

AI-assisted video editing workflows for cutting, structuring, and augmenting real footage. Covers the full pipeline from raw capture through FFmpeg, Remotion, ElevenLabs, fal.ai, and final polish in Descript or CapCut. Use when the user wants to edit video, cut footage, create vlogs, or build video content.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

agent-self-evaluation

Use after completing any non-trivial task. The agent self-rates its output on 5 axes — accuracy, completeness, clarity, actionability, conciseness — with concrete evidence per criterion. Produces a structured 1-5 scorecard with specific improvement suggestions.

agent-sort

Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle.

ai-first-engineering

Engineering operating model for teams where AI agents generate a large share of implementation output. Use when setting team process, review gates, or ownership rules for a codebase largely written by agents.

ai-regression-testing

Regression testing strategies for AI-assisted development. Sandbox-mode API testing without database dependencies, automated bug-check workflows, and patterns to catch AI blind spots where the same model writes and reviews code. Use when adding regression coverage to AI-assisted code, or when the same model both wrote and reviewed a change.

android-clean-architecture

Clean Architecture patterns for Android and Kotlin Multiplatform projects — module structure, dependency rules, UseCases, Repositories, and data layer patterns. Use when structuring modules, layers, or data flow in an Android or KMP project.

angular-developer

Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.

Skills associés