open-agreements 0.2.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.de.md +371 -0
- package/README.es.md +371 -0
- package/README.md +30 -0
- package/README.pt-br.md +371 -0
- package/README.zh.md +371 -0
- package/content/templates/closing-checklist/template.docx +0 -0
- package/content/templates/common-paper-ai-addendum/README.md +18 -0
- package/content/templates/common-paper-ai-addendum/metadata.yaml +136 -0
- package/content/templates/common-paper-ai-addendum/replacements.json +5 -0
- package/content/templates/common-paper-ai-addendum/selections.json +62 -0
- package/content/templates/common-paper-ai-addendum/template.docx +0 -0
- package/content/templates/common-paper-ai-addendum-in-app/metadata.yaml +88 -0
- package/content/templates/common-paper-ai-addendum-in-app/replacements.json +5 -0
- package/content/templates/common-paper-ai-addendum-in-app/selections.json +62 -0
- package/content/templates/common-paper-amendment/README.md +18 -0
- package/content/templates/common-paper-amendment/metadata.yaml +48 -0
- package/content/templates/common-paper-amendment/template.docx +0 -0
- package/content/templates/common-paper-business-associate-agreement/README.md +20 -1
- package/content/templates/common-paper-business-associate-agreement/metadata.yaml +111 -3
- package/content/templates/common-paper-business-associate-agreement/replacements.json +2 -1
- package/content/templates/common-paper-business-associate-agreement/selections.json +38 -0
- package/content/templates/common-paper-business-associate-agreement/template.docx +0 -0
- package/content/templates/common-paper-cloud-service-agreement/README.md +18 -0
- package/content/templates/common-paper-cloud-service-agreement/metadata.yaml +48 -0
- package/content/templates/common-paper-cloud-service-agreement/template.docx +0 -0
- package/content/templates/common-paper-csa-with-ai/README.md +18 -0
- package/content/templates/common-paper-csa-with-ai/metadata.yaml +462 -2
- package/content/templates/common-paper-csa-with-ai/replacements.json +5 -2
- package/content/templates/common-paper-csa-with-ai/selections.json +291 -0
- package/content/templates/common-paper-csa-with-ai/template.docx +0 -0
- package/content/templates/common-paper-csa-with-sla/README.md +18 -0
- package/content/templates/common-paper-csa-with-sla/metadata.yaml +387 -2
- package/content/templates/common-paper-csa-with-sla/replacements.json +4 -2
- package/content/templates/common-paper-csa-with-sla/selections.json +257 -0
- package/content/templates/common-paper-csa-with-sla/template.docx +0 -0
- package/content/templates/common-paper-csa-without-sla/README.md +18 -0
- package/content/templates/common-paper-csa-without-sla/metadata.yaml +380 -2
- package/content/templates/common-paper-csa-without-sla/replacements.json +5 -2
- package/content/templates/common-paper-csa-without-sla/selections.json +250 -0
- package/content/templates/common-paper-csa-without-sla/template.docx +0 -0
- package/content/templates/common-paper-data-processing-agreement/README.md +16 -0
- package/content/templates/common-paper-data-processing-agreement/metadata.yaml +397 -3
- package/content/templates/common-paper-data-processing-agreement/replacements.json +2 -1
- package/content/templates/common-paper-data-processing-agreement/selections.json +211 -0
- package/content/templates/common-paper-data-processing-agreement/template.docx +0 -0
- package/content/templates/common-paper-design-partner-agreement/README.md +18 -0
- package/content/templates/common-paper-design-partner-agreement/metadata.yaml +99 -3
- package/content/templates/common-paper-design-partner-agreement/selections.json +27 -0
- package/content/templates/common-paper-design-partner-agreement/template.docx +0 -0
- package/content/templates/common-paper-independent-contractor-agreement/README.md +18 -0
- package/content/templates/common-paper-independent-contractor-agreement/clean.json +8 -0
- package/content/templates/common-paper-independent-contractor-agreement/metadata.yaml +52 -0
- package/content/templates/common-paper-independent-contractor-agreement/replacements.json +3 -0
- package/content/templates/common-paper-independent-contractor-agreement/template.docx +0 -0
- package/content/templates/common-paper-letter-of-intent/README.md +18 -0
- package/content/templates/common-paper-letter-of-intent/metadata.yaml +48 -0
- package/content/templates/common-paper-letter-of-intent/template.docx +0 -0
- package/content/templates/common-paper-mutual-nda/README.md +29 -7
- package/content/templates/common-paper-mutual-nda/metadata.yaml +48 -0
- package/content/templates/common-paper-mutual-nda/template.docx +0 -0
- package/content/templates/common-paper-one-way-nda/README.md +13 -0
- package/content/templates/common-paper-one-way-nda/metadata.yaml +24 -0
- package/content/templates/common-paper-one-way-nda/selections.json +38 -0
- package/content/templates/common-paper-one-way-nda/template.docx +0 -0
- package/content/templates/common-paper-order-form/README.md +18 -0
- package/content/templates/common-paper-order-form/metadata.yaml +115 -3
- package/content/templates/common-paper-order-form/replacements.json +5 -2
- package/content/templates/common-paper-order-form/selections.json +56 -0
- package/content/templates/common-paper-order-form/template.docx +0 -0
- package/content/templates/common-paper-order-form-with-sla/README.md +18 -0
- package/content/templates/common-paper-order-form-with-sla/metadata.yaml +149 -3
- package/content/templates/common-paper-order-form-with-sla/replacements.json +6 -2
- package/content/templates/common-paper-order-form-with-sla/selections.json +64 -0
- package/content/templates/common-paper-order-form-with-sla/template.docx +0 -0
- package/content/templates/common-paper-partnership-agreement/README.md +18 -0
- package/content/templates/common-paper-partnership-agreement/metadata.yaml +293 -4
- package/content/templates/common-paper-partnership-agreement/replacements.json +5 -2
- package/content/templates/common-paper-partnership-agreement/selections.json +138 -0
- package/content/templates/common-paper-partnership-agreement/template.docx +0 -0
- package/content/templates/common-paper-pilot-agreement/README.md +18 -0
- package/content/templates/common-paper-pilot-agreement/metadata.yaml +48 -0
- package/content/templates/common-paper-pilot-agreement/template.docx +0 -0
- package/content/templates/common-paper-professional-services-agreement/README.md +18 -0
- package/content/templates/common-paper-professional-services-agreement/metadata.yaml +338 -4
- package/content/templates/common-paper-professional-services-agreement/replacements.json +7 -4
- package/content/templates/common-paper-professional-services-agreement/selections.json +207 -0
- package/content/templates/common-paper-professional-services-agreement/template.docx +0 -0
- package/content/templates/common-paper-statement-of-work/README.md +18 -0
- package/content/templates/common-paper-statement-of-work/metadata.yaml +110 -2
- package/content/templates/common-paper-statement-of-work/replacements.json +4 -1
- package/content/templates/common-paper-statement-of-work/selections.json +55 -0
- package/content/templates/common-paper-statement-of-work/template.docx +0 -0
- package/content/templates/common-paper-term-sheet/README.md +18 -0
- package/content/templates/common-paper-term-sheet/metadata.yaml +48 -0
- package/content/templates/common-paper-term-sheet/template.docx +0 -0
- package/content/templates/working-group-list/template.docx +0 -0
- package/dist/commands/checklist.d.ts.map +1 -1
- package/dist/commands/checklist.js +2 -1
- package/dist/commands/checklist.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +1 -46
- package/dist/commands/list.js.map +1 -1
- package/dist/core/checklist/format-checklist-docx.d.ts +10 -0
- package/dist/core/checklist/format-checklist-docx.d.ts.map +1 -0
- package/dist/core/checklist/format-checklist-docx.js +321 -0
- package/dist/core/checklist/format-checklist-docx.js.map +1 -0
- package/dist/core/checklist/index.d.ts +1 -0
- package/dist/core/checklist/index.d.ts.map +1 -1
- package/dist/core/checklist/index.js +7 -3
- package/dist/core/checklist/index.js.map +1 -1
- package/dist/core/engine.d.ts +1 -0
- package/dist/core/engine.d.ts.map +1 -1
- package/dist/core/engine.js +72 -11
- package/dist/core/engine.js.map +1 -1
- package/dist/core/selector.d.ts +2 -0
- package/dist/core/selector.d.ts.map +1 -1
- package/dist/core/selector.js +181 -39
- package/dist/core/selector.js.map +1 -1
- package/dist/core/template-listing.d.ts +40 -0
- package/dist/core/template-listing.d.ts.map +1 -0
- package/dist/core/template-listing.js +91 -0
- package/dist/core/template-listing.js.map +1 -0
- package/dist/core/validation/template.d.ts.map +1 -1
- package/dist/core/validation/template.js +10 -2
- package/dist/core/validation/template.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/package.json +8 -2
- package/skills/iso-27001-evidence-collection/CONNECTORS.md +25 -9
- package/skills/iso-27001-evidence-collection/SKILL.md +10 -6
- package/skills/iso-27001-internal-audit/CONNECTORS.md +25 -9
- package/skills/iso-27001-internal-audit/SKILL.md +12 -9
- package/skills/soc2-readiness/CONNECTORS.md +25 -9
- package/skills/soc2-readiness/SKILL.md +17 -5
- package/skills/soc2-readiness/rules/change-vendor-management.md +104 -0
- package/skills/soc2-readiness/rules/communication-info.md +85 -0
- package/skills/soc2-readiness/rules/control-activities.md +95 -0
- package/skills/soc2-readiness/rules/control-environment.md +126 -0
- package/skills/soc2-readiness/rules/logical-access.md +264 -0
- package/skills/soc2-readiness/rules/monitoring-activities.md +66 -0
- package/skills/soc2-readiness/rules/optional-categories.md +264 -0
- package/skills/soc2-readiness/rules/privacy-criteria.md +359 -0
- package/skills/soc2-readiness/rules/risk-assessment.md +100 -0
- package/skills/soc2-readiness/rules/system-operations.md +170 -0
- package/skills/soc2-readiness/rules/trust-services.md +0 -230
package/README.es.md
ADDED
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
# OpenAgreements
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/open-agreements)
|
|
4
|
+
[](https://npmjs.org/package/open-agreements)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
[](https://skills.sh)
|
|
7
|
+
[](https://github.com/open-agreements/open-agreements/actions/workflows/ci.yml)
|
|
8
|
+
[](https://openagreements.openstatus.dev/)
|
|
9
|
+
[](https://app.codecov.io/gh/open-agreements/open-agreements)
|
|
10
|
+
[](https://github.com/open-agreements/open-agreements/stargazers)
|
|
11
|
+
[](https://vitest.dev/)
|
|
12
|
+
[](./scripts/validate_openspec_coverage.mjs)
|
|
13
|
+
[](https://socket.dev/npm/package/open-agreements)
|
|
14
|
+
[](https://packagephobia.com/result?p=open-agreements)
|
|
15
|
+
|
|
16
|
+
[English](./README.md) | [Español](./README.es.md) | [简体中文](./README.zh.md) | [Português (Brasil)](./README.pt-br.md) | [Deutsch](./README.de.md)
|
|
17
|
+
|
|
18
|
+
> **Nota de traducción:** `README.md` en inglés es la fuente canónica de verdad. Esta traducción puede tener un pequeño retraso. Los cambios importantes del README en inglés deben propagarse en un plazo de 72 horas.
|
|
19
|
+
|
|
20
|
+
<!-- TODO: Add OpenSSF Scorecard badge once repo is indexed at securityscorecards.dev -->
|
|
21
|
+
<!-- TODO: Add OpenSSF Best Practices badge after registration at bestpractices.dev -->
|
|
22
|
+
<!-- TODO: Re-evaluate Snyk badge — Advisor migrated to security.snyk.io (July 2024) -->
|
|
23
|
+
|
|
24
|
+
<p align="center">
|
|
25
|
+
<img 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">
|
|
26
|
+
</p>
|
|
27
|
+
|
|
28
|
+
> *Demo: Claude completa un Mutual NDA de Common Paper en menos de 2 minutos. Acelerado para brevedad.*
|
|
29
|
+
|
|
30
|
+
Completa plantillas estándar de acuerdos legales y genera archivos DOCX listos para firma. Las plantillas cubren NDAs, términos cloud, documentos laborales, acuerdos con contratistas, SAFEs y documentos de financiamiento NVCA.
|
|
31
|
+
|
|
32
|
+
Creado por el equipo detrás de [UseJunior.com](https://usejunior.com) — en producción en firmas Am Law 100.
|
|
33
|
+
|
|
34
|
+
## Calidad y señales de confianza
|
|
35
|
+
|
|
36
|
+
- CI se ejecuta en pull requests y en pushes a `main`.
|
|
37
|
+
- La salud del servicio en vivo se publica a través de OpenStatus en `openagreements.openstatus.dev`.
|
|
38
|
+
- La cobertura se publica en Codecov con compuertas de patch/proyecto definidas en el repositorio en `codecov.yml`.
|
|
39
|
+
- El framework de pruebas JS activo es Vitest, con resultados JUnit subidos para análisis de pruebas en Codecov.
|
|
40
|
+
- La trazabilidad de escenarios de OpenSpec se aplica mediante `npm run check:spec-coverage`. Para exportar una matriz local, ejecuta `npm run check:spec-coverage -- --write-matrix integration-tests/OPENSPEC_TRACEABILITY.md`.
|
|
41
|
+
- El canario de deriva de fuentes de recetas (`npm run check:source-drift`) verifica el hash esperado de la fuente junto con anclas estructurales de reemplazo/normalización.
|
|
42
|
+
- Las regresiones a nivel de supuestos se rastrean en `docs/assumptions.md` y se validan con pruebas de regresión dirigidas + compuertas de CI.
|
|
43
|
+
- El renderizado visual DOCX con LibreOffice usa una configuración fijada en macOS (`config/libreoffice-headless.json`); ejecuta `npm run check:libreoffice` antes de pruebas visuales de evidencia de Allure.
|
|
44
|
+
- Maintainer: [Steven Obiajulu](https://www.linkedin.com/in/steven-obiajulu/) (ingeniero mecánico formado en MIT; abogado formado en Harvard Law).
|
|
45
|
+
|
|
46
|
+
## Cómo funciona
|
|
47
|
+
|
|
48
|
+
1. Paso 1: Elige una plantilla (36 acuerdos estándar)
|
|
49
|
+
2. Paso 2: Completa tus datos (prompts interactivos o MCP)
|
|
50
|
+
3. Paso 3: Obtén un DOCX con formato profesional
|
|
51
|
+
|
|
52
|
+
OpenAgreements admite dos modos de ejecución con límites de confianza diferentes:
|
|
53
|
+
|
|
54
|
+
- Conector MCP remoto alojado (`https://openagreements.ai/api/mcp`) para configuración rápida en Claude.
|
|
55
|
+
- Ejecución totalmente local del paquete (`npx`, instalación global o paquete MCP local por stdio) para flujos de trabajo locales en tu máquina.
|
|
56
|
+
|
|
57
|
+
No existe una recomendación de modo global por defecto. Elige según sensibilidad del documento, políticas internas y necesidades de velocidad del flujo de trabajo. Consulta `docs/trust-checklist.md` para un resumen de flujo de datos en 60 segundos.
|
|
58
|
+
|
|
59
|
+
### Decisión rápida
|
|
60
|
+
|
|
61
|
+
- Si tu documento es sensible, usa ejecución totalmente local del paquete.
|
|
62
|
+
- Si priorizas conveniencia, usa el conector MCP remoto alojado.
|
|
63
|
+
|
|
64
|
+
## Uso con Claude Code
|
|
65
|
+
|
|
66
|
+
OpenAgreements funciona como [plugin de Claude Code](https://docs.anthropic.com/en/docs/claude-code/plugins) y [Agent Skill](https://agentskills.io). No se requiere instalación previa: Claude descarga y ejecuta el CLI bajo demanda vía `npx`.
|
|
67
|
+
|
|
68
|
+
### Opción 1: Agent Skill (recomendado)
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
npx skills add open-agreements/open-agreements
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Luego pide a Claude que redacte un acuerdo:
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
> Draft an NDA between Acme Corp and Beta Inc
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Claude descubre las plantillas disponibles, te entrevista para obtener los valores de campos y genera un DOCX listo para firma.
|
|
81
|
+
|
|
82
|
+
### Opción 2: Extensión Gemini CLI
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
gemini extensions install https://github.com/open-agreements/open-agreements
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Luego pide a Gemini que redacte un acuerdo. La extensión proporciona herramientas MCP, archivos de contexto y skills para descubrimiento y llenado de plantillas.
|
|
89
|
+
|
|
90
|
+
### Opción 3: Directo con Claude Code
|
|
91
|
+
|
|
92
|
+
Si tienes Node.js >= 20, solo pídeselo a Claude:
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
> Fill the Common Paper mutual NDA for my company
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Claude ejecuta `npx -y open-agreements@latest list --json` para descubrir plantillas, y luego `npx -y open-agreements@latest fill <template>` para generar el resultado. Cero instalación.
|
|
99
|
+
|
|
100
|
+
### Opción 4: CLI
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
# Install globally
|
|
104
|
+
npm install -g open-agreements
|
|
105
|
+
|
|
106
|
+
# List available templates
|
|
107
|
+
open-agreements list
|
|
108
|
+
|
|
109
|
+
# Fill a template
|
|
110
|
+
open-agreements fill common-paper-mutual-nda -d values.json -o my-nda.docx
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Qué sucede
|
|
114
|
+
|
|
115
|
+
1. Claude ejecuta `list --json` para descubrir plantillas disponibles y sus campos
|
|
116
|
+
2. Claude te entrevista para obtener valores de campos (agrupados por sección, hasta 4 preguntas por ronda)
|
|
117
|
+
3. Claude ejecuta `fill <template>` para generar un DOCX preservando todo el formato original
|
|
118
|
+
4. Revisas y firmas el documento de salida
|
|
119
|
+
|
|
120
|
+
## Uso con Cursor
|
|
121
|
+
|
|
122
|
+
Este repositorio incluye un manifiesto de plugin de Cursor con integración MCP:
|
|
123
|
+
|
|
124
|
+
- Plugin manifest: `.cursor-plugin/plugin.json`
|
|
125
|
+
- MCP config: `mcp.json`
|
|
126
|
+
- Skill: `skills/open-agreements/SKILL.md`
|
|
127
|
+
|
|
128
|
+
La configuración MCP por defecto en `mcp.json` incluye:
|
|
129
|
+
|
|
130
|
+
- Conector MCP OpenAgreements alojado (`https://openagreements.ai/api/mcp`)
|
|
131
|
+
- Servidor MCP local de workspace (`npx -y @open-agreements/contracts-workspace-mcp`)
|
|
132
|
+
- Servidor MCP local para redacción de plantillas (`npx -y @open-agreements/contract-templates-mcp`)
|
|
133
|
+
|
|
134
|
+
Para publicar este plugin en Cursor Marketplace, envía este repositorio en:
|
|
135
|
+
|
|
136
|
+
- https://cursor.com/marketplace/publish
|
|
137
|
+
|
|
138
|
+
## Plantillas
|
|
139
|
+
|
|
140
|
+
28 plantillas en tres niveles. Ejecuta `open-agreements list` para el inventario completo.
|
|
141
|
+
|
|
142
|
+
| Nivel | Cantidad | Fuente | Cómo funciona |
|
|
143
|
+
|------|-------|--------|--------------|
|
|
144
|
+
| Plantillas internas | 17 | [Common Paper](https://commonpaper.com), [Bonterms](https://bonterms.com), OpenAgreements | Incluidas en el paquete, CC BY 4.0 |
|
|
145
|
+
| Plantillas externas | 4 | [Y Combinator](https://www.ycombinator.com/documents) | Vendorizadas sin cambios, CC BY-ND 4.0 |
|
|
146
|
+
| Recipes | 7 | [NVCA](https://nvca.org/model-legal-documents/) | Se descargan bajo demanda (no redistribuibles) |
|
|
147
|
+
|
|
148
|
+
**Plantillas internas** (NDAs, términos cloud, formularios laborales, acuerdos con contratistas, etc.) están bajo CC BY 4.0: enviamos el DOCX con placeholders `{tag}`.
|
|
149
|
+
|
|
150
|
+
**Plantillas externas** (YC SAFEs) están bajo CC BY-ND 4.0: vendorizamos el original sin cambios. El resultado completado es un derivado transitorio en tu máquina.
|
|
151
|
+
|
|
152
|
+
**Recipes** (documentos de financiamiento NVCA) se pueden descargar libremente pero no son redistribuibles: enviamos solo instrucciones de transformación y descargamos el DOCX fuente desde nvca.org en tiempo de ejecución.
|
|
153
|
+
|
|
154
|
+
### Extracción de guidance
|
|
155
|
+
|
|
156
|
+
Los documentos fuente contienen comentarios expertos (notas al pie, notas de redacción, bloques `[Comment: ...]`) escritos por especialistas del dominio (por ejemplo, abogados de valores). El limpiador de recipes elimina ese contenido para producir un documento rellenable, pero también puede extraerlo como JSON estructurado:
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
open-agreements recipe clean source.docx -o cleaned.docx \
|
|
160
|
+
--recipe nvca-indemnification-agreement \
|
|
161
|
+
--extract-guidance guidance.json
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Esto produce un `guidance.json` con cada nota al pie, comentario y nota de redacción removidos, etiquetados por tipo de fuente y posición en el documento. El guidance es un artefacto solo local (no se commitea ni se distribuye) que agentes de IA o autores humanos pueden consultar al completar el formulario. Consulta [Adding Recipes — Guidance Extraction](docs/adding-recipes.md#guidance-extraction) para detalles de formato.
|
|
165
|
+
|
|
166
|
+
**¿Por qué extracción programática?** El documento fuente es la fuente única de verdad. Re-ejecutar la extracción tras una actualización del editor produce guidance fresco sin esfuerzo manual, preserva el lenguaje exacto de expertos de dominio y captura todo: una IA puede resumir sobre la marcha, pero no puede recuperar contenido descartado.
|
|
167
|
+
|
|
168
|
+
Cada plantilla es un directorio autocontenido:
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
content/templates/<name>/
|
|
172
|
+
├── template.docx # DOCX with {tag} placeholders
|
|
173
|
+
├── metadata.yaml # Fields, license, source, attribution
|
|
174
|
+
└── README.md # Template-specific documentation
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## Comandos CLI
|
|
178
|
+
|
|
179
|
+
### `fill <template>`
|
|
180
|
+
|
|
181
|
+
Genera un DOCX completado desde una plantilla.
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
# Using a JSON data file
|
|
185
|
+
open-agreements fill common-paper-mutual-nda -d data.json -o output.docx
|
|
186
|
+
|
|
187
|
+
# Using inline --set flags
|
|
188
|
+
open-agreements fill common-paper-mutual-nda --set party_1_name="Acme Corp" --set governing_law="Delaware"
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### `validate [template]`
|
|
192
|
+
|
|
193
|
+
Ejecuta el pipeline de validación sobre una o todas las plantillas.
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
open-agreements validate # All templates
|
|
197
|
+
open-agreements validate common-paper-mutual-nda # One template
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### `list`
|
|
201
|
+
|
|
202
|
+
Muestra las plantillas disponibles con información de licencia y conteo de campos.
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
open-agreements list
|
|
206
|
+
|
|
207
|
+
# Machine-readable JSON output (for agent skills and automation)
|
|
208
|
+
open-agreements list --json
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## CLI de Contracts Workspace (paquete separado)
|
|
212
|
+
|
|
213
|
+
OpenAgreements ahora incluye un paquete hermano para operaciones de repositorio/workspace:
|
|
214
|
+
|
|
215
|
+
- Package: `@open-agreements/contracts-workspace`
|
|
216
|
+
- Binary: `open-agreements-workspace`
|
|
217
|
+
- Docs: `docs/contracts-workspace.md`
|
|
218
|
+
|
|
219
|
+
Este paquete está intencionalmente separado de `open-agreements` para que los equipos puedan adoptar:
|
|
220
|
+
|
|
221
|
+
- solo llenado de plantillas
|
|
222
|
+
- solo gestión de workspace
|
|
223
|
+
- o ambos juntos
|
|
224
|
+
|
|
225
|
+
Funciones principales de workspace:
|
|
226
|
+
|
|
227
|
+
- planificación `init` orientada por temas (estructura mínima sugerida con dominios de nivel superior)
|
|
228
|
+
- catálogo de formularios con validación de URL + SHA-256
|
|
229
|
+
- indexación y linting de estado YAML con estado `_executed` basado en nombre de archivo
|
|
230
|
+
|
|
231
|
+
El modelo v1 es solo de sistema de archivos y funciona en carpetas de nube sincronizadas localmente (por ejemplo, sincronización de Google Drive). No se requiere integración Drive API/OAuth.
|
|
232
|
+
|
|
233
|
+
## MCP local para demo de workspace
|
|
234
|
+
|
|
235
|
+
Para demos de conectores locales, hay un paquete MCP local por stdio:
|
|
236
|
+
|
|
237
|
+
- Package: `@open-agreements/contracts-workspace-mcp`
|
|
238
|
+
- Binary: `open-agreements-workspace-mcp`
|
|
239
|
+
- Docs: `docs/contracts-workspace.md`
|
|
240
|
+
|
|
241
|
+
Inicio rápido:
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
npm run build:workspace-mcp
|
|
245
|
+
node packages/contracts-workspace-mcp/bin/open-agreements-workspace-mcp.js
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
## MCP local para redacción de plantillas
|
|
249
|
+
|
|
250
|
+
Para flujos locales Gemini/Cursor de redacción de plantillas, usa:
|
|
251
|
+
|
|
252
|
+
- Package: `@open-agreements/contract-templates-mcp`
|
|
253
|
+
- Binary: `open-agreements-contract-templates-mcp`
|
|
254
|
+
|
|
255
|
+
Inicio rápido:
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
npm run build:contract-templates-mcp
|
|
259
|
+
node packages/contract-templates-mcp/bin/open-agreements-contract-templates-mcp.js
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
## Sitio web (Vercel)
|
|
263
|
+
|
|
264
|
+
Un sitio de marketing estático se genera desde `site/` con Eleventy.
|
|
265
|
+
|
|
266
|
+
- Entry points: `site/index.njk`, `site/templates.njk`, `site/template-detail.njk`
|
|
267
|
+
- Styles: `site/styles.css`
|
|
268
|
+
- Demo media: `site/assets/demo-fill-nda.gif`
|
|
269
|
+
- Deployment config: `vercel.json`
|
|
270
|
+
- Discovery outputs (generated during `npm run build:site`): `_site/llms.txt`, `_site/llms-full.txt`, `_site/sitemap.xml`, `_site/robots.txt`
|
|
271
|
+
|
|
272
|
+
Vista previa local:
|
|
273
|
+
|
|
274
|
+
```bash
|
|
275
|
+
npm run build:site
|
|
276
|
+
python3 -m http.server 8080 --directory _site
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
Luego abre `http://localhost:8080`.
|
|
280
|
+
|
|
281
|
+
Notas de despliegue en Vercel:
|
|
282
|
+
|
|
283
|
+
- Importa este repositorio en Vercel
|
|
284
|
+
- Mantén la raíz del proyecto como la raíz del repositorio
|
|
285
|
+
- El `vercel.json` incluido despliega `_site/` como salida estática
|
|
286
|
+
|
|
287
|
+
## Raíces de contenido opcionales (preparado para futuro)
|
|
288
|
+
|
|
289
|
+
Para soportar desacoplamiento lógico a medida que crecen las bibliotecas de formularios, `open-agreements` puede cargar contenido desde raíces adicionales mediante:
|
|
290
|
+
|
|
291
|
+
- env var: `OPEN_AGREEMENTS_CONTENT_ROOTS`
|
|
292
|
+
- format: lista delimitada por separador de rutas de directorios absolutos/relativos (por ejemplo, `dirA:dirB` en macOS/Linux)
|
|
293
|
+
- estructura esperada bajo cada raíz: `templates/`, `external/`, y/o `recipes/` (o anidados bajo `content/`)
|
|
294
|
+
|
|
295
|
+
La precedencia de búsqueda es:
|
|
296
|
+
|
|
297
|
+
1. raíces en `OPEN_AGREEMENTS_CONTENT_ROOTS` (en el orden listado)
|
|
298
|
+
2. contenido del paquete incluido (fallback por defecto)
|
|
299
|
+
|
|
300
|
+
Esto mantiene simples las instalaciones por defecto y permite a usuarios avanzados mover bibliotecas de contenido grandes fuera del paquete principal.
|
|
301
|
+
|
|
302
|
+
## Contribuir
|
|
303
|
+
|
|
304
|
+
Consulta [CONTRIBUTING.md](CONTRIBUTING.md) para agregar plantillas, recipes y otras mejoras.
|
|
305
|
+
|
|
306
|
+
- [Adding templates](docs/adding-templates.md) (CC BY 4.0 / fuentes CC0)
|
|
307
|
+
- [Adding recipes](docs/adding-recipes.md) (fuentes no redistribuibles)
|
|
308
|
+
- [Employment source policy](docs/employment-source-policy.md) (clasificaciones de confianza y términos)
|
|
309
|
+
- [Code of Conduct](CODE_OF_CONDUCT.md) (expectativas de comunidad y cumplimiento)
|
|
310
|
+
|
|
311
|
+
## Lanzamientos
|
|
312
|
+
|
|
313
|
+
Los lanzamientos están automatizados mediante GitHub Actions usando publicación confiable de npm (OIDC) con provenance habilitado.
|
|
314
|
+
|
|
315
|
+
1. Actualiza versiones en el paquete raíz + paquetes MCP publicables.
|
|
316
|
+
2. Haz push del commit + etiqueta con `git push origin main --tags`
|
|
317
|
+
3. Ejecuta la compuerta local de extensión Gemini (copia/symlink en `~/.gemini/extensions/open-agreements` y verifica que ambos servidores MCP locales inicien/respondan).
|
|
318
|
+
4. El workflow `Release` publica desde la etiqueta después de ejecutar build, validación, pruebas, smoke de runtime aislado y chequeos de paquete.
|
|
319
|
+
|
|
320
|
+
Compuertas del workflow:
|
|
321
|
+
|
|
322
|
+
- la etiqueta debe coincidir con las versiones del paquete raíz + paquetes publicables
|
|
323
|
+
- el commit de release debe estar contenido en `origin/main`
|
|
324
|
+
- la publicación falla si alguna versión objetivo en npm ya existe
|
|
325
|
+
|
|
326
|
+
## Arquitectura
|
|
327
|
+
|
|
328
|
+
- **Language**: TypeScript
|
|
329
|
+
- **DOCX Engine**: [docx-templates](https://www.npmjs.com/package/docx-templates) (MIT)
|
|
330
|
+
- **CLI**: [Commander.js](https://www.npmjs.com/package/commander)
|
|
331
|
+
- **Validation**: [Zod](https://www.npmjs.com/package/zod) schemas
|
|
332
|
+
- **Skill Pattern**: Agent-agnostic `ToolCommandAdapter` interface
|
|
333
|
+
|
|
334
|
+
```
|
|
335
|
+
content/ # All content directories
|
|
336
|
+
├── templates/ # Internal templates (CC BY 4.0)
|
|
337
|
+
├── external/ # External templates (CC BY-ND 4.0)
|
|
338
|
+
└── recipes/ # Recipes (downloaded at runtime)
|
|
339
|
+
|
|
340
|
+
src/ # TypeScript source + collocated unit tests
|
|
341
|
+
├── cli/ # Commander.js CLI
|
|
342
|
+
├── commands/ # fill, validate, list, recipe, scan
|
|
343
|
+
├── core/
|
|
344
|
+
│ ├── engine.ts # docx-templates wrapper
|
|
345
|
+
│ ├── metadata.ts # Zod schemas + loader
|
|
346
|
+
│ ├── recipe/ # Recipe pipeline (clean → patch → fill → verify)
|
|
347
|
+
│ ├── external/ # External template support
|
|
348
|
+
│ ├── validation/ # template, license, output, recipe
|
|
349
|
+
│ └── command-generation/
|
|
350
|
+
│ ├── types.ts # ToolCommandAdapter interface
|
|
351
|
+
│ └── adapters/ # Claude Code adapter
|
|
352
|
+
└── index.ts # Public API
|
|
353
|
+
|
|
354
|
+
integration-tests/ # Integration and end-to-end tests
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
## Recursos
|
|
358
|
+
|
|
359
|
+
- [Claude Code Documentation](https://docs.anthropic.com/en/docs/claude-code)
|
|
360
|
+
- [Claude Code Plugins Guide](https://docs.anthropic.com/en/docs/claude-code/plugins)
|
|
361
|
+
- [Agent Skills Specification](https://agentskills.io)
|
|
362
|
+
|
|
363
|
+
## Licencia
|
|
364
|
+
|
|
365
|
+
MIT
|
|
366
|
+
|
|
367
|
+
El contenido de plantillas está licenciado por sus respectivos autores: CC BY 4.0 (Common Paper, Bonterms), CC BY-ND 4.0 (Y Combinator) o propietario (NVCA, descargado en tiempo de ejecución). Consulta `metadata.yaml` de cada plantilla para más detalles.
|
|
368
|
+
|
|
369
|
+
## Descargo de responsabilidad
|
|
370
|
+
|
|
371
|
+
Esta herramienta genera documentos a partir de plantillas estándar. No proporciona asesoría legal. No se implica afiliación ni respaldo por parte de Common Paper, Bonterms, Y Combinator, NVCA ni ninguna fuente de plantillas. Consulta a un abogado para recibir orientación legal.
|
package/README.md
CHANGED
|
@@ -280,6 +280,36 @@ Vercel deploy notes:
|
|
|
280
280
|
- Keep project root as repo root
|
|
281
281
|
- The included `vercel.json` deploys `_site/` as static output
|
|
282
282
|
|
|
283
|
+
## Compliance & Audit Skills
|
|
284
|
+
|
|
285
|
+
Open Agreements includes AI agent skills for ISO 27001 and SOC 2 compliance work. These are markdown-only procedural skills — no scripts executed, no secrets required, evidence stays local. Developed with [Hazel Castro](https://internalisoaudit.com) (ISO 27001 Lead Auditor, 14+ years, 100+ audits).
|
|
286
|
+
|
|
287
|
+
### ISO 27001 Evidence Collection
|
|
288
|
+
|
|
289
|
+
Collect, organize, and validate evidence for ISO 27001 and SOC 2 audits. API-first approach with CLI commands for major cloud platforms. Produces timestamped, auditor-ready evidence packages.
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
npx skills add open-agreements/open-agreements --skill iso-27001-evidence-collection
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
### ISO 27001 Internal Audit
|
|
296
|
+
|
|
297
|
+
Run a structured internal audit against ISO 27001:2022. Walk through controls by domain, identify gaps, collect evidence, and generate findings with corrective action recommendations.
|
|
298
|
+
|
|
299
|
+
```bash
|
|
300
|
+
npx skills add open-agreements/open-agreements --skill iso-27001-internal-audit
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### SOC 2 Readiness
|
|
304
|
+
|
|
305
|
+
Assess SOC 2 Type II readiness. Map Trust Services Criteria to controls, identify gaps, and build a prioritized remediation plan with NIST SP 800-53 cross-mapping.
|
|
306
|
+
|
|
307
|
+
```bash
|
|
308
|
+
npx skills add open-agreements/open-agreements --skill soc2-readiness
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
All three skills use NIST SP 800-53 (public domain) as their canonical reference. Browse the full skill catalog at [skills.sh/open-agreements](https://skills.sh/open-agreements).
|
|
312
|
+
|
|
283
313
|
## Optional Content Roots (Future-Proofing)
|
|
284
314
|
|
|
285
315
|
To support logical unbundling as form libraries grow, `open-agreements` can load content from additional roots via:
|