Communitygithub.com

master-agreement-generator

Erstelle überprüfbare Entwürfe von Rahmenvereinbarungen aus einer Vorlage und einem JSON-Spezifikationsdokument mit rollenbasierten Klauseln und einem Anhang-A-Workflow für die ausgefertigte Vereinbarung.

Was ist master-agreement-generator?

Der Master-Agreement-Generator ist ein KI-gestütztes Tool zur Erstellung von Entwürfen für Rahmenvereinbarungen (NDA, Vermittlungsgebühren, Nichtumgehung, Master Services). Er basiert auf einer einzigen Markdown-Vorlage mit `{{PLACEHOLDER}}`-Feldern und einem JSON-Spec pro Gegenpartei. Unterstützt werden die Plattformen Node.js und Pandoc – ideal für Entwickler-Teams, die viele ähnliche Verträge mit wenigen parteispezifischen Werten automatisieren möchten. Der Generator füllt Platzhalter, erstellt einen Markdown-Entwurf mit dem obligatorischen Hinweis „DRAFT“ und optional ein DOCX. Ein besonderer Workflow für Anhang A ermöglicht das Hinzufügen von Geschäften zur ausgefertigten Vereinbarung per förmlicher Mitteilung, wobei die Unterschriftenseiten-Geometrie für e-Signaturen stabil bleibt. Wichtig: Das Tool erzeugt nur Entwürfe, keine rechtsverbindlichen Dokumente; jede Nutzung erfordert eine separate rechtliche Prüfung.

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht master-agreement-generator?

Eine Master-Vorlage, ein kleines Spec pro Gegenpartei, ein Entwurfserstellungsschritt. Der Generator kennzeichnet die Ausgabe stets als DRAFT, auch bei Dokumenten, die aus einer vollständigen Vorlage erstellt wurden. Eine erfolgreiche Konvertierung belegt die Generierung von Artefakten, nicht die rechtliche Vollständigkeit, die Vertretungsbefugnis oder die Bereitschaft zum Versand oder zur Unterzeichnung. Eine ausgefertigte Vereinbarung kann es erlauben, bestimmte Gelegenheiten durch Mitteilung hinzuzufügen; diese Befugnis muss vor der Nutzung des Anhang-A-Workflows festgestellt werden.

Wann verwenden

  • Sie schließen mit vielen Gegenparteien eine Rahmenvereinbarung (NDA, Vermittlungs- oder Provisionsgebühren, Nichtumgehung, Master Services) mit denselben Bedingungen und wenigen parteispezifischen Feldern ab.
  • Geschäfte werden im Laufe der Zeit hinzugefügt, und die Neubeurkundung jedes einzelnen ist der Engpass.
  • Dokumente müssen aus einer nachverfolgbaren Quelle reproduzierbar, diffbar und frei von manuellen Bearbeitungen sein.
  • Unterschriftsfelder werden automatisiert platziert und benötigen ein stabiles Seitenlayout.

Funktionsweise

Vorlage

Eine einzelne Markdown-Vorlage mit {{PLACEHOLDER}}-Feldern. Jeder parteispezifische Wert ist ein Platzhalter; alles andere ist festgelegter Text. Ein Grundgerüst befindet sich unter references/master-template.example.md. Ersetzen Sie dessen allgemeine Sätze durch Ihre von der Rechtsabteilung genehmigten Klauseln.

Platzhalter, die das Referenzskript ausfüllt:

PlatzhalterQuelle
{{DATE}}spec.date, Standard heute
{{CP_SHORT}}spec.short
{{CP_LEGAL}}, {{CP_JURIS}}, {{CP_ADDR}}Spec-Felder oder eine Leerzeile, wenn die Gegenpartei sie bei Unterzeichnung ergänzt
{{ROLE_CLAUSE}}, {{FEE_TITLE}}, {{FEE_CLAUSE}}ausgewählt durch spec.role aus der Rollentabelle
{{SCHEDULE_ROWS}}spec.schedule oder eine Zeile „keine Einträge bei Unterzeichnung“
{{SUPPLEMENT_CLAUSE}}spec.supplement, mit einem abschließenden Trennzeichen oder leer dargestellt
{{CP_SIGBLOCK}}, {{CP_SIGNER}}, {{CP_TITLE}}, {{CP_EMAIL}}Unterschriftsblockfelder, leer wenn unbekannt

