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.pt-br.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
|
+
> **Aviso de tradução:** o `README.md` em inglês é a fonte canônica de verdade. Esta tradução pode ter pequeno atraso. Atualizações importantes do README em inglês devem ser propagadas em até 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 preenche um NDA mútuo da Common Paper em menos de 2 minutos. Acelerado para brevidade.*
|
|
29
|
+
|
|
30
|
+
Preencha modelos padrão de acordos legais e gere arquivos DOCX prontos para assinatura. Os modelos cobrem NDAs, termos de cloud, documentos de trabalho, acordos com contratados, SAFEs e documentos de financiamento NVCA.
|
|
31
|
+
|
|
32
|
+
Construído pela equipe por trás da [UseJunior.com](https://usejunior.com) — em produção em escritórios Am Law 100.
|
|
33
|
+
|
|
34
|
+
## Qualidade e sinais de confiança
|
|
35
|
+
|
|
36
|
+
- O CI roda em pull requests e em pushes para `main`.
|
|
37
|
+
- A saúde do serviço em produção é publicada via OpenStatus em `openagreements.openstatus.dev`.
|
|
38
|
+
- A cobertura é publicada no Codecov com gates de patch/projeto definidos no repositório em `codecov.yml`.
|
|
39
|
+
- O framework de testes JS ativo é Vitest, com resultados JUnit enviados para analytics de testes no Codecov.
|
|
40
|
+
- A rastreabilidade de cenários OpenSpec é aplicada com `npm run check:spec-coverage`. Para exportar uma matriz local, rode `npm run check:spec-coverage -- --write-matrix integration-tests/OPENSPEC_TRACEABILITY.md`.
|
|
41
|
+
- O canário de source drift de recipes (`npm run check:source-drift`) valida o hash de origem esperado e âncoras estruturais de replace/normalize.
|
|
42
|
+
- Regressões em nível de suposição são rastreadas em `docs/assumptions.md` e validadas por testes de regressão direcionados + gates de CI.
|
|
43
|
+
- A renderização visual de DOCX com LibreOffice usa configuração fixada no macOS (`config/libreoffice-headless.json`); rode `npm run check:libreoffice` antes de testes visuais de evidência do Allure.
|
|
44
|
+
- Maintainer: [Steven Obiajulu](https://www.linkedin.com/in/steven-obiajulu/) (engenheiro mecânico formado no MIT; advogado com formação em Harvard Law).
|
|
45
|
+
|
|
46
|
+
## Como funciona
|
|
47
|
+
|
|
48
|
+
1. Etapa 1: escolha um modelo (36 acordos padrão)
|
|
49
|
+
2. Etapa 2: preencha seus dados (prompts interativos ou MCP)
|
|
50
|
+
3. Etapa 3: receba um DOCX com formatação profissional
|
|
51
|
+
|
|
52
|
+
O OpenAgreements oferece dois modos de execução com limites de confiança diferentes:
|
|
53
|
+
|
|
54
|
+
- Conector MCP remoto hospedado (`https://openagreements.ai/api/mcp`) para setup rápido no Claude.
|
|
55
|
+
- Execução totalmente local do pacote (`npx`, instalação global ou pacote MCP local por stdio) para fluxos de trabalho na própria máquina.
|
|
56
|
+
|
|
57
|
+
Não há recomendação global de modo padrão. Escolha com base na sensibilidade do documento, política interna e velocidade desejada no fluxo de trabalho. Veja `docs/trust-checklist.md` para um resumo de fluxo de dados em 60 segundos.
|
|
58
|
+
|
|
59
|
+
### Decisão rápida
|
|
60
|
+
|
|
61
|
+
- Se seu documento é sensível, use execução totalmente local do pacote.
|
|
62
|
+
- Se você prioriza conveniência, use o conector MCP remoto hospedado.
|
|
63
|
+
|
|
64
|
+
## Uso com Claude Code
|
|
65
|
+
|
|
66
|
+
OpenAgreements funciona como [plugin do Claude Code](https://docs.anthropic.com/en/docs/claude-code/plugins) e [Agent Skill](https://agentskills.io). Não é necessária pré-instalação: o Claude baixa e executa o CLI sob demanda via `npx`.
|
|
67
|
+
|
|
68
|
+
### Opção 1: Agent Skill (recomendado)
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
npx skills add open-agreements/open-agreements
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Depois, peça ao Claude para redigir um acordo:
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
> Draft an NDA between Acme Corp and Beta Inc
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
O Claude descobre os modelos disponíveis, entrevista você para coletar valores de campos e gera um DOCX pronto para assinatura.
|
|
81
|
+
|
|
82
|
+
### Opção 2: Extensão Gemini CLI
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
gemini extensions install https://github.com/open-agreements/open-agreements
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Depois, peça ao Gemini para redigir um acordo. A extensão fornece ferramentas MCP, arquivos de contexto e skills para descoberta e preenchimento de modelos.
|
|
89
|
+
|
|
90
|
+
### Opção 3: Direto com Claude Code
|
|
91
|
+
|
|
92
|
+
Se você tiver Node.js >= 20, basta pedir ao Claude:
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
> Fill the Common Paper mutual NDA for my company
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
O Claude executa `npx -y open-agreements@latest list --json` para descobrir modelos e depois `npx -y open-agreements@latest fill <template>` para gerar a saída. Sem instalação.
|
|
99
|
+
|
|
100
|
+
### Opção 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
|
+
### O que acontece
|
|
114
|
+
|
|
115
|
+
1. O Claude executa `list --json` para descobrir modelos disponíveis e seus campos
|
|
116
|
+
2. O Claude entrevista você para coletar valores de campos (agrupados por seção, até 4 perguntas por rodada)
|
|
117
|
+
3. O Claude executa `fill <template>` para gerar um DOCX preservando toda a formatação original
|
|
118
|
+
4. Você revisa e assina o documento de saída
|
|
119
|
+
|
|
120
|
+
## Uso com Cursor
|
|
121
|
+
|
|
122
|
+
Este repositório inclui um manifesto de plugin do Cursor com integração MCP:
|
|
123
|
+
|
|
124
|
+
- Plugin manifest: `.cursor-plugin/plugin.json`
|
|
125
|
+
- MCP config: `mcp.json`
|
|
126
|
+
- Skill: `skills/open-agreements/SKILL.md`
|
|
127
|
+
|
|
128
|
+
A configuração MCP padrão em `mcp.json` inclui:
|
|
129
|
+
|
|
130
|
+
- Conector MCP OpenAgreements hospedado (`https://openagreements.ai/api/mcp`)
|
|
131
|
+
- Servidor MCP local de workspace (`npx -y @open-agreements/contracts-workspace-mcp`)
|
|
132
|
+
- Servidor MCP local para drafting de modelos (`npx -y @open-agreements/contract-templates-mcp`)
|
|
133
|
+
|
|
134
|
+
Para publicar este plugin no Cursor Marketplace, envie este repositório em:
|
|
135
|
+
|
|
136
|
+
- https://cursor.com/marketplace/publish
|
|
137
|
+
|
|
138
|
+
## Modelos
|
|
139
|
+
|
|
140
|
+
28 modelos em três níveis. Rode `open-agreements list` para ver o inventário completo.
|
|
141
|
+
|
|
142
|
+
| Nível | Quantidade | Fonte | Como funciona |
|
|
143
|
+
|------|-------|--------|--------------|
|
|
144
|
+
| Modelos internos | 17 | [Common Paper](https://commonpaper.com), [Bonterms](https://bonterms.com), OpenAgreements | Empacotados no pacote, CC BY 4.0 |
|
|
145
|
+
| Modelos externos | 4 | [Y Combinator](https://www.ycombinator.com/documents) | Vendorizados sem alterações, CC BY-ND 4.0 |
|
|
146
|
+
| Recipes | 7 | [NVCA](https://nvca.org/model-legal-documents/) | Baixados sob demanda (não redistribuíveis) |
|
|
147
|
+
|
|
148
|
+
**Modelos internos** (NDAs, termos cloud, formulários de trabalho, acordos com contratados etc.) são CC BY 4.0 — enviamos o DOCX com placeholders `{tag}`.
|
|
149
|
+
|
|
150
|
+
**Modelos externos** (YC SAFEs) são CC BY-ND 4.0 — vendorizamos o original sem alterações. A saída preenchida é um derivado transitório na sua máquina.
|
|
151
|
+
|
|
152
|
+
**Recipes** (documentos de financiamento NVCA) são livremente baixáveis, mas não redistribuíveis — enviamos apenas instruções de transformação e baixamos o DOCX de origem de nvca.org em tempo de execução.
|
|
153
|
+
|
|
154
|
+
### Extração de guidance
|
|
155
|
+
|
|
156
|
+
Documentos de origem contêm comentários especializados — notas de rodapé, notas de redação, blocos `[Comment: ...]` — escritos por especialistas de domínio (por exemplo, advogados de mercado de capitais). O limpador de recipes remove esse conteúdo para produzir um documento preenchível, mas também pode extraí-lo como JSON estruturado:
|
|
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
|
+
Isso produz um `guidance.json` com cada nota de rodapé, comentário e nota de redação removidos, marcados por tipo de fonte e posição no documento. O guidance é um artefato somente local (não é commitado nem distribuído) que agentes de IA ou autores humanos podem consultar ao preencher o formulário. Veja [Adding Recipes — Guidance Extraction](docs/adding-recipes.md#guidance-extraction) para detalhes de formato.
|
|
165
|
+
|
|
166
|
+
**Por que extração programática?** O documento de origem é a única fonte de verdade. Reexecutar a extração após uma atualização do editor gera guidance atualizado sem esforço manual, preserva a linguagem exata de especialistas e captura tudo — uma IA pode resumir em tempo real, mas não pode recuperar conteúdo descartado.
|
|
167
|
+
|
|
168
|
+
Cada modelo é um diretório autocontido:
|
|
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
|
+
Renderiza um DOCX preenchido a partir de um modelo.
|
|
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
|
+
Executa o pipeline de validação em um ou todos os modelos.
|
|
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
|
+
Mostra modelos disponíveis com informações de licença e contagem 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
|
+
## Contracts Workspace CLI (pacote separado)
|
|
212
|
+
|
|
213
|
+
O OpenAgreements agora inclui um pacote irmão para operações de repositório/workspace:
|
|
214
|
+
|
|
215
|
+
- Package: `@open-agreements/contracts-workspace`
|
|
216
|
+
- Binary: `open-agreements-workspace`
|
|
217
|
+
- Docs: `docs/contracts-workspace.md`
|
|
218
|
+
|
|
219
|
+
Este pacote é propositalmente separado de `open-agreements`, permitindo que equipes adotem:
|
|
220
|
+
|
|
221
|
+
- apenas preenchimento de modelos
|
|
222
|
+
- apenas gerenciamento de workspace
|
|
223
|
+
- ou ambos juntos
|
|
224
|
+
|
|
225
|
+
Recursos principais de workspace:
|
|
226
|
+
|
|
227
|
+
- planejamento `init` orientado por tópicos (estrutura mínima sugerida com domínios de nível superior)
|
|
228
|
+
- catálogo de formulários com validação de URL + SHA-256
|
|
229
|
+
- indexação e lint de status YAML com status `_executed` orientado por nome de arquivo
|
|
230
|
+
|
|
231
|
+
O modelo v1 é apenas filesystem e funciona em pastas de nuvem sincronizadas localmente (por exemplo, sync do Google Drive). Não requer integração com Drive API/OAuth.
|
|
232
|
+
|
|
233
|
+
## MCP local para demo de workspace
|
|
234
|
+
|
|
235
|
+
Para demos de conectores locais, há um pacote 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
|
+
Início 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 drafting de modelos
|
|
249
|
+
|
|
250
|
+
Para fluxos locais de drafting de modelos em Gemini/Cursor, use:
|
|
251
|
+
|
|
252
|
+
- Package: `@open-agreements/contract-templates-mcp`
|
|
253
|
+
- Binary: `open-agreements-contract-templates-mcp`
|
|
254
|
+
|
|
255
|
+
Início 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
|
+
## Website (Vercel)
|
|
263
|
+
|
|
264
|
+
Um site estático de marketing é gerado a partir de `site/` com 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
|
+
Pré-visualização local:
|
|
273
|
+
|
|
274
|
+
```bash
|
|
275
|
+
npm run build:site
|
|
276
|
+
python3 -m http.server 8080 --directory _site
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
Depois abra `http://localhost:8080`.
|
|
280
|
+
|
|
281
|
+
Notas de deploy na Vercel:
|
|
282
|
+
|
|
283
|
+
- Importe este repositório na Vercel
|
|
284
|
+
- Mantenha a raiz do projeto como a raiz do repositório
|
|
285
|
+
- O `vercel.json` incluído publica `_site/` como saída estática
|
|
286
|
+
|
|
287
|
+
## Raízes opcionais de conteúdo (preparação para o futuro)
|
|
288
|
+
|
|
289
|
+
Para suportar desacoplamento lógico conforme bibliotecas de formulários crescem, `open-agreements` pode carregar conteúdo de raízes adicionais via:
|
|
290
|
+
|
|
291
|
+
- env var: `OPEN_AGREEMENTS_CONTENT_ROOTS`
|
|
292
|
+
- format: lista delimitada por separador de caminho de diretórios absolutos/relativos (por exemplo, `dirA:dirB` em macOS/Linux)
|
|
293
|
+
- estrutura esperada em cada raiz: `templates/`, `external/` e/ou `recipes/` (ou aninhados em `content/`)
|
|
294
|
+
|
|
295
|
+
A precedência de busca é:
|
|
296
|
+
|
|
297
|
+
1. raízes em `OPEN_AGREEMENTS_CONTENT_ROOTS` (na ordem listada)
|
|
298
|
+
2. conteúdo empacotado padrão (fallback)
|
|
299
|
+
|
|
300
|
+
Isso mantém instalações padrão simples e permite que usuários avançados movam bibliotecas de conteúdo grandes para fora do pacote principal.
|
|
301
|
+
|
|
302
|
+
## Contribuindo
|
|
303
|
+
|
|
304
|
+
Veja [CONTRIBUTING.md](CONTRIBUTING.md) para saber como adicionar modelos, recipes e outras melhorias.
|
|
305
|
+
|
|
306
|
+
- [Adding templates](docs/adding-templates.md) (fontes CC BY 4.0 / CC0)
|
|
307
|
+
- [Adding recipes](docs/adding-recipes.md) (fontes não redistribuíveis)
|
|
308
|
+
- [Employment source policy](docs/employment-source-policy.md) (classificações de confiança e termos)
|
|
309
|
+
- [Code of Conduct](CODE_OF_CONDUCT.md) (expectativas da comunidade e aplicação)
|
|
310
|
+
|
|
311
|
+
## Releases
|
|
312
|
+
|
|
313
|
+
Releases são automatados via GitHub Actions usando publicação confiável da npm (OIDC) com provenance habilitada.
|
|
314
|
+
|
|
315
|
+
1. Atualize versões no pacote raiz + pacotes MCP publicáveis.
|
|
316
|
+
2. Faça push do commit + tag com `git push origin main --tags`
|
|
317
|
+
3. Rode o gate local da extensão Gemini (copiar/symlink para `~/.gemini/extensions/open-agreements` e verificar que ambos servidores MCP locais iniciam/respondem).
|
|
318
|
+
4. O workflow `Release` publica a partir da tag após rodar build, validação, testes, smoke de runtime isolado e checks de pacote.
|
|
319
|
+
|
|
320
|
+
Guardrails do workflow:
|
|
321
|
+
|
|
322
|
+
- a tag deve corresponder às versões do pacote raiz + pacotes publicáveis
|
|
323
|
+
- o commit de release deve estar contido em `origin/main`
|
|
324
|
+
- a publicação falha se qualquer versão alvo na npm já existir
|
|
325
|
+
|
|
326
|
+
## Arquitetura
|
|
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
|
+
## Licença
|
|
364
|
+
|
|
365
|
+
MIT
|
|
366
|
+
|
|
367
|
+
O conteúdo dos modelos é licenciado por seus respectivos autores — CC BY 4.0 (Common Paper, Bonterms), CC BY-ND 4.0 (Y Combinator) ou proprietário (NVCA, baixado em tempo de execução). Veja `metadata.yaml` de cada modelo para detalhes.
|
|
368
|
+
|
|
369
|
+
## Aviso legal
|
|
370
|
+
|
|
371
|
+
Esta ferramenta gera documentos a partir de modelos padrão. Ela não fornece assessoria jurídica. Não há afiliação com ou endosso por Common Paper, Bonterms, Y Combinator, NVCA ou qualquer fonte de modelo. Consulte um advogado para orientação jurídica.
|