{"id":46173362,"url":"https://github.com/open-agreements/open-agreements","last_synced_at":"2026-04-02T14:52:56.963Z","repository":{"id":337517068,"uuid":"1153419543","full_name":"open-agreements/open-agreements","owner":"open-agreements","description":"Fill standard legal agreement templates and produce signable DOCX files. 25 templates covering NDAs, cloud terms, SAFEs, and NVCA financing documents.","archived":false,"fork":false,"pushed_at":"2026-03-28T15:47:13.000Z","size":15593,"stargazers_count":15,"open_issues_count":4,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-28T17:51:51.820Z","etag":null,"topics":["agent-skills","anthropic","claude","claude-code","claude-code-cli","claude-code-commands","claude-code-plugin","claude-code-plugins","claude-code-skills","claude-code-subagents","claude-skills","contract-automation","docx","gemini-cli-extension","legal-tech","legal-templates","nda-template","open-source-legal","safe-template"],"latest_commit_sha":null,"homepage":"https://openagreements.ai","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/open-agreements.png","metadata":{"files":{"readme":"README.de.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"docs/supported-tools.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-09T09:26:34.000Z","updated_at":"2026-03-28T15:47:16.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/open-agreements/open-agreements","commit_stats":null,"previous_names":["open-agreements/open-agreements"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/open-agreements/open-agreements","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-agreements%2Fopen-agreements","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-agreements%2Fopen-agreements/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-agreements%2Fopen-agreements/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-agreements%2Fopen-agreements/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/open-agreements","download_url":"https://codeload.github.com/open-agreements/open-agreements/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-agreements%2Fopen-agreements/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31308447,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-skills","anthropic","claude","claude-code","claude-code-cli","claude-code-commands","claude-code-plugin","claude-code-plugins","claude-code-skills","claude-code-subagents","claude-skills","contract-automation","docx","gemini-cli-extension","legal-tech","legal-templates","nda-template","open-source-legal","safe-template"],"created_at":"2026-03-02T17:12:01.453Z","updated_at":"2026-04-02T14:52:56.957Z","avatar_url":"https://github.com/open-agreements.png","language":"TypeScript","readme":"# OpenAgreements\n\n[![npm version](https://img.shields.io/npm/v/open-agreements)](https://www.npmjs.com/package/open-agreements)\n[![npm downloads](https://img.shields.io/npm/dm/open-agreements.svg)](https://npmjs.org/package/open-agreements)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![Agent Skill](https://img.shields.io/badge/agent--skill-open--agreements-purple)](https://skills.sh)\n[![CI](https://github.com/open-agreements/open-agreements/actions/workflows/ci.yml/badge.svg)](https://github.com/open-agreements/open-agreements/actions/workflows/ci.yml)\n[![MCP Server Status](https://img.shields.io/endpoint?url=https%3A%2F%2Fopenagreements.org%2Fapi%2Fstatus%3Fformat%3Dshields)](https://openagreements.openstatus.dev/)\n[![codecov](https://img.shields.io/codecov/c/github/open-agreements/open-agreements/main)](https://app.codecov.io/gh/open-agreements/open-agreements)\n[![GitHub stargazers](https://img.shields.io/github/stars/open-agreements/open-agreements?style=social)](https://github.com/open-agreements/open-agreements/stargazers)\n[![Tests: Vitest](https://img.shields.io/badge/tests-vitest-6E9F18)](https://vitest.dev/)\n[![OpenSpec Traceability](https://img.shields.io/badge/openspec-traceability%20gate-brightgreen)](./scripts/validate_openspec_coverage.mjs)\n[![Socket Badge](https://socket.dev/api/badge/npm/package/open-agreements)](https://socket.dev/npm/package/open-agreements)\n[![install size](https://packagephobia.com/badge?p=open-agreements)](https://packagephobia.com/result?p=open-agreements)\n\n[English](./README.md) | [Español](./README.es.md) | [简体中文](./README.zh.md) | [Português (Brasil)](./README.pt-br.md) | [Deutsch](./README.de.md)\n\n\u003e **Übersetzungshinweis:** Das englische `README.md` ist die kanonische Quelle. Diese Übersetzung kann kurzzeitig hinterherhinken. Wichtige Änderungen im englischen README sollten innerhalb von 72 Stunden übernommen werden.\n\n\u003c!-- TODO: Add OpenSSF Scorecard badge once repo is indexed at securityscorecards.dev --\u003e\n\u003c!-- TODO: Add OpenSSF Best Practices badge after registration at bestpractices.dev --\u003e\n\u003c!-- TODO: Re-evaluate Snyk badge — Advisor migrated to security.snyk.io (July 2024) --\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/demo-fill-nda.gif\" alt=\"Fill a Mutual NDA in Claude Code — prompt, answer questions, get a signed-ready DOCX\" width=\"720\"\u003e\n\u003c/p\u003e\n\n\u003e *Demo: Claude füllt ein Common Paper Mutual NDA in unter 2 Minuten aus. Für Kürze beschleunigt.*\n\nFülle standardisierte juristische Vertragsvorlagen aus und erzeuge signierbare DOCX-Dateien. Die Vorlagen decken NDAs, Cloud-Bedingungen, Arbeitsdokumente, Contractor-Verträge, SAFEs und NVCA-Finanzierungsdokumente ab.\n\n**Open Agreements** von [UseJunior](https://usejunior.com) — Teil der [UseJunior Developer Tools](https://usejunior.com/developer-tools/open-agreements). Produktiv im Einsatz bei Am Law 100 Kanzleien.\n\n## Qualitäts- und Vertrauenssignale\n\n- CI läuft bei Pull Requests und Pushes auf `main`.\n- Der Live-Service-Status wird über OpenStatus unter `openagreements.openstatus.dev` veröffentlicht.\n- Die Coverage wird in Codecov veröffentlicht, mit repositorydefinierten Patch-/Projekt-Gates in `codecov.yml`.\n- Das aktive JS-Testframework ist Vitest; JUnit-Testergebnisse werden für Codecov-Testanalysen hochgeladen.\n- OpenSpec-Szenario-Traceability wird über `npm run check:spec-coverage` erzwungen. Für einen lokalen Matrix-Export führe `npm run check:spec-coverage -- --write-matrix integration-tests/OPENSPEC_TRACEABILITY.md` aus.\n- Der Recipe-Source-Drift-Canary (`npm run check:source-drift`) prüft den erwarteten Source-Hash plus strukturelle Replacement-/Normalize-Anker.\n- Annahmebasierte Regressionen werden in `docs/assumptions.md` verfolgt und mit gezielten Regressionstests plus CI-Gates validiert.\n- Die LibreOffice-basierte DOCX-Visualisierung nutzt eine gepinnte Build-Konfiguration auf macOS (`config/libreoffice-headless.json`); führe vor visuellen Allure-Evidenztests `npm run check:libreoffice` aus.\n- Maintainer: [Steven Obiajulu](https://www.linkedin.com/in/steven-obiajulu/) (am MIT ausgebildeter Maschinenbauingenieur; juristisch ausgebildet an Harvard Law).\n\n## So funktioniert es\n\n1. Schritt 1: Vorlage auswählen (36 Standardverträge)\n2. Schritt 2: Deine Angaben ausfüllen (interaktive Prompts oder MCP)\n3. Schritt 3: Professionell formatierte DOCX-Datei erhalten\n\nOpenAgreements unterstützt zwei Ausführungsmodi mit unterschiedlichen Vertrauensgrenzen:\n\n- Gehosteter Remote-MCP-Connector (`https://openagreements.org/api/mcp`) für schnelles Setup in Claude.\n- Vollständig lokale Paketausführung (`npx`, globale Installation oder lokales stdio-MCP-Paket) für machine-lokale Workflows.\n\nEs gibt keine globale Empfehlung für einen Standardmodus. Wähle je nach Dokument-Sensibilität, interner Policy und gewünschter Workflow-Geschwindigkeit. Siehe `docs/trust-checklist.md` für eine 60-Sekunden-Datenflussübersicht.\n\n### Schnelle Entscheidung\n\n- Wenn dein Dokument sensibel ist, nutze vollständig lokale Paketausführung.\n- Wenn du Bequemlichkeit priorisierst, nutze den gehosteten Remote-MCP-Connector.\n\n## Nutzung mit Claude Code\n\nOpenAgreements funktioniert als [Claude Code plugin](https://docs.anthropic.com/en/docs/claude-code/plugins) und [Agent Skill](https://agentskills.io). Keine Vorinstallation erforderlich — Claude lädt und startet die CLI bei Bedarf über `npx`.\n\n### Option 1: Agent Skill (empfohlen)\n\n```bash\nnpx skills add open-agreements/open-agreements\n```\n\nBitte Claude anschließend, einen Vertrag zu entwerfen:\n\n```\n\u003e Draft an NDA between Acme Corp and Beta Inc\n```\n\nClaude erkennt verfügbare Vorlagen, fragt Feldwerte interaktiv ab und rendert eine signierbereite DOCX-Datei.\n\n### Option 2: Gemini CLI Extension\n\n```bash\ngemini extensions install https://github.com/open-agreements/open-agreements\n```\n\nBitte Gemini anschließend, einen Vertrag zu entwerfen. Die Extension stellt MCP-Tools, Kontextdateien und Skills für Template-Discovery und Befüllung bereit.\n\n### Option 3: Direkt mit Claude Code\n\nWenn du Node.js \u003e= 20 hast, frage Claude einfach:\n\n```\n\u003e Fill the Common Paper mutual NDA for my company\n```\n\nClaude führt `npx -y open-agreements@latest list --json` zur Vorlagenerkennung aus und danach `npx -y open-agreements@latest fill \u003ctemplate\u003e` für die Ausgabe. Keine Installation.\n\n### Option 4: CLI\n\n```bash\n# Install globally\nnpm install -g open-agreements\n\n# List available templates\nopen-agreements list\n\n# Fill a template\nopen-agreements fill common-paper-mutual-nda -d values.json -o my-nda.docx\n```\n\n### Was passiert\n\n1. Claude führt `list --json` aus, um verfügbare Vorlagen und Felder zu erkennen\n2. Claude fragt Feldwerte ab (nach Abschnitten gruppiert, bis zu 4 Fragen pro Runde)\n3. Claude führt `fill \u003ctemplate\u003e` aus, um eine DOCX mit unverändertem Originalformat zu rendern\n4. Du prüfst und unterschreibst das Ausgabedokument\n\n## Nutzung mit Cursor\n\nDieses Repository enthält ein Cursor-Plugin-Manifest mit MCP-Verdrahtung:\n\n- Plugin manifest: `.cursor-plugin/plugin.json`\n- MCP config: `mcp.json`\n- Skill: `skills/open-agreements/SKILL.md`\n\nDas Standard-MCP-Setup in `mcp.json` enthält:\n\n- Gehosteten OpenAgreements-MCP-Connector (`https://openagreements.org/api/mcp`)\n- Lokalen Workspace-MCP-Server (`npx -y @open-agreements/contracts-workspace-mcp`)\n- Lokalen Template-Drafting-MCP-Server (`npx -y @open-agreements/contract-templates-mcp`)\n\nUm dieses Plugin im Cursor Marketplace zu veröffentlichen, reiche dieses Repository ein unter:\n\n- https://cursor.com/marketplace/publish\n\n## Vorlagen\n\n28 Vorlagen in drei Tiers. Führe `open-agreements list` aus, um das vollständige Inventar zu sehen.\n\n| Tier | Anzahl | Quelle | Funktionsweise |\n|------|-------|--------|--------------|\n| Interne Vorlagen | 17 | [Common Paper](https://commonpaper.com), [Bonterms](https://bonterms.com), OpenAgreements | Im Paket enthalten, CC BY 4.0 |\n| Externe Vorlagen | 4 | [Y Combinator](https://www.ycombinator.com/documents) | Unverändert vendored, CC BY-ND 4.0 |\n| Recipes | 7 | [NVCA](https://nvca.org/model-legal-documents/) | Bei Bedarf heruntergeladen (nicht redistributable) |\n\n**Interne Vorlagen** (NDAs, Cloud-Bedingungen, Beschäftigungsformulare, Contractor-Verträge usw.) sind CC BY 4.0 — wir liefern DOCX-Dateien mit `{tag}`-Platzhaltern.\n\n**Externe Vorlagen** (YC SAFEs) sind CC BY-ND 4.0 — wir übernehmen das Original unverändert. Die ausgefüllte Ausgabe ist ein transient derivative auf deinem Rechner.\n\n**Recipes** (NVCA-Finanzierungsdokumente) sind frei herunterladbar, aber nicht redistributable — wir liefern nur Transformationsanweisungen und laden die Source-DOCX zur Laufzeit von nvca.org.\n\n### Guidance-Extraktion\n\nSource-Dokumente enthalten Expertenkommentare — Fußnoten, Drafting-Hinweise, `[Comment: ...]`-Blöcke — von Domänenexpert:innen (z. B. Wertpapierrechtler:innen). Der Recipe-Cleaner entfernt diese Inhalte, um ein ausfüllbares Dokument zu erzeugen, kann sie aber auch als strukturiertes JSON extrahieren:\n\n```bash\nopen-agreements recipe clean source.docx -o cleaned.docx \\\n  --recipe nvca-indemnification-agreement \\\n  --extract-guidance guidance.json\n```\n\nDas erzeugt eine `guidance.json` mit jeder entfernten Fußnote, jedem Kommentar und jedem Drafting-Hinweis, getaggt nach Quelltyp und Dokumentposition. Guidance ist ein lokales Artefakt (wird nicht committed oder ausgeliefert), das AI-Agenten oder menschliche Autor:innen beim Ausfüllen referenzieren können. Siehe [Adding Recipes — Guidance Extraction](docs/adding-recipes.md#guidance-extraction) für Formatdetails.\n\n**Warum programmgesteuerte Extraktion?** Das Source-Dokument ist die Single Source of Truth. Nach einem Publisher-Update liefert erneute Extraktion ohne manuelle Arbeit aktuelle Guidance, bewahrt die exakte Sprache von Domänenexpert:innen und erfasst alles — eine KI kann ad hoc zusammenfassen, aber verworfene Inhalte nicht wiederherstellen.\n\nJede Vorlage ist ein eigenständiges Verzeichnis:\n\n```\ncontent/templates/\u003cname\u003e/\n├── template.docx     # DOCX with {tag} placeholders\n├── metadata.yaml     # Fields, license, source, attribution\n└── README.md         # Template-specific documentation\n```\n\n## CLI-Befehle\n\n### `fill \u003ctemplate\u003e`\n\nRendert eine ausgefüllte DOCX aus einer Vorlage.\n\n```bash\n# Using a JSON data file\nopen-agreements fill common-paper-mutual-nda -d data.json -o output.docx\n\n# Using inline --set flags\nopen-agreements fill common-paper-mutual-nda --set party_1_name=\"Acme Corp\" --set governing_law=\"Delaware\"\n```\n\n### `validate [template]`\n\nFührt die Validierungspipeline für eine oder alle Vorlagen aus.\n\n```bash\nopen-agreements validate                          # All templates\nopen-agreements validate common-paper-mutual-nda  # One template\n```\n\n### `list`\n\nZeigt verfügbare Vorlagen mit Lizenzinformationen und Feldanzahl.\n\n```bash\nopen-agreements list\n\n# Machine-readable JSON output (for agent skills and automation)\nopen-agreements list --json\n```\n\n## Contracts Workspace CLI (separates Paket)\n\nOpenAgreements enthält jetzt ein Schwesterpaket für Repository-/Workspace-Operationen:\n\n- Package: `@open-agreements/contracts-workspace`\n- Binary: `open-agreements-workspace`\n- Docs: `docs/contracts-workspace.md`\n\nDieses Paket ist bewusst von `open-agreements` getrennt, sodass Teams nutzen können:\n\n- nur Template-Befüllung\n- nur Workspace-Management\n- oder beides zusammen\n\nKernfunktionen des Workspace-Pakets:\n\n- topic-first `init`-Planung (minimale empfohlene Struktur mit Top-Level-Domänen)\n- Form-Katalog mit URL- und SHA-256-Validierung\n- YAML-Status-Indexierung und Linting mit dateinamengetriebenem `_executed`-Status\n\nDas v1-Modell ist rein dateisystembasiert und funktioniert in lokal synchronisierten Cloud-Drive-Ordnern (z. B. Google-Drive-Sync). Keine Drive-API-/OAuth-Integration erforderlich.\n\n## Lokales MCP für Workspace-Demo\n\nFür lokale Connector-Demos gibt es ein lokales stdio-MCP-Paket:\n\n- Package: `@open-agreements/contracts-workspace-mcp`\n- Binary: `open-agreements-workspace-mcp`\n- Docs: `docs/contracts-workspace.md`\n\nSchnellstart:\n\n```bash\nnpm run build:workspace-mcp\nnode packages/contracts-workspace-mcp/bin/open-agreements-workspace-mcp.js\n```\n\n## Lokales MCP für Template-Drafting\n\nFür lokale Gemini-/Cursor-Template-Drafting-Workflows nutze:\n\n- Package: `@open-agreements/contract-templates-mcp`\n- Binary: `open-agreements-contract-templates-mcp`\n\nSchnellstart:\n\n```bash\nnpm run build:contract-templates-mcp\nnode packages/contract-templates-mcp/bin/open-agreements-contract-templates-mcp.js\n```\n\n## Website (Vercel)\n\nEine statische Marketing-Site wird aus `site/` mit Eleventy erzeugt.\n\n- Entry points: `site/index.njk`, `site/templates.njk`, `site/template-detail.njk`\n- Styles: `site/styles.css`\n- Demo media: `site/assets/demo-fill-nda.gif`\n- Deployment config: `vercel.json`\n- Discovery outputs (generated during `npm run build:site`): `_site/llms.txt`, `_site/llms-full.txt`, `_site/sitemap.xml`, `_site/robots.txt`\n\nLokale Vorschau:\n\n```bash\nnpm run build:site\npython3 -m http.server 8080 --directory _site\n```\n\nÖffne dann `http://localhost:8080`.\n\nVercel-Deploy-Hinweise:\n\n- Importiere dieses Repository in Vercel\n- Belasse das Projekt-Root auf dem Repository-Root\n- Das enthaltene `vercel.json` deployt `_site/` als statische Ausgabe\n\n## Optionale Content-Roots (Future-Proofing)\n\nUm logische Entkopplung bei wachsenden Form-Bibliotheken zu unterstützen, kann `open-agreements` Inhalte aus zusätzlichen Roots laden über:\n\n- env var: `OPEN_AGREEMENTS_CONTENT_ROOTS`\n- format: pfadgetrennte Liste absoluter/relativer Verzeichnisse (z. B. `dirA:dirB` auf macOS/Linux)\n- erwartete Struktur unter jedem Root: `templates/`, `external/` und/oder `recipes/` (oder verschachtelt unter `content/`)\n\nLookup-Priorität:\n\n1. Roots in `OPEN_AGREEMENTS_CONTENT_ROOTS` (in der angegebenen Reihenfolge)\n2. gebündelter Package-Content (Standard-Fallback)\n\nSo bleiben Standardinstallationen einfach, während fortgeschrittene Nutzer große Content-Bibliotheken außerhalb des Kernpakets ablegen können.\n\n## Siehe auch\n\n- [safe-docx](https://github.com/UseJunior/safe-docx) — chirurgische Bearbeitung bestehender Word-Dokumente mit Coding-Agents (MCP-Server)\n- [UseJunior Developer Tools](https://usejunior.com/developer-tools/open-agreements) — Produktseite mit Installationsoptionen und Vorlagenkatalog\n\n## Mitwirken\n\nSiehe [CONTRIBUTING.md](CONTRIBUTING.md), um Vorlagen, Recipes und andere Verbesserungen hinzuzufügen.\n\n- [Adding templates](docs/adding-templates.md) (CC BY 4.0 / CC0-Quellen)\n- [Adding recipes](docs/adding-recipes.md) (nicht redistributable Quellen)\n- [Employment source policy](docs/employment-source-policy.md) (Trust- und Terms-Klassifikationen)\n- [Code of Conduct](CODE_OF_CONDUCT.md) (Community-Erwartungen und Durchsetzung)\n\n## Releasing\n\nReleases laufen automatisiert über GitHub Actions mit npm Trusted Publishing (OIDC) und aktivierter Provenance.\n\n1. Aktualisiere Versionen im Root-Package und in veröffentlichbaren MCP-Packages.\n2. Push Commit + Tag mit `git push origin main --tags`\n3. Führe den lokalen Gemini-Extension-Gate aus (nach `~/.gemini/extensions/open-agreements` kopieren/symlinken und prüfen, dass beide lokalen MCP-Server starten/antworten).\n4. Der `Release`-Workflow veröffentlicht vom Tag, nachdem Build, Validierung, Tests, isolierter Runtime-Smoke und Package-Checks gelaufen sind.\n\nWorkflow-Geländer:\n\n- Tag muss zu Root- und veröffentlichbaren Package-Versionen passen\n- Release-Commit muss in `origin/main` enthalten sein\n- Publish schlägt fehl, wenn eine Zielversion auf npm bereits existiert\n\n## Architektur\n\n- **Language**: TypeScript\n- **DOCX Engine**: [docx-templates](https://www.npmjs.com/package/docx-templates) (MIT)\n- **CLI**: [Commander.js](https://www.npmjs.com/package/commander)\n- **Validation**: [Zod](https://www.npmjs.com/package/zod) schemas\n- **Skill Pattern**: Agent-agnostic `ToolCommandAdapter` interface\n\n```\ncontent/                    # All content directories\n├── templates/              # Internal templates (CC BY 4.0)\n├── external/               # External templates (CC BY-ND 4.0)\n└── recipes/                # Recipes (downloaded at runtime)\n\nsrc/                        # TypeScript source + collocated unit tests\n├── cli/                    # Commander.js CLI\n├── commands/               # fill, validate, list, recipe, scan\n├── core/\n│   ├── engine.ts           # docx-templates wrapper\n│   ├── metadata.ts         # Zod schemas + loader\n│   ├── recipe/             # Recipe pipeline (clean → patch → fill → verify)\n│   ├── external/           # External template support\n│   ├── validation/         # template, license, output, recipe\n│   └── command-generation/\n│       ├── types.ts        # ToolCommandAdapter interface\n│       └── adapters/       # Claude Code adapter\n└── index.ts                # Public API\n\nintegration-tests/          # Integration and end-to-end tests\n```\n\n## Ressourcen\n\n- [Claude Code Documentation](https://docs.anthropic.com/en/docs/claude-code)\n- [Claude Code Plugins Guide](https://docs.anthropic.com/en/docs/claude-code/plugins)\n- [Agent Skills Specification](https://agentskills.io)\n\n## Lizenz\n\nMIT\n\nTemplate-Inhalte sind von ihren jeweiligen Autor:innen lizenziert — CC BY 4.0 (Common Paper, Bonterms), CC BY-ND 4.0 (Y Combinator) oder proprietär (NVCA, Laufzeit-Download). Siehe `metadata.yaml` jeder Vorlage für Details.\n\n## Haftungsausschluss\n\nDieses Tool erzeugt Dokumente aus Standardvorlagen. Es bietet keine Rechtsberatung. Eine Zugehörigkeit zu oder Billigung durch Common Paper, Bonterms, Y Combinator, NVCA oder andere Vorlagenquellen ist nicht impliziert. Konsultiere für Rechtsberatung eine Anwältin oder einen Anwalt.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-agreements%2Fopen-agreements","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopen-agreements%2Fopen-agreements","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-agreements%2Fopen-agreements/lists"}