Spec

Eine JSON-Datei pro Gegenpartei:

{
  "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"
}

Für einen Entwurf sind nur file, short und role erforderlich. Fehlende Unterschriftsfelder werden als Leerzeilen zur Überprüfung und Vervollständigung dargestellt. Siehe references/spec.example.json.

file muss ein nicht leerer portabler Dateiname sein, z. B. AcmeSupplier oder Acme Supplier, ohne Verzeichniskomponenten. Der Builder lehnt Pfadtrennzeichen, Laufwerk-/UNC-Syntax, Steuerzeichen, Windows-reservierte Satzzeichen oder Gerätenamen sowie abschließende Punkte oder Leerzeichen ab. Ungültige Namen werden ohne Bereinigung oder Umbenennung abgelehnt, bevor eine Ausgabe erstellt oder Pandoc aufgerufen wird.

Lassen Sie schedule weg oder verwenden Sie [] für den Platzhalter „keine Einträge bei Unterzeichnung“. Ein bereitgestellter Zeitplan muss andernfalls ein dichtes Array aus sechs-elementigen Arrays in dieser Reihenfolge sein: Nummer, Datum, geschützte Gegenpartei oder Los, Rolle, Bedingungen, Gebühr. Jede Zelle muss ein gültiger Unicode-String oder eine endliche Zahl sein; leere Strings sind für beabsichtigte Leerstellen erlaubt. Nulls, Booleans, Objekte, verschachtelte Zellen-Arrays, fehlende Zellen und nicht-endliche Zahlen werden mit einem Zeilen-/Zellenindex abgelehnt, bevor ein Artefakt geschrieben oder Pandoc aktiv wird. Ungepaarte UTF-16-Ersatzzeichen werden ebenfalls abgelehnt und nicht während der UTF-8-Ausgabe ersetzt; gültige Supplementary Characters wie Emojis werden weiterhin unterstützt.

Zellen sind Klartext, nicht Markdown oder HTML. Der Builder kodiert Syntaxzeichen, sodass wörtliche Pipes, Backslashes, Backticks und Markup in ihren ursprünglichen Feldern bleiben. Jeder CRLF, bloße CR oder LF wird zu einem Leerzeichen; Text um Zeilenumbrüche wird beibehalten. Andere Leerzeichen und wörtliche Satzzeichen bleiben in den gerenderten Zellen erhalten. Das Quell-Spec wird nicht geändert. Ein gewöhnlicher gültiger Zeitplan behält seine sechs Spalten; fehlerhafte Eingabe wird nie stillschweigend durch einen leeren Zeitplan ersetzt.

Rollentabelle

spec.role wählt drei Zeichenfolgen aus: die Klausel für die laufende Vereinbarung, den Abschnittstitel für die Gebühren und die Einleitung der Gebührenklausel.

RolleWer zahltForm der Klausel
buyerDie Gegenpartei zahlt bei Transaktionen mit eingeführten ParteienGegenpartei beauftragt uns auf nicht-exklusiver Basis, zu vermitteln und einzuführen
supplierDie Gegenpartei zahlt bei Transaktionen mit eingeführten Parteien; wenn wir als Auftraggeber kaufen, kontrahieren wir zu den ZeitplanbedingungenGegenpartei bietet uns und den von uns eingeführten Käufern Kapazität an
mutualWer mit der Einführung des anderen abschließt, zahltJede Partei darf einführen; die abschließende Partei zahlt

Unbekannte Rollen werden zum Build-Zeitpunkt abgelehnt.

Build

Verwenden Sie nur überprüfte Vorlagen und Specs. Gewöhnliche Vorlagensubstitutionen außerhalb von Anhang A sind markup-fähig, kein Sanitizer für nicht vertrauenswürdige Dokumente. Pandoc kann referenzierte lokale oder entfernte Ressourcen lesen; dieser Generator isoliert den Dateisystem- oder Netzwerkzugriff des Konverters nicht. Überprüfen Sie diese Referenzen und führen Sie die Konvertierung in Ihrer eigenen, angemessen eingeschränkten Umgebung durch. Die fokussierten Tests verwenden einen synthetischen Konverter und zertifizieren kein echtes DOCX-Layout oder keine Isolation.

