@open-agreements/open-agreements 0.7.3 → 0.7.4
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.md +92 -297
- package/gemini-extension.json +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,186 +3,139 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/open-agreements)
|
|
4
4
|
[](https://npmjs.org/package/open-agreements)
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
|
-
[](https://skills.sh)
|
|
7
6
|
[](https://github.com/open-agreements/open-agreements/actions/workflows/ci.yml)
|
|
8
|
-
[](https://openagreements.openstatus.dev/)
|
|
9
7
|
[](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
8
|
[](https://socket.dev/npm/package/open-agreements)
|
|
9
|
+
[](https://github.com/open-agreements/open-agreements/stargazers)
|
|
10
|
+
[](https://skills.sh)
|
|
11
|
+
[](https://openagreements.openstatus.dev/)
|
|
14
12
|
[](https://packagephobia.com/result?p=open-agreements)
|
|
15
13
|
|
|
16
14
|
[English](./README.md) | [Español](./README.es.md) | [简体中文](./README.zh.md) | [Português (Brasil)](./README.pt-br.md) | [Deutsch](./README.de.md)
|
|
17
15
|
|
|
18
|
-
<!-- TODO: Add OpenSSF Scorecard badge once repo is indexed at securityscorecards.dev -->
|
|
19
|
-
<!-- TODO: Add OpenSSF Best Practices badge after registration at bestpractices.dev -->
|
|
20
|
-
<!-- TODO: Re-evaluate Snyk badge — Advisor migrated to security.snyk.io (July 2024) -->
|
|
21
|
-
|
|
22
16
|
<p align="center">
|
|
23
|
-
<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">
|
|
17
|
+
<img src="https://raw.githubusercontent.com/open-agreements/open-agreements/main/docs/assets/demo-fill-nda.gif" alt="Fill a Mutual NDA in Claude Code — prompt, answer questions, get a signed-ready DOCX" width="720">
|
|
24
18
|
</p>
|
|
25
19
|
|
|
26
20
|
> *Demo: Claude fills a Common Paper Mutual NDA in under 2 minutes. Sped up for brevity.*
|
|
27
21
|
|
|
28
|
-
Fill standard legal agreement templates and
|
|
29
|
-
|
|
30
|
-
**Open Agreements** by [UseJunior](https://usejunior.com) — part of the [UseJunior developer tools](https://usejunior.com/developer-tools/open-agreements). In production at Am Law 100 firms.
|
|
31
|
-
|
|
32
|
-
## Quality and Trust Signals
|
|
33
|
-
|
|
34
|
-
- CI runs on pull requests and pushes to `main`.
|
|
35
|
-
- Live service health is published via OpenStatus at `openagreements.openstatus.dev`.
|
|
36
|
-
- Coverage is published to Codecov with repository-defined patch/project gates in `codecov.yml`.
|
|
37
|
-
- The active JS test framework is Vitest, with JUnit test results uploaded for Codecov test analytics.
|
|
38
|
-
- OpenSpec scenario traceability is enforced via `npm run check:spec-coverage`. For a local matrix export, run `npm run check:spec-coverage -- --write-matrix integration-tests/OPENSPEC_TRACEABILITY.md`.
|
|
39
|
-
- Recipe source drift canary (`npm run check:source-drift`) verifies expected source hash plus structural replacement/normalize anchors.
|
|
40
|
-
- Assumption-level regressions are tracked in `docs/assumptions.md` and validated via targeted regression tests + CI gates.
|
|
41
|
-
- LibreOffice-powered DOCX visual rendering uses a pinned build config on macOS (`config/libreoffice-headless.json`); run `npm run check:libreoffice` before visual Allure evidence tests.
|
|
42
|
-
- Maintainer: [Steven Obiajulu](https://www.linkedin.com/in/steven-obiajulu/) (MIT-trained mechanical engineer; Harvard Law trained lawyer).
|
|
43
|
-
|
|
44
|
-
## How It Works
|
|
45
|
-
|
|
46
|
-
1. Step 1: Choose a template (36 standard agreements)
|
|
47
|
-
2. Step 2: Fill in your details (interactive prompts or MCP)
|
|
48
|
-
3. Step 3: Get a professionally formatted DOCX
|
|
49
|
-
|
|
50
|
-
OpenAgreements supports two execution modes with different trust boundaries:
|
|
51
|
-
|
|
52
|
-
- Hosted remote MCP connector (`https://openagreements.org/api/mcp`) for fast setup in Claude.
|
|
53
|
-
- Fully local package execution (`npx`, global install, or local stdio MCP package) for machine-local workflows.
|
|
54
|
-
|
|
55
|
-
There is no global default mode recommendation. Choose based on document sensitivity, internal policy, and workflow speed needs. See `docs/trust-checklist.md` for a 60-second data-flow summary.
|
|
56
|
-
|
|
57
|
-
### Quick Decision
|
|
22
|
+
Fill standard legal agreement templates and get signable DOCX files. 41 templates covering NDAs, cloud service agreements, employment docs, contractor agreements, SAFEs, and NVCA financing documents.
|
|
58
23
|
|
|
59
|
-
|
|
60
|
-
- If you prioritize convenience, use the hosted remote MCP connector.
|
|
24
|
+
Works with Claude Code, Gemini CLI, and Cursor.
|
|
61
25
|
|
|
62
|
-
##
|
|
63
|
-
|
|
64
|
-
OpenAgreements works as a [Claude Code plugin](https://docs.anthropic.com/en/docs/claude-code/plugins) and [Agent Skill](https://agentskills.io). No pre-installation required — Claude downloads and runs the CLI on demand via `npx`.
|
|
65
|
-
|
|
66
|
-
### Option 1: Agent Skill (recommended)
|
|
26
|
+
## Install
|
|
67
27
|
|
|
68
28
|
```bash
|
|
69
|
-
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
Then ask Claude to draft an agreement:
|
|
73
|
-
|
|
74
|
-
```
|
|
75
|
-
> Draft an NDA between Acme Corp and Beta Inc
|
|
29
|
+
npm install -g open-agreements
|
|
76
30
|
```
|
|
77
31
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
### Option 2: Gemini CLI Extension
|
|
32
|
+
Or run directly with zero install:
|
|
81
33
|
|
|
82
34
|
```bash
|
|
83
|
-
|
|
35
|
+
npx -y open-agreements@latest list
|
|
84
36
|
```
|
|
85
37
|
|
|
86
|
-
|
|
38
|
+
## Quick Start
|
|
87
39
|
|
|
88
|
-
###
|
|
40
|
+
### With Claude Code (zero install)
|
|
89
41
|
|
|
90
|
-
|
|
42
|
+
Just ask Claude:
|
|
91
43
|
|
|
92
44
|
```
|
|
93
45
|
> Fill the Common Paper mutual NDA for my company
|
|
94
46
|
```
|
|
95
47
|
|
|
96
|
-
Claude
|
|
48
|
+
Claude discovers templates, interviews you for field values, and renders a signed-ready DOCX. No install needed — Claude runs `npx` on demand.
|
|
97
49
|
|
|
98
|
-
###
|
|
50
|
+
### With Gemini CLI
|
|
99
51
|
|
|
100
52
|
```bash
|
|
101
|
-
|
|
102
|
-
npm install -g open-agreements
|
|
103
|
-
|
|
104
|
-
# List available templates
|
|
105
|
-
open-agreements list
|
|
106
|
-
|
|
107
|
-
# Fill a template
|
|
108
|
-
open-agreements fill common-paper-mutual-nda -d values.json -o my-nda.docx
|
|
53
|
+
gemini extensions install https://github.com/open-agreements/open-agreements
|
|
109
54
|
```
|
|
110
55
|
|
|
111
|
-
|
|
56
|
+
Then ask Gemini to draft an agreement.
|
|
112
57
|
|
|
113
|
-
|
|
114
|
-
2. Claude interviews you for field values (grouped by section, up to 4 questions per round)
|
|
115
|
-
3. Claude runs `fill <template>` to render a DOCX preserving all original formatting
|
|
116
|
-
4. You review and sign the output document
|
|
58
|
+
### With the CLI
|
|
117
59
|
|
|
118
|
-
|
|
60
|
+
```bash
|
|
61
|
+
# See all available templates
|
|
62
|
+
open-agreements list
|
|
119
63
|
|
|
120
|
-
|
|
64
|
+
# Fill a template from a JSON data file
|
|
65
|
+
open-agreements fill common-paper-mutual-nda -d values.json -o my-nda.docx
|
|
121
66
|
|
|
122
|
-
|
|
123
|
-
-
|
|
124
|
-
|
|
67
|
+
# Fill with inline values
|
|
68
|
+
open-agreements fill common-paper-mutual-nda --set party_1_name="Acme Corp" --set governing_law="Delaware"
|
|
69
|
+
```
|
|
125
70
|
|
|
126
|
-
|
|
71
|
+
### Example Prompts
|
|
127
72
|
|
|
128
|
-
-
|
|
129
|
-
-
|
|
130
|
-
-
|
|
73
|
+
- "Draft an NDA for our construction subcontractor"
|
|
74
|
+
- "Create a consulting agreement for our insurance agency"
|
|
75
|
+
- "Fill the independent contractor agreement for a freelance designer"
|
|
76
|
+
- "Generate a SAFE with a $5M valuation cap"
|
|
131
77
|
|
|
132
|
-
|
|
78
|
+
### What Happens
|
|
133
79
|
|
|
134
|
-
|
|
80
|
+
1. The agent runs `list --json` to discover templates and their fields
|
|
81
|
+
2. It interviews you for field values (grouped by section, a few at a time)
|
|
82
|
+
3. It runs `fill <template>` to render a DOCX preserving all original formatting
|
|
83
|
+
4. You review and sign the output document
|
|
135
84
|
|
|
136
85
|
## Templates
|
|
137
86
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
| Tier | Count | Source | How It Works |
|
|
141
|
-
|------|-------|--------|--------------|
|
|
142
|
-
| Internal templates | 17 | [Common Paper](https://commonpaper.com), [Bonterms](https://bonterms.com), OpenAgreements | Shipped in package, CC BY 4.0 |
|
|
143
|
-
| External templates | 4 | [Y Combinator](https://www.ycombinator.com/documents) | Vendored unchanged, CC BY-ND 4.0 |
|
|
144
|
-
| Recipes | 7 | [NVCA](https://nvca.org/model-legal-documents/) | Downloaded on demand (not redistributable) |
|
|
87
|
+
41 templates across 7 categories. Run `open-agreements list` for the full inventory.
|
|
145
88
|
|
|
146
|
-
|
|
89
|
+
- **NDAs** — Mutual and one-way (Common Paper, Bonterms)
|
|
90
|
+
- **Cloud & SaaS** — Cloud service agreements, order forms, SLAs, pilot agreements, software licenses
|
|
91
|
+
- **Services & Contractors** — Professional services, independent contractor, SOW (Common Paper, Bonterms)
|
|
92
|
+
- **Employment** — Offer letter, IP assignment, confidentiality acknowledgement, restrictive covenant
|
|
93
|
+
- **Data Privacy** — DPA, BAA, AI addendum (Common Paper)
|
|
94
|
+
- **SAFEs** — Valuation cap, discount, MFN, pro rata side letter (Y Combinator)
|
|
95
|
+
- **Venture Financing** — Stock purchase, certificate of incorporation, investors' rights, voting, ROFR, indemnification, management rights letter (NVCA)
|
|
147
96
|
|
|
148
|
-
|
|
97
|
+
Internal templates are CC BY 4.0. YC SAFEs are CC BY-ND 4.0 (vendored unchanged). NVCA documents are downloaded on demand from nvca.org (not bundled).
|
|
149
98
|
|
|
150
|
-
|
|
99
|
+
## What Gets Installed
|
|
151
100
|
|
|
152
|
-
|
|
101
|
+
```
|
|
102
|
+
open-agreements/
|
|
103
|
+
bin/ # CLI entry point
|
|
104
|
+
dist/ # Compiled TypeScript
|
|
105
|
+
content/
|
|
106
|
+
templates/ # Fillable DOCX templates with {tag} placeholders
|
|
107
|
+
external/ # YC SAFE templates (vendored unchanged)
|
|
108
|
+
skills/ # Agent skill definitions (Claude Code, Gemini, Cursor)
|
|
109
|
+
server.json # MCP server manifest
|
|
110
|
+
gemini-extension.json # Gemini CLI extension config
|
|
111
|
+
README.md, LICENSE
|
|
112
|
+
```
|
|
153
113
|
|
|
154
|
-
|
|
114
|
+
NVCA recipe templates (7) are downloaded at runtime — not bundled in the package.
|
|
155
115
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
--recipe nvca-indemnification-agreement \
|
|
159
|
-
--extract-guidance guidance.json
|
|
160
|
-
```
|
|
116
|
+
<details>
|
|
117
|
+
<summary><strong>CLI Reference</strong></summary>
|
|
161
118
|
|
|
162
|
-
|
|
119
|
+
### `list`
|
|
163
120
|
|
|
164
|
-
|
|
121
|
+
Show available templates with license info and field counts.
|
|
165
122
|
|
|
166
|
-
|
|
123
|
+
```bash
|
|
124
|
+
open-agreements list
|
|
167
125
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
├── template.docx # DOCX with {tag} placeholders
|
|
171
|
-
├── metadata.yaml # Fields, license, source, attribution
|
|
172
|
-
└── README.md # Template-specific documentation
|
|
126
|
+
# Machine-readable JSON (for agent skills and automation)
|
|
127
|
+
open-agreements list --json
|
|
173
128
|
```
|
|
174
129
|
|
|
175
|
-
## CLI Commands
|
|
176
|
-
|
|
177
130
|
### `fill <template>`
|
|
178
131
|
|
|
179
132
|
Render a filled DOCX from a template.
|
|
180
133
|
|
|
181
134
|
```bash
|
|
182
|
-
#
|
|
135
|
+
# From a JSON data file
|
|
183
136
|
open-agreements fill common-paper-mutual-nda -d data.json -o output.docx
|
|
184
137
|
|
|
185
|
-
#
|
|
138
|
+
# With inline --set flags
|
|
186
139
|
open-agreements fill common-paper-mutual-nda --set party_1_name="Acme Corp" --set governing_law="Delaware"
|
|
187
140
|
```
|
|
188
141
|
|
|
@@ -195,217 +148,59 @@ open-agreements validate # All templates
|
|
|
195
148
|
open-agreements validate common-paper-mutual-nda # One template
|
|
196
149
|
```
|
|
197
150
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
Show available templates with license info and field counts.
|
|
201
|
-
|
|
202
|
-
```bash
|
|
203
|
-
open-agreements list
|
|
204
|
-
|
|
205
|
-
# Machine-readable JSON output (for agent skills and automation)
|
|
206
|
-
open-agreements list --json
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
## Contracts Workspace CLI (Separate Package)
|
|
151
|
+
</details>
|
|
210
152
|
|
|
211
|
-
|
|
153
|
+
<details>
|
|
154
|
+
<summary><strong>Agent Setup Details</strong></summary>
|
|
212
155
|
|
|
213
|
-
|
|
214
|
-
- Binary: `open-agreements-workspace`
|
|
215
|
-
- Docs: `docs/contracts-workspace.md`
|
|
216
|
-
|
|
217
|
-
This package is intentionally separate from `open-agreements` so teams can adopt:
|
|
218
|
-
|
|
219
|
-
- template filling only
|
|
220
|
-
- workspace management only
|
|
221
|
-
- or both together
|
|
222
|
-
|
|
223
|
-
Core workspace features:
|
|
224
|
-
|
|
225
|
-
- topic-first `init` planning (minimal suggested structure with top-level domains)
|
|
226
|
-
- forms catalog with URL + SHA-256 validation
|
|
227
|
-
- YAML status indexing and linting with filename-driven `_executed` status
|
|
228
|
-
|
|
229
|
-
The v1 model is filesystem-only and works in locally synced cloud-drive folders (for example, Google Drive sync). No Drive API/OAuth integration is required.
|
|
230
|
-
|
|
231
|
-
## Local MCP for Workspace Demo
|
|
232
|
-
|
|
233
|
-
For local connector demos, there is a local stdio MCP package:
|
|
234
|
-
|
|
235
|
-
- Package: `@open-agreements/contracts-workspace-mcp`
|
|
236
|
-
- Binary: `open-agreements-workspace-mcp`
|
|
237
|
-
- Docs: `docs/contracts-workspace.md`
|
|
238
|
-
|
|
239
|
-
Quick start:
|
|
240
|
-
|
|
241
|
-
```bash
|
|
242
|
-
npm run build:workspace-mcp
|
|
243
|
-
node packages/contracts-workspace-mcp/bin/open-agreements-workspace-mcp.js
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
## Local MCP for Template Drafting
|
|
247
|
-
|
|
248
|
-
For local Gemini/Cursor template drafting flows, use:
|
|
249
|
-
|
|
250
|
-
- Package: `@open-agreements/contract-templates-mcp`
|
|
251
|
-
- Binary: `open-agreements-contract-templates-mcp`
|
|
252
|
-
|
|
253
|
-
Quick start:
|
|
156
|
+
### Claude Code — Agent Skill
|
|
254
157
|
|
|
255
158
|
```bash
|
|
256
|
-
|
|
257
|
-
node packages/contract-templates-mcp/bin/open-agreements-contract-templates-mcp.js
|
|
159
|
+
npx skills add open-agreements/open-agreements
|
|
258
160
|
```
|
|
259
161
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
A static marketing site is generated from `site/` with Eleventy.
|
|
162
|
+
Then ask Claude to draft an agreement. Claude discovers available templates, interviews you for field values, and renders a signed-ready DOCX.
|
|
263
163
|
|
|
264
|
-
|
|
265
|
-
- Styles: `site/styles.css`
|
|
266
|
-
- Demo media: `site/assets/demo-fill-nda.gif`
|
|
267
|
-
- Deployment config: `vercel.json`
|
|
268
|
-
- Discovery outputs (generated during `npm run build:site`): `_site/llms.txt`, `_site/llms-full.txt`, `_site/sitemap.xml`, `_site/robots.txt`
|
|
269
|
-
|
|
270
|
-
Local preview:
|
|
164
|
+
### Gemini CLI — Extension
|
|
271
165
|
|
|
272
166
|
```bash
|
|
273
|
-
|
|
274
|
-
python3 -m http.server 8080 --directory _site
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
Then open `http://localhost:8080`.
|
|
278
|
-
|
|
279
|
-
Vercel deploy notes:
|
|
280
|
-
|
|
281
|
-
- Import this repository in Vercel
|
|
282
|
-
- Keep project root as repo root
|
|
283
|
-
- The included `vercel.json` deploys `_site/` as static output
|
|
284
|
-
|
|
285
|
-
## Compliance & Audit Skills
|
|
286
|
-
|
|
287
|
-
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).
|
|
288
|
-
|
|
289
|
-
### ISO 27001 Evidence Collection
|
|
290
|
-
|
|
291
|
-
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.
|
|
292
|
-
|
|
293
|
-
```bash
|
|
294
|
-
npx skills add open-agreements/open-agreements --skill iso-27001-evidence-collection
|
|
167
|
+
gemini extensions install https://github.com/open-agreements/open-agreements
|
|
295
168
|
```
|
|
296
169
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
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.
|
|
170
|
+
The extension provides MCP tools, context files, and skills for template discovery and filling.
|
|
300
171
|
|
|
301
|
-
|
|
302
|
-
npx skills add open-agreements/open-agreements --skill iso-27001-internal-audit
|
|
303
|
-
```
|
|
172
|
+
### Cursor — Plugin
|
|
304
173
|
|
|
305
|
-
|
|
174
|
+
This repository includes a Cursor plugin manifest at `.cursor-plugin/plugin.json` with MCP wiring in `mcp.json`.
|
|
306
175
|
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
```bash
|
|
310
|
-
npx skills add open-agreements/open-agreements --skill soc2-readiness
|
|
311
|
-
```
|
|
176
|
+
### Local vs. Hosted Execution
|
|
312
177
|
|
|
313
|
-
|
|
178
|
+
OpenAgreements supports two execution modes:
|
|
314
179
|
|
|
315
|
-
|
|
180
|
+
- **Local** (`npx`, global install, or stdio MCP): all processing happens on your machine. No document content leaves your machine.
|
|
181
|
+
- **Hosted** (`https://openagreements.org/api/mcp`): template filling runs server-side for fast setup. No filled documents are stored after the response.
|
|
316
182
|
|
|
317
|
-
|
|
183
|
+
Choose based on document sensitivity and workflow needs. See [docs/trust-checklist.md](docs/trust-checklist.md) for a 60-second data-flow summary.
|
|
318
184
|
|
|
319
|
-
|
|
320
|
-
- format: path-delimited list of absolute/relative directories (for example, `dirA:dirB` on macOS/Linux)
|
|
321
|
-
- expected structure under each root: `templates/`, `external/`, and/or `recipes/` (or nested under `content/`)
|
|
185
|
+
</details>
|
|
322
186
|
|
|
323
|
-
|
|
187
|
+
## Privacy
|
|
324
188
|
|
|
325
|
-
|
|
326
|
-
|
|
189
|
+
- **Local mode** (`npx`, global install, stdio MCP): all processing happens on your machine. No document content is sent externally.
|
|
190
|
+
- **Hosted mode** (`https://openagreements.org/api/mcp`): template filling runs server-side. No filled documents are stored after the response is returned.
|
|
327
191
|
|
|
328
|
-
|
|
192
|
+
See our [Privacy Policy](https://usejunior.com/privacy_policy) for details.
|
|
329
193
|
|
|
330
194
|
## See Also
|
|
331
195
|
|
|
332
196
|
- [safe-docx](https://github.com/UseJunior/safe-docx) — surgical editing of existing Word documents with coding agents (MCP server)
|
|
333
|
-
- [UseJunior Developer Tools](https://usejunior.com/developer-tools/open-agreements) — product page with install options and template catalog
|
|
334
197
|
|
|
335
198
|
## Contributing
|
|
336
199
|
|
|
337
200
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for how to add templates, recipes, and other improvements.
|
|
338
201
|
|
|
339
|
-
- [Adding templates](docs/adding-templates.md) (CC BY 4.0 / CC0 sources)
|
|
340
|
-
- [Adding recipes](docs/adding-recipes.md) (non-redistributable sources)
|
|
341
|
-
- [Employment source policy](docs/employment-source-policy.md) (trust and terms classifications)
|
|
342
|
-
- [Code of Conduct](CODE_OF_CONDUCT.md) (community expectations and enforcement)
|
|
343
|
-
|
|
344
|
-
## Releasing
|
|
345
|
-
|
|
346
|
-
Releases are automated through GitHub Actions using npm trusted publishing (OIDC) with provenance enabled.
|
|
347
|
-
|
|
348
|
-
1. Update versions in root package + publishable MCP packages.
|
|
349
|
-
2. Push commit + tag with `git push origin main --tags`
|
|
350
|
-
3. Run the local Gemini extension gate (copy/symlink into `~/.gemini/extensions/open-agreements` and verify both local MCP servers start/respond).
|
|
351
|
-
4. The `Release` workflow publishes from the tag after running build, validation, tests, isolated runtime smoke, and package checks.
|
|
352
|
-
|
|
353
|
-
Workflow guardrails:
|
|
354
|
-
|
|
355
|
-
- tag must match root + publishable package versions
|
|
356
|
-
- release commit must be contained in `origin/main`
|
|
357
|
-
- publish fails if any target npm version already exists
|
|
358
|
-
|
|
359
|
-
## Architecture
|
|
360
|
-
|
|
361
|
-
- **Language**: TypeScript
|
|
362
|
-
- **DOCX Engine**: [docx-templates](https://www.npmjs.com/package/docx-templates) (MIT)
|
|
363
|
-
- **CLI**: [Commander.js](https://www.npmjs.com/package/commander)
|
|
364
|
-
- **Validation**: [Zod](https://www.npmjs.com/package/zod) schemas
|
|
365
|
-
- **Skill Pattern**: Agent-agnostic `ToolCommandAdapter` interface
|
|
366
|
-
|
|
367
|
-
```
|
|
368
|
-
content/ # All content directories
|
|
369
|
-
├── templates/ # Internal templates (CC BY 4.0)
|
|
370
|
-
├── external/ # External templates (CC BY-ND 4.0)
|
|
371
|
-
└── recipes/ # Recipes (downloaded at runtime)
|
|
372
|
-
|
|
373
|
-
src/ # TypeScript source + collocated unit tests
|
|
374
|
-
├── cli/ # Commander.js CLI
|
|
375
|
-
├── commands/ # fill, validate, list, recipe, scan
|
|
376
|
-
├── core/
|
|
377
|
-
│ ├── engine.ts # docx-templates wrapper
|
|
378
|
-
│ ├── metadata.ts # Zod schemas + loader
|
|
379
|
-
│ ├── recipe/ # Recipe pipeline (clean → patch → fill → verify)
|
|
380
|
-
│ ├── external/ # External template support
|
|
381
|
-
│ ├── validation/ # template, license, output, recipe
|
|
382
|
-
│ └── command-generation/
|
|
383
|
-
│ ├── types.ts # ToolCommandAdapter interface
|
|
384
|
-
│ └── adapters/ # Claude Code adapter
|
|
385
|
-
└── index.ts # Public API
|
|
386
|
-
|
|
387
|
-
integration-tests/ # Integration and end-to-end tests
|
|
388
|
-
```
|
|
389
|
-
|
|
390
|
-
## Resources
|
|
391
|
-
|
|
392
|
-
- [Claude Code Documentation](https://docs.anthropic.com/en/docs/claude-code)
|
|
393
|
-
- [Claude Code Plugins Guide](https://docs.anthropic.com/en/docs/claude-code/plugins)
|
|
394
|
-
- [Agent Skills Specification](https://agentskills.io)
|
|
395
|
-
|
|
396
202
|
## License
|
|
397
203
|
|
|
398
|
-
MIT
|
|
399
|
-
|
|
400
|
-
Template content is licensed by their respective authors — CC BY 4.0 (Common Paper, Bonterms), CC BY-ND 4.0 (Y Combinator), or proprietary (NVCA, downloaded at runtime). See each template's `metadata.yaml` for details.
|
|
401
|
-
|
|
402
|
-
## Privacy
|
|
403
|
-
|
|
404
|
-
- **Local mode** (`npx`, global install, stdio MCP): all processing happens on your machine. No document content is sent externally.
|
|
405
|
-
- **Hosted mode** (`https://openagreements.org/api/mcp`): template filling runs server-side. No filled documents are stored after the response is returned.
|
|
406
|
-
|
|
407
|
-
See our [Privacy Policy](https://usejunior.com/privacy_policy) for details.
|
|
408
|
-
|
|
409
|
-
## Disclaimer
|
|
204
|
+
MIT. Template content is licensed by their respective authors — CC BY 4.0 (Common Paper, Bonterms), CC BY-ND 4.0 (Y Combinator), or proprietary (NVCA, downloaded at runtime). See each template's `metadata.yaml` for details.
|
|
410
205
|
|
|
411
|
-
This tool generates documents from standard templates. It does not provide legal advice.
|
|
206
|
+
This tool generates documents from standard templates. It does not provide legal advice. Consult an attorney for legal guidance.
|
package/gemini-extension.json
CHANGED