node skills/master-agreement-generator/scripts/build-agreement.js \
  skills/master-agreement-generator/references/master-template.example.md \
  specs/AcmeSupplier.json \
  out/

Das Skript füllt Platzhalter, rendert die Zeitplantabelle und schreibt out/<file> MASTER.md mit einem obligatorischen DRAFT-Hinweis. Standardmäßig (oder mit --require-docx) wird ein installierter pandoc benötigt, um ein nicht leeres reguläres .docx-Artefakt zu erstellen. Fehlender pandoc, fehlgeschlagene Konvertierung oder fehlende/leere Ausgabe geben Exit-Code 1 zurück. Jede pandoc-Überprüfung oder Konvertierung ist auf zehn Sekunden begrenzt. Unbekannte, doppelte oder widersprüchliche Flags geben Exit-Code 2 zurück.

Verwenden Sie explizit --markdown-only für einen erfolgreichen Markdown-Only-Entwurf. Dieser Modus überprüft oder ruft pandoc nie auf, gibt docxSkipped: true von der Bibliothek zurück und stellt kein DOCX für einen e-Sign-Workflow bereit. Bibliotheksaufrufer müssen { markdownOnly: true } übergeben; { pandoc: false } allein schlägt jetzt die DOCX-Anforderung fehl. Das Ergebnis meldet immer documentStatus: 'draft'. Vorhandene generierte DOCX werden beim Neuerstellen des Markdowns entfernt, und eine fehlgeschlagene Konvertierung hinterlässt kein partielles DOCX, sodass ein früheres Artefakt nicht als aktuelle Ausgabe getarnt werden kann. Halten Sie beide generierten Dateien außerhalb der Versionskontrolle; die Vorlage und die Specs sind die Quelle.

Es gibt keinen Ausführungs-Kopiermodus. Das Beispiel enthält bewusst ungelöste eckige Klammern mit Formulierungsanweisungen; das Ausfüllen der {{PLACEHOLDER}}-Token vervollständigt diese rechtlichen Bestimmungen nicht. Vor der Erstellung eines Ausführungsdokuments müssen Sie die vervollständigten Klauseln, Parteiangaben, den bevollmächtigten Unterzeichner, die kommerziellen Bedingungen und die genaue Dokumentenversion separat prüfen lassen. Bewahren Sie den Entwurf und die geprüfte Ausführungskopie als getrennte Aufzeichnungen auf. Auch eine erfolgreiche DOCX-Konvertierung autorisiert keinen Upload, Versand oder keine Unterzeichnung. Siehe den Genehmigungs-Workflow für die Platzierung von e-Sign-Feldern.

Beide Ausgabeverzeichnisse müssen direkte Kinder des aufgelösten Ausgabeverzeichnisses sein. Ein bestehender Symlink an einem der Ziele, einschließlich eines hängenden Links, wird abgelehnt, bevor eines der Artefakte geschrieben wird, selbst wenn die DOCX-Konvertierung deaktiviert ist. Gewöhnliche reguläre Dateien können neu erstellt werden. Verwenden Sie ein Ausgabeverzeichnis, das Sie kontrollieren; diese Prüfungen bieten keine Isolation gegen gleichzeitige feindliche Dateisystemänderungen. Zurückgegebene Artefaktpfade sind absolut.

Geometrie der Unterschriftsseite

Die Vorlage beendet den Textkörper mit einem OpenXML-Seitenumbruch, sodass der Unterschriftsblock in einem kompatiblen DOCX-Renderer eine neue Seite anfordert:

```{=openxml}
<w:p><w:r><w:br w:type="page"/></w:r></w:p>
```

Die Struktur der Unterschriftsseite (unser Block, dann der Block der Gegenpartei, jeweils mit By, Name, Title, Email, Date) ist konsistent, aber die Seitennummerierung kann sich mit Text, Schriftarten, Renderer oder Format ändern. Überprüfen Sie das tatsächlich überprüfte Dokument und seine Seitengeometrie, bevor Sie Felder platzieren; siehe das esign-field-placement skill.

Anhang-A-Anhänge-Workflow

Verwenden Sie die tatsächliche Befugnis und die Mitteilungspflichten der ausgefertigten Vereinbarung:

  1. Überprüfen Sie die wirtschaftlichen Chancen und die Verhandlungsstrategie in einem internen Verhandlungs-/Genehmigungskanal. Holen Sie die Genehmigung für den Abschluss ein, bevor Sie vertraglichen Inhalt senden. Ein gemeinsamer Kanal mit der Gegenpartei ist kein interner Kanal.
  2. Bestätigen Sie, dass der vorgeschlagene Eintrag, die Rolle, die Bedingungen, die Gebühr und das Wirksamkeitsdatum innerhalb der ausdrücklichen Mitteilungsbefugnis des Anhangs A der Vereinbarung liegen. Änderungen der laufenden Bedingungen oder Abweichungen, die außerhalb dieser Befugnis liegen, erfordern das geltende Änderungsverfahren; eine Mitteilung kann keine eigene Ausnahme schaffen.
  3. Erstellen Sie einen genehmigten, gegenparteispezifischen, datierten Mitteilungstext für den Empfänger und den Mitteilungskanal, der durch die ausgefertigte Vereinbarung autorisiert ist. Fügen Sie nützliche geschäftliche Inhalte hinzu: die geschützte Gegenpartei oder das Los, die autorisierte Rolle, die kommerziellen Bedingungen und die anwendbare Gebühr. Schließen Sie interne Margen, Verhandlungsstrategie, wirtschaftliche Details anderer Parteien, Systemspuren, rohe Fehler und interne Vermerke aus.
  4. Reichen Sie den genauen Mitteilungstext zur Genehmigung durch den Bediener ein, bevor Sie ihn senden; siehe operator-approval-loop. Bewahren Sie Stille im Kanal der Gegenpartei, während keine Genehmigung oder Teilnahmebefugnis vorliegt. Die Genehmigung ist getrennt vom Nachweis, dass ein autorisierter Absender die Mitteilung tatsächlich zugestellt hat.
  5. Dokumentieren Sie den autorisierten Zustellnachweis, das Wirksamkeitsdatum und etwaige Einwände gemäß den tatsächlichen Anforderungen der ausgefertigten Vereinbarung. Beispielhafte Fristen sind keine Standards. Halten Sie das ausgefertigte Dokument unveränderbar; aktualisieren Sie den nachverfolgten Zeitplan und erstellen Sie einen Entwurf einer konsolidierten Ansicht zur internen Überprüfung mit einem Verweis auf die ausgefertigte Version und die genehmigte Mitteilung. Diese Neuerstellung ersetzt nicht die unterzeichnete Vereinbarung und belegt keine rechtliche Wirkung.

Beispiele

Mitteilungstext

Nur veranschaulichender Entwurf: Verwenden Sie diese Bedingungen und Daten ausschließlich, wenn die ausgefertigte Vereinbarung sie autorisiert und der Bediener diese genaue Mitteilung an den Empfänger genehmigt.

Schedule A notice, 2026-09-02
Agreement: Master Agreement dated 2026-08-14 between Us and Acme
Entry 2: Lot B, 8 nodes, region EU-West
Role: introducer
Terms: 6 month term, start no later than 2026-10-01
Fee: standard
This entry takes effect today unless you object within ten business days
with dated written evidence of a prior relationship with the counterparty.

Hinzufügen des Eintrags zum 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"]
]

Neu erstellen, den Markdown-Entwurf differenzieren und den konsolidierten Entwurf zusammen mit dem unveränderten ausgefertigten Dokument und dem Mitteilungsnachweis an die interne Aufzeichnung anhängen.

Gegenpartei füllt eigene Angaben bei Unterzeichnung aus

Lassen Sie für den Entwurf legal, juris, addr, signer, title, email aus dem Spec weg, um Leerzeilen zu rendern. Ein separat geprüfter Ausführungsworkflow muss entscheiden, welche Angaben von der Gegenpartei vervollständigt werden dürfen, und die tatsächlichen Felder überprüfen; der Generator erstellt oder genehmigt kein e-Sign-Umschlag.

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.

Verwandte Skills